<?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>144099</bug_id>
          
          <creation_ts>2015-04-23 08:18:00 -0700</creation_ts>
          <short_desc>[GStreamer] Crashes during plugin installation</short_desc>
          <delta_ts>2015-07-24 05:08:04 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.redhat.com/show_bug.cgi?id=1212604</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>135973</blocked>
    
    <blocked>146993</blocked>
    
    <blocked>147000</blocked>
    
    <blocked>147103</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1087821</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-04-23 08:18:00 -0700</bug_when>
    <thetext>WebKitGTK+ 2.8.1 crashes 100% of the time when attempting to play a YouTube video if an H.264 codec is not installed:

Truncated backtrace:
Thread no. 1 (7 frames)
 #0 gst_element_get_state at gstelement.c:2158
 #1 WebCore::MediaPlayerPrivateGStreamer::changePipelineState at /usr/src/debug/webkitgtk-2.8.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:384
 #2 WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult at /usr/src/debug/webkitgtk-2.8.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1067
 #3 gst_install_plugins_installer_exited at install-plugins.c:690
 #4 g_child_watch_dispatch at gmain.c:5177
 #9 WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt; at /usr/src/debug/webkitgtk-2.8.0/Source/WebKit2/Shared/unix/ChildProcessMain.h:61
 #11 _start

See the downstream bug for a full backtrace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087826</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-04-23 08:35:11 -0700</bug_when>
    <thetext>Would it be too much asking for a debug build trace? :)
Seems like the m_pipeline is somehow null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087936</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-04-23 12:36:01 -0700</bug_when>
    <thetext>Unfortunately that is indeed asking too much, because our debug builds have been very buggy for as long as I remember. They can&apos;t load youtube.com at all, bug #144115.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088814</commentid>
    <comment_count>3</comment_count>
      <attachid>251703</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-04-26 12:42:33 -0700</bug_when>
    <thetext>Created attachment 251703
backtrace

I have a debug build of r183311. It doesn&apos;t crash like 2.8.1, but hits an invalid (NULL) pointer instance critical that looks related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109854</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-16 04:01:24 -0700</bug_when>
    <thetext>Looking at the code, (In reply to comment #3)
&gt; Created attachment 251703 [details]
&gt; backtrace
&gt; 
&gt; I have a debug build of r183311. It doesn&apos;t crash like 2.8.1, but hits an
&gt; invalid (NULL) pointer instance critical that looks related.

This looks unrelated to plugin installation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109855</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-16 04:25:00 -0700</bug_when>
    <thetext>The gst_install_plugins_async() is always started with a valid pipeline, so the only think I can think of is that the media player is deleted when the callback is called. The plugins async installation can&apos;t be cancelled (or I don&apos;t see any cancellable object, nor API to cancel it in the docs), so I guess the only option we have is taking a reference of the media player while the installation happen. In any case it would be nice if someone using fedora could confirm that the media player is indeed deleted before the callback is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109882</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-16 10:05:11 -0700</bug_when>
    <thetext>Here is the order of some relevant function calls:

virtual GstElement *WebCore::MediaPlayerPrivateGStreamer::createAudioSink(): player=0x7f2a2f088000

(WebKitWebProcess:14021): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(WebKitWebProcess:14021): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion &apos;G_TYPE_CHECK_INSTANCE (instance)&apos; failed

(WebKitWebProcess:14021): GStreamer-CRITICAL **: gst_element_link_pads_full: assertion &apos;GST_IS_ELEMENT (dest)&apos; failed
gboolean WebCore::MediaPlayerPrivateGStreamer::handleMessage(GstMessage *): Beginning plugin installation, player=0x7f2a2f088000
virtual WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer(): player=0x7f2a2f088000

So you are right on both counts, the invalid (NULL) pointer instance warning is unrelated to the plugin installation crash, and the media player object is deleted prior to the plugin installation callback (though that does not cause any crash in trunk). I have filed bug #146999 for the invalid (NULL) pointer instance issue. Since the plugin installation crash doesn&apos;t occur in trunk, I will mark this bug as [Stable].

By the way, in 2.8 I expect you would be able to reproduce by uninstalling gstreamer1.0-libav.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110107</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 02:19:37 -0700</bug_when>
    <thetext>I uninstalled gstreamer1.0-libav, but then videos are fully black and I only listen the audio. No errors on stdout nor missing plugins installation at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110112</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 03:09:16 -0700</bug_when>
    <thetext>Ok, I didn&apos;t have gstreamer1.0-packagekit installed either. I think we could show the details in stdout when gst_install_plugins_async returns GST_INSTALL_PLUGINS_HELPER_MISSING.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110138</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 09:15:39 -0700</bug_when>
    <thetext>This is not specific to stable, I can&apos;t reproduce the crashes neither with master nor with 2.8, but the problem is there anyway, the install plugins callback can be called for a deleted media player. I think the installation of the plugins should be moved to the UI process, to provide a proper launch context, and to ensure there can be two installers for the same application (gst_install_plugins_installation_in_progress() doesn&apos;t really work when using multiple web processes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110141</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-17 09:24:31 -0700</bug_when>
    <thetext>It needs to be done regardless to make plugin installation work with seccomp filters, see bug #146993. It used to be on my to-do list when I was working on sandboxing, but it&apos;s not anymore, since it would not be a small task.

Another thing we should clean up at the same time is bug #135973, to get rid of the automatic codec notifications (we should use in-window notifications instead, since the system notifications are only intended to be used as a fallback; that implies adding new public API).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110142</commentid>
    <comment_count>11</comment_count>
      <attachid>256973</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 09:27:00 -0700</bug_when>
    <thetext>Created attachment 256973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110143</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-17 09:29:25 -0700</bug_when>
    <thetext>Attachment 256973 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:71:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:89:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110190</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-17 13:30:30 -0700</bug_when>
    <thetext>Awesome, thanks!

I&apos;m not sure about having both MediaPlayerRequestInstallMissingPluginsCallback::create and also a public constructor; shouldn&apos;t the constructor be private, to ensure the ref is always adopted?

In WebPageProxy::requestInstallMissingMediaPlugins, can&apos;t you use a protector Ref&lt;WebPageProxy&gt; and capture it in the lambda, instead of the manual ref/deref?

What happens when two HTMLMediaElements in the same web process attempt to install codecs at the same time? Looks like the first media element will never begin to play, right? I guess that&apos;s OK; that&apos;s quite a corner case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110354</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-18 01:02:27 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Awesome, thanks!
&gt; 
&gt; I&apos;m not sure about having both
&gt; MediaPlayerRequestInstallMissingPluginsCallback::create and also a public
&gt; constructor; shouldn&apos;t the constructor be private, to ensure the ref is
&gt; always adopted?
&gt; 

Yes, not a big issue since nobody else is going to use that, but yes, I can make the constructor private.

&gt; In WebPageProxy::requestInstallMissingMediaPlugins, can&apos;t you use a
&gt; protector Ref&lt;WebPageProxy&gt; and capture it in the lambda, instead of the
&gt; manual ref/deref?
&gt; 

That&apos;s what I did first, but then I need to leak the ref and I get a compile error because I don&apos;t use the returned value of leakRef(). So, I could use a variable that I won&apos;t use, or do the ref/deref manually which is what I did in the end.

&gt; What happens when two HTMLMediaElements in the same web process attempt to
&gt; install codecs at the same time? Looks like the first media element will
&gt; never begin to play, right? I guess that&apos;s OK; that&apos;s quite a corner case.

This hasn&apos;t actually changed. In current code gst_install_plugins_async() returns GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS for the second media player, so m_missingPlugins is set to false and the callback is not called. With this patch the callback is called with GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS, which is pretty much the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110566</commentid>
    <comment_count>15</comment_count>
      <attachid>257079</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-19 22:37:08 -0700</bug_when>
    <thetext>Created attachment 257079
Updated patch

Just made the MediaPlayerRequestInstallMissingPluginsCallback constructor private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110567</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-19 22:39:45 -0700</bug_when>
    <thetext>Attachment 257079 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:66:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:85:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:90:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111940</commentid>
    <comment_count>17</comment_count>
      <attachid>257079</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-07-24 00:31:22 -0700</bug_when>
    <thetext>Comment on attachment 257079
Updated patch

LGTM but perhaps we could have the callback declaration in a dedicated header file? I find it a bit sad to include the whole MediaPlayerPrivate header on WK2 side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111961</commentid>
    <comment_count>18</comment_count>
      <attachid>257448</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-24 04:25:18 -0700</bug_when>
    <thetext>Created attachment 257448
Updated patch

Moved the callback class definition to its own header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111962</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-24 04:26:50 -0700</bug_when>
    <thetext>Attachment 257448 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerRequestInstallMissingPluginsCallback.h:31:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerRequestInstallMissingPluginsCallback.h:50:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerRequestInstallMissingPluginsCallback.h:55:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111965</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-24 05:08:04 -0700</bug_when>
    <thetext>Committed r187338: &lt;http://trac.webkit.org/changeset/187338&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>251703</attachid>
            <date>2015-04-26 12:42:33 -0700</date>
            <delta_ts>2015-04-26 12:42:33 -0700</delta_ts>
            <desc>backtrace</desc>
            <filename>gdb.txt</filename>
            <type>text/plain</type>
            <size>78400</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">ClRocmVhZCAxNyAoVGhyZWFkIDB4N2Y4ODAxZmY5NzAwIChMV1AgMzEzMzApKToKIzAgIHB0aHJl
YWRfY29uZF93YWl0QEBHTElCQ18yLjMuMiAoKQogICAgYXQgLi4vc3lzZGVwcy91bml4L3N5c3Yv
bGludXgveDg2XzY0L3B0aHJlYWRfY29uZF93YWl0LlM6MTg1Ck5vIGxvY2Fscy4KIzEgIDB4MDAw
MDdmODg2NmI4N2I4YyBpbiBfX2d0aHJlYWRfY29uZF93YWl0IChfX211dGV4PTxvcHRpbWl6ZWQg
b3V0PiwgCiAgICBfX2NvbmQ9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgL3Vzci9zcmMvZGVidWcv
Z2NjLTUuMC4xLTIwMTUwNDEzL29iai14ODZfNjQtcmVkaGF0LWxpbnV4L3g4Nl82NC1yZWRoYXQt
bGludXgvbGlic3RkYysrLXYzL2luY2x1ZGUveDg2XzY0LXJlZGhhdC1saW51eC9iaXRzL2d0aHIt
ZGVmYXVsdC5oOjg2NApObyBsb2NhbHMuCiMyICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZTo6d2Fp
dCAodGhpcz08b3B0aW1pemVkIG91dD4sIF9fbG9jaz0uLi4pCiAgICBhdCAuLi8uLi8uLi8uLi8u
Li9saWJzdGRjKystdjMvc3JjL2MrKzExL2NvbmRpdGlvbl92YXJpYWJsZS5jYzo1MwogICAgICAg
IF9fZSA9IDxvcHRpbWl6ZWQgb3V0PgojMyAgMHgwMDAwN2Y4ODZmYTQxN2IxIGluIHN0ZDo6Y29u
ZGl0aW9uX3ZhcmlhYmxlOjp3YWl0PEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UoKTo6
JF8xPihzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+JiwgSlNDOjpHQ1RocmVhZDo6d2FpdEZv
ck5leHRQaGFzZSgpOjokXzEpICh0aGlzPTB4N2Y4ODQ4MDMyYzQ4LCBfX2xvY2s9Li4uLCBfX3A9
Li4uKQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4LzUuMC4x
Ly4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2NvbmRpdGlvbl92YXJpYWJsZTo5OApObyBs
b2NhbHMuCiM0ICAweDAwMDA3Zjg4NmZhNDE2Y2YgaW4gSlNDOjpHQ1RocmVhZDo6d2FpdEZvck5l
eHRQaGFzZSAodGhpcz0weDIxMzg2YzApCiAgICBhdCAuLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9HQ1RocmVhZC5jcHA6NzkKICAgICAgICBsb2NrID0ge19NX2RldmljZSA9IDB4N2Y4
ODQ4MDMyYzIwLCBfTV9vd25zID0gdHJ1ZX0KIzUgIDB4MDAwMDdmODg2ZmE0MTgyNCBpbiBKU0M6
OkdDVGhyZWFkOjpnY1RocmVhZE1haW4gKHRoaXM9MHgyMTM4NmMwKQogICAgYXQgLi4vLi4vU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3BwOjk3CiAgICAgICAgZW5hYmxlciA9
IHttX3N0YWNrID0gQDB4MWRiYTRmMH0KICAgICAgICBjdXJyZW50UGhhc2UgPSBKU0M6Ok1hcmsK
IzYgIDB4MDAwMDdmODg2ZmE0MTk5ZCBpbiBKU0M6OkdDVGhyZWFkOjpnY1RocmVhZFN0YXJ0RnVu
YyAoZGF0YT0weDIxMzg2YzApCiAgICBhdCAuLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9HQ1RocmVhZC5jcHA6MTM2CiAgICAgICAgdGhyZWFkID0gMHgyMTM4NmMwCiM3ICAweDAwMDA3
Zjg4NmZmMjY3NzkgaW4gV1RGOjpjcmVhdGVUaHJlYWQodm9pZCAoKikodm9pZCopLCB2b2lkKiwg
Y2hhciBjb25zdCopOjokXzA6Om9wZXJhdG9yKCkoKSBjb25zdCAodGhpcz0weDdmODgwMWZmOGI4
OCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6ODEKTm8gbG9jYWxz
LgojOCAgMHgwMDAwN2Y4ODZmZjI2NTdkIGluIHN0ZDo6X0Z1bmN0aW9uX2hhbmRsZXI8dm9pZCAo
KSwgV1RGOjpjcmVhdGVUaHJlYWQodm9pZCAoKikodm9pZCopLCB2b2lkKiwgY2hhciBjb25zdCop
OjokXzA+OjpfTV9pbnZva2Uoc3RkOjpfQW55X2RhdGEgY29uc3QmKSAoCiAgICBfX2Z1bmN0b3I9
Li4uKQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4LzUuMC4x
Ly4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1bmN0aW9uYWw6MTg3MQpObyBsb2NhbHMu
CiM5ICAweDAwMDA3Zjg4NzNlYzVjMWUgaW4gc3RkOjpmdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0
b3IoKSgpIGNvbnN0ICgKICAgIHRoaXM9MHg3Zjg4MDFmZjhiODgpCiAgICBhdCAvdXNyL2Jpbi8u
Li9saWIvZ2NjL3g4Nl82NC1yZWRoYXQtbGludXgvNS4wLjEvLi4vLi4vLi4vLi4vaW5jbHVkZS9j
KysvNS4wLjEvZnVuY3Rpb25hbDoyMjcxCk5vIGxvY2Fscy4KIzEwIDB4MDAwMDdmODg2ZmYyNjM0
NSBpbiBXVEY6OnRocmVhZEVudHJ5UG9pbnQgKGNvbnRleHREYXRhPTB4N2Y4ODQ5ZmY1NjQwKQog
ICAgYXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcDo1OAogICAgICAgIGNvbnRl
eHQgPSAweDdmODg0OWZmNTY0MAogICAgICAgIGVudHJ5UG9pbnQgPSB7PHN0ZDo6X01heWJlX3Vu
YXJ5X29yX2JpbmFyeV9mdW5jdGlvbjx2b2lkPj4gPSB7PE5vIGRhdGEgZmllbGRzPn0sIDxzdGQ6
Ol9GdW5jdGlvbl9iYXNlPiA9IHtzdGF0aWMgX01fbWF4X3NpemUgPSAxNiwgCiAgICAgICAgICAg
IHN0YXRpYyBfTV9tYXhfYWxpZ24gPSA4LCBfTV9mdW5jdG9yID0ge19NX3VudXNlZCA9IHsKICAg
ICAgICAgICAgICAgIF9NX29iamVjdCA9IDB4N2Y4ODZmYTQxOTgwIDxKU0M6OkdDVGhyZWFkOjpn
Y1RocmVhZFN0YXJ0RnVuYyh2b2lkKik+LCAKICAgICAgICAgICAgICAgIF9NX2NvbnN0X29iamVj
dCA9IDB4N2Y4ODZmYTQxOTgwIDxKU0M6OkdDVGhyZWFkOjpnY1RocmVhZFN0YXJ0RnVuYyh2b2lk
Kik+LCAKICAgICAgICAgICAgICAgIF9NX2Z1bmN0aW9uX3BvaW50ZXIgPSAweDdmODg2ZmE0MTk4
MCA8SlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmModm9pZCopPiwgX01fbWVtYmVyX3Bv
aW50ZXIgPSA8ZXJyb3IgcmVhZGluZyB2YXJpYWJsZT4sIAogICAgICAgICAgICAgIF9NX3BvZF9k
YXRhID0gIlwyMDBcMDMxXDI0NG9cMjEwXDE3N1wwMDBcMDAwXDMwMFwyMDZcMDIzXDAwMlwwMDBc
MDAwXDAwMCJ9LCAKICAgICAgICAgICAgX01fbWFuYWdlciA9IDB4N2Y4ODZmZjI2NTkwIDxzdGQ6
Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdURjo6Y3JlYXRlVGhyZWFkKHZvaWQgKCop
KHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wPjo6X01fbWFuYWdlcihzdGQ6Ol9Bbnlf
ZGF0YSYsIHN0ZDo6X0FueV9kYXRhIGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pPn0s
IAogICAgICAgICAgX01faW52b2tlciA9IDB4N2Y4ODZmZjI2NTYwIDxzdGQ6Ol9GdW5jdGlvbl9o
YW5kbGVyPHZvaWQgKCksIFdURjo6Y3JlYXRlVGhyZWFkKHZvaWQgKCopKHZvaWQqKSwgdm9pZCos
IGNoYXIgY29uc3QqKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0Jik+fQoj
MTEgMHgwMDAwN2Y4ODZmZjYwMjU3IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCAocGFyYW09
MHg3Zjg4NDlmZmI1MDApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhy
ZWFkcy5jcHA6MTcwCiAgICAgICAgaW52b2NhdGlvbiA9IHN0ZDo6dW5pcXVlX3B0cjxXVEY6OlRo
cmVhZEZ1bmN0aW9uSW52b2NhdGlvbj4gY29udGFpbmluZyAweDdmODg0OWZmYjUwMAojMTIgMHgw
MDAwN2Y4ODZlMmNkNTU1IGluIHN0YXJ0X3RocmVhZCAoYXJnPTB4N2Y4ODAxZmY5NzAwKQogICAg
YXQgcHRocmVhZF9jcmVhdGUuYzozMzMKICAgICAgICBfX3JlcyA9IDxvcHRpbWl6ZWQgb3V0Pgog
ICAgICAgIHBkID0gMHg3Zjg4MDFmZjk3MDAKICAgICAgICBub3cgPSA8b3B0aW1pemVkIG91dD4K
ICAgICAgICB1bndpbmRfYnVmID0ge2NhbmNlbF9qbXBfYnVmID0ge3tqbXBfYnVmID0gezE0MDIy
MjEyNTgwNzM2MCwgCiAgICAgICAgICAgICAgICAzODc3NjE4OTQyOTc2MjMzNzAsIDE0MDczNDE0
MjE0ODU3NSwgMTQwMjIyMTI1ODA3MzYwLCA4Mzg4NjA4LCAKICAgICAgICAgICAgICAgIDAsIC00
MDAzNzEwOTQwNzU1NDg4NTQsIC00MDA0NjA1NzQxMTcyNzQ4MDZ9LCAKICAgICAgICAgICAgICBt
YXNrX3dhc19zYXZlZCA9IDB9fSwgcHJpdiA9IHtwYWQgPSB7MHgwLCAweDAsIDB4MCwgMHgwfSwg
CiAgICAgICAgICAgIGRhdGEgPSB7cHJldiA9IDB4MCwgY2xlYW51cCA9IDB4MCwgY2FuY2VsdHlw
ZSA9IDB9fX0KICAgICAgICBub3RfZmlyc3RfY2FsbCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAg
IHBhZ2VzaXplX20xID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc3AgPSA8b3B0aW1pemVkIG91
dD4KICAgICAgICBmcmVlc2l6ZSA9IDxvcHRpbWl6ZWQgb3V0PgojMTMgMHgwMDAwN2Y4ODY2MmY2
ZjNkIGluIGNsb25lICgpCiAgICBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQv
Y2xvbmUuUzoxMDkKTm8gbG9jYWxzLgoKVGhyZWFkIDE2IChUaHJlYWQgMHg3Zjg4NTI1YTI3MDAg
KExXUCAzMTMxOCkpOgojMCAgMHgwMDAwN2Y4ODY2MmViNjZkIGluIHBvbGwgKCkgYXQgLi4vc3lz
ZGVwcy91bml4L3N5c2NhbGwtdGVtcGxhdGUuUzo4MQpObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4
NmM0ZGJjZWUgaW4gZ19wb2xsIChmZHM9MHg3Zjg3ZjQwMDEwZTAsIG5mZHM9MSwgdGltZW91dD0t
MSkKICAgIGF0IGdwb2xsLmM6MTI0Ck5vIGxvY2Fscy4KIzIgIDB4MDAwMDdmODg2YzRjYWRiYSBp
biBnX21haW5fY29udGV4dF9wb2xsIChjb250ZXh0PTB4MjMyMjcxMCwgdGltZW91dD0tMSwgCiAg
ICBwcmlvcml0eT0yMTQ3NDgzNjQ3LCBmZHM9MHg3Zjg3ZjQwMDEwZTAsIG5fZmRzPTEpIGF0IGdt
YWluLmM6NDEwMwogICAgICAgIHBvbGxfZnVuYyA9IDB4N2Y4ODZjNGRiY2M3IDxnX3BvbGw+CiMz
ICAweDAwMDA3Zjg4NmM0Y2E3NGQgaW4gZ19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD0w
eDIzMjI3MTAsIGJsb2NrPTEsIAogICAgZGlzcGF0Y2g9MSwgc2VsZj0weDdmODdmYzAwMTkwMCkg
YXQgZ21haW4uYzozODAzCiAgICAgICAgbWF4X3ByaW9yaXR5ID0gMjE0NzQ4MzY0NwogICAgICAg
IHRpbWVvdXQgPSAtMQogICAgICAgIHNvbWVfcmVhZHkgPSAwCiAgICAgICAgbmZkcyA9IDEKICAg
ICAgICBhbGxvY2F0ZWRfbmZkcyA9IDEKICAgICAgICBmZHMgPSAweDdmODdmNDAwMTBlMAojNCAg
MHgwMDAwN2Y4ODZjNGNhYjllIGluIGdfbWFpbl9sb29wX3J1biAobG9vcD0weDFkNDg3MzApIGF0
IGdtYWluLmM6NDAwMgogICAgICAgIHNlbGYgPSAweDdmODdmYzAwMTkwMAogICAgICAgIF9fZnVu
Y19fID0gImdfbWFpbl9sb29wX3J1biIKIzUgIDB4MDAwMDdmODg3NjNmMmI2YiBpbiBXVEY6Oldv
cmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNoYXIgY29uc3QqLCBXVEY6OldvcmtRdWV1ZTo6
VHlwZSwgV1RGOjpXb3JrUXVldWU6OlFPUyk6OiRfMDo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlz
PTB4MWRiY2ZkMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL2d0ay9Xb3JrUXVldWVHdGsu
Y3BwOjU5Ck5vIGxvY2Fscy4KIzYgIDB4MDAwMDdmODg3NjNmMjkyZCBpbiBzdGQ6Ol9GdW5jdGlv
bl9oYW5kbGVyPHZvaWQgKCksIFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY2hh
ciBjb25zdCosIFdURjo6V29ya1F1ZXVlOjpUeXBlLCBXVEY6OldvcmtRdWV1ZTo6UU9TKTo6JF8w
Pjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0JikgKF9fZnVuY3Rvcj0uLi4pCiAgICBh
dCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC1yZWRoYXQtbGludXgvNS4wLjEvLi4vLi4vLi4v
Li4vaW5jbHVkZS9jKysvNS4wLjEvZnVuY3Rpb25hbDoxODcxCk5vIGxvY2Fscy4KIzcgIDB4MDAw
MDdmODg3M2VjNWMxZSBpbiBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29u
c3QgKAogICAgdGhpcz0weDdmODg1MjVhMWI4OCkKICAgIGF0IC91c3IvYmluLy4uL2xpYi9nY2Mv
eDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9pbmNsdWRlL2MrKy81LjAuMS9m
dW5jdGlvbmFsOjIyNzEKTm8gbG9jYWxzLgojOCAgMHgwMDAwN2Y4ODZmZjI2MzQ1IGluIFdURjo6
dGhyZWFkRW50cnlQb2ludCAoY29udGV4dERhdGE9MHg3Zjg4NDlmZjUwNTApCiAgICBhdCAuLi8u
Li9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjU4CiAgICAgICAgY29udGV4dCA9IDB4N2Y4
ODQ5ZmY1MDUwCiAgICAgICAgZW50cnlQb2ludCA9IHs8c3RkOjpfTWF5YmVfdW5hcnlfb3JfYmlu
YXJ5X2Z1bmN0aW9uPHZvaWQ+PiA9IHs8Tm8gZGF0YSBmaWVsZHM+fSwgPHN0ZDo6X0Z1bmN0aW9u
X2Jhc2U+ID0ge3N0YXRpYyBfTV9tYXhfc2l6ZSA9IDE2LCAKICAgICAgICAgICAgc3RhdGljIF9N
X21heF9hbGlnbiA9IDgsIF9NX2Z1bmN0b3IgPSB7X01fdW51c2VkID0gewogICAgICAgICAgICAg
ICAgX01fb2JqZWN0ID0gMHgxZGJjZmQwLCBfTV9jb25zdF9vYmplY3QgPSAweDFkYmNmZDAsIAog
ICAgICAgICAgICAgICAgX01fZnVuY3Rpb25fcG9pbnRlciA9IDB4MWRiY2ZkMCwgCiAgICAgICAg
ICAgICAgICBfTV9tZW1iZXJfcG9pbnRlciA9IDxlcnJvciByZWFkaW5nIHZhcmlhYmxlPiwgCiAg
ICAgICAgICAgICAgX01fcG9kX2RhdGEgPSAiXDMyMFwzMTdcMzMzXDAwMVwwMDBcMDAwXDAwMFww
MDBcMjQwSlwyMTVcMDcwXDM3N1wxNzdcMDAwIn0sIAogICAgICAgICAgICBfTV9tYW5hZ2VyID0g
MHg3Zjg4NzYzZjI5NDAgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V1RGOjpX
b3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFyIGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6
OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjokXzA+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9k
YXRhJiwgc3RkOjpfQW55X2RhdGEgY29uc3QmLCBzdGQ6Ol9NYW5hZ2VyX29wZXJhdGlvbik+fSwg
CiAgICAgICAgICBfTV9pbnZva2VyID0gMHg3Zjg4NzYzZjI5MTAgPHN0ZDo6X0Z1bmN0aW9uX2hh
bmRsZXI8dm9pZCAoKSwgV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFyIGNv
bnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjokXzA+Ojpf
TV9pbnZva2Uoc3RkOjpfQW55X2RhdGEgY29uc3QmKT59CiM5ICAweDAwMDA3Zjg4NmZmNjAyNTcg
aW4gV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50IChwYXJhbT0weDdmODg0OWZmYjAzMCkKICAgIGF0
IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoxNzAKICAgICAgICBp
bnZvY2F0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFdURjo6VGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9u
PiBjb250YWluaW5nIDB4N2Y4ODQ5ZmZiMDMwCiMxMCAweDAwMDA3Zjg4NmUyY2Q1NTUgaW4gc3Rh
cnRfdGhyZWFkIChhcmc9MHg3Zjg4NTI1YTI3MDApCiAgICBhdCBwdGhyZWFkX2NyZWF0ZS5jOjMz
MwogICAgICAgIF9fcmVzID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcGQgPSAweDdmODg1MjVh
MjcwMAogICAgICAgIG5vdyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHVud2luZF9idWYgPSB7
Y2FuY2VsX2ptcF9idWYgPSB7e2ptcF9idWYgPSB7MTQwMjIzNDczOTE5NzQ0LCAKICAgICAgICAg
ICAgICAgIDM4Nzc2MTg5NDI5NzYyMzM3MCwgMTQwNzM0MTQyMTcxMjYzLCAxNDAyMjM0NzM5MTk3
NDQsIDgzODg2MDgsIAogICAgICAgICAgICAgICAgMCwgLTQwMDQ2ODY5Nzc0NDIyMTM2NiwgLTQw
MDQ2MDU3NDExNzI3NDgwNn0sIAogICAgICAgICAgICAgIG1hc2tfd2FzX3NhdmVkID0gMH19LCBw
cml2ID0ge3BhZCA9IHsweDAsIDB4MCwgMHgwLCAweDB9LCAKICAgICAgICAgICAgZGF0YSA9IHtw
cmV2ID0gMHgwLCBjbGVhbnVwID0gMHgwLCBjYW5jZWx0eXBlID0gMH19fQogICAgICAgIG5vdF9m
aXJzdF9jYWxsID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcGFnZXNpemVfbTEgPSA8b3B0aW1p
emVkIG91dD4KICAgICAgICBzcCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIGZyZWVzaXplID0g
PG9wdGltaXplZCBvdXQ+CiMxMSAweDAwMDA3Zjg4NjYyZjZmM2QgaW4gY2xvbmUgKCkKICAgIGF0
IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9jbG9uZS5TOjEwOQpObyBsb2NhbHMu
CgpUaHJlYWQgMTUgKFRocmVhZCAweDdmODg1MmRhMzcwMCAoTFdQIDMxMzE3KSk6CiMwICAweDAw
MDA3Zjg4NjYyZWI2NmQgaW4gcG9sbCAoKSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzY2FsbC10ZW1w
bGF0ZS5TOjgxCk5vIGxvY2Fscy4KIzEgIDB4MDAwMDdmODg2YzRkYmNlZSBpbiBnX3BvbGwgKGZk
cz0weDdmODdmYzAwMTBlMCwgbmZkcz0xLCB0aW1lb3V0PS0xKQogICAgYXQgZ3BvbGwuYzoxMjQK
Tm8gbG9jYWxzLgojMiAgMHgwMDAwN2Y4ODZjNGNhZGJhIGluIGdfbWFpbl9jb250ZXh0X3BvbGwg
KGNvbnRleHQ9MHgxZGFkZGMwLCB0aW1lb3V0PS0xLCAKICAgIHByaW9yaXR5PTIxNDc0ODM2NDcs
IGZkcz0weDdmODdmYzAwMTBlMCwgbl9mZHM9MSkgYXQgZ21haW4uYzo0MTAzCiAgICAgICAgcG9s
bF9mdW5jID0gMHg3Zjg4NmM0ZGJjYzcgPGdfcG9sbD4KIzMgIDB4MDAwMDdmODg2YzRjYTc0ZCBp
biBnX21haW5fY29udGV4dF9pdGVyYXRlIChjb250ZXh0PTB4MWRhZGRjMCwgYmxvY2s9MSwgCiAg
ICBkaXNwYXRjaD0xLCBzZWxmPTB4MWQ1Y2Y2MCkgYXQgZ21haW4uYzozODAzCiAgICAgICAgbWF4
X3ByaW9yaXR5ID0gMjE0NzQ4MzY0NwogICAgICAgIHRpbWVvdXQgPSAtMQogICAgICAgIHNvbWVf
cmVhZHkgPSAxCiAgICAgICAgbmZkcyA9IDEKICAgICAgICBhbGxvY2F0ZWRfbmZkcyA9IDEKICAg
ICAgICBmZHMgPSAweDdmODdmYzAwMTBlMAojNCAgMHgwMDAwN2Y4ODZjNGNhYjllIGluIGdfbWFp
bl9sb29wX3J1biAobG9vcD0weDFkZDJhMjApIGF0IGdtYWluLmM6NDAwMgogICAgICAgIHNlbGYg
PSAweDFkNWNmNjAKICAgICAgICBfX2Z1bmNfXyA9ICJnX21haW5fbG9vcF9ydW4iCiM1ICAweDAw
MDA3Zjg4NzYzZjJiNmIgaW4gV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFy
IGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjokXzA6
Om9wZXJhdG9yKCkoKSBjb25zdCAodGhpcz0weDFmZDc1NzApCiAgICBhdCAuLi8uLi9Tb3VyY2Uv
V1RGL3d0Zi9ndGsvV29ya1F1ZXVlR3RrLmNwcDo1OQpObyBsb2NhbHMuCiM2ICAweDAwMDA3Zjg4
NzYzZjI5MmQgaW4gc3RkOjpfRnVuY3Rpb25faGFuZGxlcjx2b2lkICgpLCBXVEY6OldvcmtRdWV1
ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNoYXIgY29uc3QqLCBXVEY6OldvcmtRdWV1ZTo6VHlwZSwg
V1RGOjpXb3JrUXVldWU6OlFPUyk6OiRfMD46Ol9NX2ludm9rZShzdGQ6Ol9BbnlfZGF0YSBjb25z
dCYpIChfX2Z1bmN0b3I9Li4uKQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZfNjQtcmVk
aGF0LWxpbnV4LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1bmN0aW9uYWw6
MTg3MQpObyBsb2NhbHMuCiM3ICAweDAwMDA3Zjg4NzNlYzVjMWUgaW4gc3RkOjpmdW5jdGlvbjx2
b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICgKICAgIHRoaXM9MHg3Zjg4NTJkYTJiODgpCiAg
ICBhdCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC1yZWRoYXQtbGludXgvNS4wLjEvLi4vLi4v
Li4vLi4vaW5jbHVkZS9jKysvNS4wLjEvZnVuY3Rpb25hbDoyMjcxCk5vIGxvY2Fscy4KIzggIDB4
MDAwMDdmODg2ZmYyNjM0NSBpbiBXVEY6OnRocmVhZEVudHJ5UG9pbnQgKGNvbnRleHREYXRhPTB4
N2Y4ODQ5ZmY1MDAwKQogICAgYXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcDo1
OAogICAgICAgIGNvbnRleHQgPSAweDdmODg0OWZmNTAwMAogICAgICAgIGVudHJ5UG9pbnQgPSB7
PHN0ZDo6X01heWJlX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbjx2b2lkPj4gPSB7PE5vIGRhdGEg
ZmllbGRzPn0sIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlPiA9IHtzdGF0aWMgX01fbWF4X3NpemUgPSAx
NiwgCiAgICAgICAgICAgIHN0YXRpYyBfTV9tYXhfYWxpZ24gPSA4LCBfTV9mdW5jdG9yID0ge19N
X3VudXNlZCA9IHsKICAgICAgICAgICAgICAgIF9NX29iamVjdCA9IDB4MWZkNzU3MCwgX01fY29u
c3Rfb2JqZWN0ID0gMHgxZmQ3NTcwLCAKICAgICAgICAgICAgICAgIF9NX2Z1bmN0aW9uX3BvaW50
ZXIgPSAweDFmZDc1NzAsIAogICAgICAgICAgICAgICAgX01fbWVtYmVyX3BvaW50ZXIgPSA8ZXJy
b3IgcmVhZGluZyB2YXJpYWJsZT4sIAogICAgICAgICAgICAgIF9NX3BvZF9kYXRhID0gInB1XDM3
NVwwMDFcMDAwXDAwMFwwMDBcMDAwXDI2MEpcMjE1XDA3MFwzNzdcMTc3XDAwMCJ9LCAKICAgICAg
ICAgICAgX01fbWFuYWdlciA9IDB4N2Y4ODc2M2YyOTQwIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpf
QmFzZV9tYW5hZ2VyPFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY2hhciBjb25z
dCosIFdURjo6V29ya1F1ZXVlOjpUeXBlLCBXVEY6OldvcmtRdWV1ZTo6UU9TKTo6JF8wPjo6X01f
bWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYsIHN0ZDo6X0FueV9kYXRhIGNvbnN0Jiwgc3RkOjpfTWFu
YWdlcl9vcGVyYXRpb24pPn0sIAogICAgICAgICAgX01faW52b2tlciA9IDB4N2Y4ODc2M2YyOTEw
IDxzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUoY2hhciBjb25zdCosIFdURjo6V29ya1F1ZXVlOjpUeXBlLCBXVEY6OldvcmtR
dWV1ZTo6UU9TKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0Jik+fQojOSAg
MHgwMDAwN2Y4ODZmZjYwMjU3IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCAocGFyYW09MHg3
Zjg4NDlmZmIwMTApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHA6MTcwCiAgICAgICAgaW52b2NhdGlvbiA9IHN0ZDo6dW5pcXVlX3B0cjxXVEY6OlRocmVh
ZEZ1bmN0aW9uSW52b2NhdGlvbj4gY29udGFpbmluZyAweDdmODg0OWZmYjAxMAojMTAgMHgwMDAw
N2Y4ODZlMmNkNTU1IGluIHN0YXJ0X3RocmVhZCAoYXJnPTB4N2Y4ODUyZGEzNzAwKQogICAgYXQg
cHRocmVhZF9jcmVhdGUuYzozMzMKICAgICAgICBfX3JlcyA9IDxvcHRpbWl6ZWQgb3V0PgogICAg
ICAgIHBkID0gMHg3Zjg4NTJkYTM3MDAKICAgICAgICBub3cgPSA8b3B0aW1pemVkIG91dD4KICAg
ICAgICB1bndpbmRfYnVmID0ge2NhbmNlbF9qbXBfYnVmID0ge3tqbXBfYnVmID0gezE0MDIyMzQ4
MjMxMjQ0OCwgCiAgICAgICAgICAgICAgICAzODc3NjE4OTQyOTc2MjMzNzAsIDE0MDczNDE0MjE3
MTI3OSwgMTQwMjIzNDgyMzEyNDQ4LCA4Mzg4NjA4LCAKICAgICAgICAgICAgICAgIDAsIC00MDA0
Njk3OTc3OTI3MjAwNTQsIC00MDA0NjA1NzQxMTcyNzQ4MDZ9LCAKICAgICAgICAgICAgICBtYXNr
X3dhc19zYXZlZCA9IDB9fSwgcHJpdiA9IHtwYWQgPSB7MHgwLCAweDAsIDB4MCwgMHgwfSwgCiAg
ICAgICAgICAgIGRhdGEgPSB7cHJldiA9IDB4MCwgY2xlYW51cCA9IDB4MCwgY2FuY2VsdHlwZSA9
IDB9fX0KICAgICAgICBub3RfZmlyc3RfY2FsbCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBh
Z2VzaXplX20xID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc3AgPSA8b3B0aW1pemVkIG91dD4K
ICAgICAgICBmcmVlc2l6ZSA9IDxvcHRpbWl6ZWQgb3V0PgojMTEgMHgwMDAwN2Y4ODY2MmY2ZjNk
IGluIGNsb25lICgpCiAgICBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xv
bmUuUzoxMDkKTm8gbG9jYWxzLgoKVGhyZWFkIDE0IChUaHJlYWQgMHg3Zjg4MDJmZmI3MDAgKExX
UCAzMTMyOCkpOgojMCAgcHRocmVhZF9jb25kX3dhaXRAQEdMSUJDXzIuMy4yICgpCiAgICBhdCAu
Li9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvcHRocmVhZF9jb25kX3dhaXQuUzoxODUK
Tm8gbG9jYWxzLgojMSAgMHgwMDAwN2Y4ODY2Yjg3YjhjIGluIF9fZ3RocmVhZF9jb25kX3dhaXQg
KF9fbXV0ZXg9PG9wdGltaXplZCBvdXQ+LCAKICAgIF9fY29uZD08b3B0aW1pemVkIG91dD4pCiAg
ICBhdCAvdXNyL3NyYy9kZWJ1Zy9nY2MtNS4wLjEtMjAxNTA0MTMvb2JqLXg4Nl82NC1yZWRoYXQt
bGludXgveDg2XzY0LXJlZGhhdC1saW51eC9saWJzdGRjKystdjMvaW5jbHVkZS94ODZfNjQtcmVk
aGF0LWxpbnV4L2JpdHMvZ3Roci1kZWZhdWx0Lmg6ODY0Ck5vIGxvY2Fscy4KIzIgIHN0ZDo6Y29u
ZGl0aW9uX3ZhcmlhYmxlOjp3YWl0ICh0aGlzPTxvcHRpbWl6ZWQgb3V0PiwgX19sb2NrPS4uLikK
ICAgIGF0IC4uLy4uLy4uLy4uLy4uL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY29uZGl0aW9uX3Zh
cmlhYmxlLmNjOjUzCiAgICAgICAgX19lID0gPG9wdGltaXplZCBvdXQ+CiMzICAweDAwMDA3Zjg4
NmZhNDE3YjEgaW4gc3RkOjpjb25kaXRpb25fdmFyaWFibGU6OndhaXQ8SlNDOjpHQ1RocmVhZDo6
d2FpdEZvck5leHRQaGFzZSgpOjokXzE+KHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4mLCBK
U0M6OkdDVGhyZWFkOjp3YWl0Rm9yTmV4dFBoYXNlKCk6OiRfMSkgKHRoaXM9MHg3Zjg4NDgwMzJj
NDgsIF9fbG9jaz0uLi4sIF9fcD0uLi4pCiAgICBhdCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4Nl82
NC1yZWRoYXQtbGludXgvNS4wLjEvLi4vLi4vLi4vLi4vaW5jbHVkZS9jKysvNS4wLjEvY29uZGl0
aW9uX3ZhcmlhYmxlOjk4Ck5vIGxvY2Fscy4KIzQgIDB4MDAwMDdmODg2ZmE0MTZjZiBpbiBKU0M6
OkdDVGhyZWFkOjp3YWl0Rm9yTmV4dFBoYXNlICh0aGlzPTB4MjE2Mzg2MCkKICAgIGF0IC4uLy4u
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkLmNwcDo3OQogICAgICAgIGxvY2sg
PSB7X01fZGV2aWNlID0gMHg3Zjg4NDgwMzJjMjAsIF9NX293bnMgPSB0cnVlfQojNSAgMHgwMDAw
N2Y4ODZmYTQxODI0IGluIEpTQzo6R0NUaHJlYWQ6OmdjVGhyZWFkTWFpbiAodGhpcz0weDIxNjM4
NjApCiAgICBhdCAuLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZC5jcHA6
OTcKICAgICAgICBlbmFibGVyID0ge21fc3RhY2sgPSBAMHgxZWY5OTEwfQogICAgICAgIGN1cnJl
bnRQaGFzZSA9IEpTQzo6TWFyawojNiAgMHgwMDAwN2Y4ODZmYTQxOTlkIGluIEpTQzo6R0NUaHJl
YWQ6OmdjVGhyZWFkU3RhcnRGdW5jIChkYXRhPTB4MjE2Mzg2MCkKICAgIGF0IC4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkLmNwcDoxMzYKICAgICAgICB0aHJlYWQgPSAw
eDIxNjM4NjAKIzcgIDB4MDAwMDdmODg2ZmYyNjc3OSBpbiBXVEY6OmNyZWF0ZVRocmVhZCh2b2lk
ICgqKSh2b2lkKiksIHZvaWQqLCBjaGFyIGNvbnN0Kik6OiRfMDo6b3BlcmF0b3IoKSgpIGNvbnN0
ICh0aGlzPTB4N2Y4ODAyZmZhYjg4KQogICAgYXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmNwcDo4MQpObyBsb2NhbHMuCiM4ICAweDAwMDA3Zjg4NmZmMjY1N2QgaW4gc3RkOjpfRnVu
Y3Rpb25faGFuZGxlcjx2b2lkICgpLCBXVEY6OmNyZWF0ZVRocmVhZCh2b2lkICgqKSh2b2lkKiks
IHZvaWQqLCBjaGFyIGNvbnN0Kik6OiRfMD46Ol9NX2ludm9rZShzdGQ6Ol9BbnlfZGF0YSBjb25z
dCYpICgKICAgIF9fZnVuY3Rvcj0uLi4pCiAgICBhdCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4Nl82
NC1yZWRoYXQtbGludXgvNS4wLjEvLi4vLi4vLi4vLi4vaW5jbHVkZS9jKysvNS4wLjEvZnVuY3Rp
b25hbDoxODcxCk5vIGxvY2Fscy4KIzkgIDB4MDAwMDdmODg3M2VjNWMxZSBpbiBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKAogICAgdGhpcz0weDdmODgwMmZmYWI4
OCkKICAgIGF0IC91c3IvYmluLy4uL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8u
Li8uLi8uLi8uLi9pbmNsdWRlL2MrKy81LjAuMS9mdW5jdGlvbmFsOjIyNzEKTm8gbG9jYWxzLgoj
MTAgMHgwMDAwN2Y4ODZmZjI2MzQ1IGluIFdURjo6dGhyZWFkRW50cnlQb2ludCAoY29udGV4dERh
dGE9MHg3Zjg4NDlmZjU1YTApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcu
Y3BwOjU4CiAgICAgICAgY29udGV4dCA9IDB4N2Y4ODQ5ZmY1NWEwCiAgICAgICAgZW50cnlQb2lu
dCA9IHs8c3RkOjpfTWF5YmVfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uPHZvaWQ+PiA9IHs8Tm8g
ZGF0YSBmaWVsZHM+fSwgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U+ID0ge3N0YXRpYyBfTV9tYXhfc2l6
ZSA9IDE2LCAKICAgICAgICAgICAgc3RhdGljIF9NX21heF9hbGlnbiA9IDgsIF9NX2Z1bmN0b3Ig
PSB7X01fdW51c2VkID0gewogICAgICAgICAgICAgICAgX01fb2JqZWN0ID0gMHg3Zjg4NmZhNDE5
ODAgPEpTQzo6R0NUaHJlYWQ6OmdjVGhyZWFkU3RhcnRGdW5jKHZvaWQqKT4sIAogICAgICAgICAg
ICAgICAgX01fY29uc3Rfb2JqZWN0ID0gMHg3Zjg4NmZhNDE5ODAgPEpTQzo6R0NUaHJlYWQ6Omdj
VGhyZWFkU3RhcnRGdW5jKHZvaWQqKT4sIAogICAgICAgICAgICAgICAgX01fZnVuY3Rpb25fcG9p
bnRlciA9IDB4N2Y4ODZmYTQxOTgwIDxKU0M6OkdDVGhyZWFkOjpnY1RocmVhZFN0YXJ0RnVuYyh2
b2lkKik+LCBfTV9tZW1iZXJfcG9pbnRlciA9IDxlcnJvciByZWFkaW5nIHZhcmlhYmxlPiwgCiAg
ICAgICAgICAgICAgX01fcG9kX2RhdGEgPSAiXDIwMFwwMzFcMjQ0b1wyMTBcMTc3XDAwMFwwMDBg
OFwwMjZcMDAyXDAwMFwwMDBcMDAwIn0sIAogICAgICAgICAgICBfTV9tYW5hZ2VyID0gMHg3Zjg4
NmZmMjY1OTAgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V1RGOjpjcmVhdGVU
aHJlYWQodm9pZCAoKikodm9pZCopLCB2b2lkKiwgY2hhciBjb25zdCopOjokXzA+OjpfTV9tYW5h
Z2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfQW55X2RhdGEgY29uc3QmLCBzdGQ6Ol9NYW5hZ2Vy
X29wZXJhdGlvbik+fSwgCiAgICAgICAgICBfTV9pbnZva2VyID0gMHg3Zjg4NmZmMjY1NjAgPHN0
ZDo6X0Z1bmN0aW9uX2hhbmRsZXI8dm9pZCAoKSwgV1RGOjpjcmVhdGVUaHJlYWQodm9pZCAoKiko
dm9pZCopLCB2b2lkKiwgY2hhciBjb25zdCopOjokXzA+OjpfTV9pbnZva2Uoc3RkOjpfQW55X2Rh
dGEgY29uc3QmKT59CiMxMSAweDAwMDA3Zjg4NmZmNjAyNTcgaW4gV1RGOjp3dGZUaHJlYWRFbnRy
eVBvaW50IChwYXJhbT0weDdmODg0OWZmYjRjMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcDoxNzAKICAgICAgICBpbnZvY2F0aW9uID0gc3RkOjp1bmlx
dWVfcHRyPFdURjo6VGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uPiBjb250YWluaW5nIDB4N2Y4ODQ5
ZmZiNGMwCiMxMiAweDAwMDA3Zjg4NmUyY2Q1NTUgaW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3Zjg4
MDJmZmI3MDApCiAgICBhdCBwdGhyZWFkX2NyZWF0ZS5jOjMzMwogICAgICAgIF9fcmVzID0gPG9w
dGltaXplZCBvdXQ+CiAgICAgICAgcGQgPSAweDdmODgwMmZmYjcwMAogICAgICAgIG5vdyA9IDxv
cHRpbWl6ZWQgb3V0PgogICAgICAgIHVud2luZF9idWYgPSB7Y2FuY2VsX2ptcF9idWYgPSB7e2pt
cF9idWYgPSB7MTQwMjIyMTQyNTkyNzY4LCAKICAgICAgICAgICAgICAgIDM4Nzc2MTg5NDI5NzYy
MzM3MCwgMTQwNzM0MTQyMTQ4NTc1LCAxNDAyMjIxNDI1OTI3NjgsIDgzODg2MDgsIAogICAgICAg
ICAgICAgICAgMCwgLTQwMDM2NDQ5ODA3OTUyNDAyMiwgLTQwMDQ2MDU3NDExNzI3NDgwNn0sIAog
ICAgICAgICAgICAgIG1hc2tfd2FzX3NhdmVkID0gMH19LCBwcml2ID0ge3BhZCA9IHsweDAsIDB4
MCwgMHgwLCAweDB9LCAKICAgICAgICAgICAgZGF0YSA9IHtwcmV2ID0gMHgwLCBjbGVhbnVwID0g
MHgwLCBjYW5jZWx0eXBlID0gMH19fQogICAgICAgIG5vdF9maXJzdF9jYWxsID0gPG9wdGltaXpl
ZCBvdXQ+CiAgICAgICAgcGFnZXNpemVfbTEgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBzcCA9
IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIGZyZWVzaXplID0gPG9wdGltaXplZCBvdXQ+CiMxMyAw
eDAwMDA3Zjg4NjYyZjZmM2QgaW4gY2xvbmUgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2
L2xpbnV4L3g4Nl82NC9jbG9uZS5TOjEwOQpObyBsb2NhbHMuCgpUaHJlYWQgMTMgKFRocmVhZCAw
eDdmODdkMjFmNTcwMCAoTFdQIDMxMzQ4KSk6CiMwICBwdGhyZWFkX2NvbmRfd2FpdEBAR0xJQkNf
Mi4zLjIgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9wdGhyZWFk
X2NvbmRfd2FpdC5TOjE4NQpObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NmZmNjExNjAgaW4gV1RG
OjpUaHJlYWRDb25kaXRpb246OndhaXQgKHRoaXM9MHg3Zjg4NDk1ZWI4MjAsIAogICAgbXV0ZXg9
Li4uKSBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6MzcxCiAg
ICAgICAgcmVzdWx0ID0gMzI2NDgKIzIgIDB4MDAwMDdmODg2ZmEyNWVlZSBpbiBKU0M6OkRGRzo6
V29ya2xpc3Q6OnJ1blRocmVhZCAodGhpcz0weDdmODg0OTVlYjZlMCwgCiAgICBkYXRhPTB4MzBi
NjdkMCkgYXQgLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHA6
MzMwCiAgICAgICAgbG9ja2VyID0ge21fbG9ja2FibGUgPSAweDdmODg0OTVlYjdmOH0KICAgICAg
ICBwbGFuID0ge21fcHRyID0gMHgwfQogICAgICAgIGNvbXBpbGF0aW9uU2NvcGUgPSB7bV9vbGRW
YWx1ZSA9IGZhbHNlfQogICAgICAgIGxvbmdMaXZlZFN0YXRlID0ge21fYWxsb2NhdG9yID0ge21f
cmVnaW9uSGVhZCA9IDB4N2Y4N2M4Y2YwMDAwLCAKICAgICAgICAgICAgbV9mcmVlTGlzdEhlYWQg
PSAweDAsIG1fYnVtcEVuZCA9IDB4N2Y4N2M4ZDAwMDAwLCAKICAgICAgICAgICAgbV9idW1wUmVt
YWluaW5nID0gNTExfX0KIzMgIDB4MDAwMDdmODg2ZmEyM2NhNCBpbiBKU0M6OkRGRzo6V29ya2xp
c3Q6OnRocmVhZEZ1bmN0aW9uICgKICAgIGFyZ3VtZW50PTB4MzBiNjdkMCkgYXQgLi4vLi4vU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHA6NDAwCiAgICAgICAgZGF0YSA9
IDB4MzBiNjdkMAojNCAgMHgwMDAwN2Y4ODZmZjI2Nzc5IGluIFdURjo6Y3JlYXRlVGhyZWFkKHZv
aWQgKCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wOjpvcGVyYXRvcigpKCkgY29u
c3QgKHRoaXM9MHg3Zjg3ZDIxZjRiODgpCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmcuY3BwOjgxCk5vIGxvY2Fscy4KIzUgIDB4MDAwMDdmODg2ZmYyNjU3ZCBpbiBzdGQ6Ol9G
dW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6Y3JlYXRlVGhyZWFkKHZvaWQgKCopKHZvaWQq
KSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNv
bnN0JikgKAogICAgX19mdW5jdG9yPS4uLikKICAgIGF0IC91c3IvYmluLy4uL2xpYi9nY2MveDg2
XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9pbmNsdWRlL2MrKy81LjAuMS9mdW5j
dGlvbmFsOjE4NzEKTm8gbG9jYWxzLgojNiAgMHgwMDAwN2Y4ODczZWM1YzFlIGluIHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAoCiAgICB0aGlzPTB4N2Y4N2QyMWY0
Yjg4KQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4LzUuMC4x
Ly4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1bmN0aW9uYWw6MjI3MQpObyBsb2NhbHMu
CiM3ICAweDAwMDA3Zjg4NmZmMjYzNDUgaW4gV1RGOjp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0
RGF0YT0weDdmODdjOWVhNGQyMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Zy5jcHA6NTgKICAgICAgICBjb250ZXh0ID0gMHg3Zjg3YzllYTRkMjAKICAgICAgICBlbnRyeVBv
aW50ID0gezxzdGQ6Ol9NYXliZV91bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb248dm9pZD4+ID0gezxO
byBkYXRhIGZpZWxkcz59LCA8c3RkOjpfRnVuY3Rpb25fYmFzZT4gPSB7c3RhdGljIF9NX21heF9z
aXplID0gMTYsIAogICAgICAgICAgICBzdGF0aWMgX01fbWF4X2FsaWduID0gOCwgX01fZnVuY3Rv
ciA9IHtfTV91bnVzZWQgPSB7CiAgICAgICAgICAgICAgICBfTV9vYmplY3QgPSAweDdmODg2ZmEy
M2M4MCA8SlNDOjpERkc6OldvcmtsaXN0Ojp0aHJlYWRGdW5jdGlvbih2b2lkKik+LCAKICAgICAg
ICAgICAgICAgIF9NX2NvbnN0X29iamVjdCA9IDB4N2Y4ODZmYTIzYzgwIDxKU0M6OkRGRzo6V29y
a2xpc3Q6OnRocmVhZEZ1bmN0aW9uKHZvaWQqKT4sIAogICAgICAgICAgICAgICAgX01fZnVuY3Rp
b25fcG9pbnRlciA9IDB4N2Y4ODZmYTIzYzgwIDxKU0M6OkRGRzo6V29ya2xpc3Q6OnRocmVhZEZ1
bmN0aW9uKHZvaWQqKT4sIF9NX21lbWJlcl9wb2ludGVyID0gPGVycm9yIHJlYWRpbmcgdmFyaWFi
bGU+LCAKICAgICAgICAgICAgICBfTV9wb2RfZGF0YSA9ICJcMjAwPFwyNDJvXDIxMFwxNzdcMDAw
XDAwMFwzMjBnXHZcMDAzXDAwMFwwMDBcMDAwIn0sIAogICAgICAgICAgICBfTV9tYW5hZ2VyID0g
MHg3Zjg4NmZmMjY1OTAgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8V1RGOjpj
cmVhdGVUaHJlYWQodm9pZCAoKikodm9pZCopLCB2b2lkKiwgY2hhciBjb25zdCopOjokXzA+Ojpf
TV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfQW55X2RhdGEgY29uc3QmLCBzdGQ6Ol9N
YW5hZ2VyX29wZXJhdGlvbik+fSwgCiAgICAgICAgICBfTV9pbnZva2VyID0gMHg3Zjg4NmZmMjY1
NjAgPHN0ZDo6X0Z1bmN0aW9uX2hhbmRsZXI8dm9pZCAoKSwgV1RGOjpjcmVhdGVUaHJlYWQodm9p
ZCAoKikodm9pZCopLCB2b2lkKiwgY2hhciBjb25zdCopOjokXzA+OjpfTV9pbnZva2Uoc3RkOjpf
QW55X2RhdGEgY29uc3QmKT59CiM4ICAweDAwMDA3Zjg4NmZmNjAyNTcgaW4gV1RGOjp3dGZUaHJl
YWRFbnRyeVBvaW50IChwYXJhbT0weDdmODdjOWU5NDRlMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoxNzAKICAgICAgICBpbnZvY2F0aW9uID0gc3Rk
Ojp1bmlxdWVfcHRyPFdURjo6VGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uPiBjb250YWluaW5nIDB4
N2Y4N2M5ZTk0NGUwCiM5ICAweDAwMDA3Zjg4NmUyY2Q1NTUgaW4gc3RhcnRfdGhyZWFkIChhcmc9
MHg3Zjg3ZDIxZjU3MDApCiAgICBhdCBwdGhyZWFkX2NyZWF0ZS5jOjMzMwogICAgICAgIF9fcmVz
ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcGQgPSAweDdmODdkMjFmNTcwMAogICAgICAgIG5v
dyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHVud2luZF9idWYgPSB7Y2FuY2VsX2ptcF9idWYg
PSB7e2ptcF9idWYgPSB7MTQwMjIxMzIyNTgxNzYwLCAKICAgICAgICAgICAgICAgIDM4Nzc2MTg5
NDI5NzYyMzM3MCwgMTQwNzM0MTQyMTU5NTgzLCAxNDAyMjEzMjI1ODE3NjAsIDgzODg2MDgsIAog
ICAgICAgICAgICAgICAgMCwgLTQwMTMxMzY0Mzk3NjAwODg4NiwgLTQwMDQ2MDU3NDExNzI3NDgw
Nn0sIAogICAgICAgICAgICAgIG1hc2tfd2FzX3NhdmVkID0gMH19LCBwcml2ID0ge3BhZCA9IHsw
eDAsIDB4MCwgMHgwLCAweDB9LCAKICAgICAgICAgICAgZGF0YSA9IHtwcmV2ID0gMHgwLCBjbGVh
bnVwID0gMHgwLCBjYW5jZWx0eXBlID0gMH19fQogICAgICAgIG5vdF9maXJzdF9jYWxsID0gPG9w
dGltaXplZCBvdXQ+CiAgICAgICAgcGFnZXNpemVfbTEgPSA8b3B0aW1pemVkIG91dD4KICAgICAg
ICBzcCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIGZyZWVzaXplID0gPG9wdGltaXplZCBvdXQ+
CiMxMCAweDAwMDA3Zjg4NjYyZjZmM2QgaW4gY2xvbmUgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5p
eC9zeXN2L2xpbnV4L3g4Nl82NC9jbG9uZS5TOjEwOQpObyBsb2NhbHMuCgpUaHJlYWQgMTIgKFRo
cmVhZCAweDdmODgwM2ZmZDcwMCAoTFdQIDMxMzI2KSk6CiMwICBwdGhyZWFkX2NvbmRfd2FpdEBA
R0xJQkNfMi4zLjIgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9w
dGhyZWFkX2NvbmRfd2FpdC5TOjE4NQpObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NjZiODdiOGMg
aW4gX19ndGhyZWFkX2NvbmRfd2FpdCAoX19tdXRleD08b3B0aW1pemVkIG91dD4sIAogICAgX19j
b25kPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC91c3Ivc3JjL2RlYnVnL2djYy01LjAuMS0yMDE1
MDQxMy9vYmoteDg2XzY0LXJlZGhhdC1saW51eC94ODZfNjQtcmVkaGF0LWxpbnV4L2xpYnN0ZGMr
Ky12My9pbmNsdWRlL3g4Nl82NC1yZWRoYXQtbGludXgvYml0cy9ndGhyLWRlZmF1bHQuaDo4NjQK
Tm8gbG9jYWxzLgojMiAgc3RkOjpjb25kaXRpb25fdmFyaWFibGU6OndhaXQgKHRoaXM9PG9wdGlt
aXplZCBvdXQ+LCBfX2xvY2s9Li4uKQogICAgYXQgLi4vLi4vLi4vLi4vLi4vbGlic3RkYysrLXYz
L3NyYy9jKysxMS9jb25kaXRpb25fdmFyaWFibGUuY2M6NTMKICAgICAgICBfX2UgPSA8b3B0aW1p
emVkIG91dD4KIzMgIDB4MDAwMDdmODg2ZmE0MTdiMSBpbiBzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZTo6d2FpdDxKU0M6OkdDVGhyZWFkOjp3YWl0Rm9yTmV4dFBoYXNlKCk6OiRfMT4oc3RkOjp1bmlx
dWVfbG9jazxzdGQ6Om11dGV4PiYsIEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UoKTo6
JF8xKSAodGhpcz0weDdmODg0ODAzMmM0OCwgX19sb2NrPS4uLiwgX19wPS4uLikKICAgIGF0IC91
c3IvYmluLy4uL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9p
bmNsdWRlL2MrKy81LjAuMS9jb25kaXRpb25fdmFyaWFibGU6OTgKTm8gbG9jYWxzLgojNCAgMHgw
MDAwN2Y4ODZmYTQxNmNmIGluIEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UgKHRoaXM9
MHgyMWYzOWEwKQogICAgYXQgLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJl
YWQuY3BwOjc5CiAgICAgICAgbG9jayA9IHtfTV9kZXZpY2UgPSAweDdmODg0ODAzMmMyMCwgX01f
b3ducyA9IHRydWV9CiM1ICAweDAwMDA3Zjg4NmZhNDE4MjQgaW4gSlNDOjpHQ1RocmVhZDo6Z2NU
aHJlYWRNYWluICh0aGlzPTB4MjFmMzlhMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0dDVGhyZWFkLmNwcDo5NwogICAgICAgIGVuYWJsZXIgPSB7bV9zdGFjayA9IEAw
eDFlZjk3NjB9CiAgICAgICAgY3VycmVudFBoYXNlID0gSlNDOjpNYXJrCiM2ICAweDAwMDA3Zjg4
NmZhNDE5OWQgaW4gSlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmMgKGRhdGE9MHgyMWYz
OWEwKQogICAgYXQgLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3Bw
OjEzNgogICAgICAgIHRocmVhZCA9IDB4MjFmMzlhMAojNyAgMHgwMDAwN2Y4ODZmZjI2Nzc5IGlu
IFdURjo6Y3JlYXRlVGhyZWFkKHZvaWQgKCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6
JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKHRoaXM9MHg3Zjg4MDNmZmNiODgpCiAgICBhdCAuLi8u
Li9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjgxCk5vIGxvY2Fscy4KIzggIDB4MDAwMDdm
ODg2ZmYyNjU3ZCBpbiBzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6Y3JlYXRl
VGhyZWFkKHZvaWQgKCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wPjo6X01faW52
b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0JikgKAogICAgX19mdW5jdG9yPS4uLikKICAgIGF0IC91
c3IvYmluLy4uL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9p
bmNsdWRlL2MrKy81LjAuMS9mdW5jdGlvbmFsOjE4NzEKTm8gbG9jYWxzLgojOSAgMHgwMDAwN2Y4
ODczZWM1YzFlIGluIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAo
CiAgICB0aGlzPTB4N2Y4ODAzZmZjYjg4KQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZf
NjQtcmVkaGF0LWxpbnV4LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1bmN0
aW9uYWw6MjI3MQpObyBsb2NhbHMuCiMxMCAweDAwMDA3Zjg4NmZmMjYzNDUgaW4gV1RGOjp0aHJl
YWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDdmODg0OWZmNTUwMCkKICAgIGF0IC4uLy4uL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6NTgKICAgICAgICBjb250ZXh0ID0gMHg3Zjg4NDlm
ZjU1MDAKICAgICAgICBlbnRyeVBvaW50ID0gezxzdGQ6Ol9NYXliZV91bmFyeV9vcl9iaW5hcnlf
ZnVuY3Rpb248dm9pZD4+ID0gezxObyBkYXRhIGZpZWxkcz59LCA8c3RkOjpfRnVuY3Rpb25fYmFz
ZT4gPSB7c3RhdGljIF9NX21heF9zaXplID0gMTYsIAogICAgICAgICAgICBzdGF0aWMgX01fbWF4
X2FsaWduID0gOCwgX01fZnVuY3RvciA9IHtfTV91bnVzZWQgPSB7CiAgICAgICAgICAgICAgICBf
TV9vYmplY3QgPSAweDdmODg2ZmE0MTk4MCA8SlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1
bmModm9pZCopPiwgCiAgICAgICAgICAgICAgICBfTV9jb25zdF9vYmplY3QgPSAweDdmODg2ZmE0
MTk4MCA8SlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmModm9pZCopPiwgCiAgICAgICAg
ICAgICAgICBfTV9mdW5jdGlvbl9wb2ludGVyID0gMHg3Zjg4NmZhNDE5ODAgPEpTQzo6R0NUaHJl
YWQ6OmdjVGhyZWFkU3RhcnRGdW5jKHZvaWQqKT4sIF9NX21lbWJlcl9wb2ludGVyID0gPGVycm9y
IHJlYWRpbmcgdmFyaWFibGU+LCAKICAgICAgICAgICAgICBfTV9wb2RfZGF0YSA9ICJcMjAwXDAz
MVwyNDRvXDIxMFwxNzdcMDAwXDAwMFwyNDBcMDcxXDAzN1wwMDJcMDAwXDAwMFwwMDAifSwgCiAg
ICAgICAgICAgIF9NX21hbmFnZXIgPSAweDdmODg2ZmYyNjU5MCA8c3RkOjpfRnVuY3Rpb25fYmFz
ZTo6X0Jhc2VfbWFuYWdlcjxXVEY6OmNyZWF0ZVRocmVhZCh2b2lkICgqKSh2b2lkKiksIHZvaWQq
LCBjaGFyIGNvbnN0Kik6OiRfMD46Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9B
bnlfZGF0YSBjb25zdCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9uKT59LCAKICAgICAgICAgIF9N
X2ludm9rZXIgPSAweDdmODg2ZmYyNjU2MCA8c3RkOjpfRnVuY3Rpb25faGFuZGxlcjx2b2lkICgp
LCBXVEY6OmNyZWF0ZVRocmVhZCh2b2lkICgqKSh2b2lkKiksIHZvaWQqLCBjaGFyIGNvbnN0Kik6
OiRfMD46Ol9NX2ludm9rZShzdGQ6Ol9BbnlfZGF0YSBjb25zdCYpPn0KIzExIDB4MDAwMDdmODg2
ZmY2MDI1NyBpbiBXVEY6Ond0ZlRocmVhZEVudHJ5UG9pbnQgKHBhcmFtPTB4N2Y4ODQ5ZmZiNDgw
KQogICAgYXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOjE3MAog
ICAgICAgIGludm9jYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8V1RGOjpUaHJlYWRGdW5jdGlvbklu
dm9jYXRpb24+IGNvbnRhaW5pbmcgMHg3Zjg4NDlmZmI0ODAKIzEyIDB4MDAwMDdmODg2ZTJjZDU1
NSBpbiBzdGFydF90aHJlYWQgKGFyZz0weDdmODgwM2ZmZDcwMCkKICAgIGF0IHB0aHJlYWRfY3Jl
YXRlLmM6MzMzCiAgICAgICAgX19yZXMgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwZCA9IDB4
N2Y4ODAzZmZkNzAwCiAgICAgICAgbm93ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgdW53aW5k
X2J1ZiA9IHtjYW5jZWxfam1wX2J1ZiA9IHt7am1wX2J1ZiA9IHsxNDAyMjIxNTkzNzgxNzYsIAog
ICAgICAgICAgICAgICAgMzg3NzYxODk0Mjk3NjIzMzcwLCAxNDA3MzQxNDIxNDg1NzUsIDE0MDIy
MjE1OTM3ODE3NiwgODM4ODYwOCwgCiAgICAgICAgICAgICAgICAwLCAtNDAwMzY2NjkzODgxNTU0
MTAyLCAtNDAwNDYwNTc0MTE3Mjc0ODA2fSwgCiAgICAgICAgICAgICAgbWFza193YXNfc2F2ZWQg
PSAwfX0sIHByaXYgPSB7cGFkID0gezB4MCwgMHgwLCAweDAsIDB4MH0sIAogICAgICAgICAgICBk
YXRhID0ge3ByZXYgPSAweDAsIGNsZWFudXAgPSAweDAsIGNhbmNlbHR5cGUgPSAwfX19CiAgICAg
ICAgbm90X2ZpcnN0X2NhbGwgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwYWdlc2l6ZV9tMSA9
IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHNwID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgZnJl
ZXNpemUgPSA8b3B0aW1pemVkIG91dD4KIzEzIDB4MDAwMDdmODg2NjJmNmYzZCBpbiBjbG9uZSAo
KQogICAgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6MTA5Ck5v
IGxvY2Fscy4KClRocmVhZCAxMSAoVGhyZWFkIDB4N2Y4ODUwOTdmNzAwIChMV1AgMzEzMjEpKToK
IzAgIHN5c2NhbGwgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3N5c2Nh
bGwuUzozOApObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NmM1MWVhNDUgaW4gZ19jb25kX3dhaXRf
dW50aWwgKGNvbmQ9MHgxZDE5NTk4LCBtdXRleD0weDFkMTk1OTAsIAogICAgZW5kX3RpbWU9NzY5
NTA3NzkyMCkgYXQgZ3RocmVhZC1wb3NpeC5jOjE0NDIKICAgICAgICBub3cgPSB7dHZfc2VjID0g
NzY4MCwgdHZfbnNlYyA9IDc3OTIwNjg2fQogICAgICAgIHNwYW4gPSB7dHZfc2VjID0gMTQsIHR2
X25zZWMgPSA5OTk5OTkzMTR9CiAgICAgICAgc2FtcGxlZCA9IDAKICAgICAgICByZXMgPSAzMDUx
MjU1MgojMiAgMHgwMDAwN2Y4ODZjNDk1Y2U2IGluIGdfYXN5bmNfcXVldWVfcG9wX2ludGVybl91
bmxvY2tlZCAocXVldWU9MHgxZDE5NTkwLCAKICAgIHdhaXQ9MSwgZW5kX3RpbWU9NzY5NTA3Nzky
MCkgYXQgZ2FzeW5jcXVldWUuYzo0MjIKICAgICAgICByZXR2YWwgPSAweDFkMTk1OTAKICAgICAg
ICBfX2Z1bmNfXyA9ICJnX2FzeW5jX3F1ZXVlX3BvcF9pbnRlcm5fdW5sb2NrZWQiCiMzICAweDAw
MDA3Zjg4NmM0OTVmMjMgaW4gZ19hc3luY19xdWV1ZV90aW1lb3V0X3BvcCAocXVldWU9MHgxZDE5
NTkwLCAKICAgIHRpbWVvdXQ9MTUwMDAwMDApIGF0IGdhc3luY3F1ZXVlLmM6NTQzCiAgICAgICAg
ZW5kX3RpbWUgPSA3Njk1MDc3OTIwCiAgICAgICAgcmV0dmFsID0gMHgzNTA5N2ViNzAKIzQgIDB4
MDAwMDdmODg2YzRmODk4ZSBpbiBnX3RocmVhZF9wb29sX3dhaXRfZm9yX25ld19wb29sICgpCiAg
ICBhdCBndGhyZWFkcG9vbC5jOjE2NwogICAgICAgIHBvb2wgPSAweDFkMTk1NDAKICAgICAgICBs
b2NhbF93YWtldXBfdGhyZWFkX3NlcmlhbCA9IDMyNjQ4CiAgICAgICAgbG9jYWxfbWF4X3VudXNl
ZF90aHJlYWRzID0gMgogICAgICAgIGxvY2FsX21heF9pZGxlX3RpbWUgPSAxNTAwMAogICAgICAg
IGxhc3Rfd2FrZXVwX3RocmVhZF9zZXJpYWwgPSAwCiAgICAgICAgaGF2ZV9yZWxheWVkX3RocmVh
ZF9tYXJrZXIgPSAwCiM1ICAweDAwMDA3Zjg4NmM0ZjhjNGIgaW4gZ190aHJlYWRfcG9vbF90aHJl
YWRfcHJveHkgKGRhdGE9MHgxZDE4ODgwKQogICAgYXQgZ3RocmVhZHBvb2wuYzozNjQKICAgICAg
ICBmcmVlX3Bvb2wgPSAwCiAgICAgICAgdGFzayA9IDB4MAogICAgICAgIHBvb2wgPSAweDFkMTg4
ODAKIzYgIDB4MDAwMDdmODg2YzRmODU5YSBpbiBnX3RocmVhZF9wcm94eSAoZGF0YT0weDFkZWEw
NTApIGF0IGd0aHJlYWQuYzo3NjQKICAgICAgICB0aHJlYWQgPSAweDFkZWEwNTAKICAgICAgICBf
X2Z1bmNfXyA9ICJnX3RocmVhZF9wcm94eSIKIzcgIDB4MDAwMDdmODg2ZTJjZDU1NSBpbiBzdGFy
dF90aHJlYWQgKGFyZz0weDdmODg1MDk3ZjcwMCkKICAgIGF0IHB0aHJlYWRfY3JlYXRlLmM6MzMz
CiAgICAgICAgX19yZXMgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwZCA9IDB4N2Y4ODUwOTdm
NzAwCiAgICAgICAgbm93ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgdW53aW5kX2J1ZiA9IHtj
YW5jZWxfam1wX2J1ZiA9IHt7am1wX2J1ZiA9IHsxNDAyMjM0NDQ0MTYyNTYsIAogICAgICAgICAg
ICAgICAgMzg3NzYxODk0Mjk3NjIzMzcwLCAxNDA3MzQxNDIxNjQ1MTEsIDE0MDIyMzQ0NDQxNjI1
NiwgODM4ODYwOCwgCiAgICAgICAgICAgICAgICAwLCAtNDAwNDc0NzkwNjkyMjAxNjU0LCAtNDAw
NDYwNTc0MTE3Mjc0ODA2fSwgCiAgICAgICAgICAgICAgbWFza193YXNfc2F2ZWQgPSAwfX0sIHBy
aXYgPSB7cGFkID0gezB4MCwgMHgwLCAweDAsIDB4MH0sIAogICAgICAgICAgICBkYXRhID0ge3By
ZXYgPSAweDAsIGNsZWFudXAgPSAweDAsIGNhbmNlbHR5cGUgPSAwfX19CiAgICAgICAgbm90X2Zp
cnN0X2NhbGwgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwYWdlc2l6ZV9tMSA9IDxvcHRpbWl6
ZWQgb3V0PgogICAgICAgIHNwID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgZnJlZXNpemUgPSA8
b3B0aW1pemVkIG91dD4KIzggIDB4MDAwMDdmODg2NjJmNmYzZCBpbiBjbG9uZSAoKQogICAgYXQg
Li4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6MTA5Ck5vIGxvY2Fscy4K
ClRocmVhZCAxMCAoVGhyZWFkIDB4N2Y4ODRiZmZmNzAwIChMV1AgMzEzMjMpKToKIzAgIDB4MDAw
MDdmODg2NjJlYjY2ZCBpbiBwb2xsICgpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXNjYWxsLXRlbXBs
YXRlLlM6ODEKTm8gbG9jYWxzLgojMSAgMHgwMDAwN2Y4ODZjNGRiY2VlIGluIGdfcG9sbCAoZmRz
PTB4N2Y4N2U0MDAxMGUwLCBuZmRzPTIsIHRpbWVvdXQ9LTEpCiAgICBhdCBncG9sbC5jOjEyNApO
byBsb2NhbHMuCiMyICAweDAwMDA3Zjg4NmM0Y2FkYmEgaW4gZ19tYWluX2NvbnRleHRfcG9sbCAo
Y29udGV4dD0weDFmZDc5YTAsIHRpbWVvdXQ9LTEsIAogICAgcHJpb3JpdHk9MjE0NzQ4MzY0Nywg
ZmRzPTB4N2Y4N2U0MDAxMGUwLCBuX2Zkcz0yKSBhdCBnbWFpbi5jOjQxMDMKICAgICAgICBwb2xs
X2Z1bmMgPSAweDdmODg2YzRkYmNjNyA8Z19wb2xsPgojMyAgMHgwMDAwN2Y4ODZjNGNhNzRkIGlu
IGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRleHQ9MHgxZmQ3OWEwLCBibG9jaz0xLCAKICAg
IGRpc3BhdGNoPTEsIHNlbGY9MHg3Zjg3ZWMwMDE3ODApIGF0IGdtYWluLmM6MzgwMwogICAgICAg
IG1heF9wcmlvcml0eSA9IDIxNDc0ODM2NDcKICAgICAgICB0aW1lb3V0ID0gLTEKICAgICAgICBz
b21lX3JlYWR5ID0gMQogICAgICAgIG5mZHMgPSAyCiAgICAgICAgYWxsb2NhdGVkX25mZHMgPSAy
CiAgICAgICAgZmRzID0gMHg3Zjg3ZTQwMDEwZTAKIzQgIDB4MDAwMDdmODg2YzRjYWI5ZSBpbiBn
X21haW5fbG9vcF9ydW4gKGxvb3A9MHgxZDI2NGUwKSBhdCBnbWFpbi5jOjQwMDIKICAgICAgICBz
ZWxmID0gMHg3Zjg3ZWMwMDE3ODAKICAgICAgICBfX2Z1bmNfXyA9ICJnX21haW5fbG9vcF9ydW4i
CiM1ICAweDAwMDA3Zjg4NzYzZjJiNmIgaW4gV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjaGFyIGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpR
T1MpOjokXzA6Om9wZXJhdG9yKCkoKSBjb25zdCAodGhpcz0weDFmN2ViNzApCiAgICBhdCAuLi8u
Li9Tb3VyY2UvV1RGL3d0Zi9ndGsvV29ya1F1ZXVlR3RrLmNwcDo1OQpObyBsb2NhbHMuCiM2ICAw
eDAwMDA3Zjg4NzYzZjI5MmQgaW4gc3RkOjpfRnVuY3Rpb25faGFuZGxlcjx2b2lkICgpLCBXVEY6
OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNoYXIgY29uc3QqLCBXVEY6OldvcmtRdWV1
ZTo6VHlwZSwgV1RGOjpXb3JrUXVldWU6OlFPUyk6OiRfMD46Ol9NX2ludm9rZShzdGQ6Ol9Bbnlf
ZGF0YSBjb25zdCYpIChfX2Z1bmN0b3I9Li4uKQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94
ODZfNjQtcmVkaGF0LWxpbnV4LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1
bmN0aW9uYWw6MTg3MQpObyBsb2NhbHMuCiM3ICAweDAwMDA3Zjg4NzNlYzVjMWUgaW4gc3RkOjpm
dW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICgKICAgIHRoaXM9MHg3Zjg4NGJm
ZmViODgpCiAgICBhdCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC1yZWRoYXQtbGludXgvNS4w
LjEvLi4vLi4vLi4vLi4vaW5jbHVkZS9jKysvNS4wLjEvZnVuY3Rpb25hbDoyMjcxCk5vIGxvY2Fs
cy4KIzggIDB4MDAwMDdmODg2ZmYyNjM0NSBpbiBXVEY6OnRocmVhZEVudHJ5UG9pbnQgKGNvbnRl
eHREYXRhPTB4N2Y4ODQ5ZmY1MTQwKQogICAgYXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmNwcDo1OAogICAgICAgIGNvbnRleHQgPSAweDdmODg0OWZmNTE0MAogICAgICAgIGVudHJ5
UG9pbnQgPSB7PHN0ZDo6X01heWJlX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbjx2b2lkPj4gPSB7
PE5vIGRhdGEgZmllbGRzPn0sIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlPiA9IHtzdGF0aWMgX01fbWF4
X3NpemUgPSAxNiwgCiAgICAgICAgICAgIHN0YXRpYyBfTV9tYXhfYWxpZ24gPSA4LCBfTV9mdW5j
dG9yID0ge19NX3VudXNlZCA9IHsKICAgICAgICAgICAgICAgIF9NX29iamVjdCA9IDB4MWY3ZWI3
MCwgX01fY29uc3Rfb2JqZWN0ID0gMHgxZjdlYjcwLCAKICAgICAgICAgICAgICAgIF9NX2Z1bmN0
aW9uX3BvaW50ZXIgPSAweDFmN2ViNzAsIAogICAgICAgICAgICAgICAgX01fbWVtYmVyX3BvaW50
ZXIgPSA8ZXJyb3IgcmVhZGluZyB2YXJpYWJsZT4sIAogICAgICAgICAgICAgIF9NX3BvZF9kYXRh
ID0gInBcMzUzXDM2N1wwMDFcMDAwXDAwMFwwMDBcMDAwQDVcMjE1XDA3MFwzNzdcMTc3XDAwMCJ9
LCAKICAgICAgICAgICAgX01fbWFuYWdlciA9IDB4N2Y4ODc2M2YyOTQwIDxzdGQ6Ol9GdW5jdGlv
bl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUo
Y2hhciBjb25zdCosIFdURjo6V29ya1F1ZXVlOjpUeXBlLCBXVEY6OldvcmtRdWV1ZTo6UU9TKTo6
JF8wPjo6X01fbWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYsIHN0ZDo6X0FueV9kYXRhIGNvbnN0Jiwg
c3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pPn0sIAogICAgICAgICAgX01faW52b2tlciA9IDB4N2Y4
ODc2M2YyOTEwIDxzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6V29ya1F1ZXVl
OjpwbGF0Zm9ybUluaXRpYWxpemUoY2hhciBjb25zdCosIFdURjo6V29ya1F1ZXVlOjpUeXBlLCBX
VEY6OldvcmtRdWV1ZTo6UU9TKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0
Jik+fQojOSAgMHgwMDAwN2Y4ODZmZjYwMjU3IGluIFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCAo
cGFyYW09MHg3Zjg4NDlmZmIwYjApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdQdGhyZWFkcy5jcHA6MTcwCiAgICAgICAgaW52b2NhdGlvbiA9IHN0ZDo6dW5pcXVlX3B0cjxX
VEY6OlRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbj4gY29udGFpbmluZyAweDdmODg0OWZmYjBiMAoj
MTAgMHgwMDAwN2Y4ODZlMmNkNTU1IGluIHN0YXJ0X3RocmVhZCAoYXJnPTB4N2Y4ODRiZmZmNzAw
KQogICAgYXQgcHRocmVhZF9jcmVhdGUuYzozMzMKICAgICAgICBfX3JlcyA9IDxvcHRpbWl6ZWQg
b3V0PgogICAgICAgIHBkID0gMHg3Zjg4NGJmZmY3MDAKICAgICAgICBub3cgPSA8b3B0aW1pemVk
IG91dD4KICAgICAgICB1bndpbmRfYnVmID0ge2NhbmNlbF9qbXBfYnVmID0ge3tqbXBfYnVmID0g
ezE0MDIyMzM2NzM0NTkyMCwgCiAgICAgICAgICAgICAgICAzODc3NjE4OTQyOTc2MjMzNzAsIDE0
MDczNDE0MjE2NTc5MSwgMTQwMjIzMzY3MzQ1OTIwLCA4Mzg4NjA4LCAKICAgICAgICAgICAgICAg
IDAsIC00MDA1MjUwMjQ2Mjk2OTU2NzAsIC00MDA0NjA1NzQxMTcyNzQ4MDZ9LCAKICAgICAgICAg
ICAgICBtYXNrX3dhc19zYXZlZCA9IDB9fSwgcHJpdiA9IHtwYWQgPSB7MHgwLCAweDAsIDB4MCwg
MHgwfSwgCiAgICAgICAgICAgIGRhdGEgPSB7cHJldiA9IDB4MCwgY2xlYW51cCA9IDB4MCwgY2Fu
Y2VsdHlwZSA9IDB9fX0KICAgICAgICBub3RfZmlyc3RfY2FsbCA9IDxvcHRpbWl6ZWQgb3V0Pgog
ICAgICAgIHBhZ2VzaXplX20xID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc3AgPSA8b3B0aW1p
emVkIG91dD4KICAgICAgICBmcmVlc2l6ZSA9IDxvcHRpbWl6ZWQgb3V0PgojMTEgMHgwMDAwN2Y4
ODY2MmY2ZjNkIGluIGNsb25lICgpCiAgICBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94
ODZfNjQvY2xvbmUuUzoxMDkKTm8gbG9jYWxzLgoKVGhyZWFkIDkgKFRocmVhZCAweDdmODg0YWZm
ZDcwMCAoTFdQIDMxMzI1KSk6CiMwICBwdGhyZWFkX2NvbmRfd2FpdEBAR0xJQkNfMi4zLjIgKCkK
ICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9wdGhyZWFkX2NvbmRfd2Fp
dC5TOjE4NQpObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NjZiODdiOGMgaW4gX19ndGhyZWFkX2Nv
bmRfd2FpdCAoX19tdXRleD08b3B0aW1pemVkIG91dD4sIAogICAgX19jb25kPTxvcHRpbWl6ZWQg
b3V0PikKICAgIGF0IC91c3Ivc3JjL2RlYnVnL2djYy01LjAuMS0yMDE1MDQxMy9vYmoteDg2XzY0
LXJlZGhhdC1saW51eC94ODZfNjQtcmVkaGF0LWxpbnV4L2xpYnN0ZGMrKy12My9pbmNsdWRlL3g4
Nl82NC1yZWRoYXQtbGludXgvYml0cy9ndGhyLWRlZmF1bHQuaDo4NjQKTm8gbG9jYWxzLgojMiAg
c3RkOjpjb25kaXRpb25fdmFyaWFibGU6OndhaXQgKHRoaXM9PG9wdGltaXplZCBvdXQ+LCBfX2xv
Y2s9Li4uKQogICAgYXQgLi4vLi4vLi4vLi4vLi4vbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb25k
aXRpb25fdmFyaWFibGUuY2M6NTMKICAgICAgICBfX2UgPSA8b3B0aW1pemVkIG91dD4KIzMgIDB4
MDAwMDdmODg2ZmE0MTdiMSBpbiBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZTo6d2FpdDxKU0M6OkdD
VGhyZWFkOjp3YWl0Rm9yTmV4dFBoYXNlKCk6OiRfMT4oc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11
dGV4PiYsIEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UoKTo6JF8xKSAodGhpcz0weDdm
ODg0ODAzMmM0OCwgX19sb2NrPS4uLiwgX19wPS4uLikKICAgIGF0IC91c3IvYmluLy4uL2xpYi9n
Y2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9pbmNsdWRlL2MrKy81LjAu
MS9jb25kaXRpb25fdmFyaWFibGU6OTgKTm8gbG9jYWxzLgojNCAgMHgwMDAwN2Y4ODZmYTQxNmNm
IGluIEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UgKHRoaXM9MHgxZTg3NTMwKQogICAg
YXQgLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3BwOjc5CiAgICAg
ICAgbG9jayA9IHtfTV9kZXZpY2UgPSAweDdmODg0ODAzMmMyMCwgX01fb3ducyA9IHRydWV9CiM1
ICAweDAwMDA3Zjg4NmZhNDE4MjQgaW4gSlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRNYWluICh0aGlz
PTB4MWU4NzUzMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhy
ZWFkLmNwcDo5NwogICAgICAgIGVuYWJsZXIgPSB7bV9zdGFjayA9IEAweDFmOTI0MDB9CiAgICAg
ICAgY3VycmVudFBoYXNlID0gSlNDOjpNYXJrCiM2ICAweDAwMDA3Zjg4NmZhNDE5OWQgaW4gSlND
OjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmMgKGRhdGE9MHgxZTg3NTMwKQogICAgYXQgLi4v
Li4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3BwOjEzNgogICAgICAgIHRo
cmVhZCA9IDB4MWU4NzUzMAojNyAgMHgwMDAwN2Y4ODZmZjI2Nzc5IGluIFdURjo6Y3JlYXRlVGhy
ZWFkKHZvaWQgKCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wOjpvcGVyYXRvcigp
KCkgY29uc3QgKHRoaXM9MHg3Zjg4NGFmZmNiODgpCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmcuY3BwOjgxCk5vIGxvY2Fscy4KIzggIDB4MDAwMDdmODg2ZmYyNjU3ZCBpbiBz
dGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6Y3JlYXRlVGhyZWFkKHZvaWQgKCop
KHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0FueV9k
YXRhIGNvbnN0JikgKAogICAgX19mdW5jdG9yPS4uLikKICAgIGF0IC91c3IvYmluLy4uL2xpYi9n
Y2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9pbmNsdWRlL2MrKy81LjAu
MS9mdW5jdGlvbmFsOjE4NzEKTm8gbG9jYWxzLgojOSAgMHgwMDAwN2Y4ODczZWM1YzFlIGluIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAoCiAgICB0aGlzPTB4N2Y4
ODRhZmZjYjg4KQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4
LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1bmN0aW9uYWw6MjI3MQpObyBs
b2NhbHMuCiMxMCAweDAwMDA3Zjg4NmZmMjYzNDUgaW4gV1RGOjp0aHJlYWRFbnRyeVBvaW50IChj
b250ZXh0RGF0YT0weDdmODg0OWZmNTRiMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZy5jcHA6NTgKICAgICAgICBjb250ZXh0ID0gMHg3Zjg4NDlmZjU0YjAKICAgICAgICBl
bnRyeVBvaW50ID0gezxzdGQ6Ol9NYXliZV91bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb248dm9pZD4+
ID0gezxObyBkYXRhIGZpZWxkcz59LCA8c3RkOjpfRnVuY3Rpb25fYmFzZT4gPSB7c3RhdGljIF9N
X21heF9zaXplID0gMTYsIAogICAgICAgICAgICBzdGF0aWMgX01fbWF4X2FsaWduID0gOCwgX01f
ZnVuY3RvciA9IHtfTV91bnVzZWQgPSB7CiAgICAgICAgICAgICAgICBfTV9vYmplY3QgPSAweDdm
ODg2ZmE0MTk4MCA8SlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmModm9pZCopPiwgCiAg
ICAgICAgICAgICAgICBfTV9jb25zdF9vYmplY3QgPSAweDdmODg2ZmE0MTk4MCA8SlNDOjpHQ1Ro
cmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmModm9pZCopPiwgCiAgICAgICAgICAgICAgICBfTV9mdW5j
dGlvbl9wb2ludGVyID0gMHg3Zjg4NmZhNDE5ODAgPEpTQzo6R0NUaHJlYWQ6OmdjVGhyZWFkU3Rh
cnRGdW5jKHZvaWQqKT4sIF9NX21lbWJlcl9wb2ludGVyID0gPGVycm9yIHJlYWRpbmcgdmFyaWFi
bGU+LCAKICAgICAgICAgICAgICBfTV9wb2RfZGF0YSA9ICJcMjAwXDAzMVwyNDRvXDIxMFwxNzdc
MDAwXDAwMFwwNjB1XDM1MFwwMDFcMDAwXDAwMFwwMDAifSwgCiAgICAgICAgICAgIF9NX21hbmFn
ZXIgPSAweDdmODg2ZmYyNjU5MCA8c3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxX
VEY6OmNyZWF0ZVRocmVhZCh2b2lkICgqKSh2b2lkKiksIHZvaWQqLCBjaGFyIGNvbnN0Kik6OiRf
MD46Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9BbnlfZGF0YSBjb25zdCYsIHN0
ZDo6X01hbmFnZXJfb3BlcmF0aW9uKT59LCAKICAgICAgICAgIF9NX2ludm9rZXIgPSAweDdmODg2
ZmYyNjU2MCA8c3RkOjpfRnVuY3Rpb25faGFuZGxlcjx2b2lkICgpLCBXVEY6OmNyZWF0ZVRocmVh
ZCh2b2lkICgqKSh2b2lkKiksIHZvaWQqLCBjaGFyIGNvbnN0Kik6OiRfMD46Ol9NX2ludm9rZShz
dGQ6Ol9BbnlfZGF0YSBjb25zdCYpPn0KIzExIDB4MDAwMDdmODg2ZmY2MDI1NyBpbiBXVEY6Ond0
ZlRocmVhZEVudHJ5UG9pbnQgKHBhcmFtPTB4N2Y4ODQ5ZmZiNDYwKQogICAgYXQgLi4vLi4vU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOjE3MAogICAgICAgIGludm9jYXRpb24g
PSBzdGQ6OnVuaXF1ZV9wdHI8V1RGOjpUaHJlYWRGdW5jdGlvbkludm9jYXRpb24+IGNvbnRhaW5p
bmcgMHg3Zjg4NDlmZmI0NjAKIzEyIDB4MDAwMDdmODg2ZTJjZDU1NSBpbiBzdGFydF90aHJlYWQg
KGFyZz0weDdmODg0YWZmZDcwMCkKICAgIGF0IHB0aHJlYWRfY3JlYXRlLmM6MzMzCiAgICAgICAg
X19yZXMgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwZCA9IDB4N2Y4ODRhZmZkNzAwCiAgICAg
ICAgbm93ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgdW53aW5kX2J1ZiA9IHtjYW5jZWxfam1w
X2J1ZiA9IHt7am1wX2J1ZiA9IHsxNDAyMjMzNTA1NjA1MTIsIAogICAgICAgICAgICAgICAgMzg3
NzYxODk0Mjk3NjIzMzcwLCAxNDA3MzQxNDIxNDg1NzUsIDE0MDIyMzM1MDU2MDUxMiwgODM4ODYw
OCwgCiAgICAgICAgICAgICAgICAwLCAtNDAwNTIyODI0NTMyNjk4Mjk0LCAtNDAwNDYwNTc0MTE3
Mjc0ODA2fSwgCiAgICAgICAgICAgICAgbWFza193YXNfc2F2ZWQgPSAwfX0sIHByaXYgPSB7cGFk
ID0gezB4MCwgMHgwLCAweDAsIDB4MH0sIAogICAgICAgICAgICBkYXRhID0ge3ByZXYgPSAweDAs
IGNsZWFudXAgPSAweDAsIGNhbmNlbHR5cGUgPSAwfX19CiAgICAgICAgbm90X2ZpcnN0X2NhbGwg
PSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwYWdlc2l6ZV9tMSA9IDxvcHRpbWl6ZWQgb3V0Pgog
ICAgICAgIHNwID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgZnJlZXNpemUgPSA8b3B0aW1pemVk
IG91dD4KIzEzIDB4MDAwMDdmODg2NjJmNmYzZCBpbiBjbG9uZSAoKQogICAgYXQgLi4vc3lzZGVw
cy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6MTA5Ck5vIGxvY2Fscy4KClRocmVhZCA4
IChUaHJlYWQgMHg3Zjg4NTE1YTA3MDAgKExXUCAzMTMyMCkpOgojMCAgMHgwMDAwN2Y4ODY2MmVi
NjZkIGluIHBvbGwgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c2NhbGwtdGVtcGxhdGUuUzo4MQpO
byBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NmM0ZGJjZWUgaW4gZ19wb2xsIChmZHM9MHg3Zjg3ZWMw
MDEwZTAsIG5mZHM9MiwgdGltZW91dD0tMSkKICAgIGF0IGdwb2xsLmM6MTI0Ck5vIGxvY2Fscy4K
IzIgIDB4MDAwMDdmODg2YzRjYWRiYSBpbiBnX21haW5fY29udGV4dF9wb2xsIChjb250ZXh0PTB4
MWQ3ZDExMCwgdGltZW91dD0tMSwgCiAgICBwcmlvcml0eT0yMTQ3NDgzNjQ3LCBmZHM9MHg3Zjg3
ZWMwMDEwZTAsIG5fZmRzPTIpIGF0IGdtYWluLmM6NDEwMwogICAgICAgIHBvbGxfZnVuYyA9IDB4
N2Y4ODZjNGRiY2M3IDxnX3BvbGw+CiMzICAweDAwMDA3Zjg4NmM0Y2E3NGQgaW4gZ19tYWluX2Nv
bnRleHRfaXRlcmF0ZSAoY29udGV4dD0weDFkN2QxMTAsIGJsb2NrPTEsIAogICAgZGlzcGF0Y2g9
MSwgc2VsZj0weDdmODdmODAwMTg0MCkgYXQgZ21haW4uYzozODAzCiAgICAgICAgbWF4X3ByaW9y
aXR5ID0gMjE0NzQ4MzY0NwogICAgICAgIHRpbWVvdXQgPSAtMQogICAgICAgIHNvbWVfcmVhZHkg
PSAxCiAgICAgICAgbmZkcyA9IDIKICAgICAgICBhbGxvY2F0ZWRfbmZkcyA9IDIKICAgICAgICBm
ZHMgPSAweDdmODdlYzAwMTBlMAojNCAgMHgwMDAwN2Y4ODZjNGNhYjllIGluIGdfbWFpbl9sb29w
X3J1biAobG9vcD0weDIwZmRkZDApIGF0IGdtYWluLmM6NDAwMgogICAgICAgIHNlbGYgPSAweDdm
ODdmODAwMTg0MAogICAgICAgIF9fZnVuY19fID0gImdfbWFpbl9sb29wX3J1biIKIzUgIDB4MDAw
MDdmODg3NjNmMmI2YiBpbiBXVEY6OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNoYXIg
Y29uc3QqLCBXVEY6OldvcmtRdWV1ZTo6VHlwZSwgV1RGOjpXb3JrUXVldWU6OlFPUyk6OiRfMDo6
b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTB4MWRhZTlkMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9X
VEYvd3RmL2d0ay9Xb3JrUXVldWVHdGsuY3BwOjU5Ck5vIGxvY2Fscy4KIzYgIDB4MDAwMDdmODg3
NjNmMjkyZCBpbiBzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6V29ya1F1ZXVl
OjpwbGF0Zm9ybUluaXRpYWxpemUoY2hhciBjb25zdCosIFdURjo6V29ya1F1ZXVlOjpUeXBlLCBX
VEY6OldvcmtRdWV1ZTo6UU9TKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0
JikgKF9fZnVuY3Rvcj0uLi4pCiAgICBhdCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC1yZWRo
YXQtbGludXgvNS4wLjEvLi4vLi4vLi4vLi4vaW5jbHVkZS9jKysvNS4wLjEvZnVuY3Rpb25hbDox
ODcxCk5vIGxvY2Fscy4KIzcgIDB4MDAwMDdmODg3M2VjNWMxZSBpbiBzdGQ6OmZ1bmN0aW9uPHZv
aWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKAogICAgdGhpcz0weDdmODg1MTU5ZmI4OCkKICAg
IGF0IC91c3IvYmluLy4uL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8u
Li8uLi9pbmNsdWRlL2MrKy81LjAuMS9mdW5jdGlvbmFsOjIyNzEKTm8gbG9jYWxzLgojOCAgMHgw
MDAwN2Y4ODZmZjI2MzQ1IGluIFdURjo6dGhyZWFkRW50cnlQb2ludCAoY29udGV4dERhdGE9MHg3
Zjg4NDlmZjUwZjApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjU4
CiAgICAgICAgY29udGV4dCA9IDB4N2Y4ODQ5ZmY1MGYwCiAgICAgICAgZW50cnlQb2ludCA9IHs8
c3RkOjpfTWF5YmVfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uPHZvaWQ+PiA9IHs8Tm8gZGF0YSBm
aWVsZHM+fSwgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U+ID0ge3N0YXRpYyBfTV9tYXhfc2l6ZSA9IDE2
LCAKICAgICAgICAgICAgc3RhdGljIF9NX21heF9hbGlnbiA9IDgsIF9NX2Z1bmN0b3IgPSB7X01f
dW51c2VkID0gewogICAgICAgICAgICAgICAgX01fb2JqZWN0ID0gMHgxZGFlOWQwLCBfTV9jb25z
dF9vYmplY3QgPSAweDFkYWU5ZDAsIAogICAgICAgICAgICAgICAgX01fZnVuY3Rpb25fcG9pbnRl
ciA9IDB4MWRhZTlkMCwgCiAgICAgICAgICAgICAgICBfTV9tZW1iZXJfcG9pbnRlciA9IDxlcnJv
ciByZWFkaW5nIHZhcmlhYmxlPiwgCiAgICAgICAgICAgICAgX01fcG9kX2RhdGEgPSAiXDMyMFwz
NTFcMzMyXDAwMVwwMDBcMDAwXDAwMFwwMDAgS1wyMTVcMDcwXDM3N1wxNzdcMDAwIn0sIAogICAg
ICAgICAgICBfTV9tYW5hZ2VyID0gMHg3Zjg4NzYzZjI5NDAgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U6
Ol9CYXNlX21hbmFnZXI8V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFyIGNv
bnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjokXzA+Ojpf
TV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfQW55X2RhdGEgY29uc3QmLCBzdGQ6Ol9N
YW5hZ2VyX29wZXJhdGlvbik+fSwgCiAgICAgICAgICBfTV9pbnZva2VyID0gMHg3Zjg4NzYzZjI5
MTAgPHN0ZDo6X0Z1bmN0aW9uX2hhbmRsZXI8dm9pZCAoKSwgV1RGOjpXb3JrUXVldWU6OnBsYXRm
b3JtSW5pdGlhbGl6ZShjaGFyIGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29y
a1F1ZXVlOjpRT1MpOjokXzA+OjpfTV9pbnZva2Uoc3RkOjpfQW55X2RhdGEgY29uc3QmKT59CiM5
ICAweDAwMDA3Zjg4NmZmNjAyNTcgaW4gV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50IChwYXJhbT0w
eDdmODg0OWZmYjA3MCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJl
YWRzLmNwcDoxNzAKICAgICAgICBpbnZvY2F0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFdURjo6VGhy
ZWFkRnVuY3Rpb25JbnZvY2F0aW9uPiBjb250YWluaW5nIDB4N2Y4ODQ5ZmZiMDcwCiMxMCAweDAw
MDA3Zjg4NmUyY2Q1NTUgaW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3Zjg4NTE1YTA3MDApCiAgICBh
dCBwdGhyZWFkX2NyZWF0ZS5jOjMzMwogICAgICAgIF9fcmVzID0gPG9wdGltaXplZCBvdXQ+CiAg
ICAgICAgcGQgPSAweDdmODg1MTVhMDcwMAogICAgICAgIG5vdyA9IDxvcHRpbWl6ZWQgb3V0Pgog
ICAgICAgIHVud2luZF9idWYgPSB7Y2FuY2VsX2ptcF9idWYgPSB7e2ptcF9idWYgPSB7MTQwMjIz
NDU3MTM0MzM2LCAKICAgICAgICAgICAgICAgIDM4Nzc2MTg5NDI5NzYyMzM3MCwgMTQwNzM0MTQy
MTcxMzkxLCAxNDAyMjM0NTcxMzQzMzYsIDgzODg2MDgsIAogICAgICAgICAgICAgICAgMCwgLTQw
MDQ3NTMyMzgwNTAxNzI3MCwgLTQwMDQ2MDU3NDExNzI3NDgwNn0sIAogICAgICAgICAgICAgIG1h
c2tfd2FzX3NhdmVkID0gMH19LCBwcml2ID0ge3BhZCA9IHsweDAsIDB4MCwgMHgwLCAweDB9LCAK
ICAgICAgICAgICAgZGF0YSA9IHtwcmV2ID0gMHgwLCBjbGVhbnVwID0gMHgwLCBjYW5jZWx0eXBl
ID0gMH19fQogICAgICAgIG5vdF9maXJzdF9jYWxsID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAg
cGFnZXNpemVfbTEgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBzcCA9IDxvcHRpbWl6ZWQgb3V0
PgogICAgICAgIGZyZWVzaXplID0gPG9wdGltaXplZCBvdXQ+CiMxMSAweDAwMDA3Zjg4NjYyZjZm
M2QgaW4gY2xvbmUgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9j
bG9uZS5TOjEwOQpObyBsb2NhbHMuCgpUaHJlYWQgNyAoVGhyZWFkIDB4N2Y4ODAyN2ZhNzAwIChM
V1AgMzEzMjkpKToKIzAgIHB0aHJlYWRfY29uZF93YWl0QEBHTElCQ18yLjMuMiAoKQogICAgYXQg
Li4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3B0aHJlYWRfY29uZF93YWl0LlM6MTg1
Ck5vIGxvY2Fscy4KIzEgIDB4MDAwMDdmODg2NmI4N2I4YyBpbiBfX2d0aHJlYWRfY29uZF93YWl0
IChfX211dGV4PTxvcHRpbWl6ZWQgb3V0PiwgCiAgICBfX2NvbmQ9PG9wdGltaXplZCBvdXQ+KQog
ICAgYXQgL3Vzci9zcmMvZGVidWcvZ2NjLTUuMC4xLTIwMTUwNDEzL29iai14ODZfNjQtcmVkaGF0
LWxpbnV4L3g4Nl82NC1yZWRoYXQtbGludXgvbGlic3RkYysrLXYzL2luY2x1ZGUveDg2XzY0LXJl
ZGhhdC1saW51eC9iaXRzL2d0aHItZGVmYXVsdC5oOjg2NApObyBsb2NhbHMuCiMyICBzdGQ6OmNv
bmRpdGlvbl92YXJpYWJsZTo6d2FpdCAodGhpcz08b3B0aW1pemVkIG91dD4sIF9fbG9jaz0uLi4p
CiAgICBhdCAuLi8uLi8uLi8uLi8uLi9saWJzdGRjKystdjMvc3JjL2MrKzExL2NvbmRpdGlvbl92
YXJpYWJsZS5jYzo1MwogICAgICAgIF9fZSA9IDxvcHRpbWl6ZWQgb3V0PgojMyAgMHgwMDAwN2Y4
ODZmYTQxN2IxIGluIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0PEpTQzo6R0NUaHJlYWQ6
OndhaXRGb3JOZXh0UGhhc2UoKTo6JF8xPihzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+Jiwg
SlNDOjpHQ1RocmVhZDo6d2FpdEZvck5leHRQaGFzZSgpOjokXzEpICh0aGlzPTB4N2Y4ODQ4MDMy
YzQ4LCBfX2xvY2s9Li4uLCBfX3A9Li4uKQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZf
NjQtcmVkaGF0LWxpbnV4LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2NvbmRp
dGlvbl92YXJpYWJsZTo5OApObyBsb2NhbHMuCiM0ICAweDAwMDA3Zjg4NmZhNDE2Y2YgaW4gSlND
OjpHQ1RocmVhZDo6d2FpdEZvck5leHRQaGFzZSAodGhpcz0weDIxMzg1NDApCiAgICBhdCAuLi8u
Li9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZC5jcHA6NzkKICAgICAgICBsb2Nr
ID0ge19NX2RldmljZSA9IDB4N2Y4ODQ4MDMyYzIwLCBfTV9vd25zID0gdHJ1ZX0KIzUgIDB4MDAw
MDdmODg2ZmE0MTgyNCBpbiBKU0M6OkdDVGhyZWFkOjpnY1RocmVhZE1haW4gKHRoaXM9MHgyMTM4
NTQwKQogICAgYXQgLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3Bw
Ojk3CiAgICAgICAgZW5hYmxlciA9IHttX3N0YWNrID0gQDB4MjEzODU3MH0KICAgICAgICBjdXJy
ZW50UGhhc2UgPSBKU0M6Ok1hcmsKIzYgIDB4MDAwMDdmODg2ZmE0MTk5ZCBpbiBKU0M6OkdDVGhy
ZWFkOjpnY1RocmVhZFN0YXJ0RnVuYyAoZGF0YT0weDIxMzg1NDApCiAgICBhdCAuLi8uLi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZC5jcHA6MTM2CiAgICAgICAgdGhyZWFkID0g
MHgyMTM4NTQwCiM3ICAweDAwMDA3Zjg4NmZmMjY3NzkgaW4gV1RGOjpjcmVhdGVUaHJlYWQodm9p
ZCAoKikodm9pZCopLCB2b2lkKiwgY2hhciBjb25zdCopOjokXzA6Om9wZXJhdG9yKCkoKSBjb25z
dCAodGhpcz0weDdmODgwMjdmOWI4OCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVh
ZGluZy5jcHA6ODEKTm8gbG9jYWxzLgojOCAgMHgwMDAwN2Y4ODZmZjI2NTdkIGluIHN0ZDo6X0Z1
bmN0aW9uX2hhbmRsZXI8dm9pZCAoKSwgV1RGOjpjcmVhdGVUaHJlYWQodm9pZCAoKikodm9pZCop
LCB2b2lkKiwgY2hhciBjb25zdCopOjokXzA+OjpfTV9pbnZva2Uoc3RkOjpfQW55X2RhdGEgY29u
c3QmKSAoCiAgICBfX2Z1bmN0b3I9Li4uKQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZf
NjQtcmVkaGF0LWxpbnV4LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1bmN0
aW9uYWw6MTg3MQpObyBsb2NhbHMuCiM5ICAweDAwMDA3Zjg4NzNlYzVjMWUgaW4gc3RkOjpmdW5j
dGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICgKICAgIHRoaXM9MHg3Zjg4MDI3Zjli
ODgpCiAgICBhdCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4Nl82NC1yZWRoYXQtbGludXgvNS4wLjEv
Li4vLi4vLi4vLi4vaW5jbHVkZS9jKysvNS4wLjEvZnVuY3Rpb25hbDoyMjcxCk5vIGxvY2Fscy4K
IzEwIDB4MDAwMDdmODg2ZmYyNjM0NSBpbiBXVEY6OnRocmVhZEVudHJ5UG9pbnQgKGNvbnRleHRE
YXRhPTB4N2Y4ODQ5ZmY1NWYwKQogICAgYXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFkaW5n
LmNwcDo1OAogICAgICAgIGNvbnRleHQgPSAweDdmODg0OWZmNTVmMAogICAgICAgIGVudHJ5UG9p
bnQgPSB7PHN0ZDo6X01heWJlX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbjx2b2lkPj4gPSB7PE5v
IGRhdGEgZmllbGRzPn0sIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlPiA9IHtzdGF0aWMgX01fbWF4X3Np
emUgPSAxNiwgCiAgICAgICAgICAgIHN0YXRpYyBfTV9tYXhfYWxpZ24gPSA4LCBfTV9mdW5jdG9y
ID0ge19NX3VudXNlZCA9IHsKICAgICAgICAgICAgICAgIF9NX29iamVjdCA9IDB4N2Y4ODZmYTQx
OTgwIDxKU0M6OkdDVGhyZWFkOjpnY1RocmVhZFN0YXJ0RnVuYyh2b2lkKik+LCAKICAgICAgICAg
ICAgICAgIF9NX2NvbnN0X29iamVjdCA9IDB4N2Y4ODZmYTQxOTgwIDxKU0M6OkdDVGhyZWFkOjpn
Y1RocmVhZFN0YXJ0RnVuYyh2b2lkKik+LCAKICAgICAgICAgICAgICAgIF9NX2Z1bmN0aW9uX3Bv
aW50ZXIgPSAweDdmODg2ZmE0MTk4MCA8SlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmMo
dm9pZCopPiwgX01fbWVtYmVyX3BvaW50ZXIgPSA8ZXJyb3IgcmVhZGluZyB2YXJpYWJsZT4sIAog
ICAgICAgICAgICAgIF9NX3BvZF9kYXRhID0gIlwyMDBcMDMxXDI0NG9cMjEwXDE3N1wwMDBcMDAw
QFwyMDVcMDIzXDAwMlwwMDBcMDAwXDAwMCJ9LCAKICAgICAgICAgICAgX01fbWFuYWdlciA9IDB4
N2Y4ODZmZjI2NTkwIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2VyPFdURjo6Y3Jl
YXRlVGhyZWFkKHZvaWQgKCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wPjo6X01f
bWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYsIHN0ZDo6X0FueV9kYXRhIGNvbnN0Jiwgc3RkOjpfTWFu
YWdlcl9vcGVyYXRpb24pPn0sIAogICAgICAgICAgX01faW52b2tlciA9IDB4N2Y4ODZmZjI2NTYw
IDxzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6Y3JlYXRlVGhyZWFkKHZvaWQg
KCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0Fu
eV9kYXRhIGNvbnN0Jik+fQojMTEgMHgwMDAwN2Y4ODZmZjYwMjU3IGluIFdURjo6d3RmVGhyZWFk
RW50cnlQb2ludCAocGFyYW09MHg3Zjg4NDlmZmI0ZTApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6MTcwCiAgICAgICAgaW52b2NhdGlvbiA9IHN0ZDo6
dW5pcXVlX3B0cjxXVEY6OlRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbj4gY29udGFpbmluZyAweDdm
ODg0OWZmYjRlMAojMTIgMHgwMDAwN2Y4ODZlMmNkNTU1IGluIHN0YXJ0X3RocmVhZCAoYXJnPTB4
N2Y4ODAyN2ZhNzAwKQogICAgYXQgcHRocmVhZF9jcmVhdGUuYzozMzMKICAgICAgICBfX3JlcyA9
IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBkID0gMHg3Zjg4MDI3ZmE3MDAKICAgICAgICBub3cg
PSA8b3B0aW1pemVkIG91dD4KICAgICAgICB1bndpbmRfYnVmID0ge2NhbmNlbF9qbXBfYnVmID0g
e3tqbXBfYnVmID0gezE0MDIyMjEzNDIwMDA2NCwgCiAgICAgICAgICAgICAgICAzODc3NjE4OTQy
OTc2MjMzNzAsIDE0MDczNDE0MjE0ODU3NSwgMTQwMjIyMTM0MjAwMDY0LCA4Mzg4NjA4LCAKICAg
ICAgICAgICAgICAgIDAsIC00MDAzNjMzOTgwMzEwMjUzMzQsIC00MDA0NjA1NzQxMTcyNzQ4MDZ9
LCAKICAgICAgICAgICAgICBtYXNrX3dhc19zYXZlZCA9IDB9fSwgcHJpdiA9IHtwYWQgPSB7MHgw
LCAweDAsIDB4MCwgMHgwfSwgCiAgICAgICAgICAgIGRhdGEgPSB7cHJldiA9IDB4MCwgY2xlYW51
cCA9IDB4MCwgY2FuY2VsdHlwZSA9IDB9fX0KICAgICAgICBub3RfZmlyc3RfY2FsbCA9IDxvcHRp
bWl6ZWQgb3V0PgogICAgICAgIHBhZ2VzaXplX20xID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAg
c3AgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBmcmVlc2l6ZSA9IDxvcHRpbWl6ZWQgb3V0Pgoj
MTMgMHgwMDAwN2Y4ODY2MmY2ZjNkIGluIGNsb25lICgpCiAgICBhdCAuLi9zeXNkZXBzL3VuaXgv
c3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzoxMDkKTm8gbG9jYWxzLgoKVGhyZWFkIDYgKFRocmVh
ZCAweDdmODgwMzdmYzcwMCAoTFdQIDMxMzI3KSk6CiMwICBwdGhyZWFkX2NvbmRfd2FpdEBAR0xJ
QkNfMi4zLjIgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9wdGhy
ZWFkX2NvbmRfd2FpdC5TOjE4NQpObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NjZiODdiOGMgaW4g
X19ndGhyZWFkX2NvbmRfd2FpdCAoX19tdXRleD08b3B0aW1pemVkIG91dD4sIAogICAgX19jb25k
PTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC91c3Ivc3JjL2RlYnVnL2djYy01LjAuMS0yMDE1MDQx
My9vYmoteDg2XzY0LXJlZGhhdC1saW51eC94ODZfNjQtcmVkaGF0LWxpbnV4L2xpYnN0ZGMrKy12
My9pbmNsdWRlL3g4Nl82NC1yZWRoYXQtbGludXgvYml0cy9ndGhyLWRlZmF1bHQuaDo4NjQKTm8g
bG9jYWxzLgojMiAgc3RkOjpjb25kaXRpb25fdmFyaWFibGU6OndhaXQgKHRoaXM9PG9wdGltaXpl
ZCBvdXQ+LCBfX2xvY2s9Li4uKQogICAgYXQgLi4vLi4vLi4vLi4vLi4vbGlic3RkYysrLXYzL3Ny
Yy9jKysxMS9jb25kaXRpb25fdmFyaWFibGUuY2M6NTMKICAgICAgICBfX2UgPSA8b3B0aW1pemVk
IG91dD4KIzMgIDB4MDAwMDdmODg2ZmE0MTdiMSBpbiBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZTo6
d2FpdDxKU0M6OkdDVGhyZWFkOjp3YWl0Rm9yTmV4dFBoYXNlKCk6OiRfMT4oc3RkOjp1bmlxdWVf
bG9jazxzdGQ6Om11dGV4PiYsIEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UoKTo6JF8x
KSAodGhpcz0weDdmODg0ODAzMmM0OCwgX19sb2NrPS4uLiwgX19wPS4uLikKICAgIGF0IC91c3Iv
YmluLy4uL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9pbmNs
dWRlL2MrKy81LjAuMS9jb25kaXRpb25fdmFyaWFibGU6OTgKTm8gbG9jYWxzLgojNCAgMHgwMDAw
N2Y4ODZmYTQxNmNmIGluIEpTQzo6R0NUaHJlYWQ6OndhaXRGb3JOZXh0UGhhc2UgKHRoaXM9MHgy
MWYzYTMwKQogICAgYXQgLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQu
Y3BwOjc5CiAgICAgICAgbG9jayA9IHtfTV9kZXZpY2UgPSAweDdmODg0ODAzMmMyMCwgX01fb3du
cyA9IHRydWV9CiM1ICAweDAwMDA3Zjg4NmZhNDE4MjQgaW4gSlNDOjpHQ1RocmVhZDo6Z2NUaHJl
YWRNYWluICh0aGlzPTB4MjFmM2EzMCkKICAgIGF0IC4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0dDVGhyZWFkLmNwcDo5NwogICAgICAgIGVuYWJsZXIgPSB7bV9zdGFjayA9IEAweDFl
Zjk4MjB9CiAgICAgICAgY3VycmVudFBoYXNlID0gSlNDOjpNYXJrCiM2ICAweDAwMDA3Zjg4NmZh
NDE5OWQgaW4gSlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmMgKGRhdGE9MHgyMWYzYTMw
KQogICAgYXQgLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3BwOjEz
NgogICAgICAgIHRocmVhZCA9IDB4MjFmM2EzMAojNyAgMHgwMDAwN2Y4ODZmZjI2Nzc5IGluIFdU
Rjo6Y3JlYXRlVGhyZWFkKHZvaWQgKCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8w
OjpvcGVyYXRvcigpKCkgY29uc3QgKHRoaXM9MHg3Zjg4MDM3ZmJiODgpCiAgICBhdCAuLi8uLi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjgxCk5vIGxvY2Fscy4KIzggIDB4MDAwMDdmODg2
ZmYyNjU3ZCBpbiBzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6Y3JlYXRlVGhy
ZWFkKHZvaWQgKCopKHZvaWQqKSwgdm9pZCosIGNoYXIgY29uc3QqKTo6JF8wPjo6X01faW52b2tl
KHN0ZDo6X0FueV9kYXRhIGNvbnN0JikgKAogICAgX19mdW5jdG9yPS4uLikKICAgIGF0IC91c3Iv
YmluLy4uL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAuMS8uLi8uLi8uLi8uLi9pbmNs
dWRlL2MrKy81LjAuMS9mdW5jdGlvbmFsOjE4NzEKTm8gbG9jYWxzLgojOSAgMHgwMDAwN2Y4ODcz
ZWM1YzFlIGluIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCAoCiAg
ICB0aGlzPTB4N2Y4ODAzN2ZiYjg4KQogICAgYXQgL3Vzci9iaW4vLi4vbGliL2djYy94ODZfNjQt
cmVkaGF0LWxpbnV4LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysrLzUuMC4xL2Z1bmN0aW9u
YWw6MjI3MQpObyBsb2NhbHMuCiMxMCAweDAwMDA3Zjg4NmZmMjYzNDUgaW4gV1RGOjp0aHJlYWRF
bnRyeVBvaW50IChjb250ZXh0RGF0YT0weDdmODg0OWZmNTU1MCkKICAgIGF0IC4uLy4uL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6NTgKICAgICAgICBjb250ZXh0ID0gMHg3Zjg4NDlmZjU1
NTAKICAgICAgICBlbnRyeVBvaW50ID0gezxzdGQ6Ol9NYXliZV91bmFyeV9vcl9iaW5hcnlfZnVu
Y3Rpb248dm9pZD4+ID0gezxObyBkYXRhIGZpZWxkcz59LCA8c3RkOjpfRnVuY3Rpb25fYmFzZT4g
PSB7c3RhdGljIF9NX21heF9zaXplID0gMTYsIAogICAgICAgICAgICBzdGF0aWMgX01fbWF4X2Fs
aWduID0gOCwgX01fZnVuY3RvciA9IHtfTV91bnVzZWQgPSB7CiAgICAgICAgICAgICAgICBfTV9v
YmplY3QgPSAweDdmODg2ZmE0MTk4MCA8SlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmMo
dm9pZCopPiwgCiAgICAgICAgICAgICAgICBfTV9jb25zdF9vYmplY3QgPSAweDdmODg2ZmE0MTk4
MCA8SlNDOjpHQ1RocmVhZDo6Z2NUaHJlYWRTdGFydEZ1bmModm9pZCopPiwgCiAgICAgICAgICAg
ICAgICBfTV9mdW5jdGlvbl9wb2ludGVyID0gMHg3Zjg4NmZhNDE5ODAgPEpTQzo6R0NUaHJlYWQ6
OmdjVGhyZWFkU3RhcnRGdW5jKHZvaWQqKT4sIF9NX21lbWJlcl9wb2ludGVyID0gPGVycm9yIHJl
YWRpbmcgdmFyaWFibGU+LCAKICAgICAgICAgICAgICBfTV9wb2RfZGF0YSA9ICJcMjAwXDAzMVwy
NDRvXDIxMFwxNzdcMDAwXDAwMFwwNjA6XDAzN1wwMDJcMDAwXDAwMFwwMDAifSwgCiAgICAgICAg
ICAgIF9NX21hbmFnZXIgPSAweDdmODg2ZmYyNjU5MCA8c3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jh
c2VfbWFuYWdlcjxXVEY6OmNyZWF0ZVRocmVhZCh2b2lkICgqKSh2b2lkKiksIHZvaWQqLCBjaGFy
IGNvbnN0Kik6OiRfMD46Ol9NX21hbmFnZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9BbnlfZGF0
YSBjb25zdCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9uKT59LCAKICAgICAgICAgIF9NX2ludm9r
ZXIgPSAweDdmODg2ZmYyNjU2MCA8c3RkOjpfRnVuY3Rpb25faGFuZGxlcjx2b2lkICgpLCBXVEY6
OmNyZWF0ZVRocmVhZCh2b2lkICgqKSh2b2lkKiksIHZvaWQqLCBjaGFyIGNvbnN0Kik6OiRfMD46
Ol9NX2ludm9rZShzdGQ6Ol9BbnlfZGF0YSBjb25zdCYpPn0KIzExIDB4MDAwMDdmODg2ZmY2MDI1
NyBpbiBXVEY6Ond0ZlRocmVhZEVudHJ5UG9pbnQgKHBhcmFtPTB4N2Y4ODQ5ZmZiNGEwKQogICAg
YXQgLi4vLi4vU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOjE3MAogICAgICAg
IGludm9jYXRpb24gPSBzdGQ6OnVuaXF1ZV9wdHI8V1RGOjpUaHJlYWRGdW5jdGlvbkludm9jYXRp
b24+IGNvbnRhaW5pbmcgMHg3Zjg4NDlmZmI0YTAKIzEyIDB4MDAwMDdmODg2ZTJjZDU1NSBpbiBz
dGFydF90aHJlYWQgKGFyZz0weDdmODgwMzdmYzcwMCkKICAgIGF0IHB0aHJlYWRfY3JlYXRlLmM6
MzMzCiAgICAgICAgX19yZXMgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwZCA9IDB4N2Y4ODAz
N2ZjNzAwCiAgICAgICAgbm93ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgdW53aW5kX2J1ZiA9
IHtjYW5jZWxfam1wX2J1ZiA9IHt7am1wX2J1ZiA9IHsxNDAyMjIxNTA5ODU0NzIsIAogICAgICAg
ICAgICAgICAgMzg3NzYxODk0Mjk3NjIzMzcwLCAxNDA3MzQxNDIxNDg1NzUsIDE0MDIyMjE1MDk4
NTQ3MiwgODM4ODYwOCwgCiAgICAgICAgICAgICAgICAwLCAtNDAwMzY1NTk4MTI4MDIyNzEwLCAt
NDAwNDYwNTc0MTE3Mjc0ODA2fSwgCiAgICAgICAgICAgICAgbWFza193YXNfc2F2ZWQgPSAwfX0s
IHByaXYgPSB7cGFkID0gezB4MCwgMHgwLCAweDAsIDB4MH0sIAogICAgICAgICAgICBkYXRhID0g
e3ByZXYgPSAweDAsIGNsZWFudXAgPSAweDAsIGNhbmNlbHR5cGUgPSAwfX19CiAgICAgICAgbm90
X2ZpcnN0X2NhbGwgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwYWdlc2l6ZV9tMSA9IDxvcHRp
bWl6ZWQgb3V0PgogICAgICAgIHNwID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgZnJlZXNpemUg
PSA8b3B0aW1pemVkIG91dD4KIzEzIDB4MDAwMDdmODg2NjJmNmYzZCBpbiBjbG9uZSAoKQogICAg
YXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6MTA5Ck5vIGxvY2Fs
cy4KClRocmVhZCA1IChUaHJlYWQgMHg3Zjg4NTNkZDk3MDAgKExXUCAzMTMxNikpOgojMCAgMHgw
MDAwN2Y4ODY2MmViNjZkIGluIHBvbGwgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c2NhbGwtdGVt
cGxhdGUuUzo4MQpObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NmM0ZGJjZWUgaW4gZ19wb2xsIChm
ZHM9MHg3Zjg4NDQwMDEwYzAsIG5mZHM9MiwgdGltZW91dD0tMSkKICAgIGF0IGdwb2xsLmM6MTI0
Ck5vIGxvY2Fscy4KIzIgIDB4MDAwMDdmODg2YzRjYWRiYSBpbiBnX21haW5fY29udGV4dF9wb2xs
IChjb250ZXh0PTB4MWQxYTAzMCwgdGltZW91dD0tMSwgCiAgICBwcmlvcml0eT0yMTQ3NDgzNjQ3
LCBmZHM9MHg3Zjg4NDQwMDEwYzAsIG5fZmRzPTIpIGF0IGdtYWluLmM6NDEwMwogICAgICAgIHBv
bGxfZnVuYyA9IDB4N2Y4ODZjNGRiY2M3IDxnX3BvbGw+CiMzICAweDAwMDA3Zjg4NmM0Y2E3NGQg
aW4gZ19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD0weDFkMWEwMzAsIGJsb2NrPTEsIAog
ICAgZGlzcGF0Y2g9MSwgc2VsZj0weDFjYmY4ZjApIGF0IGdtYWluLmM6MzgwMwogICAgICAgIG1h
eF9wcmlvcml0eSA9IDIxNDc0ODM2NDcKICAgICAgICB0aW1lb3V0ID0gLTEKICAgICAgICBzb21l
X3JlYWR5ID0gMQogICAgICAgIG5mZHMgPSAyCiAgICAgICAgYWxsb2NhdGVkX25mZHMgPSAyCiAg
ICAgICAgZmRzID0gMHg3Zjg4NDQwMDEwYzAKIzQgIDB4MDAwMDdmODg2YzRjYWI5ZSBpbiBnX21h
aW5fbG9vcF9ydW4gKGxvb3A9MHgxZDE5YWIwKSBhdCBnbWFpbi5jOjQwMDIKICAgICAgICBzZWxm
ID0gMHgxY2JmOGYwCiAgICAgICAgX19mdW5jX18gPSAiZ19tYWluX2xvb3BfcnVuIgojNSAgMHgw
MDAwN2Y4ODZjZDUyMzE2IGluIGdkYnVzX3NoYXJlZF90aHJlYWRfZnVuYyAodXNlcl9kYXRhPTB4
MWQxYTAwMCkKICAgIGF0IGdkYnVzcHJpdmF0ZS5jOjI0NgogICAgICAgIGRhdGEgPSAweDFkMWEw
MDAKIzYgIDB4MDAwMDdmODg2YzRmODU5YSBpbiBnX3RocmVhZF9wcm94eSAoZGF0YT0weDFjYmY4
ZjApIGF0IGd0aHJlYWQuYzo3NjQKICAgICAgICB0aHJlYWQgPSAweDFjYmY4ZjAKICAgICAgICBf
X2Z1bmNfXyA9ICJnX3RocmVhZF9wcm94eSIKIzcgIDB4MDAwMDdmODg2ZTJjZDU1NSBpbiBzdGFy
dF90aHJlYWQgKGFyZz0weDdmODg1M2RkOTcwMCkKICAgIGF0IHB0aHJlYWRfY3JlYXRlLmM6MzMz
CiAgICAgICAgX19yZXMgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwZCA9IDB4N2Y4ODUzZGQ5
NzAwCiAgICAgICAgbm93ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgdW53aW5kX2J1ZiA9IHtj
YW5jZWxfam1wX2J1ZiA9IHt7am1wX2J1ZiA9IHsxNDAyMjM0OTkzMTA4NDgsIAogICAgICAgICAg
ICAgICAgMzg3NzYxODk0Mjk3NjIzMzcwLCAxNDA3MzQxNDIxNjY1OTEsIDE0MDIyMzQ5OTMxMDg0
OCwgODM4ODYwOCwgCiAgICAgICAgICAgICAgICAwLCAtNDAwNDcxOTkxNDQ3MjY2NDg2LCAtNDAw
NDYwNTc0MTE3Mjc0ODA2fSwgCiAgICAgICAgICAgICAgbWFza193YXNfc2F2ZWQgPSAwfX0sIHBy
aXYgPSB7cGFkID0gezB4MCwgMHgwLCAweDAsIDB4MH0sIAogICAgICAgICAgICBkYXRhID0ge3By
ZXYgPSAweDAsIGNsZWFudXAgPSAweDAsIGNhbmNlbHR5cGUgPSAwfX19CiAgICAgICAgbm90X2Zp
cnN0X2NhbGwgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBwYWdlc2l6ZV9tMSA9IDxvcHRpbWl6
ZWQgb3V0PgogICAgICAgIHNwID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgZnJlZXNpemUgPSA8
b3B0aW1pemVkIG91dD4KIzggIDB4MDAwMDdmODg2NjJmNmYzZCBpbiBjbG9uZSAoKQogICAgYXQg
Li4vc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6MTA5Ck5vIGxvY2Fscy4K
ClRocmVhZCA0IChUaHJlYWQgMHg3Zjg4NTFkYTE3MDAgKExXUCAzMTMxOSkpOgojMCAgMHgwMDAw
N2Y4ODY2MmViNjZkIGluIHBvbGwgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c2NhbGwtdGVtcGxh
dGUuUzo4MQpObyBsb2NhbHMuCiMxICAweDAwMDA3Zjg4NmM0ZGJjZWUgaW4gZ19wb2xsIChmZHM9
MHg3Zjg3ZjgwMDEwZTAsIG5mZHM9MSwgdGltZW91dD0tMSkKICAgIGF0IGdwb2xsLmM6MTI0Ck5v
IGxvY2Fscy4KIzIgIDB4MDAwMDdmODg2YzRjYWRiYSBpbiBnX21haW5fY29udGV4dF9wb2xsIChj
b250ZXh0PTB4MWQ0YjUxMCwgdGltZW91dD0tMSwgCiAgICBwcmlvcml0eT0yMTQ3NDgzNjQ3LCBm
ZHM9MHg3Zjg3ZjgwMDEwZTAsIG5fZmRzPTEpIGF0IGdtYWluLmM6NDEwMwogICAgICAgIHBvbGxf
ZnVuYyA9IDB4N2Y4ODZjNGRiY2M3IDxnX3BvbGw+CiMzICAweDAwMDA3Zjg4NmM0Y2E3NGQgaW4g
Z19tYWluX2NvbnRleHRfaXRlcmF0ZSAoY29udGV4dD0weDFkNGI1MTAsIGJsb2NrPTEsIAogICAg
ZGlzcGF0Y2g9MSwgc2VsZj0weDdmODdmNDAwMThhMCkgYXQgZ21haW4uYzozODAzCiAgICAgICAg
bWF4X3ByaW9yaXR5ID0gMjE0NzQ4MzY0NwogICAgICAgIHRpbWVvdXQgPSAtMQogICAgICAgIHNv
bWVfcmVhZHkgPSAwCiAgICAgICAgbmZkcyA9IDEKICAgICAgICBhbGxvY2F0ZWRfbmZkcyA9IDEK
ICAgICAgICBmZHMgPSAweDdmODdmODAwMTBlMAojNCAgMHgwMDAwN2Y4ODZjNGNhYjllIGluIGdf
bWFpbl9sb29wX3J1biAobG9vcD0weDFkYWE1ZTApIGF0IGdtYWluLmM6NDAwMgogICAgICAgIHNl
bGYgPSAweDdmODdmNDAwMThhMAogICAgICAgIF9fZnVuY19fID0gImdfbWFpbl9sb29wX3J1biIK
IzUgIDB4MDAwMDdmODg3NjNmMmI2YiBpbiBXVEY6OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFs
aXplKGNoYXIgY29uc3QqLCBXVEY6OldvcmtRdWV1ZTo6VHlwZSwgV1RGOjpXb3JrUXVldWU6OlFP
Uyk6OiRfMDo6b3BlcmF0b3IoKSgpIGNvbnN0ICh0aGlzPTB4MWQ0MjUyMCkKICAgIGF0IC4uLy4u
L1NvdXJjZS9XVEYvd3RmL2d0ay9Xb3JrUXVldWVHdGsuY3BwOjU5Ck5vIGxvY2Fscy4KIzYgIDB4
MDAwMDdmODg3NjNmMjkyZCBpbiBzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIFdURjo6
V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY2hhciBjb25zdCosIFdURjo6V29ya1F1ZXVl
OjpUeXBlLCBXVEY6OldvcmtRdWV1ZTo6UU9TKTo6JF8wPjo6X01faW52b2tlKHN0ZDo6X0FueV9k
YXRhIGNvbnN0JikgKF9fZnVuY3Rvcj0uLi4pCiAgICBhdCAvdXNyL2Jpbi8uLi9saWIvZ2NjL3g4
Nl82NC1yZWRoYXQtbGludXgvNS4wLjEvLi4vLi4vLi4vLi4vaW5jbHVkZS9jKysvNS4wLjEvZnVu
Y3Rpb25hbDoxODcxCk5vIGxvY2Fscy4KIzcgIDB4MDAwMDdmODg3M2VjNWMxZSBpbiBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKAogICAgdGhpcz0weDdmODg1MWRh
MGI4OCkKICAgIGF0IC91c3IvYmluLy4uL2xpYi9nY2MveDg2XzY0LXJlZGhhdC1saW51eC81LjAu
MS8uLi8uLi8uLi8uLi9pbmNsdWRlL2MrKy81LjAuMS9mdW5jdGlvbmFsOjIyNzEKTm8gbG9jYWxz
LgojOCAgMHgwMDAwN2Y4ODZmZjI2MzQ1IGluIFdURjo6dGhyZWFkRW50cnlQb2ludCAoY29udGV4
dERhdGE9MHg3Zjg4NDlmZjUwYTApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmcuY3BwOjU4CiAgICAgICAgY29udGV4dCA9IDB4N2Y4ODQ5ZmY1MGEwCiAgICAgICAgZW50cnlQ
b2ludCA9IHs8c3RkOjpfTWF5YmVfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0aW9uPHZvaWQ+PiA9IHs8
Tm8gZGF0YSBmaWVsZHM+fSwgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U+ID0ge3N0YXRpYyBfTV9tYXhf
c2l6ZSA9IDE2LCAKICAgICAgICAgICAgc3RhdGljIF9NX21heF9hbGlnbiA9IDgsIF9NX2Z1bmN0
b3IgPSB7X01fdW51c2VkID0gewogICAgICAgICAgICAgICAgX01fb2JqZWN0ID0gMHgxZDQyNTIw
LCBfTV9jb25zdF9vYmplY3QgPSAweDFkNDI1MjAsIAogICAgICAgICAgICAgICAgX01fZnVuY3Rp
b25fcG9pbnRlciA9IDB4MWQ0MjUyMCwgCiAgICAgICAgICAgICAgICBfTV9tZW1iZXJfcG9pbnRl
ciA9IDxlcnJvciByZWFkaW5nIHZhcmlhYmxlPiwgCiAgICAgICAgICAgICAgX01fcG9kX2RhdGEg
PSAiICVcMzI0XDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwSlwyMTVcMDcwXDM3N1wxNzdcMDAwIn0s
IAogICAgICAgICAgICBfTV9tYW5hZ2VyID0gMHg3Zjg4NzYzZjI5NDAgPHN0ZDo6X0Z1bmN0aW9u
X2Jhc2U6Ol9CYXNlX21hbmFnZXI8V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShj
aGFyIGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdURjo6V29ya1F1ZXVlOjpRT1MpOjok
XzA+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfQW55X2RhdGEgY29uc3QmLCBz
dGQ6Ol9NYW5hZ2VyX29wZXJhdGlvbik+fSwgCiAgICAgICAgICBfTV9pbnZva2VyID0gMHg3Zjg4
NzYzZjI5MTAgPHN0ZDo6X0Z1bmN0aW9uX2hhbmRsZXI8dm9pZCAoKSwgV1RGOjpXb3JrUXVldWU6
OnBsYXRmb3JtSW5pdGlhbGl6ZShjaGFyIGNvbnN0KiwgV1RGOjpXb3JrUXVldWU6OlR5cGUsIFdU
Rjo6V29ya1F1ZXVlOjpRT1MpOjokXzA+OjpfTV9pbnZva2Uoc3RkOjpfQW55X2RhdGEgY29uc3Qm
KT59CiM5ICAweDAwMDA3Zjg4NmZmNjAyNTcgaW4gV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50IChw
YXJhbT0weDdmODg0OWZmYjA1MCkKICAgIGF0IC4uLy4uL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1B0aHJlYWRzLmNwcDoxNzAKICAgICAgICBpbnZvY2F0aW9uID0gc3RkOjp1bmlxdWVfcHRyPFdU
Rjo6VGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uPiBjb250YWluaW5nIDB4N2Y4ODQ5ZmZiMDUwCiMx
MCAweDAwMDA3Zjg4NmUyY2Q1NTUgaW4gc3RhcnRfdGhyZWFkIChhcmc9MHg3Zjg4NTFkYTE3MDAp
CiAgICBhdCBwdGhyZWFkX2NyZWF0ZS5jOjMzMwogICAgICAgIF9fcmVzID0gPG9wdGltaXplZCBv
dXQ+CiAgICAgICAgcGQgPSAweDdmODg1MWRhMTcwMAogICAgICAgIG5vdyA9IDxvcHRpbWl6ZWQg
b3V0PgogICAgICAgIHVud2luZF9idWYgPSB7Y2FuY2VsX2ptcF9idWYgPSB7e2ptcF9idWYgPSB7
MTQwMjIzNDY1NTI3MDQwLCAKICAgICAgICAgICAgICAgIDM4Nzc2MTg5NDI5NzYyMzM3MCwgMTQw
NzM0MTQyMTcxMTAzLCAxNDAyMjM0NjU1MjcwNDAsIDgzODg2MDgsIAogICAgICAgICAgICAgICAg
MCwgLTQwMDQ3NjM5Mzc4ODc0NDg4NiwgLTQwMDQ2MDU3NDExNzI3NDgwNn0sIAogICAgICAgICAg
ICAgIG1hc2tfd2FzX3NhdmVkID0gMH19LCBwcml2ID0ge3BhZCA9IHsweDAsIDB4MCwgMHgwLCAw
eDB9LCAKICAgICAgICAgICAgZGF0YSA9IHtwcmV2ID0gMHgwLCBjbGVhbnVwID0gMHgwLCBjYW5j
ZWx0eXBlID0gMH19fQogICAgICAgIG5vdF9maXJzdF9jYWxsID0gPG9wdGltaXplZCBvdXQ+CiAg
ICAgICAgcGFnZXNpemVfbTEgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBzcCA9IDxvcHRpbWl6
ZWQgb3V0PgogICAgICAgIGZyZWVzaXplID0gPG9wdGltaXplZCBvdXQ+CiMxMSAweDAwMDA3Zjg4
NjYyZjZmM2QgaW4gY2xvbmUgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4
Nl82NC9jbG9uZS5TOjEwOQpObyBsb2NhbHMuCgpUaHJlYWQgMyAoVGhyZWFkIDB4N2Y4ODU0NWRh
NzAwIChMV1AgMzEzMTUpKToKIzAgIDB4MDAwMDdmODg2NjJlYjY2ZCBpbiBwb2xsICgpIGF0IC4u
L3N5c2RlcHMvdW5peC9zeXNjYWxsLXRlbXBsYXRlLlM6ODEKTm8gbG9jYWxzLgojMSAgMHgwMDAw
N2Y4ODZjNGRiY2VlIGluIGdfcG9sbCAoZmRzPTB4N2Y4ODRjMDAwOGUwLCBuZmRzPTEsIHRpbWVv
dXQ9LTEpCiAgICBhdCBncG9sbC5jOjEyNApObyBsb2NhbHMuCiMyICAweDAwMDA3Zjg4NmM0Y2Fk
YmEgaW4gZ19tYWluX2NvbnRleHRfcG9sbCAoY29udGV4dD0weDFkMTk2ODAsIHRpbWVvdXQ9LTEs
IAogICAgcHJpb3JpdHk9MjE0NzQ4MzY0NywgZmRzPTB4N2Y4ODRjMDAwOGUwLCBuX2Zkcz0xKSBh
dCBnbWFpbi5jOjQxMDMKICAgICAgICBwb2xsX2Z1bmMgPSAweDdmODg2YzRkYmNjNyA8Z19wb2xs
PgojMyAgMHgwMDAwN2Y4ODZjNGNhNzRkIGluIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGUgKGNvbnRl
eHQ9MHgxZDE5NjgwLCBibG9jaz0xLCAKICAgIGRpc3BhdGNoPTEsIHNlbGY9MHgxY2JmOGEwKSBh
dCBnbWFpbi5jOjM4MDMKICAgICAgICBtYXhfcHJpb3JpdHkgPSAyMTQ3NDgzNjQ3CiAgICAgICAg
dGltZW91dCA9IC0xCiAgICAgICAgc29tZV9yZWFkeSA9IDMyNjQ4CiAgICAgICAgbmZkcyA9IDEK
ICAgICAgICBhbGxvY2F0ZWRfbmZkcyA9IDEKICAgICAgICBmZHMgPSAweDdmODg0YzAwMDhlMAoj
NCAgMHgwMDAwN2Y4ODZjNGNhODNjIGluIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbiAoY29udGV4
dD0weDFkMTk2ODAsIAogICAgbWF5X2Jsb2NrPTEpIGF0IGdtYWluLmM6Mzg2OQogICAgICAgIHJl
dHZhbCA9IDAKIzUgIDB4MDAwMDdmODg2YzRjYzNkMCBpbiBnbGliX3dvcmtlcl9tYWluIChkYXRh
PTB4MCkgYXQgZ21haW4uYzo1NjIyCk5vIGxvY2Fscy4KIzYgIDB4MDAwMDdmODg2YzRmODU5YSBp
biBnX3RocmVhZF9wcm94eSAoZGF0YT0weDFjYmY4YTApIGF0IGd0aHJlYWQuYzo3NjQKICAgICAg
ICB0aHJlYWQgPSAweDFjYmY4YTAKICAgICAgICBfX2Z1bmNfXyA9ICJnX3RocmVhZF9wcm94eSIK
IzcgIDB4MDAwMDdmODg2ZTJjZDU1NSBpbiBzdGFydF90aHJlYWQgKGFyZz0weDdmODg1NDVkYTcw
MCkKICAgIGF0IHB0aHJlYWRfY3JlYXRlLmM6MzMzCiAgICAgICAgX19yZXMgPSA8b3B0aW1pemVk
IG91dD4KICAgICAgICBwZCA9IDB4N2Y4ODU0NWRhNzAwCiAgICAgICAgbm93ID0gPG9wdGltaXpl
ZCBvdXQ+CiAgICAgICAgdW53aW5kX2J1ZiA9IHtjYW5jZWxfam1wX2J1ZiA9IHt7am1wX2J1ZiA9
IHsxNDAyMjM1MDc3MDM1NTIsIAogICAgICAgICAgICAgICAgMzg3NzYxODk0Mjk3NjIzMzcwLCAx
NDA3MzQxNDIxNjYyMzksIDE0MDIyMzUwNzcwMzU1MiwgODM4ODYwOCwgCiAgICAgICAgICAgICAg
ICAwLCAtNDAwNDgxODg3NTg4Nzg3MzgyLCAtNDAwNDYwNTc0MTE3Mjc0ODA2fSwgCiAgICAgICAg
ICAgICAgbWFza193YXNfc2F2ZWQgPSAwfX0sIHByaXYgPSB7cGFkID0gezB4MCwgMHgwLCAweDAs
IDB4MH0sIAogICAgICAgICAgICBkYXRhID0ge3ByZXYgPSAweDAsIGNsZWFudXAgPSAweDAsIGNh
bmNlbHR5cGUgPSAwfX19CiAgICAgICAgbm90X2ZpcnN0X2NhbGwgPSA8b3B0aW1pemVkIG91dD4K
ICAgICAgICBwYWdlc2l6ZV9tMSA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHNwID0gPG9wdGlt
aXplZCBvdXQ+CiAgICAgICAgZnJlZXNpemUgPSA8b3B0aW1pemVkIG91dD4KIzggIDB4MDAwMDdm
ODg2NjJmNmYzZCBpbiBjbG9uZSAoKQogICAgYXQgLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgv
eDg2XzY0L2Nsb25lLlM6MTA5Ck5vIGxvY2Fscy4KClRocmVhZCAyIChUaHJlYWQgMHg3Zjg4NGI3
ZmU3MDAgKExXUCAzMTMyNCkpOgojMCAgMHgwMDAwN2Y4ODZlMmQ1YzdkIGluIG5hbm9zbGVlcCAo
KSBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzY2FsbC10ZW1wbGF0ZS5TOjgxCk5vIGxvY2Fscy4KIzEg
IDB4MDAwMDdmODg2ZmY3ODJmNCBpbiBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3I8bG9uZywg
c3RkOjpyYXRpbzwxbCwgMTAwMGw+ID4gKF9fcnRpbWU9Li4uKQogICAgYXQgL3Vzci9iaW4vLi4v
bGliL2djYy94ODZfNjQtcmVkaGF0LWxpbnV4LzUuMC4xLy4uLy4uLy4uLy4uL2luY2x1ZGUvYysr
LzUuMC4xL3RocmVhZDoyOTIKICAgICAgICBfX3MgPSB7X19yID0gMH0KICAgICAgICBfX25zID0g
e19fciA9IDUxMjAwMDAwMH0KICAgICAgICBfX3RzID0ge3R2X3NlYyA9IDAsIHR2X25zZWMgPSA1
MTIwMDAwMDB9CiMyICAweDAwMDA3Zjg4NmZmNzE1YWIgaW4gYm1hbGxvYzo6c2xlZXAgKGxvY2s9
Li4uLCBkdXJhdGlvbj0uLi4pCiAgICBhdCAuLi8uLi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1N0
YXRpY011dGV4Lmg6NjQKTm8gbG9jYWxzLgojMyAgMHgwMDAwN2Y4ODZmZjcxMzZkIGluIGJtYWxs
b2M6OndhaXRVbnRpbEZhbHNlIChsb2NrPS4uLiwgCiAgICBzbGVlcER1cmF0aW9uPS4uLiwgY29u
ZGl0aW9uPUAweDdmODg3MDVhYTZlODogdHJ1ZSkKICAgIGF0IC4uLy4uL1NvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvU3RhdGljTXV0ZXguaDo3NApObyBsb2NhbHMuCiM0ICAweDAwMDA3Zjg4NmZmNzEy
YzkgaW4gYm1hbGxvYzo6SGVhcDo6c2NhdmVuZ2UgKAogICAgdGhpcz0weDdmODg3MDVhODUzOCA8
Ym1hbGxvYzo6UGVyUHJvY2VzczxibWFsbG9jOjpIZWFwPjo6c19tZW1vcnk+LCAKICAgIGxvY2s9
Li4uLCBzbGVlcER1cmF0aW9uPS4uLikgYXQgLi4vLi4vU291cmNlL2JtYWxsb2MvYm1hbGxvYy9I
ZWFwLmNwcDo4OQpObyBsb2NhbHMuCiM1ICAweDAwMDA3Zjg4NmZmNzBlZjAgaW4gYm1hbGxvYzo6
SGVhcDo6Y29uY3VycmVudFNjYXZlbmdlICgKICAgIHRoaXM9MHg3Zjg4NzA1YTg1MzggPGJtYWxs
b2M6OlBlclByb2Nlc3M8Ym1hbGxvYzo6SGVhcD46OnNfbWVtb3J5PikKICAgIGF0IC4uLy4uL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHA6ODQKICAgICAgICBsb2NrID0gewogICAgICAg
ICAgX01fZGV2aWNlID0gMHg3Zjg4NzA1YTg1MmMgPGJtYWxsb2M6OlBlclByb2Nlc3M8Ym1hbGxv
Yzo6SGVhcD46OnNfbXV0ZXg+LCBfTV9vd25zID0gZmFsc2V9CiM2ICAweDAwMDA3Zjg4NmZmNzRl
NjIgaW4gYm1hbGxvYzo6QXN5bmNUYXNrPGJtYWxsb2M6OkhlYXAsIHZvaWQgKGJtYWxsb2M6Okhl
YXA6OiopKCk+OjplbnRyeVBvaW50ICgKICAgIHRoaXM9MHg3Zjg4NzA1YWE5ODggPGJtYWxsb2M6
OlBlclByb2Nlc3M8Ym1hbGxvYzo6SGVhcD46OnNfbWVtb3J5KzkyOTY+KQogICAgYXQgLi4vLi4v
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9Bc3luY1Rhc2suaDoxMzEKICAgICAgICBleHBlY3RlZFN0
YXRlID0gYm1hbGxvYzo6QXN5bmNUYXNrPGJtYWxsb2M6OkhlYXAsIHZvaWQgKGJtYWxsb2M6Okhl
YXA6OiopKCk+OjpTaWduYWxlZAojNyAgMHgwMDAwN2Y4ODZmZjc0ZGE1IGluIGJtYWxsb2M6OkFz
eW5jVGFzazxibWFsbG9jOjpIZWFwLCB2b2lkIChibWFsbG9jOjpIZWFwOjoqKSgpPjo6cHRocmVh
ZEVudHJ5UG9pbnQgKAogICAgYXN5bmNUYXNrPTB4N2Y4ODcwNWFhOTg4IDxibWFsbG9jOjpQZXJQ
cm9jZXNzPGJtYWxsb2M6OkhlYXA+OjpzX21lbW9yeSs5Mjk2PikgYXQgLi4vLi4vU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9Bc3luY1Rhc2suaDoxMjEKTm8gbG9jYWxzLgojOCAgMHgwMDAwN2Y4ODZl
MmNkNTU1IGluIHN0YXJ0X3RocmVhZCAoYXJnPTB4N2Y4ODRiN2ZlNzAwKQogICAgYXQgcHRocmVh
ZF9jcmVhdGUuYzozMzMKICAgICAgICBfX3JlcyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBk
ID0gMHg3Zjg4NGI3ZmU3MDAKICAgICAgICBub3cgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICB1
bndpbmRfYnVmID0ge2NhbmNlbF9qbXBfYnVmID0ge3tqbXBfYnVmID0gezE0MDIyMzM1ODk1MzIx
NiwgCiAgICAgICAgICAgICAgICAzODc3NjE4OTQyOTc2MjMzNzAsIDE0MDczNDE0MjE2MzMxMSwg
MTQwMjIzMzU4OTUzMjE2LCA4Mzg4NjA4LCAKICAgICAgICAgICAgICAgIDAsIC00MDA1MjM5MjQ1
ODExOTY5ODIsIC00MDA0NjA1NzQxMTcyNzQ4MDZ9LCAKICAgICAgICAgICAgICBtYXNrX3dhc19z
YXZlZCA9IDB9fSwgcHJpdiA9IHtwYWQgPSB7MHgwLCAweDAsIDB4MCwgMHgwfSwgCiAgICAgICAg
ICAgIGRhdGEgPSB7cHJldiA9IDB4MCwgY2xlYW51cCA9IDB4MCwgY2FuY2VsdHlwZSA9IDB9fX0K
ICAgICAgICBub3RfZmlyc3RfY2FsbCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBhZ2VzaXpl
X20xID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc3AgPSA8b3B0aW1pemVkIG91dD4KICAgICAg
ICBmcmVlc2l6ZSA9IDxvcHRpbWl6ZWQgb3V0PgojOSAgMHgwMDAwN2Y4ODY2MmY2ZjNkIGluIGNs
b25lICgpCiAgICBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUuUzox
MDkKTm8gbG9jYWxzLgoKVGhyZWFkIDEgKFRocmVhZCAweDdmODg3ODU5ZGE0MCAoTFdQIDMxMzEz
KSk6CiMwICBfZ19sb2dfYWJvcnQgKGJyZWFrcG9pbnQ9MSkgYXQgZ21lc3NhZ2VzLmM6MzE4Ck5v
IGxvY2Fscy4KIzEgIDB4MDAwMDdmODg2YzRkM2QyOSBpbiBnX2xvZ3YgKGxvZ19kb21haW49MHg3
Zjg4NmM4MWQ2MjMgIkdMaWItR09iamVjdCIsIAogICAgbG9nX2xldmVsPUdfTE9HX0xFVkVMX1dB
Uk5JTkcsIAogICAgZm9ybWF0PTB4N2Y4ODZjODFlZTk4ICJpbnZhbGlkIChOVUxMKSBwb2ludGVy
IGluc3RhbmNlIiwgCiAgICBhcmdzPTB4N2ZmZjM4OGQwM2I4KSBhdCBnbWVzc2FnZXMuYzoxMDQx
CiAgICAgICAgZG9tYWluID0gMHgwCiAgICAgICAgZGF0YSA9IDB4MAogICAgICAgIGRlcHRoID0g
MQogICAgICAgIGxvZ19mdW5jID0gMHg3Zjg4NTA5OTJiODMgPHRyYXBfaGFuZGxlcj4KICAgICAg
ICBkb21haW5fZmF0YWxfbWFzayA9IDUKICAgICAgICBtYXNxdWVyYWRlX2ZhdGFsID0gMAogICAg
ICAgIHRlc3RfbGV2ZWwgPSAxOAogICAgICAgIHdhc19mYXRhbCA9IDAKICAgICAgICB3YXNfcmVj
dXJzaW9uID0gMAogICAgICAgIGJ1ZmZlciA9ICJcMDIxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwzNTBcMDAwXDIxNVwwNzBcMzc3XDE3N1wwMDBcMDAwXDAyMVwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDIwXDAwMVwyMTVcMDcwXDM3N1wxNzdcMDAwXDAwMFwwMDJcMDAwXDAwMFww
MDBcMDAwXDAwMFwzNzdcMzc3XDAyMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMGtcMzAzPXhcMjEwXDE3N1wwMDBcMDAwXDMwMFwzMDJc
MDIxXDAwNFwwMDBcMDAwXDAwMFwwMDBcMDAwXDMyMFxceFwyMTBcMTc3XDAwMFwwMDBcZnp9bFwy
MTBcMTc3XDAwMFwwMDBcMDYyXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwzNTB+fWxcMjEw
XDE3N1wwMDBcMDAwL1wzMTM9eFwyMTBcMTc3XDAwMFwwMDBcMDYyXDAwMVwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwzMDBcMjcwfWxcMjEwXDE3N1wwMDBcMDAwXDM0MFwzMjJcXHhcMjEwXDE3N1ww
MDBcMDAwXDA2MFwzMjNcXHhcMjEwXDE3N1wwMDBcMDAwXDA3MFwwMDBcMjE1XDA3MFwzNzdcMTc3
XDAwMFwwMDBcMDY0XDAwMFwyMTVcMDcwXDM3N1wxNzdcMDAwXDAwMGVcMzUyXDMxMGhcMjEwXDE3
N1wwMDBcMDAwXDMwMFwyNzB9bFwyMTBcMTc3XDAwMFwwMDBcMzAwXDMwMFwzMTBoXDIxMFwxNzdc
MDAwXDAwMFwyMzBcMjMzfWxcMjEwXDE3N1wwMDBcMDAwXDA3MFwwMDBcMjE1XDA3MFwzNzdcMTc3
XDAwMFwwMDAiLi4uCiAgICAgICAgbXNnID0gMHg0MTFkZTMwICJpbnZhbGlkIChOVUxMKSBwb2lu
dGVyIGluc3RhbmNlIgogICAgICAgIG1zZ19hbGxvYyA9IDB4NDExZGUzMCAiaW52YWxpZCAoTlVM
TCkgcG9pbnRlciBpbnN0YW5jZSIKICAgICAgICBpID0gNAojMiAgMHgwMDAwN2Y4ODZjNGQzZTFh
IGluIGdfbG9nIChsb2dfZG9tYWluPTB4N2Y4ODZjODFkNjIzICJHTGliLUdPYmplY3QiLCAKICAg
IGxvZ19sZXZlbD1HX0xPR19MRVZFTF9XQVJOSU5HLCAKICAgIGZvcm1hdD0weDdmODg2YzgxZWU5
OCAiaW52YWxpZCAoTlVMTCkgcG9pbnRlciBpbnN0YW5jZSIpCiAgICBhdCBnbWVzc2FnZXMuYzox
MDc5CiAgICAgICAgYXJncyA9IHt7Z3Bfb2Zmc2V0ID0gMjQsIGZwX29mZnNldCA9IDQ4LCAKICAg
ICAgICAgICAgb3ZlcmZsb3dfYXJnX2FyZWEgPSAweDdmZmYzODhkMDQ5MCwgCiAgICAgICAgICAg
IHJlZ19zYXZlX2FyZWEgPSAweDdmZmYzODhkMDNkMH19CiMzICAweDAwMDA3Zjg4NmM4MGUxODkg
aW4gZ190eXBlX2NoZWNrX2luc3RhbmNlICh0eXBlX2luc3RhbmNlPTB4MCkKICAgIGF0IGd0eXBl
LmM6NDE0NgpObyBsb2NhbHMuCiM0ICAweDAwMDA3Zjg4NmM4MDFmNjYgaW4gZ19zaWduYWxfY29u
bmVjdF9kYXRhIChpbnN0YW5jZT0weDAsIAogICAgZGV0YWlsZWRfc2lnbmFsPTB4N2Y4ODc3MDhl
YmU5IDwuTC5zdHI5ND4gImNoaWxkLWFkZGVkIiwgCiAgICBjX2hhbmRsZXI9MHg3Zjg4NzViMzkz
ZDAgPFdlYkNvcmU6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllc0NhbGxiYWNrKF9Hc3RDaGlsZFBy
b3h5KiwgX0dPYmplY3QqLCBjaGFyKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKik+LCAKICAgIGRhdGE9MHg3Zjg3YzBjOWE3NDAsIGRlc3Ryb3lfZGF0YT0weDAsIGNvbm5l
Y3RfZmxhZ3M9KHVua25vd246IDApKQogICAgYXQgZ3NpZ25hbC5jOjI0MTEKICAgICAgICBzaWdu
YWxfaWQgPSAzMjY0NwogICAgICAgIGhhbmRsZXJfc2VxX25vID0gMAogICAgICAgIGRldGFpbCA9
IDAKICAgICAgICBpdHlwZSA9IDAKICAgICAgICBzd2FwcGVkID0gMAogICAgICAgIGFmdGVyID0g
MAogICAgICAgIF9fZnVuY19fID0gImdfc2lnbmFsX2Nvbm5lY3RfZGF0YSIKIzUgIDB4MDAwMDdm
ODg3NWI0M2VlNiBpbiBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0
ZUF1ZGlvU2luawogICAgKHRoaXM9MHg3Zjg3YzBjOWE3NDApCiAgICBhdCAuLi8uLi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcDoxODY0CiAgICAgICAgYXVkaW9TaW5rQmluID0gMHg0MTEzNjIwCiM2ICAweDAw
MDA3Zjg4NzViM2E0MDcgaW4gV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
cmVhdGVHU1RQbGF5QmluICh0aGlzPTB4N2Y4N2MwYzlhNzQwKQogICAgYXQgLi4vLi4vU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHA6MTk2NAogICAgICAgIGJ1cyA9IHttX3B0ciA9IDB4M2NiYjlhMH0KICAgICAg
ICB2aWRlb1NpbmtQYWQgPSB7bV9wdHIgPSAweDF9CiM3ICAweDAwMDA3Zjg4NzViMzk3NWQgaW4g
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2FkICgKICAgIHRoaXM9MHg3
Zjg3YzBjOWE3NDAsIHVybFN0cmluZz0uLi4pCiAgICBhdCAuLi8uLi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cDoyODcKICAgICAgICB1cmwgPSB7bV9zdHJpbmcgPSB7bV9pbXBsID0ge21fcHRyID0gMHg3Zjg3
YzE1NjhhOTh9fSwgCiAgICAgICAgICBtX2lzVmFsaWQgPSB0cnVlLCBtX3Byb3RvY29sSXNJbkhU
VFBGYW1pbHkgPSB0cnVlLCBtX3NjaGVtZUVuZCA9IDUsIAogICAgICAgICAgbV91c2VyU3RhcnQg
PSA4LCBtX3VzZXJFbmQgPSA4LCBtX3Bhc3N3b3JkRW5kID0gOCwgbV9ob3N0RW5kID0gNDUsIAog
ICAgICAgICAgbV9wb3J0RW5kID0gNDUsIG1fcGF0aEFmdGVyTGFzdFNsYXNoID0gNDYsIG1fcGF0
aEVuZCA9IDU5LCAKICAgICAgICAgIG1fcXVlcnlFbmQgPSA4ODMsIG1fZnJhZ21lbnRFbmQgPSA4
ODN9CiAgICAgICAgY2xlYW5VUkwgPSB7bV9pbXBsID0ge21fcHRyID0gMHg3Zjg3YzE1NjhhOTh9
fQojOCAgMHgwMDAwN2Y4ODc1M2FkZmRjIGluIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkV2l0
aE5leHRNZWRpYUVuZ2luZSAoCiAgICB0aGlzPTB4N2Y4N2MxYjVhM2EwLCBjdXJyZW50PTB4MCkK
ICAgIGF0IC4uLy4uL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcDo0MjkKICAgICAgICBlbmdpbmUgPSAweDdmODg0ODI1MGMwMAojOSAgMHgwMDAwN2Y4ODc1
M2FkYTczIGluIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkICh0aGlzPTB4N2Y4N2MxYjVhM2Ew
LCAKICAgIHVybD0uLi4sIGNvbnRlbnRUeXBlPS4uLiwga2V5U3lzdGVtPS4uLikKICAgIGF0IC4u
Ly4uL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDozNDEK
Tm8gbG9jYWxzLgojMTAgMHgwMDAwN2Y4ODc0ZDVjZGI1IGluIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmxvYWRSZXNvdXJjZSAoCiAgICB0aGlzPTB4N2Y4N2M4ZDkzYjAwLCBpbml0aWFsVVJM
PS4uLiwgY29udGVudFR5cGU9Li4uLCBrZXlTeXN0ZW09Li4uKQogICAgYXQgLi4vLi4vU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoxMjAyCiAgICAgICAgZnJhbWUgPSAw
eDdmODg0OTdmMDAwMAogICAgICAgIHBhZ2UgPSAweDdmODg0ODAxMmQ4MAogICAgICAgIHVybCA9
IHttX3N0cmluZyA9IHttX2ltcGwgPSB7bV9wdHIgPSAweDdmODdjMTU2OGE5OH19LCAKICAgICAg
ICAgIG1faXNWYWxpZCA9IHRydWUsIG1fcHJvdG9jb2xJc0luSFRUUEZhbWlseSA9IHRydWUsIG1f
c2NoZW1lRW5kID0gNSwgCiAgICAgICAgICBtX3VzZXJTdGFydCA9IDgsIG1fdXNlckVuZCA9IDgs
IG1fcGFzc3dvcmRFbmQgPSA4LCBtX2hvc3RFbmQgPSA0NSwgCiAgICAgICAgICBtX3BvcnRFbmQg
PSA0NSwgbV9wYXRoQWZ0ZXJMYXN0U2xhc2ggPSA0NiwgbV9wYXRoRW5kID0gNTksIAogICAgICAg
ICAgbV9xdWVyeUVuZCA9IDg4MywgbV9mcmFnbWVudEVuZCA9IDg4M30KICAgICAgICBjYWNoZUhv
c3QgPSAweDdmODg0OWY2YTkwMAogICAgICAgIHJlc291cmNlID0gMHgwCiAgICAgICAgcHJpdmF0
ZU1vZGUgPSBmYWxzZQojMTEgMHgwMDAwN2Y4ODc0ZDViYjUxIGluIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UgKAogICAgdGhpcz0weDdmODdjOGQ5M2IwMCkg
YXQgLi4vLi4vU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoxMDQwCiAg
ICAgICAgbWVkaWFVUkwgPSB7bV9zdHJpbmcgPSB7bV9pbXBsID0ge21fcHRyID0gMHg3Zjg3YzE1
NjhhOTh9fSwgCiAgICAgICAgICBtX2lzVmFsaWQgPSB0cnVlLCBtX3Byb3RvY29sSXNJbkhUVFBG
YW1pbHkgPSB0cnVlLCBtX3NjaGVtZUVuZCA9IDUsIAogICAgICAgICAgbV91c2VyU3RhcnQgPSA4
LCBtX3VzZXJFbmQgPSA4LCBtX3Bhc3N3b3JkRW5kID0gOCwgbV9ob3N0RW5kID0gNDUsIAogICAg
ICAgICAgbV9wb3J0RW5kID0gNDUsIG1fcGF0aEFmdGVyTGFzdFNsYXNoID0gNDYsIG1fcGF0aEVu
ZCA9IDU5LCAKICAgICAgICAgIG1fcXVlcnlFbmQgPSA4ODMsIG1fZnJhZ21lbnRFbmQgPSA4ODN9
CiAgICAgICAgY29udGVudFR5cGUgPSB7bV90eXBlID0ge21faW1wbCA9IHttX3B0ciA9IDB4MH19
fQogICAgICAgIG1vZGUgPSBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdHRyaWJ1dGUKIzEy
IDB4MDAwMDdmODg3NGQ1ODRkOCBpbiBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkSW50
ZXJuYWwgKAogICAgdGhpcz0weDdmODdjOGQ5M2IwMCkgYXQgLi4vLi4vU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDo5NzkKTm8gbG9jYWxzLgojMTMgMHgwMDAwN2Y4ODc0
ZDU4Y2NiIGluIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQgKHRoaXM9MHg3Zjg3Yzhk
OTNiMDApCiAgICBhdCAuLi8uLi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwOjgxNQogICAgICAgIHByb3RlY3QgPSB7bV9wdHIgPSAweDdmODdjOGQ5M2IwMH0KIzE0IDB4
MDAwMDdmODg3NWU1ZDBjOCBpbiBXZWJDb3JlOjpqc0hUTUxNZWRpYUVsZW1lbnRQcm90b3R5cGVG
dW5jdGlvbkxvYWQgKAogICAgZXhlYz0weDdmZmYzODhkMTE4MCkgYXQgRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQuY3BwOjE0MDUKICAgICAgICB0aGlzVmFsdWUgPSB7
c3RhdGljIG51bWJlck9mSW50NTJCaXRzID0gNTIsIAogICAgICAgICAgc3RhdGljIG5vdEludDUy
ID0gNDUwMzU5OTYyNzM3MDQ5Niwgc3RhdGljIGludDUyU2hpZnRBbW91bnQgPSAxMiwgCiAgICAg
ICAgICB1ID0ge2FzSW50NjQgPSAxNDAyMjExNjcxODgwODAsIHB0ciA9IDB4N2Y4N2M4ZGMzODcw
LCBhc0JpdHMgPSB7CiAgICAgICAgICAgICAgcGF5bG9hZCA9IC05MjUwOTE3MjgsIHRhZyA9IDMy
NjQ3fX19CiAgICAgICAgY2FzdGVkVGhpcyA9IDB4N2Y4N2M4ZGMzODcwCiAgICAgICAgaW1wbCA9
IAogICAgQDB4N2Y4N2M4ZDkzYjAwOiB7PFdlYkNvcmU6OkhUTUxFbGVtZW50PiA9IHs8V2ViQ29y
ZTo6U3R5bGVkRWxlbWVudD4gPSB7PFdlYkNvcmU6OkVsZW1lbnQ+ID0gezxXZWJDb3JlOjpDb250
YWluZXJOb2RlPiA9IHs8V2ViQ29yZTo6Tm9kZT4gPSB7PFdlYkNvcmU6OkV2ZW50VGFyZ2V0PiA9
IHsKICAgICAgICAgICAgICAgICAgICAgIF92cHRyJEV2ZW50VGFyZ2V0ID0gMHg3Zjg4NzgyODhl
MjAgPHZ0YWJsZSBmb3IgV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCsxNj59LCA8V2ViQ29yZTo6
U2NyaXB0V3JhcHBhYmxlPiA9IHttX3dyYXBwZXIgPSB7bV9pbXBsID0gMHg3Zjg3Yzk0ZjczZDh9
fSwgCiAgICAgICAgICAgICAgICAgICAgbV9kZWxldGlvbkhhc0JlZ3VuID0gZmFsc2UsIAogICAg
ICAgICAgICAgICAgICAgIG1faW5SZW1vdmVkTGFzdFJlZkZ1bmN0aW9uID0gZmFsc2UsIAogICAg
ICAgICAgICAgICAgICAgIG1fYWRvcHRpb25Jc1JlcXVpcmVkID0gZmFsc2UsIG1fcmVmQ291bnQg
PSAzLCAKICAgICAgICAgICAgICAgICAgICBtX25vZGVGbGFncyA9IDMxODkwMjIsIG1fcGFyZW50
Tm9kZSA9IDB4N2Y4N2M5YmU5NjE4LCAKICAgICAgICAgICAgICAgICAgICBtX3RyZWVTY29wZSA9
IDB4N2Y4ODQ4MDgxZWQ4LCBtX3ByZXZpb3VzID0gMHgwLCAKICAgICAgICAgICAgICAgICAgICBt
X25leHQgPSAweDdmODdjOWJlOTY4MCwgbV9kYXRhID0ge21fcmVuZGVyZXIgPSAKICAgIDB4N2Y4
N2M5YTg5NzgwLCBtX3JhcmVEYXRhID0gMHg3Zjg3YzlhODk3ODB9fSwgbV9maXJzdENoaWxkID0g
MHgwLCAKICAgICAgICAgICAgICAgICAgbV9sYXN0Q2hpbGQgPSAweDB9LCBtX3RhZ05hbWUgPSB7
bV9pbXBsID0gewogICAgICAgICAgICAgICAgICAgIG1fcHRyID0gMHg3Zjg4NDlmZGVhZTB9fSwg
bV9lbGVtZW50RGF0YSA9IHsKICAgICAgICAgICAgICAgICAgbV9wdHIgPSAweDdmODdjOWE5M2Iw
MH19LCA8Tm8gZGF0YSBmaWVsZHM+fSwgPE5vIGRhdGEgZmllbGRzPn0sIDxXZWJDb3JlOjpNZWRp
YVBsYXllckNsaWVudD4gPSB7CiAgICAgICAgICAgIF92cHRyJE1lZGlhUGxheWVyQ2xpZW50ID0g
MHg3Zjg4NzgyODk2YTAgPHZ0YWJsZSBmb3IgV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCsyMTky
Pn0sIDxXZWJDb3JlOjpNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudD4gPSB7CiAgICAgICAg
ICAgIF92cHRyJE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50ID0gMHg3Zjg4NzgyODk4NDAg
PHZ0YWJsZSBmb3IgV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCsyNjA4Pn0sIDxXZWJDb3JlOjpN
ZWRpYUNhblN0YXJ0TGlzdGVuZXI+ID0gewogICAgICAgICAgICBfdnB0ciRNZWRpYUNhblN0YXJ0
TGlzdGVuZXIgPSAweDdmODg3ODI4OTg3MCA8dnRhYmxlIGZvciBXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50KzI2NTY+fSwgPFdlYkNvcmU6OkFjdGl2ZURPTU9iamVjdD4gPSB7PFdlYkNvcmU6OkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyPiA9IHsKICAgICAgICAgICAgICBfdnB0ciRDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlciA9IDB4N2Y4ODc4Mjg5ODk4IDx2dGFibGUgZm9yIFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQrMjY5Nj4sIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IDB4N2Y4
ODQ4MDgxZjIwfSwgCiAgICAgICAgICAgIG1fcGVuZGluZ0FjdGl2aXR5Q291bnQgPSAwLCAKICAg
ICAgICAgICAgbV9zdXNwZW5kSWZOZWVkZWRXYXNDYWxsZWQgPSB0cnVlfSwgPFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbGxlckludGVyZmFjZT4gPSB7CiAgICAgICAgICAgIF92cHRyJE1lZGlhQ29udHJv
bGxlckludGVyZmFjZSA9IDB4N2Y4ODc4Mjg5OGYwIDx2dGFibGUgZm9yIFdlYkNvcmU6OkhUTUxW
aWRlb0VsZW1lbnQrMjc4ND59LCA8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ2xpZW50PiA9IHsKICAg
ICAgICAgICAgX3ZwdHIkTWVkaWFTZXNzaW9uQ2xpZW50ID0gMHg3Zjg4NzgyODlhMjggPHZ0YWJs
ZSBmb3IgV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCszMDk2Pn0sIDxXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyPiA9IHsKICAgICAgICAgICAgX3ZwdHIkTWVkaWFQcm9kdWNlciA9IDB4N2Y4ODc4Mjg5
YWQ4IDx2dGFibGUgZm9yIFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQrMzI3Mj59LCA8V2ViQ29y
ZTo6QXVkaW9UcmFja0NsaWVudD4gPSB7CiAgICAgICAgICAgIF92cHRyJEF1ZGlvVHJhY2tDbGll
bnQgPSAweDdmODg3ODI4OWIwOCA8dnRhYmxlIGZvciBXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
KzMzMjA+fSwgPFdlYkNvcmU6OlRleHRUcmFja0NsaWVudD4gPSB7CiAgICAgICAgICAgIF92cHRy
JFRleHRUcmFja0NsaWVudCA9IDB4N2Y4ODc4Mjg5YjMwIDx2dGFibGUgZm9yIFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQrMzM2MD59LCA8V2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudD4gPSB7CiAg
ICAgICAgICAgIF92cHRyJFZpZGVvVHJhY2tDbGllbnQgPSAweDdmODg3ODI4OWI4MCA8dnRhYmxl
IGZvciBXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50KzM0NDA+fSwgbV9sb2FkVGltZXIgPSB7PFdl
YkNvcmU6OlRpbWVyQmFzZT4gPSB7CiAgICAgICAgICAgICAgX3ZwdHIkVGltZXJCYXNlID0gMHg3
Zjg4NzgyMzZlMDAgPHZ0YWJsZSBmb3IgV2ViQ29yZTo6VGltZXIrMTY+LCAKICAgICAgICAgICAg
ICBtX25leHRGaXJlVGltZSA9IDAsIG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gMCwgCiAgICAg
ICAgICAgICAgbV9yZXBlYXRJbnRlcnZhbCA9IDAsIG1faGVhcEluZGV4ID0gLTEsIAogICAgICAg
ICAgICAgIG1faGVhcEluc2VydGlvbk9yZGVyID0gODA0LCAKICAgICAgICAgICAgICBtX2NhY2hl
ZFRocmVhZEdsb2JhbFRpbWVySGVhcCA9IDB4N2Y4ODQ5ZmZmMzk4LCBtX3RocmVhZCA9IDEsIAog
ICAgICAgICAgICAgIG1fd2FzRGVsZXRlZCA9IGZhbHNlfSwgCiAgICAgICAgICAgIG1fZnVuY3Rp
b24gPSB7PHN0ZDo6X01heWJlX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbjx2b2lkPj4gPSB7PE5v
IGRhdGEgZmllbGRzPn0sIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlPiA9IHtzdGF0aWMgX01fbWF4X3Np
emUgPSAxNiwgCiAgICAgICAgICAgICAgICBzdGF0aWMgX01fbWF4X2FsaWduID0gOCwgX01fZnVu
Y3RvciA9IHtfTV91bnVzZWQgPSB7CiAgICAgICAgICAgICAgICAgICAgX01fb2JqZWN0ID0gMHgz
Y2YwOTIwLCBfTV9jb25zdF9vYmplY3QgPSAweDNjZjA5MjAsIAogICAgICAgICAgICAgICAgICAg
IF9NX2Z1bmN0aW9uX3BvaW50ZXIgPSAweDNjZjA5MjAsIAogICAgICAgICAgICAgICAgICAgIF9N
X21lbWJlcl9wb2ludGVyID0gPGVycm9yIHJlYWRpbmcgdmFyaWFibGU+LCAKICAgICAgICAgICAg
ICAgICAgX01fcG9kX2RhdGEgPSAiIFx0XDMxN1wwMDNcMDAwXDAwMFwwMDBcMDAwXDMyMFwzNjVc
MjcyyYdcMTc3XDAwMCJ9LCAKICAgICAgICAgICAgICAgIF9NX21hbmFnZXIgPSAweDdmODg3NGQ4
MzM5MCA8c3RkOjpfRnVuY3Rpb25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxzdGQ6Ol9CaW5kPHN0ZDo6
X01lbV9mbjx2b2lkIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjoqKSgpPiAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudCopPiA+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpf
QW55X2RhdGEgY29uc3QmLCBzdGQ6Ol9NYW5hZ2VyX29wZXJhdGlvbik+fSwgCiAgICAgICAgICAg
ICAgX01faW52b2tlciA9IDB4N2Y4ODc0ZDgzMzYwIDxzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZv
aWQgKCksIHN0ZDo6X0JpbmQ8c3RkOjpfTWVtX2ZuPHZvaWQgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OiopKCk+IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Kik+ID46Ol9NX2ludm9rZShz
dGQ6Ol9BbnlfZGF0YSBjb25zdCYpPn19LCAKICAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRpbWVy
ID0gezxXZWJDb3JlOjpUaW1lckJhc2U+ID0gewogICAgICAgICAgICAgIF92cHRyJFRpbWVyQmFz
ZSA9IDB4N2Y4ODc4MjM2ZTAwIDx2dGFibGUgZm9yIFdlYkNvcmU6OlRpbWVyKzE2PiwgCiAgICAg
ICAgICAgICAgbV9uZXh0RmlyZVRpbWUgPSA3NjkyLjE3NTUzOTAwMDAwMDgsIAogICAgICAgICAg
ICAgIG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gNzY5Mi4xNzU1MzkwMDAwMDA4LCAKICAgICAg
ICAgICAgICBtX3JlcGVhdEludGVydmFsID0gMC4zNDk5OTk5OTk5OTk5OTk5OCwgbV9oZWFwSW5k
ZXggPSA2NCwgCiAgICAgICAgICAgICAgbV9oZWFwSW5zZXJ0aW9uT3JkZXIgPSA4MDYsIAogICAg
ICAgICAgICAgIG1fY2FjaGVkVGhyZWFkR2xvYmFsVGltZXJIZWFwID0gMHg3Zjg4NDlmZmYzOTgs
IG1fdGhyZWFkID0gMSwgCiAgICAgICAgICAgICAgbV93YXNEZWxldGVkID0gZmFsc2V9LCAKICAg
ICAgICAgICAgbV9mdW5jdGlvbiA9IHs8c3RkOjpfTWF5YmVfdW5hcnlfb3JfYmluYXJ5X2Z1bmN0
aW9uPHZvaWQ+PiA9IHs8Tm8gZGF0YSBmaWVsZHM+fSwgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U+ID0g
e3N0YXRpYyBfTV9tYXhfc2l6ZSA9IDE2LCAKICAgICAgICAgICAgICAgIHN0YXRpYyBfTV9tYXhf
YWxpZ24gPSA4LCBfTV9mdW5jdG9yID0ge19NX3VudXNlZCA9IHsKICAgICAgICAgICAgICAgICAg
ICBfTV9vYmplY3QgPSAweDNjZjA5NDAsIF9NX2NvbnN0X29iamVjdCA9IDB4M2NmMDk0MCwgCiAg
ICAgICAgICAgICAgICAgICAgX01fZnVuY3Rpb25fcG9pbnRlciA9IDB4M2NmMDk0MCwgCiAgICAg
ICAgICAgICAgICAgICAgX01fbWVtYmVyX3BvaW50ZXIgPSA8ZXJyb3IgcmVhZGluZyB2YXJpYWJs
ZT4sIAogICAgICAgICAgICAgICAgICBfTV9wb2RfZGF0YSA9ICJAXHRcMzE3XDAwM1wwMDBcMDAw
XDAwMFwwMDBcMjUwXDMwMFwyNzDJh1wxNzdcMDAwIn0sIAogICAgICAgICAgICAgICAgX01fbWFu
YWdlciA9IDB4N2Y4ODc0ZDgzMzkwIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFzZV9tYW5hZ2Vy
PHN0ZDo6X0JpbmQ8c3RkOjpfTWVtX2ZuPHZvaWQgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OiopKCk+IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Kik+ID46Ol9NX21hbmFnZXIoc3RkOjpf
QW55X2RhdGEmLCBzdGQ6Ol9BbnlfZGF0YSBjb25zdCYsIHN0ZDo6X01hbmFnZXJfb3BlcmF0aW9u
KT59LCAKICAgICAgICAgICAgICBfTV9pbnZva2VyID0gMHg3Zjg4NzRkODMzNjAgPHN0ZDo6X0Z1
bmN0aW9uX2hhbmRsZXI8dm9pZCAoKSwgc3RkOjpfQmluZDxzdGQ6Ol9NZW1fZm48dm9pZCAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6KikoKT4gKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQq
KT4gPjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0Jik+fX0sIAogICAgICAgICAgbV9w
bGF5YmFja1Byb2dyZXNzVGltZXIgPSB7PFdlYkNvcmU6OlRpbWVyQmFzZT4gPSB7CiAgICAgICAg
ICAgICAgX3ZwdHIkVGltZXJCYXNlID0gMHg3Zjg4NzgyMzZlMDAgPHZ0YWJsZSBmb3IgV2ViQ29y
ZTo6VGltZXIrMTY+LCAKICAgICAgICAgICAgICBtX25leHRGaXJlVGltZSA9IDAsIG1fdW5hbGln
bmVkTmV4dEZpcmVUaW1lID0gMCwgCiAgICAgICAgICAgICAgbV9yZXBlYXRJbnRlcnZhbCA9IDAs
IG1faGVhcEluZGV4ID0gLTEsIAogICAgICAgICAgICAgIG1faGVhcEluc2VydGlvbk9yZGVyID0g
MzI2NDcsIAogICAgICAgICAgICAgIG1fY2FjaGVkVGhyZWFkR2xvYmFsVGltZXJIZWFwID0gMHg3
Zjg4NDlmZmYzOTgsIG1fdGhyZWFkID0gMSwgCiAgICAgICAgICAgICAgbV93YXNEZWxldGVkID0g
ZmFsc2V9LCAKICAgICAgICAgICAgbV9mdW5jdGlvbiA9IHs8c3RkOjpfTWF5YmVfdW5hcnlfb3Jf
YmluYXJ5X2Z1bmN0aW9uPHZvaWQ+PiA9IHs8Tm8gZGF0YSBmaWVsZHM+fSwgPHN0ZDo6X0Z1bmN0
aW9uX2Jhc2U+ID0ge3N0YXRpYyBfTV9tYXhfc2l6ZSA9IDE2LCAKICAgICAgICAgICAgICAgIHN0
YXRpYyBfTV9tYXhfYWxpZ24gPSA4LCBfTV9mdW5jdG9yID0ge19NX3VudXNlZCA9IHsKICAgICAg
ICAgICAgICAgICAgICBfTV9vYmplY3QgPSAweDNjZjA5NjAsIF9NX2NvbnN0X29iamVjdCA9IDB4
M2NmMDk2MCwgCiAgICAgICAgICAgICAgICAgICAgX01fZnVuY3Rpb25fcG9pbnRlciA9IDB4M2Nm
MDk2MCwgCiAgICAgICAgICAgICAgICAgICAgX01fbWVtYmVyX3BvaW50ZXIgPSA8ZXJyb3IgcmVh
ZGluZyB2YXJpYWJsZT4sIAogICAgICAgICAgICAgICAgICBfTV9wb2RfZGF0YSA9ICJgXHRcMzE3
XDAwM1wwMDBcMDAwXDAwMFwwMDBcMjEwVVwyNzDJh1wxNzdcMDAwIn0sIAogICAgICAgICAgICAg
ICAgX01fbWFuYWdlciA9IDB4N2Y4ODc0ZDgzMzkwIDxzdGQ6Ol9GdW5jdGlvbl9iYXNlOjpfQmFz
ZV9tYW5hZ2VyPHN0ZDo6X0JpbmQ8c3RkOjpfTWVtX2ZuPHZvaWQgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OiopKCk+IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Kik+ID46Ol9NX21hbmFn
ZXIoc3RkOjpfQW55X2RhdGEmLCBzdGQ6Ol9BbnlfZGF0YSBjb25zdCYsIHN0ZDo6X01hbmFnZXJf
b3BlcmF0aW9uKT59LCAKICAgICAgICAgICAgICBfTV9pbnZva2VyID0gMHg3Zjg4NzRkODMzNjAg
PHN0ZDo6X0Z1bmN0aW9uX2hhbmRsZXI8dm9pZCAoKSwgc3RkOjpfQmluZDxzdGQ6Ol9NZW1fZm48
dm9pZCAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6KikoKT4gKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQqKT4gPjo6X01faW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0Jik+fX0sIG1fc2Nh
blRpbWVyID0gezxXZWJDb3JlOjpUaW1lckJhc2U+ID0gewogICAgICAgICAgICAgIF92cHRyJFRp
bWVyQmFzZSA9IDB4N2Y4ODc4MjM2ZTAwIDx2dGFibGUgZm9yIFdlYkNvcmU6OlRpbWVyKzE2Piwg
CiAgICAgICAgICAgICAgbV9uZXh0RmlyZVRpbWUgPSAwLCBtX3VuYWxpZ25lZE5leHRGaXJlVGlt
ZSA9IDAsIAogICAgICAgICAgICAgIG1fcmVwZWF0SW50ZXJ2YWwgPSAwLCBtX2hlYXBJbmRleCA9
IC0xLCAKICAgICAgICAgICAgICBtX2hlYXBJbnNlcnRpb25PcmRlciA9IDMyNjQ3LCAKICAgICAg
ICAgICAgICBtX2NhY2hlZFRocmVhZEdsb2JhbFRpbWVySGVhcCA9IDB4MCwgbV90aHJlYWQgPSAx
LCAKICAgICAgICAgICAgICBtX3dhc0RlbGV0ZWQgPSBmYWxzZX0sIAogICAgICAgICAgICBtX2Z1
bmN0aW9uID0gezxzdGQ6Ol9NYXliZV91bmFyeV9vcl9iaW5hcnlfZnVuY3Rpb248dm9pZD4+ID0g
ezxObyBkYXRhIGZpZWxkcz59LCA8c3RkOjpfRnVuY3Rpb25fYmFzZT4gPSB7c3RhdGljIF9NX21h
eF9zaXplID0gMTYsIAogICAgICAgICAgICAgICAgc3RhdGljIF9NX21heF9hbGlnbiA9IDgsIF9N
X2Z1bmN0b3IgPSB7X01fdW51c2VkID0gewogICAgICAgICAgICAgICAgICAgIF9NX29iamVjdCA9
IDB4M2NmMDk4MCwgX01fY29uc3Rfb2JqZWN0ID0gMHgzY2YwOTgwLCAKICAgICAgICAgICAgICAg
ICAgICBfTV9mdW5jdGlvbl9wb2ludGVyID0gMHgzY2YwOTgwLCAKICAgICAgICAgICAgICAgICAg
ICBfTV9tZW1iZXJfcG9pbnRlciA9IDxlcnJvciByZWFkaW5nIHZhcmlhYmxlPiwgCiAgICAgICAg
ICAgICAgICAgIF9NX3BvZF9kYXRhID0gIlwyMDBcdFwzMTdcMDAzXDAwMFwwMDBcMDAwXDAwMFwz
NjBcMzYwXDMzMcmHXDE3N1wwMDAifSwgCiAgICAgICAgICAgICAgICBfTV9tYW5hZ2VyID0gMHg3
Zjg4NzRkODMzOTAgPHN0ZDo6X0Z1bmN0aW9uX2Jhc2U6Ol9CYXNlX21hbmFnZXI8c3RkOjpfQmlu
ZDxzdGQ6Ol9NZW1fZm48dm9pZCAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6KikoKT4gKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQqKT4gPjo6X01fbWFuYWdlcihzdGQ6Ol9BbnlfZGF0YSYs
IHN0ZDo6X0FueV9kYXRhIGNvbnN0Jiwgc3RkOjpfTWFuYWdlcl9vcGVyYXRpb24pPn0sIAogICAg
ICAgICAgICAgIF9NX2ludm9rZXIgPSAweDdmODg3NGQ4MzM2MCA8c3RkOjpfRnVuY3Rpb25faGFu
ZGxlcjx2b2lkICgpLCBzdGQ6Ol9CaW5kPHN0ZDo6X01lbV9mbjx2b2lkIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjoqKSgpPiAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCopPiA+OjpfTV9p
bnZva2Uoc3RkOjpfQW55X2RhdGEgY29uc3QmKT59fSwgbV9zZWVrVGltZXIgPSB7PFdlYkNvcmU6
OlRpbWVyQmFzZT4gPSB7CiAgICAgICAgICAgICAgX3ZwdHIkVGltZXJCYXNlID0gMHg3Zjg4Nzgy
MzZlMDAgPHZ0YWJsZSBmb3IgV2ViQ29yZTo6VGltZXIrMTY+LCAKICAgICAgICAgICAgICBtX25l
eHRGaXJlVGltZSA9IDAsIG1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gMCwgCiAgICAgICAgICAg
ICAgbV9yZXBlYXRJbnRlcnZhbCA9IDAsIG1faGVhcEluZGV4ID0gLTEsIAogICAgICAgICAgICAg
IG1faGVhcEluc2VydGlvbk9yZGVyID0gMzI2NDcsIAogICAgICAgICAgICAgIG1fY2FjaGVkVGhy
ZWFkR2xvYmFsVGltZXJIZWFwID0gMHgwLCBtX3RocmVhZCA9IDEsIAogICAgICAgICAgICAgIG1f
d2FzRGVsZXRlZCA9IGZhbHNlfSwgCiAgICAgICAgICAgIG1fZnVuY3Rpb24gPSB7PHN0ZDo6X01h
eWJlX3VuYXJ5X29yX2JpbmFyeV9mdW5jdGlvbjx2b2lkPj4gPSB7PE5vIGRhdGEgZmllbGRzPn0s
IDxzdGQ6Ol9GdW5jdGlvbl9iYXNlPiA9IHtzdGF0aWMgX01fbWF4X3NpemUgPSAxNiwgCiAgICAg
ICAgICAgICAgICBzdGF0aWMgX01fbWF4X2FsaWduID0gOCwgX01fZnVuY3RvciA9IHtfTV91bnVz
ZWQgPSB7CiAgICAgICAgICAgICAgICAgICAgX01fb2JqZWN0ID0gMHgzY2YwOWEwLCBfTV9jb25z
dF9vYmplY3QgPSAweDNjZjA5YTAsIAogICAgICAgICAgICAgICAgICAgIF9NX2Z1bmN0aW9uX3Bv
aW50ZXIgPSAweDNjZjA5YTAsIAogICAgICAgICAgICAgICAgICAgIF9NX21lbWJlcl9wb2ludGVy
ID0gPGVycm9yIHJlYWRpbmcgdmFyaWFibGU+LCAKICAgICAgICAgICAgICAgICAgX01fcG9kX2Rh
dGEgPSAiXDI0MFx0XDMxN1wwMDNcMDAwXDAwMFwwMDBcMDAwKFtcMjcwyYdcMTc3XDAwMCJ9LCAK
ICAgICAgICAgICAgICAgIF9NX21hbmFnZXIgPSAweDdmODg3NGQ4MzM5MCA8c3RkOjpfRnVuY3Rp
b25fYmFzZTo6X0Jhc2VfbWFuYWdlcjxzdGQ6Ol9CaW5kPHN0ZDo6X01lbV9mbjx2b2lkIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjoqKSgpPiAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCop
PiA+OjpfTV9tYW5hZ2VyKHN0ZDo6X0FueV9kYXRhJiwgc3RkOjpfQW55X2RhdGEgY29uc3QmLCBz
dGQ6Ol9NYW5hZ2VyX29wZXJhdGlvbik+fSwgCiAgICAgICAgICAgICAgX01faW52b2tlciA9IDB4
N2Y4ODc0ZDgzMzYwIDxzdGQ6Ol9GdW5jdGlvbl9oYW5kbGVyPHZvaWQgKCksIHN0ZDo6X0JpbmQ8
c3RkOjpfTWVtX2ZuPHZvaWQgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OiopKCk+IChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Kik+ID46Ol9NX2ludm9rZShzdGQ6Ol9BbnlfZGF0YSBjb25z
dCYpPn19LCBtX3BsYXllZFRpbWVSYW5nZXMgPSB7CiAgICAgICAgICAgIG1fcHRyID0gMHg3Zjg3
YzFiNTJlZTh9LCBtX2FzeW5jRXZlbnRRdWV1ZSA9IHsKICAgICAgICAgICAgbV9vd25lciA9IEAw
eDdmODdjOGQ5M2IwMCwgbV9wZW5kaW5nRXZlbnRzID0ge21fc3RhcnQgPSAwLCAKICAgICAgICAg
ICAgICBtX2VuZCA9IDIsIAogICAgICAgICAgICAgIG1fYnVmZmVyID0gezxXVEY6OlZlY3RvckJ1
ZmZlckJhc2U8V1RGOjpSZWZQdHI8V2ViQ29yZTo6RXZlbnQ+ID4+ID0ge21fYnVmZmVyID0gMHg3
Zjg3YzFiNTE3ODAsIG1fY2FwYWNpdHkgPSAxNiwgbV9zaXplID0gMH0sIDxObyBkYXRhIGZpZWxk
cz59LCAKICAgICAgICAgICAgICBtX2l0ZXJhdG9ycyA9IDB4MH0sIG1fd2Vha1B0ckZhY3Rvcnkg
PSB7bV9yZWYgPSB7CiAgICAgICAgICAgICAgICBtX3B0ciA9IDB4N2Y4N2MxYjUyZWQwfX0sIG1f
aXNDbG9zZWQgPSBmYWxzZX0sIAogICAgICAgICAgbV9yZXF1ZXN0ZWRQbGF5YmFja1JhdGUgPSAx
LCBtX3JlcG9ydGVkUGxheWJhY2tSYXRlID0gMSwgCiAgICAgICAgICBtX2RlZmF1bHRQbGF5YmFj
a1JhdGUgPSAxLCBtX3dlYmtpdFByZXNlcnZlc1BpdGNoID0gdHJ1ZSwgCiAgICAgICAgICBtX25l
dHdvcmtTdGF0ZSA9IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Ok5FVFdPUktfTE9BRElORywg
CiAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBXZWJDb3JlOjpNZWRpYUNvbnRyb2xsZXJJbnRlcmZh
Y2U6OkhBVkVfTk9USElORywgCiAgICAgICAgICBtX3JlYWR5U3RhdGVNYXhpbXVtID0gV2ViQ29y
ZTo6TWVkaWFDb250cm9sbGVySW50ZXJmYWNlOjpIQVZFX05PVEhJTkcsIG1fY3VycmVudFNyYyA9
IHttX3N0cmluZyA9IHttX2ltcGwgPSB7bV9wdHIgPSAweDdmODdjMTU2OGE5OH19LCAKICAgICAg
ICAgICAgbV9pc1ZhbGlkID0gdHJ1ZSwgbV9wcm90b2NvbElzSW5IVFRQRmFtaWx5ID0gdHJ1ZSwg
CiAgICAgICAgICAgIG1fc2NoZW1lRW5kID0gNSwgbV91c2VyU3RhcnQgPSA4LCBtX3VzZXJFbmQg
PSA4LCAKICAgICAgICAgICAgbV9wYXNzd29yZEVuZCA9IDgsIG1faG9zdEVuZCA9IDQ1LCBtX3Bv
cnRFbmQgPSA0NSwgCiAgICAgICAgICAgIG1fcGF0aEFmdGVyTGFzdFNsYXNoID0gNDYsIG1fcGF0
aEVuZCA9IDU5LCBtX3F1ZXJ5RW5kID0gODgzLCAKICAgICAgICAgICAgbV9mcmFnbWVudEVuZCA9
IDg4M30sIG1fZXJyb3IgPSB7bV9wdHIgPSAweDB9LCAKICAgICAgICAgIG1fcGVuZGluZ1NlZWsg
PSBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6UGVuZGluZ1NlZWs+
IGNvbnRhaW5pbmcgMHgwLCBtX3ZvbHVtZSA9IDEsIG1fdm9sdW1lSW5pdGlhbGl6ZWQgPSBmYWxz
ZSwgbV9sYXN0U2Vla1RpbWUgPSB7CiAgICAgICAgICAgIHN0YXRpYyBEZWZhdWx0VGltZVNjYWxl
ID0gMTAwMDAwMDAsIHN0YXRpYyBNYXhpbXVtVGltZVNjYWxlID0gCiAgICAyMTQ3NDgzNjQ3LCB7
bV90aW1lVmFsdWUgPSAwLCBtX3RpbWVWYWx1ZUFzRG91YmxlID0gMH0sIG1fdGltZVNjYWxlID0g
MSwgCiAgICAgICAgICAgIG1fdGltZUZsYWdzID0gMX0sIG1fcHJldmlvdXNQcm9ncmVzc1RpbWUg
PSA3NjkxLjgyNTUzODAwMDAwMDEsIAogICAgICAgICAgbV9jbG9ja1RpbWVBdExhc3RVcGRhdGVF
dmVudCA9IDAsIG1fbGFzdFRpbWVVcGRhdGVFdmVudE1vdmllVGltZSA9IHsKICAgICAgICAgICAg
c3RhdGljIERlZmF1bHRUaW1lU2NhbGUgPSAxMDAwMDAwMCwgCiAgICAgICAgICAgIHN0YXRpYyBN
YXhpbXVtVGltZVNjYWxlID0gMjE0NzQ4MzY0Nywge21fdGltZVZhbHVlID0gMCwgCiAgICAgICAg
ICAgICAgbV90aW1lVmFsdWVBc0RvdWJsZSA9IDB9LCBtX3RpbWVTY2FsZSA9IDEsIG1fdGltZUZs
YWdzID0gNX0sIAogICAgICAgICAgbV9sb2FkU3RhdGUgPSBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpMb2FkaW5nRnJvbVNyY0F0dHIsIAogICAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9
IHttX3B0ciA9IDB4MH0sIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSB7CiAgICAgICAgICAg
IG1fcHRyID0gMHgwfSwgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlID0gMCwgCiAgICAgICAgICBtX3Bs
YXllciA9IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4gY29udGFpbmluZyAw
eDdmODdjMWI1YTNhMCwgbV9wcmVsb2FkID0gV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OkF1dG8sIAog
ICAgICAgICAgbV9kaXNwbGF5TW9kZSA9IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlVua25v
d24sIAogICAgICAgICAgbV9wcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjayA9IDAsIG1fY2Fj
aGVkVGltZSA9IHsKICAgICAgICAgICAgc3RhdGljIERlZmF1bHRUaW1lU2NhbGUgPSAxMDAwMDAw
MCwgCiAgICAgICAgICAgIHN0YXRpYyBNYXhpbXVtVGltZVNjYWxlID0gMjE0NzQ4MzY0Nywge21f
dGltZVZhbHVlID0gMCwgCiAgICAgICAgICAgICAgbV90aW1lVmFsdWVBc0RvdWJsZSA9IDB9LCBt
X3RpbWVTY2FsZSA9IDEwMDAwMDAwLCAKICAgICAgICAgICAgbV90aW1lRmxhZ3MgPSAzM30sIG1f
Y2xvY2tUaW1lQXRMYXN0Q2FjaGVkVGltZVVwZGF0ZSA9IDAsIAogICAgICAgICAgbV9taW5pbXVt
Q2xvY2tUaW1lVG9VcGRhdGVDYWNoZWRUaW1lID0gMCwgbV9mcmFnbWVudFN0YXJ0VGltZSA9IHsK
ICAgICAgICAgICAgc3RhdGljIERlZmF1bHRUaW1lU2NhbGUgPSAxMDAwMDAwMCwgCiAgICAgICAg
ICAgIHN0YXRpYyBNYXhpbXVtVGltZVNjYWxlID0gMjE0NzQ4MzY0Nywge21fdGltZVZhbHVlID0g
MCwgCiAgICAgICAgICAgICAgbV90aW1lVmFsdWVBc0RvdWJsZSA9IDB9LCBtX3RpbWVTY2FsZSA9
IDEwMDAwMDAwLCAKICAgICAgICAgICAgbV90aW1lRmxhZ3MgPSAxfSwgbV9mcmFnbWVudEVuZFRp
bWUgPSB7CiAgICAgICAgICAgIHN0YXRpYyBEZWZhdWx0VGltZVNjYWxlID0gMTAwMDAwMDAsIAog
ICAgICAgICAgICBzdGF0aWMgTWF4aW11bVRpbWVTY2FsZSA9IDIxNDc0ODM2NDcsIHttX3RpbWVW
YWx1ZSA9IDAsIAogICAgICAgICAgICAgIG1fdGltZVZhbHVlQXNEb3VibGUgPSAwfSwgbV90aW1l
U2NhbGUgPSAxMDAwMDAwMCwgCiAgICAgICAgICAgIG1fdGltZUZsYWdzID0gMX0sIG1fcGVuZGlu
Z0FjdGlvbkZsYWdzID0gMCwgCiAgICAgICAgICBtX2FjdGlvbkFmdGVyU2NhbiA9IFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6Ok5vdGhpbmcsIAogICAgICAgICAgbV9zY2FuVHlwZSA9IFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlNjYW4sIAogICAgICAgICAgbV9zY2FuRGlyZWN0aW9uID0g
V2ViQ29yZTo6TWVkaWFDb250cm9sbGVySW50ZXJmYWNlOjpGb3J3YXJkLCAKICAgICAgICAgIG1f
Zmlyc3RUaW1lUGxheWluZyA9IHRydWUsIG1fcGxheWluZyA9IGZhbHNlLCAKICAgICAgICAgIG1f
aXNXYWl0aW5nVW50aWxNZWRpYUNhblN0YXJ0ID0gZmFsc2UsIAogICAgICAgICAgbV9zaG91bGRE
ZWxheUxvYWRFdmVudCA9IHRydWUsIG1faGF2ZUZpcmVkTG9hZGVkRGF0YSA9IGZhbHNlLCAKICAg
ICAgICAgIG1faW5BY3RpdmVEb2N1bWVudCA9IHRydWUsIG1fYXV0b3BsYXlpbmcgPSB0cnVlLCBt
X211dGVkID0gZmFsc2UsIAogICAgICAgICAgbV9leHBsaWNpdGx5TXV0ZWQgPSB0cnVlLCBtX3Bh
dXNlZCA9IHRydWUsIG1fc2Vla2luZyA9IGZhbHNlLCAKICAgICAgICAgIG1fc2VudFN0YWxsZWRF
dmVudCA9IGZhbHNlLCBtX3NlbnRFbmRFdmVudCA9IGZhbHNlLCAKICAgICAgICAgIG1fcGF1c2Vk
SW50ZXJuYWwgPSBmYWxzZSwgbV9zZW5kUHJvZ3Jlc3NFdmVudHMgPSB0cnVlLCAKICAgICAgICAg
IG1fY2xvc2VkQ2FwdGlvbnNWaXNpYmxlID0gZmFsc2UsIAogICAgICAgICAgbV93ZWJraXRMZWdh
Y3lDbG9zZWRDYXB0aW9uT3ZlcnJpZGUgPSBmYWxzZSwgCiAgICAgICAgICBtX2NvbXBsZXRlbHlM
b2FkZWQgPSBmYWxzZSwgbV9oYXZlUHJlcGFyZWRUb1BsYXkgPSBmYWxzZSwgCiAgICAgICAgICBt
X3BhcnNpbmdJblByb2dyZXNzID0gZmFsc2UsIG1fZWxlbWVudElzSGlkZGVuID0gZmFsc2UsIAog
ICAgICAgICAgbV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IgPSBmYWxzZSwg
CiAgICAgICAgICBtX3RyYWNrc0FyZVJlYWR5ID0gdHJ1ZSwgbV9oYXZlVmlzaWJsZVRleHRUcmFj
ayA9IGZhbHNlLCAKICAgICAgICAgIG1fcHJvY2Vzc2luZ1ByZWZlcmVuY2VDaGFuZ2UgPSBmYWxz
ZSwgbV9zdWJ0aXRsZVRyYWNrTGFuZ3VhZ2UgPSB7CiAgICAgICAgICAgIG1faW1wbCA9IHttX3B0
ciA9IDB4MH19LCBtX2xhc3RUZXh0VHJhY2tVcGRhdGVUaW1lID0gewogICAgICAgICAgICBzdGF0
aWMgRGVmYXVsdFRpbWVTY2FsZSA9IDEwMDAwMDAwLCAKICAgICAgICAgICAgc3RhdGljIE1heGlt
dW1UaW1lU2NhbGUgPSAyMTQ3NDgzNjQ3LCB7bV90aW1lVmFsdWUgPSAtMSwgCiAgICAgICAgICAg
ICAgbV90aW1lVmFsdWVBc0RvdWJsZSA9IC1uYW4oMHhmZmZmZmZmZmZmZmZmKX0sIG1fdGltZVNj
YWxlID0gMSwgCiAgICAgICAgICAgIG1fdGltZUZsYWdzID0gMX0sIAogICAgICAgICAgbV9jYXB0
aW9uRGlzcGxheU1vZGUgPSBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpGb3JjZWRP
bmx5LCAKICAgICAgICAgIG1fYXVkaW9UcmFja3MgPSB7bV9wdHIgPSAweDB9LCBtX3RleHRUcmFj
a3MgPSB7bV9wdHIgPSAweDB9LCAKICAgICAgICAgIG1fdmlkZW9UcmFja3MgPSB7bV9wdHIgPSAw
eDB9LCAKICAgICAgICAgIG1fdGV4dFRyYWNrc1doZW5SZXNvdXJjZVNlbGVjdGlvbkJlZ2FuID0g
ezxXVEY6OlZlY3RvckJ1ZmZlcjxXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0VHJhY2s+LCAwPj4g
PSB7PFdURjo6VmVjdG9yQnVmZmVyQmFzZTxXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0VHJhY2s+
ID4+ID0ge21fYnVmZmVyID0gMHgwLCBtX2NhcGFjaXR5ID0gMCwgCiAgICAgICAgICAgICAgICBt
X3NpemUgPSAwfSwgPE5vIGRhdGEgZmllbGRzPn0sIDxObyBkYXRhIGZpZWxkcz59LCAKICAgICAg
ICAgIG1fY3VlVHJlZSA9IHs8V2ViQ29yZTo6UE9EUmVkQmxhY2tUcmVlPFdlYkNvcmU6OlBPRElu
dGVydmFsPFdURjo6TWVkaWFUaW1lLCBXZWJDb3JlOjpUZXh0VHJhY2tDdWUqPiA+PiA9IHsKICAg
ICAgICAgICAgICBfdnB0ciRQT0RSZWRCbGFja1RyZWUgPSAweDdmODg3ODI3YzI2MCA8dnRhYmxl
IGZvciBXZWJDb3JlOjpQT0RJbnRlcnZhbFRyZWU8V1RGOjpNZWRpYVRpbWUsIFdlYkNvcmU6OlRl
eHRUcmFja0N1ZSo+KzE2PiwgbV9yb290ID0gMHgwLCAKICAgICAgICAgICAgICBtX25lZWRzRnVs
bE9yZGVyaW5nQ29tcGFyaXNvbnMgPSB0cnVlLCAKICAgICAgICAgICAgICBtX3ZlcmJvc2VEZWJ1
Z2dpbmcgPSBmYWxzZX0sIDxObyBkYXRhIGZpZWxkcz59LCAKICAgICAgICAgIG1fY3VycmVudGx5
QWN0aXZlQ3VlcyA9IHs8V1RGOjpWZWN0b3JCdWZmZXI8V2ViQ29yZTo6UE9ESW50ZXJ2YWw8V1RG
OjpNZWRpYVRpbWUsIFdlYkNvcmU6OlRleHRUcmFja0N1ZSo+LCAwPj4gPSB7PFdURjo6VmVjdG9y
QnVmZmVyQmFzZTxXZWJDb3JlOjpQT0RJbnRlcnZhbDxXVEY6Ok1lZGlhVGltZSwgV2ViQ29yZTo6
VGV4dFRyYWNrQ3VlKj4gPj4gPSB7bV9idWZmZXIgPSAweDAsIAogICAgICAgICAgICAgICAgbV9j
YXBhY2l0eSA9IDAsIAogICAgICAgICAgICAgICAgbV9zaXplID0gMH0sIDxObyBkYXRhIGZpZWxk
cz59LCA8Tm8gZGF0YSBmaWVsZHM+fSwgCiAgICAgICAgICBtX2lnbm9yZVRyYWNrRGlzcGxheVVw
ZGF0ZSA9IDAsIG1fYXVkaW9Tb3VyY2VOb2RlID0gMHgwLCAKICAgICAgICAgIG1fbWVkaWFHcm91
cCA9IHttX2ltcGwgPSB7bV9wdHIgPSAweDB9fSwgbV9tZWRpYUNvbnRyb2xsZXIgPSB7CiAgICAg
ICAgICAgIG1fcHRyID0gMHgwfSwgbV9zbGVlcERpc2FibGVyID0gCiAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6RGlzcGxheVNsZWVwRGlzYWJsZXI+IGNvbnRhaW5pbmcgMHgwLCAKICAgICAg
ICAgIG1fbWVkaWFTZXNzaW9uID0gCiAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SFRNTE1l
ZGlhU2Vzc2lvbj4gY29udGFpbmluZyAweDdmODdjOWE5MzI4MCwgCiAgICAgICAgICBtX2FjdGl2
aXR5VG9rZW4gPSB7bV9wdHIgPSB7bV9wdHIgPSAweDB9fSwgCiAgICAgICAgICBtX3JlcG9ydGVk
RXh0cmFNZW1vcnlDb3N0ID0gMCwgbV9tZWRpYUNvbnRyb2xzSG9zdCA9IHttX3B0ciA9IDB4MH0s
IAogICAgICAgICAgbV9pc29sYXRlZFdvcmxkID0ge21fcHRyID0gMHgwfX0KIzE1IDB4MDAwMDdm
ODgwM2ZmZjAyOCBpbiA/PyAoKQpObyBzeW1ib2wgdGFibGUgaW5mbyBhdmFpbGFibGUuCiMxNiAw
eDAwMDA3ZmZmMzg4ZDExZDAgaW4gPz8gKCkKTm8gc3ltYm9sIHRhYmxlIGluZm8gYXZhaWxhYmxl
LgojMTcgMHgwMDAwN2Y4ODZmZWFkM2U0IGluIGxsaW50X2VudHJ5ICgpCiAgIGZyb20gL2hvbWUv
bWNhdGFuemFyby9qaGJ1aWxkL2luc3RhbGwvbGliL2xpYmphdmFzY3JpcHRjb3JlZ3RrLTQuMC5z
by4xOApObyBzeW1ib2wgdGFibGUgaW5mbyBhdmFpbGFibGUuCkJhY2t0cmFjZSBzdG9wcGVkOiBm
cmFtZSBkaWQgbm90IHNhdmUgdGhlIFBDCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256973</attachid>
            <date>2015-07-17 09:27:00 -0700</date>
            <delta_ts>2015-07-19 22:37:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-gst-missing-plugins.diff</filename>
            <type>text/plain</type>
            <size>26613</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MzAxMjhjLi5lY2ViNGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKIDIwMTUtMDctMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHU3RyZWFtZXJdIENyYXNoZXMgZHVyaW5nIHBsdWdpbiBpbnN0YWxsYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBu
ZXcgbWV0aG9kcyB0byBNZWRpYVBsYXllckNsaWVudCBhbmQgQ2hyb21lQ2xpZW50IHRvIHJlcXVl
c3QKKyAgICAgICAgdGhlIEFQSSBsYXllciB0byBzdGFydCB0aGUgaW5zdGFsbGVyIHdoZW4gdGhl
cmUgYXJlIG1pc3NpbmcgbWVkaWEKKyAgICAgICAgcGx1Z2lucy4KKworICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKTogUGFzcworICAgICAgICB0aGUgcmVxdWVz
dCB0byB0aGUgQ2hyb21lQ2xpZW50LgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50
OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcik6CisgICAgICAgIEludmFsaWRhdGUgYW55IHBlbmRpbmcgcmVxdWVzdCB0byBp
bnN0YWxsIG1pc3NpbmcgbWVkaWEgcGx1Z2lucy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZSk6IEluIGNhc2Ugb2YKKyAgICAgICAg
bWlzc2luZyBwbHVnaW5zIG1lc3NhZ2UsIHN0YXJ0IGEgcmVxdWVzdCB0byBpbnN0YWxsIHRoZW0g
aWYKKyAgICAgICAgc3VwcG9ydGVkIGJ5IEdTVC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5n
UGx1Z2luc0NhbGxiYWNrOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnND
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlz
c2luZ1BsdWdpbnNDYWxsYmFjazo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y29tcGxldGUpOgor
CisyMDE1LTA3LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KwogICAgICAgICBbR1RLXSBQYXN0ZSBkYXRhIGlzIHJlbW92ZWQgZnJvbSBjbGlwYm9hcmQgd2hl
biBjbG9zaW5nIGJyb3dzZXIgdGFiCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDQ1NDkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYzcyZDRmNy4uNDM1MDY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC02MDQwLDYgKzYwNDAsMTYgQEAgZG91YmxlIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QKICAgICByZXR1
cm4gcG90ZW50aWFsbHlQbGF5aW5nKCkgPyByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA6IDA7CiB9
CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1ZXN0SW5z
dGFsbE1pc3NpbmdQbHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgTWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQoreworICAgIGlmICgh
ZG9jdW1lbnQoKS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50KCkucGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMo
ZGV0YWlscywgY2FsbGJhY2spOworfQorI2VuZGlmCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCkKIHsKICAg
ICBNZWRpYUVsZW1lbnRTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmljdGlvbnNU
b1JlbW92ZSA9IE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckxvYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNDhkMjU1MC4uY2IyOGM5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTYwNSw2ICs2MDUs
MTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBs
YXliYWNrUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgVmlkZW9GdWxs
c2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3Qgb3ZlcnJpZGUgZmlu
YWwgeyByZXR1cm4gZnVsbHNjcmVlbk1vZGUoKTsgfQogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2lucyhjb25zdCBTdHJpbmcm
LCBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIG92ZXJy
aWRlIGZpbmFsOworI2VuZGlmCisKICAgICB2b2lkIHBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKCk7
CiAgICAgdm9pZCBwcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgpOwogICAgIHZvaWQgcGxheWJhY2tQ
cm9ncmVzc1RpbWVyRmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDQ3
ODZlYzguLmJjOGY1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtOTEsNiAr
OTEsMTAgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBWaWV3cG9ydENvbnN0cmFpbnRz
OwogY2xhc3MgV2lkZ2V0OwogCisjaWYgVVNFKEdTVFJFQU1FUikKK2NsYXNzIE1lZGlhUGxheWVy
UmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOworI2VuZGlmCisKIHN0cnVjdCBE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CiBzdHJ1
Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOwpAQCAtNDQ5LDYgKzQ1MywxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
dWludDY0X3QgLypjb250ZXh0SWQqLywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7
IH0KICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0IFN0cmluZyYgLypkZXRhaWxzKi8sIE1l
ZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJikgeyB9OworI2Vu
ZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBk
ZjBiY2Q4Li4wMDM4MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKQEAgLTE0OCw2ICsxNDgsMTAgQEAgc3RydWN0IE1lZGlhUGxheWVyRmFj
dG9yeTsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiAjZW5kaWYKIAorI2lmIFVTRShH
U1RSRUFNRVIpCitjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnND
YWxsYmFjazsKKyNlbmRpZgorCiBjbGFzcyBNZWRpYVBsYXllckNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJDbGllbnQoKSB7IH0KQEAgLTI3OCw2ICsyODIsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tS
YXRlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXJFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyBy
ZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmU7IH0KICAgICB2
aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IG1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJp
c3RpY3MoKSBjb25zdCB7IHJldHVybiBWZWN0b3I8U3RyaW5nPigpOyB9CisKKyNpZiBVU0UoR1NU
UkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKGNv
bnN0IFN0cmluZyYsIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxi
YWNrJikgeyB9OworI2VuZGlmCiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNs
aWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IGZmYzk0NmUuLjkxZDQ1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQogI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5oIgog
I2VuZGlmCiAKQEAgLTEyMywxMiArMTI0LDYgQEAgc3RhdGljIEdzdEZsb3dSZXR1cm4gbWVkaWFQ
bGF5ZXJQcml2YXRlTmV3VGV4dFNhbXBsZUNhbGxiYWNrKEdPYmplY3QqLCBNZWRpYVBsYXkKIH0K
ICNlbmRpZgogCi1zdGF0aWMgdm9pZCBtZWRpYVBsYXllclByaXZhdGVQbHVnaW5JbnN0YWxsZXJS
ZXN1bHRGdW5jdGlvbihHc3RJbnN0YWxsUGx1Z2luc1JldHVybiByZXN1bHQsIGdwb2ludGVyIHVz
ZXJEYXRhKQotewotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyID0gcmVp
bnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqPih1c2VyRGF0YSk7Ci0g
ICAgcGxheWVyLT5oYW5kbGVQbHVnaW5JbnN0YWxsZXJSZXN1bHQocmVzdWx0KTsKLX0KLQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyhH
T2JqZWN0KiBvYmplY3QpCiB7CiAgICAgaWYgKGdfc3RyY21wMChHX09CSkVDVF9UWVBFX05BTUUo
b2JqZWN0KSwgIkdzdFB1bHNlU2luayIpKQpAQCAtMjE2LDcgKzIxMSw2IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiAgICAgLCBtX2F1ZGlvU291cmNlUHJvdmlkZXIoc3RkOjptYWtlX3VuaXF1ZTxB
dWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyPigpKQogI2VuZGlmCiAgICAgLCBtX3JlcXVlc3Rl
ZFN0YXRlKEdTVF9TVEFURV9WT0lEX1BFTkRJTkcpCi0gICAgLCBtX21pc3NpbmdQbHVnaW5zKGZh
bHNlKQogewogfQogCkBAIC0yNDUsNiArMjM5LDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PGdwb2ludGVyPihzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayksIHRo
aXMpOwogCiAgICAgbV9yZWFkeVRpbWVySGFuZGxlci5jYW5jZWwoKTsKKyAgICBpZiAobV9taXNz
aW5nUGx1Z2luc0NhbGxiYWNrKSB7CisgICAgICAgIG1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjay0+
aW52YWxpZGF0ZSgpOworICAgICAgICBtX21pc3NpbmdQbHVnaW5zQ2FsbGJhY2sgPSBudWxscHRy
OworICAgIH0KIAogICAgIGlmIChtX3BpcGVsaW5lKSB7CiAgICAgICAgIEdSZWZQdHI8R3N0QnVz
PiBidXMgPSBhZG9wdEdSZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlw
ZWxpbmUuZ2V0KCkpKSk7CkBAIC05MzQsNyArOTMyLDcgQEAgZ2Jvb2xlYW4gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAg
Y2FzZSBHU1RfTUVTU0FHRV9FUlJPUjoKICAgICAgICAgaWYgKG1fcmVzZXRQaXBlbGluZSkKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAobV9taXNzaW5nUGx1Z2lucykKKyAgICAgICAg
aWYgKG1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjaykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcu
b3V0UHRyKCkpOwogICAgICAgICBFUlJPUl9NRURJQV9NRVNTQUdFKCJFcnJvciAlZDogJXMgKHVy
bD0lcykiLCBlcnItPmNvZGUsIGVyci0+bWVzc2FnZSwgbV91cmwuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CkBAIC0xMDI5LDExICsxMDI3LDE4IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEdTVF9NRVNTQUdFX0VMRU1FTlQ6CiAgICAgICAgIGlmIChnc3RfaXNf
bWlzc2luZ19wbHVnaW5fbWVzc2FnZShtZXNzYWdlKSkgewotICAgICAgICAgICAgZ2NoYXIqIGRl
dGFpbCA9IGdzdF9taXNzaW5nX3BsdWdpbl9tZXNzYWdlX2dldF9pbnN0YWxsZXJfZGV0YWlsKG1l
c3NhZ2UpOwotICAgICAgICAgICAgZ2NoYXIqIGRldGFpbEFycmF5WzJdID0ge2RldGFpbCwgMH07
Ci0gICAgICAgICAgICBHc3RJbnN0YWxsUGx1Z2luc1JldHVybiByZXN1bHQgPSBnc3RfaW5zdGFs
bF9wbHVnaW5zX2FzeW5jKGRldGFpbEFycmF5LCAwLCBtZWRpYVBsYXllclByaXZhdGVQbHVnaW5J
bnN0YWxsZXJSZXN1bHRGdW5jdGlvbiwgdGhpcyk7Ci0gICAgICAgICAgICBtX21pc3NpbmdQbHVn
aW5zID0gcmVzdWx0ID09IEdTVF9JTlNUQUxMX1BMVUdJTlNfU1RBUlRFRF9PSzsKLSAgICAgICAg
ICAgIGdfZnJlZShkZXRhaWwpOworICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXRhaWwo
Z3N0X21pc3NpbmdfcGx1Z2luX21lc3NhZ2VfZ2V0X2luc3RhbGxlcl9kZXRhaWwobWVzc2FnZSkp
OworICAgICAgICAgICAgaWYgKGdzdF9pbnN0YWxsX3BsdWdpbnNfc3VwcG9ydGVkKCkpIHsKKyAg
ICAgICAgICAgICAgICBtX21pc3NpbmdQbHVnaW5zQ2FsbGJhY2sgPSBNZWRpYVBsYXllclJlcXVl
c3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3JlYXRlKFt0aGlzXSh1aW50MzJfdCBy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9taXNzaW5nUGx1Z2luc0NhbGxiYWNrID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBHU1RfSU5TVEFMTF9Q
TFVHSU5TX1NVQ0NFU1MpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUkVBRFkpOworICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VQaXBlbGluZVN0YXRlKEdTVF9TVEFURV9QQVVTRUQpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIG1fcGxheWVyLT5jbGllbnQoKS5y
ZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKFN0cmluZzo6ZnJvbVVURjgoZGV0YWlsLmdldCgp
KSwgKm1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjayk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIFVTRShHU1RSRUFNRVJfTVBFR1RTKQogICAgICAg
ICBlbHNlIHsKQEAgLTEwNTgsMTUgKzEwNjMsNiBAQCBnYm9vbGVhbiBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICByZXR1
cm4gVFJVRTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVBs
dWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybiByZXN1bHQpCi17Ci0g
ICAgbV9taXNzaW5nUGx1Z2lucyA9IGZhbHNlOwotICAgIGlmIChyZXN1bHQgPT0gR1NUX0lOU1RB
TExfUExVR0lOU19TVUNDRVNTKSB7Ci0gICAgICAgIGNoYW5nZVBpcGVsaW5lU3RhdGUoR1NUX1NU
QVRFX1JFQURZKTsKLSAgICAgICAgY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUEFVU0VE
KTsKLSAgICB9Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNz
QnVmZmVyaW5nU3RhdHMoR3N0TWVzc2FnZSogbWVzc2FnZSkKIHsKICAgICBtX2J1ZmZlcmluZyA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5k
ZXggODkwOWQzYi4uNjE1NDc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaApAQCAtMzksMTAgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmdIYXNoLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5j
bHVkZSAiTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKLSNlbmRpZgotCiB0eXBlZGVmIHN0cnVjdCBf
R3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdzdE1lc3Nh
Z2U7CiB0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50OwpAQCAtNjAsNiArNTYs
MzkgQEAgY2xhc3MgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOwogY2xh
c3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOwogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK2NsYXNzIE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudDsKKyNlbmRpZgorCitjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUGxheWVy
UmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQoKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhUGxheWVyUmVxdWVz
dEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lk
ICh1aW50MzJfdCk+JiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayhXVEY6
Om1vdmUoZnVuY3Rpb24pKSk7CisgICAgfQorCisgICAgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFs
bE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkICh1aW50MzJfdCk+JiYg
ZnVuY3Rpb24pCisgICAgICAgIDogbV9mdW5jdGlvbihXVEY6Om1vdmUoZnVuY3Rpb24pKQorICAg
IHsKKyAgICB9CisKKyAgICB2b2lkIGludmFsaWRhdGUoKQorICAgIHsKKyAgICAgICAgbV9mdW5j
dGlvbiA9IG51bGxwdHI7CisgICAgfQorCisgICAgdm9pZCBjb21wbGV0ZSh1aW50MzJfdCByZXN1
bHQpCisgICAgeworICAgICAgICBpZiAoIW1fZnVuY3Rpb24pCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIG1fZnVuY3Rpb24ocmVzdWx0KTsKKyAgICAgICAgbV9mdW5jdGlvbiA9IG51bGxw
dHI7CisgICAgfQorcHJpdmF0ZToKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHVpbnQzMl90KT4g
bV9mdW5jdGlvbjsKK307CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1
YmxpYyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKICAgICBleHBs
aWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKQEAgLTIzNCw3
ICsyNjMsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgR3N0U3RhdGUgbV9yZXF1ZXN0ZWRTdGF0
ZTsKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fYXV0b0F1ZGlvU2luazsKLSAgICBib29sIG1f
bWlzc2luZ1BsdWdpbnM7CisgICAgUmVmUHRyPE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNz
aW5nUGx1Z2luc0NhbGxiYWNrPiBtX21pc3NpbmdQbHVnaW5zQ2FsbGJhY2s7CiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI+PiBtX2F1ZGlvVHJhY2tzOwogICAgIFZlY3RvcjxSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUdTdHJlYW1lcj4+IG1fdGV4dFRyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NDc4YjA1Li44YzQ2
OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDMgQEAKIDIwMTUtMDctMTcgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHU3RyZWFtZXJdIENy
YXNoZXMgZHVyaW5nIHBsdWdpbiBpbnN0YWxsYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIG1pc3NpbmcgcGx1Z2lucyBpbnN0YWxs
YXRpb24gdG8gdGhlIFVJIHByb2Nlc3MsIGVuc3VyaW5nCisgICAgICAgIHRoZXJlJ3MgYSBzaW5n
bGUgaW5zdGFsbGVyIHJ1bm5pbmcgYW5kIGNhbmNlbGxpbmcgdGhlIHJlcXVlc3Qgd2hlbgorICAg
ICAgICB0aGUgcGFnZSBpcyBjbG9zZWQgb3IgdGhlIG1lZGlhIHBsYXllciBpcyBkZWxldGVkLgor
CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRp
b24uCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERpdHRvLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOiBBZGQKKyAgICAgICAgUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
IG1lc3NhZ2UuCisgICAgICAgICogVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3Ry
ZWFtZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0
SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMpOiBDYWxsCisgICAgICAgIGdzdF9pbnN0YWxsX3Bs
dWdpbnNfYXN5bmMoKSBhbmQgc2VuZAorICAgICAgICBEaWRFbmRSZXF1ZXN0SW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnMgbWVzc2FnZSBiYWNrIHRvIHRoZSB3ZWIKKyAgICAgICAgcHJvY2VzcyB3
aGVuIGRvbmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RJbnN0
YWxsTWlzc2luZ01lZGlhUGx1Z2lucyk6IENhbGwKKyAgICAgICAgV2ViUGFnZTo6cmVxdWVzdElu
c3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKCkuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKTogSW52YWxpZGF0
ZSB0aGUgaW5zdGFsbCBtaXNzaW5nIHBsdWdpbnMKKyAgICAgICAgcmVxdWVzdCBjYWxsYmFjay4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQKKyAgICAgICAgRGlkRW5kUmVx
dWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zIG1lc3NhZ2UuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyk6
IFNlbmQKKyAgICAgICAgUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zIHRvIHRoZSBV
SSBwcm9jZXNzIG9yIGNvbXBsZXRlCisgICAgICAgIHRoZSByZXF1ZXN0IGVhcmx5IGlmIHRoZXJl
J3MgYWxyZWFkeSBhIHJlcXVlc3QgaW4gcHJvZ3Jlc3MuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZEVuZFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyk6CisgICAgICAgIENv
bXBsZXRlIHRoZSByZXF1ZXN0LgorCisyMDE1LTA3LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBQYXN0ZSBkYXRhIGlzIHJlbW92
ZWQgZnJvbSBjbGlwYm9hcmQgd2hlbiBjbG9zaW5nIGJyb3dzZXIgdGFiCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ1NDkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQppbmRleCBhMzFkNjY5Li4xNzY0OWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQpAQCAtMTc1LDYgKzE3NSw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAg
IFVJUHJvY2Vzcy9lZmwvV2ViVUlQb3B1cE1lbnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL2Vm
bC9XZWJWaWV3RWZsLmNwcAogCisgICAgVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlH
U3RyZWFtZXIuY3BwCisKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlT
b3VwLmNwcAogICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKIApAQCAt
MjA4LDYgKzIxMCw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9lZmwvV2ViSW5zcGVjdG9yVUlFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQ
YWdlL2VmbC9XZWJQYWdlRWZsLmNwcAogCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1l
ci9XZWJQYWdlR1N0cmVhbWVyLmNwcAorCiAgICAgV2ViUHJvY2Vzcy9lZmwvRXh0ZW5zaW9uTWFu
YWdlckVmbC5jcHAKICAgICBXZWJQcm9jZXNzL2VmbC9TZWNjb21wRmlsdGVyc1dlYlByb2Nlc3NF
ZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCkBAIC0yNzUs
NiArMjc5LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICR7RU9fSU5DTFVERV9ESVJTfQogICAgICR7RVZBU19JTkNMVURFX0RJUlN9CiAgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CiAgICAg
JHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9CiAgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KICAg
ICAke0xJQlhNTDJfSU5DTFVERV9ESVJ9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDcz
YzM3NGYuLmZmMWVmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yODUsNiArMjg1
LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvY2Fpcm8v
QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCiAKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQ
cm94eUdTdHJlYW1lci5jcHAKKwogICAgIFVJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVy
LmNwcAogICAgIFVJUHJvY2Vzcy9ndGsvRXhwZXJpbWVudGFsRmVhdHVyZXMuY3BwCiAgICAgVUlQ
cm9jZXNzL2d0ay9HZXN0dXJlQ29udHJvbGxlci5jcHAKQEAgLTMzNSw2ICszMzcsOCBAQCBsaXN0
KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCiAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3N0cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL1ByaW50ZXJMaXN0R3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViSW5z
cGVjdG9yVUlHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNw
cApAQCAtNTAyLDYgKzUwNiw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU1lTVEVNX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KICAgICAke0VOQ0hBTlRfSU5D
TFVERV9ESVJTfQogICAgICR7R0VPQ0xVRV9JTkNMVURFX0RJUlN9CisgICAgJHtHU1RSRUFNRVJf
SU5DTFVERV9ESVJTfQogICAgICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQogICAgICR7TElCU09V
UF9JTkNMVURFX0RJUlN9CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggY2ZlYzEwMi4uMDQxNGFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMTQ3Niw2ICsxNDc2LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGhhbmRs
ZUF1dG9GaWxsQnV0dG9uQ2xpY2soY29uc3QgVXNlckRhdGEmKTsKIAorI2lmIFVTRShHU1RSRUFN
RVIpCisgICAgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3Ry
aW5nJiBkZXRhaWxzKTsKKyNlbmRpZgorCiAgICAgdm9pZCBoYW5kbGVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0IFVzZXJEYXRhJiBtZXNz
YWdlQm9keSk7CiAgICAgdm9pZCBoYW5kbGVTeW5jaHJvbm91c01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1lc3NhZ2VC
b2R5LCBVc2VyRGF0YSYgcmV0dXJuVXNlckRhdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyM2M2NGRmLi5jNTdjMDg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTQ0Niw0ICs0NDYsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAg
ICAgVXNlRml4ZWRMYXlvdXREaWRDaGFuZ2UoYm9vbCB1c2VGaXhlZExheW91dCkKICAgICBGaXhl
ZExheW91dFNpemVEaWRDaGFuZ2UoV2ViQ29yZTo6SW50U2l6ZSBmaXhlZExheW91dFNpemUpCisK
KyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
cyhTdHJpbmcgZGV0YWlscykKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzNGZmNTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1l
ci5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxnc3QvcGJ1
dGlscy9pbnN0YWxsLXBsdWdpbnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5n
JiBkZXRhaWxzKQoreworICAgIENTdHJpbmcgZGV0YWlsID0gZGV0YWlscy51dGY4KCk7CisgICAg
Y29uc3QgY2hhciogZGV0YWlsQXJyYXlbMl0gPSB7IGRldGFpbC5kYXRhKCksIG51bGxwdHIgfTsK
KyAgICByZWYoKTsKKyAgICAvLyBGSVhNRTogVXNlIGEgcHJvcGVyIEdzdEluc3RhbGxQbHVnaW5z
Q29udGV4dCBpbnN0ZWFkIG9mIG51bGxwdHIuCisgICAgR3N0SW5zdGFsbFBsdWdpbnNSZXR1cm4g
cmVzdWx0ID0gZ3N0X2luc3RhbGxfcGx1Z2luc19hc3luYyhkZXRhaWxBcnJheSwgbnVsbHB0ciwg
W10oR3N0SW5zdGFsbFBsdWdpbnNSZXR1cm4gcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgewor
ICAgICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlID0gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8
V2ViUGFnZVByb3h5Kj4odXNlckRhdGEpKTsKKyAgICAgICAgaWYgKHBhZ2UtPmlzVmFsaWQoKSkK
KyAgICAgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEVuZFJlcXVlc3RJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhzdGF0aWNfY2FzdDx1aW50MzJfdD4ocmVzdWx0KSkp
OworICAgIH0sIHRoaXMpOworCisgICAgaWYgKHJlc3VsdCAhPSBHU1RfSU5TVEFMTF9QTFVHSU5T
X1NUQVJURURfT0spIHsKKyAgICAgICAgLy8gSWYgdGhlIGluc3RhbGxlciBkaWRuJ3Qgc3RhcnQs
IHRoZSBjYWxsYmFjayB3aWxsIG5vdCBiZSBjYWxsZWQsIHNvIHJlbW92ZSB0aGUgcmVmIG1hbnVh
bGx5LgorICAgICAgICBkZXJlZigpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpE
aWRFbmRSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHJlc3VsdCkpKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJNaXNzaW5nIEdTdHJlYW1lciBQ
bHVnaW46ICVzXG4iLCBkZXRhaWwuZGF0YSgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDhmZDNhMTEuLjQxYTU1OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTExNTcsNSArMTE1NywxMSBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50
NjRfdCBjb250ZXh0SQogfQogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJp
bmcmIGRldGFpbHMsIFdlYkNvcmU6Ok1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1
Z2luc0NhbGxiYWNrJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2UtPnJlcXVlc3RJbnN0YWxsTWlz
c2luZ01lZGlhUGx1Z2lucyhkZXRhaWxzLCBjYWxsYmFjayk7Cit9CisjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBlMjA4MWI5Li43NDMwOGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTMyMyw2ICszMjMsMTAgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1
aW50NjRfdCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSBvdmVycmlk
ZTsKICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlh
UGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJikgb3ZlcnJpZGU7Cisj
ZW5kaWYKKwogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8
V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29s
IG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlOTEwYWI1Li40OGUxNzBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0yMTYsNiArMjE2LDEwIEBACiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVz
c2FnZXMuaCIKICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTU5LDYgKzk2MywxMyBAQCB2
b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICB9CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIp
CisgICAgaWYgKG1faW5zdGFsbE1lZGlhUGx1Z2luc0NhbGxiYWNrKSB7CisgICAgICAgIG1faW5z
dGFsbE1lZGlhUGx1Z2luc0NhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1faW5zdGFs
bE1lZGlhUGx1Z2luc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKKwogICAgIG1f
c2FuZGJveEV4dGVuc2lvblRyYWNrZXIuaW52YWxpZGF0ZSgpOwogCiAjaWYgRU5BQkxFKFBSSU1B
UllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGM3YTQwMDQuLjQ1MTE0M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTM5LDYgKzEzOSwxMCBA
QCBzdHJ1Y3QgSGlnaGxpZ2h0Owogc3RydWN0IEtleXByZXNzQ29tbWFuZDsKIHN0cnVjdCBNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dDsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CisKKyNp
ZiBVU0UoR1NUUkVBTUVSKQorY2xhc3MgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQ
bHVnaW5zQ2FsbGJhY2s7CisjZW5kaWYKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05MDAs
NiArOTA0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7
CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgdm9pZCByZXF1ZXN0SW5zdGFsbE1p
c3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiBkZXRhaWxzLCBXZWJDb3JlOjpNZWRpYVBs
YXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpOworI2VuZGlmCisKIHBy
aXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmKTsKIApAQCAtMTE0Nyw2ICsxMTU1LDEwIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHBhZ2VTdG9wcGVkU2Nyb2xsaW5nKCk7CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIHZv
aWQgZGlkRW5kUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKHVpbnQzMl90IHJlc3Vs
dCk7CisjZW5kaWYKKwogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKQEAgLTEzOTUsNiArMTQwNywxMCBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBib29sIG1faW5wdXRNZXRob2RFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBSZWZQdHI8V2ViQ29yZTo6
TWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s+IG1faW5zdGFs
bE1lZGlhUGx1Z2luc0NhbGxiYWNrOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggMzE2NDhlZC4uNmIyZWMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQzNCw0
ICs0MzQsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBDbGVh
cldoZWVsRXZlbnRUZXN0VHJpZ2dlcigpCiAgICAgU2V0U2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1
bWVudChib29sIHNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQpCiAgICAgU2V0VXNlckNvbnRl
bnRFeHRlbnNpb25zRW5hYmxlZChib29sIHVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQpCisK
KyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIERpZEVuZFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlh
UGx1Z2lucyh1aW50MzJfdCByZXN1bHQpCisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9nc3RyZWFtZXIvV2ViUGFnZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VHU3Ry
ZWFtZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMDcxZTUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVh
bWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYlBhZ2UuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaD4KKyNpbmNs
dWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdpbnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0
IFN0cmluZyYgZGV0YWlscywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3Np
bmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQoreworICAgIGlmIChtX2luc3RhbGxNZWRpYVBs
dWdpbnNDYWxsYmFjaykgeworICAgICAgICBjYWxsYmFjay5jb21wbGV0ZShHU1RfSU5TVEFMTF9Q
TFVHSU5TX0lOU1RBTExfSU5fUFJPR1JFU1MpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2sgPSAmY2FsbGJhY2s7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMo
ZGV0YWlscykpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEVuZFJlcXVlc3RJbnN0YWxsTWlzc2lu
Z01lZGlhUGx1Z2lucyh1aW50MzJfdCByZXN1bHQpCit7CisgICAgaWYgKCFtX2luc3RhbGxNZWRp
YVBsdWdpbnNDYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbnN0YWxsTWVkaWFQ
bHVnaW5zQ2FsbGJhY2stPmNvbXBsZXRlKHJlc3VsdCk7CisgICAgbV9pbnN0YWxsTWVkaWFQbHVn
aW5zQ2FsbGJhY2sgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257079</attachid>
            <date>2015-07-19 22:37:08 -0700</date>
            <delta_ts>2015-07-24 04:25:18 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-gst-missing-plugins.diff</filename>
            <type>text/plain</type>
            <size>26615</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MzAxMjhjLi5lY2ViNGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKIDIwMTUtMDctMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHU3RyZWFtZXJdIENyYXNoZXMgZHVyaW5nIHBsdWdpbiBpbnN0YWxsYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBu
ZXcgbWV0aG9kcyB0byBNZWRpYVBsYXllckNsaWVudCBhbmQgQ2hyb21lQ2xpZW50IHRvIHJlcXVl
c3QKKyAgICAgICAgdGhlIEFQSSBsYXllciB0byBzdGFydCB0aGUgaW5zdGFsbGVyIHdoZW4gdGhl
cmUgYXJlIG1pc3NpbmcgbWVkaWEKKyAgICAgICAgcGx1Z2lucy4KKworICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKTogUGFzcworICAgICAgICB0aGUgcmVxdWVz
dCB0byB0aGUgQ2hyb21lQ2xpZW50LgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50
OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcik6CisgICAgICAgIEludmFsaWRhdGUgYW55IHBlbmRpbmcgcmVxdWVzdCB0byBp
bnN0YWxsIG1pc3NpbmcgbWVkaWEgcGx1Z2lucy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZSk6IEluIGNhc2Ugb2YKKyAgICAgICAg
bWlzc2luZyBwbHVnaW5zIG1lc3NhZ2UsIHN0YXJ0IGEgcmVxdWVzdCB0byBpbnN0YWxsIHRoZW0g
aWYKKyAgICAgICAgc3VwcG9ydGVkIGJ5IEdTVC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5n
UGx1Z2luc0NhbGxiYWNrOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnND
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlz
c2luZ1BsdWdpbnNDYWxsYmFjazo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y29tcGxldGUpOgor
CisyMDE1LTA3LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KwogICAgICAgICBbR1RLXSBQYXN0ZSBkYXRhIGlzIHJlbW92ZWQgZnJvbSBjbGlwYm9hcmQgd2hl
biBjbG9zaW5nIGJyb3dzZXIgdGFiCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDQ1NDkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYzcyZDRmNy4uNDM1MDY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC02MDQwLDYgKzYwNDAsMTYgQEAgZG91YmxlIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QKICAgICByZXR1
cm4gcG90ZW50aWFsbHlQbGF5aW5nKCkgPyByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA6IDA7CiB9
CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1ZXN0SW5z
dGFsbE1pc3NpbmdQbHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgTWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQoreworICAgIGlmICgh
ZG9jdW1lbnQoKS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50KCkucGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMo
ZGV0YWlscywgY2FsbGJhY2spOworfQorI2VuZGlmCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCkKIHsKICAg
ICBNZWRpYUVsZW1lbnRTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmljdGlvbnNU
b1JlbW92ZSA9IE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckxvYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNDhkMjU1MC4uY2IyOGM5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTYwNSw2ICs2MDUs
MTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBs
YXliYWNrUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgVmlkZW9GdWxs
c2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3Qgb3ZlcnJpZGUgZmlu
YWwgeyByZXR1cm4gZnVsbHNjcmVlbk1vZGUoKTsgfQogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2lucyhjb25zdCBTdHJpbmcm
LCBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIG92ZXJy
aWRlIGZpbmFsOworI2VuZGlmCisKICAgICB2b2lkIHBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKCk7
CiAgICAgdm9pZCBwcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgpOwogICAgIHZvaWQgcGxheWJhY2tQ
cm9ncmVzc1RpbWVyRmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDQ3
ODZlYzguLmJjOGY1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtOTEsNiAr
OTEsMTAgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBWaWV3cG9ydENvbnN0cmFpbnRz
OwogY2xhc3MgV2lkZ2V0OwogCisjaWYgVVNFKEdTVFJFQU1FUikKK2NsYXNzIE1lZGlhUGxheWVy
UmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOworI2VuZGlmCisKIHN0cnVjdCBE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CiBzdHJ1
Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOwpAQCAtNDQ5LDYgKzQ1MywxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2Uo
dWludDY0X3QgLypjb250ZXh0SWQqLywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7
IH0KICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0IFN0cmluZyYgLypkZXRhaWxzKi8sIE1l
ZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJikgeyB9OworI2Vu
ZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBk
ZjBiY2Q4Li4wMDM4MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKQEAgLTE0OCw2ICsxNDgsMTAgQEAgc3RydWN0IE1lZGlhUGxheWVyRmFj
dG9yeTsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiAjZW5kaWYKIAorI2lmIFVTRShH
U1RSRUFNRVIpCitjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnND
YWxsYmFjazsKKyNlbmRpZgorCiBjbGFzcyBNZWRpYVBsYXllckNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJDbGllbnQoKSB7IH0KQEAgLTI3OCw2ICsyODIsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tS
YXRlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXJFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyBy
ZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmU7IH0KICAgICB2
aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IG1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJp
c3RpY3MoKSBjb25zdCB7IHJldHVybiBWZWN0b3I8U3RyaW5nPigpOyB9CisKKyNpZiBVU0UoR1NU
UkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKGNv
bnN0IFN0cmluZyYsIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxi
YWNrJikgeyB9OworI2VuZGlmCiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNs
aWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IGZmYzk0NmUuLjkxZDQ1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQogI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5oIgog
I2VuZGlmCiAKQEAgLTEyMywxMiArMTI0LDYgQEAgc3RhdGljIEdzdEZsb3dSZXR1cm4gbWVkaWFQ
bGF5ZXJQcml2YXRlTmV3VGV4dFNhbXBsZUNhbGxiYWNrKEdPYmplY3QqLCBNZWRpYVBsYXkKIH0K
ICNlbmRpZgogCi1zdGF0aWMgdm9pZCBtZWRpYVBsYXllclByaXZhdGVQbHVnaW5JbnN0YWxsZXJS
ZXN1bHRGdW5jdGlvbihHc3RJbnN0YWxsUGx1Z2luc1JldHVybiByZXN1bHQsIGdwb2ludGVyIHVz
ZXJEYXRhKQotewotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyID0gcmVp
bnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqPih1c2VyRGF0YSk7Ci0g
ICAgcGxheWVyLT5oYW5kbGVQbHVnaW5JbnN0YWxsZXJSZXN1bHQocmVzdWx0KTsKLX0KLQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyhH
T2JqZWN0KiBvYmplY3QpCiB7CiAgICAgaWYgKGdfc3RyY21wMChHX09CSkVDVF9UWVBFX05BTUUo
b2JqZWN0KSwgIkdzdFB1bHNlU2luayIpKQpAQCAtMjE2LDcgKzIxMSw2IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiAgICAgLCBtX2F1ZGlvU291cmNlUHJvdmlkZXIoc3RkOjptYWtlX3VuaXF1ZTxB
dWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyPigpKQogI2VuZGlmCiAgICAgLCBtX3JlcXVlc3Rl
ZFN0YXRlKEdTVF9TVEFURV9WT0lEX1BFTkRJTkcpCi0gICAgLCBtX21pc3NpbmdQbHVnaW5zKGZh
bHNlKQogewogfQogCkBAIC0yNDUsNiArMjM5LDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PGdwb2ludGVyPihzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayksIHRo
aXMpOwogCiAgICAgbV9yZWFkeVRpbWVySGFuZGxlci5jYW5jZWwoKTsKKyAgICBpZiAobV9taXNz
aW5nUGx1Z2luc0NhbGxiYWNrKSB7CisgICAgICAgIG1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjay0+
aW52YWxpZGF0ZSgpOworICAgICAgICBtX21pc3NpbmdQbHVnaW5zQ2FsbGJhY2sgPSBudWxscHRy
OworICAgIH0KIAogICAgIGlmIChtX3BpcGVsaW5lKSB7CiAgICAgICAgIEdSZWZQdHI8R3N0QnVz
PiBidXMgPSBhZG9wdEdSZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlw
ZWxpbmUuZ2V0KCkpKSk7CkBAIC05MzQsNyArOTMyLDcgQEAgZ2Jvb2xlYW4gTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAg
Y2FzZSBHU1RfTUVTU0FHRV9FUlJPUjoKICAgICAgICAgaWYgKG1fcmVzZXRQaXBlbGluZSkKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAobV9taXNzaW5nUGx1Z2lucykKKyAgICAgICAg
aWYgKG1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjaykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBnc3RfbWVzc2FnZV9wYXJzZV9lcnJvcihtZXNzYWdlLCAmZXJyLm91dFB0cigpLCAmZGVidWcu
b3V0UHRyKCkpOwogICAgICAgICBFUlJPUl9NRURJQV9NRVNTQUdFKCJFcnJvciAlZDogJXMgKHVy
bD0lcykiLCBlcnItPmNvZGUsIGVyci0+bWVzc2FnZSwgbV91cmwuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CkBAIC0xMDI5LDExICsxMDI3LDE4IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEdTVF9NRVNTQUdFX0VMRU1FTlQ6CiAgICAgICAgIGlmIChnc3RfaXNf
bWlzc2luZ19wbHVnaW5fbWVzc2FnZShtZXNzYWdlKSkgewotICAgICAgICAgICAgZ2NoYXIqIGRl
dGFpbCA9IGdzdF9taXNzaW5nX3BsdWdpbl9tZXNzYWdlX2dldF9pbnN0YWxsZXJfZGV0YWlsKG1l
c3NhZ2UpOwotICAgICAgICAgICAgZ2NoYXIqIGRldGFpbEFycmF5WzJdID0ge2RldGFpbCwgMH07
Ci0gICAgICAgICAgICBHc3RJbnN0YWxsUGx1Z2luc1JldHVybiByZXN1bHQgPSBnc3RfaW5zdGFs
bF9wbHVnaW5zX2FzeW5jKGRldGFpbEFycmF5LCAwLCBtZWRpYVBsYXllclByaXZhdGVQbHVnaW5J
bnN0YWxsZXJSZXN1bHRGdW5jdGlvbiwgdGhpcyk7Ci0gICAgICAgICAgICBtX21pc3NpbmdQbHVn
aW5zID0gcmVzdWx0ID09IEdTVF9JTlNUQUxMX1BMVUdJTlNfU1RBUlRFRF9PSzsKLSAgICAgICAg
ICAgIGdfZnJlZShkZXRhaWwpOworICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkZXRhaWwo
Z3N0X21pc3NpbmdfcGx1Z2luX21lc3NhZ2VfZ2V0X2luc3RhbGxlcl9kZXRhaWwobWVzc2FnZSkp
OworICAgICAgICAgICAgaWYgKGdzdF9pbnN0YWxsX3BsdWdpbnNfc3VwcG9ydGVkKCkpIHsKKyAg
ICAgICAgICAgICAgICBtX21pc3NpbmdQbHVnaW5zQ2FsbGJhY2sgPSBNZWRpYVBsYXllclJlcXVl
c3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3JlYXRlKFt0aGlzXSh1aW50MzJfdCBy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9taXNzaW5nUGx1Z2luc0NhbGxiYWNrID0g
bnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBHU1RfSU5TVEFMTF9Q
TFVHSU5TX1NVQ0NFU1MpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUkVBRFkpOworICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VQaXBlbGluZVN0YXRlKEdTVF9TVEFURV9QQVVTRUQpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIG1fcGxheWVyLT5jbGllbnQoKS5y
ZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKFN0cmluZzo6ZnJvbVVURjgoZGV0YWlsLmdldCgp
KSwgKm1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjayk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIFVTRShHU1RSRUFNRVJfTVBFR1RTKQogICAgICAg
ICBlbHNlIHsKQEAgLTEwNTgsMTUgKzEwNjMsNiBAQCBnYm9vbGVhbiBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICByZXR1
cm4gVFJVRTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZVBs
dWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybiByZXN1bHQpCi17Ci0g
ICAgbV9taXNzaW5nUGx1Z2lucyA9IGZhbHNlOwotICAgIGlmIChyZXN1bHQgPT0gR1NUX0lOU1RB
TExfUExVR0lOU19TVUNDRVNTKSB7Ci0gICAgICAgIGNoYW5nZVBpcGVsaW5lU3RhdGUoR1NUX1NU
QVRFX1JFQURZKTsKLSAgICAgICAgY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUEFVU0VE
KTsKLSAgICB9Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNz
QnVmZmVyaW5nU3RhdHMoR3N0TWVzc2FnZSogbWVzc2FnZSkKIHsKICAgICBtX2J1ZmZlcmluZyA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5k
ZXggODkwOWQzYi4uZDBlMmY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaApAQCAtMzksMTAgKzM5LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmdIYXNoLmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5j
bHVkZSAiTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKLSNlbmRpZgotCiB0eXBlZGVmIHN0cnVjdCBf
R3N0QnVmZmVyIEdzdEJ1ZmZlcjsKIHR5cGVkZWYgc3RydWN0IF9Hc3RNZXNzYWdlIEdzdE1lc3Nh
Z2U7CiB0eXBlZGVmIHN0cnVjdCBfR3N0RWxlbWVudCBHc3RFbGVtZW50OwpAQCAtNjAsNiArNTYs
NDAgQEAgY2xhc3MgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOwogY2xh
c3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOwogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK2NsYXNzIE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudDsKKyNlbmRpZgorCitjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUGxheWVy
UmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQoKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhUGxheWVyUmVxdWVz
dEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrPiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lk
ICh1aW50MzJfdCk+JiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayhXVEY6
Om1vdmUoZnVuY3Rpb24pKSk7CisgICAgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlKCkKKyAgICB7
CisgICAgICAgIG1fZnVuY3Rpb24gPSBudWxscHRyOworICAgIH0KKworICAgIHZvaWQgY29tcGxl
dGUodWludDMyX3QgcmVzdWx0KQorICAgIHsKKyAgICAgICAgaWYgKCFtX2Z1bmN0aW9uKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2Z1bmN0aW9uKHJlc3VsdCk7CisgICAgICAgIG1f
ZnVuY3Rpb24gPSBudWxscHRyOworICAgIH0KKworcHJpdmF0ZToKKyAgICBNZWRpYVBsYXllclJl
cXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKHVp
bnQzMl90KT4mJiBmdW5jdGlvbikKKyAgICAgICAgOiBtX2Z1bmN0aW9uKFdURjo6bW92ZShmdW5j
dGlvbikpCisgICAgeworICAgIH0KKworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAodWludDMyX3Qp
PiBtX2Z1bmN0aW9uOworfTsKKwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDog
cHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgewogcHVibGljOgogICAgIGV4
cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwpAQCAtMjM0
LDcgKzI2NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBHc3RTdGF0ZSBtX3JlcXVlc3RlZFN0
YXRlOwogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9hdXRvQXVkaW9TaW5rOwotICAgIGJvb2wg
bV9taXNzaW5nUGx1Z2luczsKKyAgICBSZWZQdHI8TWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1p
c3NpbmdQbHVnaW5zQ2FsbGJhY2s+IG1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjazsKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgVmVjdG9yPFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lcj4+IG1fYXVkaW9UcmFja3M7CiAgICAgVmVjdG9yPFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyPj4gbV90ZXh0VHJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ0NzhiMDUuLjhj
NDY4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MyBAQAogMjAxNS0wNy0xNyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dTdHJlYW1lcl0g
Q3Jhc2hlcyBkdXJpbmcgcGx1Z2luIGluc3RhbGxhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgbWlzc2luZyBwbHVnaW5zIGluc3Rh
bGxhdGlvbiB0byB0aGUgVUkgcHJvY2VzcywgZW5zdXJpbmcKKyAgICAgICAgdGhlcmUncyBhIHNp
bmdsZSBpbnN0YWxsZXIgcnVubmluZyBhbmQgY2FuY2VsbGluZyB0aGUgcmVxdWVzdCB3aGVuCisg
ICAgICAgIHRoZSBwYWdlIGlzIGNsb3NlZCBvciB0aGUgbWVkaWEgcGxheWVyIGlzIGRlbGV0ZWQu
CisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxh
dGlvbi4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogRGl0dG8uCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW46IEFkZAorICAgICAgICBSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdp
bnMgbWVzc2FnZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdT
dHJlYW1lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVl
c3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyk6IENhbGwKKyAgICAgICAgZ3N0X2luc3RhbGxf
cGx1Z2luc19hc3luYygpIGFuZCBzZW5kCisgICAgICAgIERpZEVuZFJlcXVlc3RJbnN0YWxsTWlz
c2luZ01lZGlhUGx1Z2lucyBtZXNzYWdlIGJhY2sgdG8gdGhlIHdlYgorICAgICAgICBwcm9jZXNz
IHdoZW4gZG9uZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdElu
c3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKTogQ2FsbAorICAgICAgICBXZWJQYWdlOjpyZXF1ZXN0
SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOiBJbnZhbGlk
YXRlIHRoZSBpbnN0YWxsIG1pc3NpbmcgcGx1Z2lucworICAgICAgICByZXF1ZXN0IGNhbGxiYWNr
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IEFkZAorICAgICAgICBEaWRFbmRS
ZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMgbWVzc2FnZS4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
KTogU2VuZAorICAgICAgICBSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMgdG8gdGhl
IFVJIHByb2Nlc3Mgb3IgY29tcGxldGUKKyAgICAgICAgdGhlIHJlcXVlc3QgZWFybHkgaWYgdGhl
cmUncyBhbHJlYWR5IGEgcmVxdWVzdCBpbiBwcm9ncmVzcy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZGlkRW5kUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKToKKyAgICAgICAg
Q29tcGxldGUgdGhlIHJlcXVlc3QuCisKKzIwMTUtMDctMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIFBhc3RlIGRhdGEgaXMgcmVt
b3ZlZCBmcm9tIGNsaXBib2FyZCB3aGVuIGNsb3NpbmcgYnJvd3NlciB0YWIKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDU0OQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCmluZGV4IGEzMWQ2NjkuLjE3NjQ5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCkBAIC0xNzUsNiArMTc1LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgVUlQcm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3Mv
ZWZsL1dlYlZpZXdFZmwuY3BwCiAKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94
eUdTdHJlYW1lci5jcHAKKwogICAgIFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94
eVNvdXAuY3BwCiAgICAgVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAogCkBA
IC0yMDgsNiArMjEwLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJv
Y2Vzcy9XZWJQYWdlL2VmbC9XZWJJbnNwZWN0b3JVSUVmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dl
YlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCiAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVh
bWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL2VmbC9FeHRlbnNpb25N
YW5hZ2VyRWZsLmNwcAogICAgIFdlYlByb2Nlc3MvZWZsL1NlY2NvbXBGaWx0ZXJzV2ViUHJvY2Vz
c0VmbC5jcHAKICAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTI3
NSw2ICsyNzksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgJHtFT19JTkNMVURFX0RJUlN9CiAgICAgJHtFVkFTX0lOQ0xVREVfRElSU30KICAg
ICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R1NUUkVBTUVSX0lOQ0xVREVfRElSU30KICAg
ICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KICAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQog
ICAgICR7TElCWE1MMl9JTkNMVURFX0RJUn0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXgg
NzNjMzc0Zi4uZmYxZWY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsu
Y21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTI4NSw2ICsy
ODUsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9jYWly
by9CYWNraW5nU3RvcmVDYWlyby5jcHAKIAorICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvV2ViUGFn
ZVByb3h5R1N0cmVhbWVyLmNwcAorCiAgICAgVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRs
ZXIuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9FeHBlcmltZW50YWxGZWF0dXJlcy5jcHAKICAgICBV
SVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMzM1LDYgKzMzNyw4IEBAIGxp
c3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9X
ZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKIAorICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9nc3RyZWFtZXIvV2ViUGFnZUdTdHJlYW1lci5jcHAKKwogICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvUHJpbnRlckxpc3RHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJJ
bnNwZWN0b3JVSUd0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsu
Y3BwCkBAIC01MDIsNiArNTA2LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TWVNURU1fSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQogICAgICR7RU5DSEFOVF9J
TkNMVURFX0RJUlN9CiAgICAgJHtHRU9DTFVFX0lOQ0xVREVfRElSU30KKyAgICAke0dTVFJFQU1F
Ul9JTkNMVURFX0RJUlN9CiAgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9CiAgICAgJHtMSUJT
T1VQX0lOQ0xVREVfRElSU30KICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBjZmVjMTAyLi4wNDE0YWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNDc2LDYgKzE0NzYsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaGFu
ZGxlQXV0b0ZpbGxCdXR0b25DbGljayhjb25zdCBVc2VyRGF0YSYpOwogCisjaWYgVVNFKEdTVFJF
QU1FUikKKyAgICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBT
dHJpbmcmIGRldGFpbHMpOworI2VuZGlmCisKICAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1l
c3NhZ2VCb2R5KTsKICAgICB2b2lkIGhhbmRsZVN5bmNocm9ub3VzTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBjb25zdCBVc2VyRGF0YSYgbWVzc2Fn
ZUJvZHksIFVzZXJEYXRhJiByZXR1cm5Vc2VyRGF0YSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDIzYzY0ZGYuLmM1N2Mw
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgpAQCAtNDQ2LDQgKzQ0Niw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAK
ICAgICBVc2VGaXhlZExheW91dERpZENoYW5nZShib29sIHVzZUZpeGVkTGF5b3V0KQogICAgIEZp
eGVkTGF5b3V0U2l6ZURpZENoYW5nZShXZWJDb3JlOjpJbnRTaXplIGZpeGVkTGF5b3V0U2l6ZSkK
KworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVn
aW5zKFN0cmluZyBkZXRhaWxzKQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM0ZmY1MAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9nc3RyZWFtZXIvV2ViUGFnZVByb3h5R1N0cmVh
bWVyLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgPGdzdC9w
YnV0aWxzL2luc3RhbGwtcGx1Z2lucy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJp
bmcmIGRldGFpbHMpCit7CisgICAgQ1N0cmluZyBkZXRhaWwgPSBkZXRhaWxzLnV0ZjgoKTsKKyAg
ICBjb25zdCBjaGFyKiBkZXRhaWxBcnJheVsyXSA9IHsgZGV0YWlsLmRhdGEoKSwgbnVsbHB0ciB9
OworICAgIHJlZigpOworICAgIC8vIEZJWE1FOiBVc2UgYSBwcm9wZXIgR3N0SW5zdGFsbFBsdWdp
bnNDb250ZXh0IGluc3RlYWQgb2YgbnVsbHB0ci4KKyAgICBHc3RJbnN0YWxsUGx1Z2luc1JldHVy
biByZXN1bHQgPSBnc3RfaW5zdGFsbF9wbHVnaW5zX2FzeW5jKGRldGFpbEFycmF5LCBudWxscHRy
LCBbXShHc3RJbnN0YWxsUGx1Z2luc1JldHVybiByZXN1bHQsIGdwb2ludGVyIHVzZXJEYXRhKSB7
CisgICAgICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHBhZ2UgPSBhZG9wdFJlZihzdGF0aWNfY2Fz
dDxXZWJQYWdlUHJveHkqPih1c2VyRGF0YSkpOworICAgICAgICBpZiAocGFnZS0+aXNWYWxpZCgp
KQorICAgICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkRW5kUmVxdWVz
dEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKHN0YXRpY19jYXN0PHVpbnQzMl90PihyZXN1bHQp
KSk7CisgICAgfSwgdGhpcyk7CisKKyAgICBpZiAocmVzdWx0ICE9IEdTVF9JTlNUQUxMX1BMVUdJ
TlNfU1RBUlRFRF9PSykgeworICAgICAgICAvLyBJZiB0aGUgaW5zdGFsbGVyIGRpZG4ndCBzdGFy
dCwgdGhlIGNhbGxiYWNrIHdpbGwgbm90IGJlIGNhbGxlZCwgc28gcmVtb3ZlIHRoZSByZWYgbWFu
dWFsbHkuCisgICAgICAgIGRlcmVmKCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZEVuZFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhzdGF0aWNfY2FzdDx1aW50
MzJfdD4ocmVzdWx0KSkpOworICAgICAgICBXVEZMb2dBbHdheXMoIk1pc3NpbmcgR1N0cmVhbWVy
IFBsdWdpbjogJXNcbiIsIGRldGFpbC5kYXRhKCkpOworICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggOGZkM2ExMS4uNDFhNTU4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTE1Nyw1ICsxMTU3LDExIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVp
bnQ2NF90IGNvbnRleHRJCiB9CiAjZW5kaWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0IFN0
cmluZyYgZGV0YWlscywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQ
bHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQoreworICAgIG1fcGFnZS0+cmVxdWVzdEluc3RhbGxN
aXNzaW5nTWVkaWFQbHVnaW5zKGRldGFpbHMsIGNhbGxiYWNrKTsKK30KKyNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGUyMDgxYjkuLjc0MzA4
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzIzLDYgKzMyMywxMCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdl
KHVpbnQ2NF90LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIG92ZXJy
aWRlOwogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smKSBvdmVycmlkZTsK
KyNlbmRpZgorCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0
cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJv
b2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU5MTBhYjUuLjQ4ZTE3
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTIxNiw2ICsyMTYsMTAgQEAKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RN
ZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05NTksNiArOTYzLDEzIEBA
IHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgIH0KICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1F
UikKKyAgICBpZiAobV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2spIHsKKyAgICAgICAgbV9p
bnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9pbnN0
YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2sgPSBudWxscHRyOworICAgIH0KKyNlbmRpZgorCiAgICAg
bV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5pbnZhbGlkYXRlKCk7CiAKICNpZiBFTkFCTEUoUFJJ
TUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYzdhNDAwNC4uNDUxMTQzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzksNiArMTM5LDEw
IEBAIHN0cnVjdCBIaWdobGlnaHQ7CiBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogc3RydWN0IE1l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Owogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKKwor
I2lmIFVTRShHU1RSRUFNRVIpCitjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2lu
Z1BsdWdpbnNDYWxsYmFjazsKKyNlbmRpZgogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTkw
MCw2ICs5MDQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
KTsKICNlbmRpZgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICB2b2lkIHJlcXVlc3RJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJpbmcmIGRldGFpbHMsIFdlYkNvcmU6Ok1lZGlh
UGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJik7CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYpOwogCkBAIC0xMTQ3LDYgKzExNTUsMTAgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgcGFnZVN0b3BwZWRTY3JvbGxpbmcoKTsKIAorI2lmIFVTRShHU1RSRUFNRVIpCisgICAg
dm9pZCBkaWRFbmRSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnModWludDMyX3QgcmVz
dWx0KTsKKyNlbmRpZgorCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwpAQCAtMTM5NSw2ICsxNDA3LDEwIEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGJvb2wgbV9pbnB1dE1ldGhvZEVuYWJsZWQgeyBm
YWxzZSB9OwogI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFJlZlB0cjxXZWJDb3Jl
OjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjaz4gbV9pbnN0
YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2s7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgppbmRleCAzMTY0OGVkLi42YjJlYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDM0
LDQgKzQzNCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIENs
ZWFyV2hlZWxFdmVudFRlc3RUcmlnZ2VyKCkKICAgICBTZXRTaG91bGRTY2FsZVZpZXdUb0ZpdERv
Y3VtZW50KGJvb2wgc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVudCkKICAgICBTZXRVc2VyQ29u
dGVudEV4dGVuc2lvbnNFbmFibGVkKGJvb2wgdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCkK
KworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgRGlkRW5kUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVk
aWFQbHVnaW5zKHVpbnQzMl90IHJlc3VsdCkKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9nc3RyZWFtZXIvV2ViUGFnZUdT
dHJlYW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIwNzFlNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9nc3Ry
ZWFtZXIvV2ViUGFnZUdTdHJlYW1lci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oPgorI2lu
Y2x1ZGUgPGdzdC9wYnV0aWxzL2luc3RhbGwtcGx1Z2lucy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29u
c3QgU3RyaW5nJiBkZXRhaWxzLCBXZWJDb3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlz
c2luZ1BsdWdpbnNDYWxsYmFjayYgY2FsbGJhY2spCit7CisgICAgaWYgKG1faW5zdGFsbE1lZGlh
UGx1Z2luc0NhbGxiYWNrKSB7CisgICAgICAgIGNhbGxiYWNrLmNvbXBsZXRlKEdTVF9JTlNUQUxM
X1BMVUdJTlNfSU5TVEFMTF9JTl9QUk9HUkVTUyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX2luc3RhbGxNZWRpYVBsdWdpbnNDYWxsYmFjayA9ICZjYWxsYmFjazsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
cyhkZXRhaWxzKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkRW5kUmVxdWVzdEluc3RhbGxNaXNz
aW5nTWVkaWFQbHVnaW5zKHVpbnQzMl90IHJlc3VsdCkKK3sKKyAgICBpZiAoIW1faW5zdGFsbE1l
ZGlhUGx1Z2luc0NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2luc3RhbGxNZWRp
YVBsdWdpbnNDYWxsYmFjay0+Y29tcGxldGUocmVzdWx0KTsKKyAgICBtX2luc3RhbGxNZWRpYVBs
dWdpbnNDYWxsYmFjayA9IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257448</attachid>
            <date>2015-07-24 04:25:18 -0700</date>
            <delta_ts>2015-07-24 04:40:38 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-gst-missing-plugins.diff</filename>
            <type>text/plain</type>
            <size>28041</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NzI4YmZiLi43NDE1ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzUg
QEAKIDIwMTUtMDctMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHU3RyZWFtZXJdIENyYXNoZXMgZHVyaW5nIHBsdWdpbiBpbnN0YWxsYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBu
ZXcgbWV0aG9kcyB0byBNZWRpYVBsYXllckNsaWVudCBhbmQgQ2hyb21lQ2xpZW50IHRvIHJlcXVl
c3QKKyAgICAgICAgdGhlIEFQSSBsYXllciB0byBzdGFydCB0aGUgaW5zdGFsbGVyIHdoZW4gdGhl
cmUgYXJlIG1pc3NpbmcgbWVkaWEKKyAgICAgICAgcGx1Z2lucy4KKworICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKTogUGFzcworICAgICAgICB0aGUgcmVxdWVz
dCB0byB0aGUgQ2hyb21lQ2xpZW50LgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50
OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcik6CisgICAgICAgIEludmFsaWRhdGUgYW55IHBlbmRpbmcgcmVxdWVzdCB0byBp
bnN0YWxsIG1pc3NpbmcgbWVkaWEgcGx1Z2lucy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZSk6IEluIGNhc2Ugb2YKKyAgICAgICAg
bWlzc2luZyBwbHVnaW5zIG1lc3NhZ2UsIHN0YXJ0IGEgcmVxdWVzdCB0byBpbnN0YWxsIHRoZW0g
aWYKKyAgICAgICAgc3VwcG9ydGVkIGJ5IEdTVC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5n
UGx1Z2luc0NhbGxiYWNrOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnND
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlz
c2luZ1BsdWdpbnNDYWxsYmFjazo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y29tcGxldGUpOgor
CisyMDE1LTA3LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
KwogICAgICAgICBbR1RLXSBQYXN0ZSBkYXRhIGlzIHJlbW92ZWQgZnJvbSBjbGlwYm9hcmQgd2hl
biBjbG9zaW5nIGJyb3dzZXIgdGFiCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDQ1NDkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggN2IyZGVhYS4uZmFkNWZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC02MDY2LDYgKzYwNjYsMTYgQEAgZG91YmxlIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QKICAgICByZXR1
cm4gcG90ZW50aWFsbHlQbGF5aW5nKCkgPyByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA6IDA7CiB9
CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1ZXN0SW5z
dGFsbE1pc3NpbmdQbHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgTWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQoreworICAgIGlmICgh
ZG9jdW1lbnQoKS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50KCkucGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMo
ZGV0YWlscywgY2FsbGJhY2spOworfQorI2VuZGlmCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCkKIHsKICAg
ICBNZWRpYUVsZW1lbnRTZXNzaW9uOjpCZWhhdmlvclJlc3RyaWN0aW9ucyByZXN0cmljdGlvbnNU
b1JlbW92ZSA9IE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZUZvckxvYWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggOTQwYjYxNS4uY2Y3Yjgy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTYxMCw2ICs2MTAs
MTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBs
YXliYWNrUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgVmlkZW9GdWxs
c2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3Qgb3ZlcnJpZGUgZmlu
YWwgeyByZXR1cm4gZnVsbHNjcmVlbk1vZGUoKTsgfQogCisjaWYgVVNFKEdTVFJFQU1FUikKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2lucyhjb25zdCBTdHJpbmcm
LCBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIG92ZXJy
aWRlIGZpbmFsOworI2VuZGlmCisKICAgICB2b2lkIHBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKCk7
CiAgICAgdm9pZCBwcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgpOwogICAgIHZvaWQgcGxheWJhY2tQ
cm9ncmVzc1RpbWVyRmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDVm
YzExNmUuLmFiYzZiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtOTEsNiAr
OTEsMTAgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBWaWV3cG9ydENvbnN0cmFpbnRz
OwogY2xhc3MgV2lkZ2V0OwogCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQor
Y2xhc3MgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s7Cisj
ZW5kaWYKKwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3QgRnJhbWVM
b2FkUmVxdWVzdDsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CkBAIC00NTEsNiArNDU1
LDkgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwgdm9pZCBtZWRp
YURvY3VtZW50TmF0dXJhbFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0K
KyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiAvKmRldGFpbHMqLywgTWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smKSB7IH07CisjZW5kaWYKICNlbmRpZgog
CiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAppbmRleCBkZjBiY2Q4Li4wMDM4MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTE0OCw2ICsxNDgsMTAgQEAgc3RydWN0
IE1lZGlhUGxheWVyRmFjdG9yeTsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiAjZW5k
aWYKIAorI2lmIFVTRShHU1RSRUFNRVIpCitjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxs
TWlzc2luZ1BsdWdpbnNDYWxsYmFjazsKKyNlbmRpZgorCiBjbGFzcyBNZWRpYVBsYXllckNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJDbGllbnQoKSB7IH0KQEAgLTI3
OCw2ICsyODIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhUGxheWVyUmVx
dWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgTWVk
aWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5N
b2RlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmU7IH0KICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IG1lZGlhUGxheWVyUHJlZmVycmVk
QXVkaW9DaGFyYWN0ZXJpc3RpY3MoKSBjb25zdCB7IHJldHVybiBWZWN0b3I8U3RyaW5nPigpOyB9
CisKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1p
c3NpbmdQbHVnaW5zKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNz
aW5nUGx1Z2luc0NhbGxiYWNrJikgeyB9OworI2VuZGlmCiB9OwogCiBjbGFzcyBNZWRpYVBsYXll
clN1cHBvcnRzVHlwZUNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCmluZGV4IGZmYzk0NmUuLjg5MjlmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3Np
bmdQbHVnaW5zQ2FsbGJhY2suaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgpAQCAtMTIzLDEy
ICsxMjQsNiBAQCBzdGF0aWMgR3N0Rmxvd1JldHVybiBtZWRpYVBsYXllclByaXZhdGVOZXdUZXh0
U2FtcGxlQ2FsbGJhY2soR09iamVjdCosIE1lZGlhUGxheQogfQogI2VuZGlmCiAKLXN0YXRpYyB2
b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVBsdWdpbkluc3RhbGxlclJlc3VsdEZ1bmN0aW9uKEdzdElu
c3RhbGxQbHVnaW5zUmV0dXJuIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpCi17Ci0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIgPSByZWludGVycHJldF9jYXN0PE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcio+KHVzZXJEYXRhKTsKLSAgICBwbGF5ZXItPmhhbmRsZVBs
dWdpbkluc3RhbGxlclJlc3VsdChyZXN1bHQpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkKIHsK
ICAgICBpZiAoZ19zdHJjbXAwKEdfT0JKRUNUX1RZUEVfTkFNRShvYmplY3QpLCAiR3N0UHVsc2VT
aW5rIikpCkBAIC0yMTYsNyArMjExLDYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1f
YXVkaW9Tb3VyY2VQcm92aWRlcihzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvU291cmNlUHJvdmlkZXJH
U3RyZWFtZXI+KCkpCiAjZW5kaWYKICAgICAsIG1fcmVxdWVzdGVkU3RhdGUoR1NUX1NUQVRFX1ZP
SURfUEVORElORykKLSAgICAsIG1fbWlzc2luZ1BsdWdpbnMoZmFsc2UpCiB7CiB9CiAKQEAgLTI0
NSw2ICsyMzksMTAgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKCkKICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+
KHNldEF1ZGlvU3RyZWFtUHJvcGVydGllc0NhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBtX3JlYWR5
VGltZXJIYW5kbGVyLmNhbmNlbCgpOworICAgIGlmIChtX21pc3NpbmdQbHVnaW5zQ2FsbGJhY2sp
IHsKKyAgICAgICAgbV9taXNzaW5nUGx1Z2luc0NhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAg
ICAgIG1fbWlzc2luZ1BsdWdpbnNDYWxsYmFjayA9IG51bGxwdHI7CisgICAgfQogCiAgICAgaWYg
KG1fcGlwZWxpbmUpIHsKICAgICAgICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihn
c3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQRUxJTkUobV9waXBlbGluZS5nZXQoKSkpKTsKQEAg
LTkzNCw3ICs5MzIsNyBAQCBnYm9vbGVhbiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Omhh
bmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICBjYXNlIEdTVF9NRVNTQUdFX0VS
Uk9SOgogICAgICAgICBpZiAobV9yZXNldFBpcGVsaW5lKQogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGlmIChtX21pc3NpbmdQbHVnaW5zKQorICAgICAgICBpZiAobV9taXNzaW5nUGx1Z2lu
c0NhbGxiYWNrKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNl
X2Vycm9yKG1lc3NhZ2UsICZlcnIub3V0UHRyKCksICZkZWJ1Zy5vdXRQdHIoKSk7CiAgICAgICAg
IEVSUk9SX01FRElBX01FU1NBR0UoIkVycm9yICVkOiAlcyAodXJsPSVzKSIsIGVyci0+Y29kZSwg
ZXJyLT5tZXNzYWdlLCBtX3VybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKQEAgLTEwMjksMTEg
KzEwMjcsMTggQEAgZ2Jvb2xlYW4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR1NU
X01FU1NBR0VfRUxFTUVOVDoKICAgICAgICAgaWYgKGdzdF9pc19taXNzaW5nX3BsdWdpbl9tZXNz
YWdlKG1lc3NhZ2UpKSB7Ci0gICAgICAgICAgICBnY2hhciogZGV0YWlsID0gZ3N0X21pc3Npbmdf
cGx1Z2luX21lc3NhZ2VfZ2V0X2luc3RhbGxlcl9kZXRhaWwobWVzc2FnZSk7Ci0gICAgICAgICAg
ICBnY2hhciogZGV0YWlsQXJyYXlbMl0gPSB7ZGV0YWlsLCAwfTsKLSAgICAgICAgICAgIEdzdElu
c3RhbGxQbHVnaW5zUmV0dXJuIHJlc3VsdCA9IGdzdF9pbnN0YWxsX3BsdWdpbnNfYXN5bmMoZGV0
YWlsQXJyYXksIDAsIG1lZGlhUGxheWVyUHJpdmF0ZVBsdWdpbkluc3RhbGxlclJlc3VsdEZ1bmN0
aW9uLCB0aGlzKTsKLSAgICAgICAgICAgIG1fbWlzc2luZ1BsdWdpbnMgPSByZXN1bHQgPT0gR1NU
X0lOU1RBTExfUExVR0lOU19TVEFSVEVEX09LOwotICAgICAgICAgICAgZ19mcmVlKGRldGFpbCk7
CisgICAgICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGRldGFpbChnc3RfbWlzc2luZ19wbHVnaW5f
bWVzc2FnZV9nZXRfaW5zdGFsbGVyX2RldGFpbChtZXNzYWdlKSk7CisgICAgICAgICAgICBpZiAo
Z3N0X2luc3RhbGxfcGx1Z2luc19zdXBwb3J0ZWQoKSkgeworICAgICAgICAgICAgICAgIG1fbWlz
c2luZ1BsdWdpbnNDYWxsYmFjayA9IE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1
Z2luc0NhbGxiYWNrOjpjcmVhdGUoW3RoaXNdKHVpbnQzMl90IHJlc3VsdCkgeworICAgICAgICAg
ICAgICAgICAgICBtX21pc3NpbmdQbHVnaW5zQ2FsbGJhY2sgPSBudWxscHRyOworICAgICAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0ICE9IEdTVF9JTlNUQUxMX1BMVUdJTlNfU1VDQ0VTUykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgICAgICBjaGFu
Z2VQaXBlbGluZVN0YXRlKEdTVF9TVEFURV9SRUFEWSk7CisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZVBpcGVsaW5lU3RhdGUoR1NUX1NUQVRFX1BBVVNFRCk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgbV9wbGF5ZXItPmNsaWVudCgpLnJlcXVlc3RJbnN0YWxsTWlzc2lu
Z1BsdWdpbnMoU3RyaW5nOjpmcm9tVVRGOChkZXRhaWwuZ2V0KCkpLCAqbV9taXNzaW5nUGx1Z2lu
c0NhbGxiYWNrKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogI2lmIEVOQUJMRShWSURFT19U
UkFDSykgJiYgVVNFKEdTVFJFQU1FUl9NUEVHVFMpCiAgICAgICAgIGVsc2UgewpAQCAtMTA1OCwx
NSArMTA2Myw2IEBAIGdib29sZWFuIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIHJldHVybiBUUlVFOwogfQogCi12b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVzdWx0
KEdzdEluc3RhbGxQbHVnaW5zUmV0dXJuIHJlc3VsdCkKLXsKLSAgICBtX21pc3NpbmdQbHVnaW5z
ID0gZmFsc2U7Ci0gICAgaWYgKHJlc3VsdCA9PSBHU1RfSU5TVEFMTF9QTFVHSU5TX1NVQ0NFU1Mp
IHsKLSAgICAgICAgY2hhbmdlUGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUkVBRFkpOwotICAgICAg
ICBjaGFuZ2VQaXBlbGluZVN0YXRlKEdTVF9TVEFURV9QQVVTRUQpOwotICAgIH0KLX0KLQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NCdWZmZXJpbmdTdGF0cyhHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogewogICAgIG1fYnVmZmVyaW5nID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA4OTA5ZDNiLi4yNjQxODQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC01
OCw2ICs1OCw3IEBAIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI7CiBjbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIGNsYXNzIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUdTdHJlYW1lcjsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI7
CitjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazsK
IGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOwogCiBjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSB7
CkBAIC0yMzQsNyArMjM1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIEdzdFN0YXRlIG1fcmVx
dWVzdGVkU3RhdGU7CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX2F1dG9BdWRpb1Npbms7Ci0g
ICAgYm9vbCBtX21pc3NpbmdQbHVnaW5zOworICAgIFJlZlB0cjxNZWRpYVBsYXllclJlcXVlc3RJ
bnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjaz4gbV9taXNzaW5nUGx1Z2luc0NhbGxiYWNrOwog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyPj4gbV9hdWRpb1RyYWNrczsKICAgICBWZWN0b3I8UmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGVHU3RyZWFtZXI+PiBtX3RleHRUcmFja3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJSZXF1ZXN0
SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdp
bnNDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NjdlOTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2suaApA
QCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
bmRlZiBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFja19oCisj
ZGVmaW5lIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrX2gK
KworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyUmVx
dWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TWVk
aWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s+IHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRCgpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFQbGF5
ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s+IGNyZWF0ZShzdGQ6OmZ1bmN0
aW9uPHZvaWQgKHVpbnQzMl90KT4mJiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxi
YWNrKFdURjo6bW92ZShmdW5jdGlvbikpKTsKKyAgICB9CisKKyAgICB2b2lkIGludmFsaWRhdGUo
KQorICAgIHsKKyAgICAgICAgbV9mdW5jdGlvbiA9IG51bGxwdHI7CisgICAgfQorCisgICAgdm9p
ZCBjb21wbGV0ZSh1aW50MzJfdCByZXN1bHQpCisgICAgeworICAgICAgICBpZiAoIW1fZnVuY3Rp
b24pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZnVuY3Rpb24ocmVzdWx0KTsKKyAg
ICAgICAgbV9mdW5jdGlvbiA9IG51bGxwdHI7CisgICAgfQorCitwcml2YXRlOgorICAgIE1lZGlh
UGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248
dm9pZCAodWludDMyX3QpPiYmIGZ1bmN0aW9uKQorICAgICAgICA6IG1fZnVuY3Rpb24oV1RGOjpt
b3ZlKGZ1bmN0aW9uKSkKKyAgICB7CisgICAgfQorCisgICAgc3RkOjpmdW5jdGlvbjx2b2lkICh1
aW50MzJfdCk+IG1fZnVuY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCisjZW5kaWYgLy8gTWVkaWFQ
bGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGIwMTdmMzQuLjFjZmE0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MyBAQAogMjAxNS0wNy0x
NyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAg
W0dTdHJlYW1lcl0gQ3Jhc2hlcyBkdXJpbmcgcGx1Z2luIGluc3RhbGxhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDk5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgbWlzc2luZyBw
bHVnaW5zIGluc3RhbGxhdGlvbiB0byB0aGUgVUkgcHJvY2VzcywgZW5zdXJpbmcKKyAgICAgICAg
dGhlcmUncyBhIHNpbmdsZSBpbnN0YWxsZXIgcnVubmluZyBhbmQgY2FuY2VsbGluZyB0aGUgcmVx
dWVzdCB3aGVuCisgICAgICAgIHRoZSBwYWdlIGlzIGNsb3NlZCBvciB0aGUgbWVkaWEgcGxheWVy
IGlzIGRlbGV0ZWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkIG5ldyBmaWxl
cyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogRGl0dG8uCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IEFkZAorICAgICAgICBSZXF1ZXN0SW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnMgbWVzc2FnZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dl
YlBhZ2VQcm94eUdTdHJlYW1lci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyk6IENhbGwKKyAgICAgICAg
Z3N0X2luc3RhbGxfcGx1Z2luc19hc3luYygpIGFuZCBzZW5kCisgICAgICAgIERpZEVuZFJlcXVl
c3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyBtZXNzYWdlIGJhY2sgdG8gdGhlIHdlYgorICAg
ICAgICBwcm9jZXNzIHdoZW4gZG9uZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6cmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKTogQ2FsbAorICAgICAgICBXZWJQ
YWdlOjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoKS4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xv
c2UpOiBJbnZhbGlkYXRlIHRoZSBpbnN0YWxsIG1pc3NpbmcgcGx1Z2lucworICAgICAgICByZXF1
ZXN0IGNhbGxiYWNrLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IEFkZAorICAg
ICAgICBEaWRFbmRSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMgbWVzc2FnZS4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEluc3RhbGxNaXNzaW5n
TWVkaWFQbHVnaW5zKTogU2VuZAorICAgICAgICBSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBs
dWdpbnMgdG8gdGhlIFVJIHByb2Nlc3Mgb3IgY29tcGxldGUKKyAgICAgICAgdGhlIHJlcXVlc3Qg
ZWFybHkgaWYgdGhlcmUncyBhbHJlYWR5IGEgcmVxdWVzdCBpbiBwcm9ncmVzcy4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZGlkRW5kUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
KToKKyAgICAgICAgQ29tcGxldGUgdGhlIHJlcXVlc3QuCisKKzIwMTUtMDctMTcgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIFBhc3Rl
IGRhdGEgaXMgcmVtb3ZlZCBmcm9tIGNsaXBib2FyZCB3aGVuIGNsb3NpbmcgYnJvd3NlciB0YWIK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDU0OQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGU4NzJkYTcuLmFkYmJmMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xODMsNiArMTgzLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5jcHAKICAg
ICBVSVByb2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCiAKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVy
L1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAKKwogICAgIFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eVNvdXAuY3BwCiAgICAgVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xT
b3VwLmNwcAogCkBAIC0yMTYsNiArMjE4LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJJbnNwZWN0b3JVSUVmbC5jcHAKICAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCiAKKyAgICBXZWJQcm9jZXNzL1dl
YlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL2Vm
bC9FeHRlbnNpb25NYW5hZ2VyRWZsLmNwcAogICAgIFdlYlByb2Nlc3MvZWZsL1NlY2NvbXBGaWx0
ZXJzV2ViUHJvY2Vzc0VmbC5jcHAKICAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVm
bC5jcHAKQEAgLTI4Niw2ICsyOTAsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NZU1RFTV9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgJHtFT19JTkNMVURFX0RJUlN9CiAgICAgJHtFVkFTX0lOQ0xV
REVfRElSU30KICAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R1NUUkVBTUVSX0lOQ0xV
REVfRElSU30KICAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KICAgICAke0xJQlNPVVBfSU5D
TFVERV9ESVJTfQogICAgICR7TElCWE1MMl9JTkNMVURFX0RJUn0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsu
Y21ha2UKaW5kZXggNDFkZDQ0NS4uNjExM2U2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UK
QEAgLTI5MCw2ICsyOTAsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJ
UHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKIAorICAgIFVJUHJvY2Vzcy9nc3Ry
ZWFtZXIvV2ViUGFnZVByb3h5R1N0cmVhbWVyLmNwcAorCiAgICAgVUlQcm9jZXNzL2d0ay9EcmFn
QW5kRHJvcEhhbmRsZXIuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9FeHBlcmltZW50YWxGZWF0dXJl
cy5jcHAKICAgICBVSVByb2Nlc3MvZ3RrL0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMzQxLDYg
KzM0Myw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9X
ZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKIAorICAgIFdlYlBy
b2Nlc3MvV2ViUGFnZS9nc3RyZWFtZXIvV2ViUGFnZUdTdHJlYW1lci5jcHAKKwogICAgIFdlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvUHJpbnRlckxpc3RHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9XZWJJbnNwZWN0b3JVSUd0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlBhZ2VHdGsuY3BwCkBAIC01MTUsNiArNTE5LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9T
WVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQogICAg
ICR7RU5DSEFOVF9JTkNMVURFX0RJUlN9CiAgICAgJHtHRU9DTFVFX0lOQ0xVREVfRElSU30KKyAg
ICAke0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CiAgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9
CiAgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCAyMWQyMjg4Li4zOGQzYzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDc5LDYgKzE0NzksOSBAQCBwcml2YXRlOgogCiAj
aWYgRU5BQkxFKFZJREVPKQogICAgIHZvaWQgbWVkaWFEb2N1bWVudE5hdHVyYWxTaXplQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICB2b2lk
IHJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJpbmcmIGRldGFpbHMp
OworI2VuZGlmCiAjZW5kaWYKIAogICAgIHZvaWQgaGFuZGxlQXV0b0ZpbGxCdXR0b25DbGljayhj
b25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjMyYmI3YS4uNDJmYzk2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00NTAsNCAr
NDUwLDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgIFVzZUZpeGVkTGF5b3V0
RGlkQ2hhbmdlKGJvb2wgdXNlRml4ZWRMYXlvdXQpCiAgICAgRml4ZWRMYXlvdXRTaXplRGlkQ2hh
bmdlKFdlYkNvcmU6OkludFNpemUgZml4ZWRMYXlvdXRTaXplKQorCisjaWYgRU5BQkxFKFZJREVP
KSAmJiBVU0UoR1NUUkVBTUVSKQorICAgIFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lu
cyhTdHJpbmcgZGV0YWlscykKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MzlmYmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1l
ci5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCisKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCisKKyNpbmNsdWRl
ICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdp
bnMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiBkZXRhaWxzKQoreworICAg
IENTdHJpbmcgZGV0YWlsID0gZGV0YWlscy51dGY4KCk7CisgICAgY29uc3QgY2hhciogZGV0YWls
QXJyYXlbMl0gPSB7IGRldGFpbC5kYXRhKCksIG51bGxwdHIgfTsKKyAgICByZWYoKTsKKyAgICAv
LyBGSVhNRTogVXNlIGEgcHJvcGVyIEdzdEluc3RhbGxQbHVnaW5zQ29udGV4dCBpbnN0ZWFkIG9m
IG51bGxwdHIuCisgICAgR3N0SW5zdGFsbFBsdWdpbnNSZXR1cm4gcmVzdWx0ID0gZ3N0X2luc3Rh
bGxfcGx1Z2luc19hc3luYyhkZXRhaWxBcnJheSwgbnVsbHB0ciwgW10oR3N0SW5zdGFsbFBsdWdp
bnNSZXR1cm4gcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBSZWZQdHI8V2Vi
UGFnZVByb3h5PiBwYWdlID0gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8V2ViUGFnZVByb3h5Kj4odXNl
ckRhdGEpKTsKKyAgICAgICAgaWYgKHBhZ2UtPmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEVuZFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlh
UGx1Z2lucyhzdGF0aWNfY2FzdDx1aW50MzJfdD4ocmVzdWx0KSkpOworICAgIH0sIHRoaXMpOwor
CisgICAgaWYgKHJlc3VsdCAhPSBHU1RfSU5TVEFMTF9QTFVHSU5TX1NUQVJURURfT0spIHsKKyAg
ICAgICAgLy8gSWYgdGhlIGluc3RhbGxlciBkaWRuJ3Qgc3RhcnQsIHRoZSBjYWxsYmFjayB3aWxs
IG5vdCBiZSBjYWxsZWQsIHNvIHJlbW92ZSB0aGUgcmVmIG1hbnVhbGx5LgorICAgICAgICBkZXJl
ZigpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRFbmRSZXF1ZXN0SW5zdGFs
bE1pc3NpbmdNZWRpYVBsdWdpbnMoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJlc3VsdCkpKTsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJNaXNzaW5nIEdTdHJlYW1lciBQbHVnaW46ICVzXG4iLCBkZXRh
aWwuZGF0YSgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDVkZmIxOGIuLjFiMmYzZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEx
NjMsNiArMTE2MywxMyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bWVkaWFEb2N1bWVudE5hdHVy
YWxTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZQogewogICAgIG1fcGFnZS0+
bWVkaWFEb2N1bWVudE5hdHVyYWxTaXplQ2hhbmdlZChuZXdTaXplKTsKIH0KKworI2lmIFVTRShH
U1RSRUFNRVIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdEluc3RhbGxNaXNzaW5nTWVk
aWFQbHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQoreworICAgIG1fcGFn
ZS0+cmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGRldGFpbHMsIGNhbGxiYWNrKTsK
K30KICNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA4YWY0OWIxLi4yODBlMGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKQEAgLTMyNSw2ICszMjUsOSBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYURvY3VtZW50TmF0dXJhbFNpemVDaGFuZ2VkKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2Fs
bGJhY2smKSBvdmVycmlkZTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICBTdHJpbmcgbV9jYWNoZWRU
b29sVGlwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDk0Njg0ZDQuLmFhMjBkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIxNiw2ICsyMTYsMTAgQEAKICNpbmNsdWRlICJDb29y
ZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclJlcXVl
c3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjay5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtOTY0LDYgKzk2OCwxMyBA
QCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURF
TykgJiYgVVNFKEdTVFJFQU1FUikKKyAgICBpZiAobV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJh
Y2spIHsKKyAgICAgICAgbV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2stPmludmFsaWRhdGUo
KTsKKyAgICAgICAgbV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2sgPSBudWxscHRyOworICAg
IH0KKyNlbmRpZgorCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlci5pbnZhbGlkYXRlKCk7
CiAKICNpZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjQ2ZmRhNi4u
YmM4N2M2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xMzksNiArMTM5LDEwIEBAIHN0cnVjdCBIaWdobGlnaHQ7CiBzdHJ1Y3QgS2V5cHJlc3ND
b21tYW5kOwogc3RydWN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Owogc3RydWN0IFRleHRD
aGVja2luZ1Jlc3VsdDsKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKK2Ns
YXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOworI2Vu
ZGlmCiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtOTA0LDYgKzkwOCw5IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShWSURFTykKICAgICB2b2lkIG1lZGlhRG9jdW1lbnROYXR1cmFsU2l6ZUNo
YW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworI2lmIFVTRShHU1RSRUFNRVIpCisgICAg
dm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiBkZXRh
aWxzLCBXZWJDb3JlOjpNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxs
YmFjayYpOworI2VuZGlmCiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTExNTMsNiArMTE2MCwxMCBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWdlU3RvcHBlZFNjcm9sbGluZygpOwogCisjaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQorICAgIHZvaWQgZGlkRW5kUmVxdWVzdEluc3Rh
bGxNaXNzaW5nTWVkaWFQbHVnaW5zKHVpbnQzMl90IHJlc3VsdCk7CisjZW5kaWYKKwogICAgIHVp
bnQ2NF90IG1fcGFnZUlEOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBhZ2U+IG1f
cGFnZTsKQEAgLTE0MDIsNiArMTQxMywxMCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICBib29sIG1faW5wdXRNZXRob2RFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQorICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRp
YVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjaz4gbV9pbnN0YWxsTWVk
aWFQbHVnaW5zQ2FsbGJhY2s7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgppbmRleCA5MThlN2RlLi5jNDIwY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDM1LDQgKzQz
NSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIENsZWFyV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyKCkKICAgICBTZXRTaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50
KGJvb2wgc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVudCkKICAgICBTZXRVc2VyQ29udGVudEV4
dGVuc2lvbnNFbmFibGVkKGJvb2wgdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCkKKworI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKKyAgICBEaWRFbmRSZXF1ZXN0SW5zdGFs
bE1pc3NpbmdNZWRpYVBsdWdpbnModWludDMyX3QgcmVzdWx0KQorI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1l
ci9XZWJQYWdlR1N0cmVhbWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mNWE0NWZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcApAQCAtMCwwICsxLDU5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVIpCisKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2Fs
bGJhY2suaD4KKyNpbmNsdWRlIDxnc3QvcGJ1dGlscy9pbnN0YWxsLXBsdWdpbnMuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdEluc3RhbGxNaXNzaW5nTWVk
aWFQbHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQoreworICAgIGlmICht
X2luc3RhbGxNZWRpYVBsdWdpbnNDYWxsYmFjaykgeworICAgICAgICBjYWxsYmFjay5jb21wbGV0
ZShHU1RfSU5TVEFMTF9QTFVHSU5TX0lOU1RBTExfSU5fUFJPR1JFU1MpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2sgPSAmY2FsbGJh
Y2s7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0SW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnMoZGV0YWlscykpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEVuZFJlcXVl
c3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyh1aW50MzJfdCByZXN1bHQpCit7CisgICAgaWYg
KCFtX2luc3RhbGxNZWRpYVBsdWdpbnNDYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9pbnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2stPmNvbXBsZXRlKHJlc3VsdCk7CisgICAgbV9p
bnN0YWxsTWVkaWFQbHVnaW5zQ2FsbGJhY2sgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikK
</data>
<flag name="review"
          id="282606"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>