<?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>195182</bug_id>
          
          <creation_ts>2019-02-28 12:44:21 -0800</creation_ts>
          <short_desc>RELEASE_LOG should not be Cocoa specific</short_desc>
          <delta_ts>2020-03-19 07:23:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>agomez</cc>
    
    <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>basuke</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jmason</cc>
    
    <cc>kangil.han</cc>
    
    <cc>krollin</cc>
    
    <cc>ltilve</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511069</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-02-28 12:44:21 -0800</bug_when>
    <thetext>As Michael Catanzaro noted on webkit-dev, RELEASE_LOG currently requires os_log (a Cocoa only function) to work. This seems like a mistake, and it really should fallback to using the default logging infrastructure for platforms without os_log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511083</commentid>
    <comment_count>1</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-02-28 13:00:42 -0800</bug_when>
    <thetext>Just to provide some context, while the ultimate implementation may still be considered a mistake, it was something I gave some thought to.

The LOG macros and their underlying infrastructure were created (so I assume) for debugging at development time. The circumstances under which that logging is enabled and the disposition of that logging reflects that model. The logging is enabled on a channel-by-channel basis, and is streams to the terminal, Xcode console, or similar.

The RELEASE_LOG macros are for capturing information on a user&apos;s system so that it can be collected later for post-molten diagnosis. It&apos;s always-on, and is not streamed to an in-your-face console. Instead, it&apos;s stored in a combination of in-memory and on-disk databases.

Because of these two different models, use-cases, etc., I opted to keep the facilities separate, and to let the maintainers of other platforms provide whatever underpinnings for RELEASE_LOG that worked best for them. So rather than have RELEASE_LOG fall back onto LOG or its underlying facility, I&apos;d see something new and platform-appropriate be added.

But that&apos;s just what I was thinking at the time. Others may have different opinions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511190</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-28 16:30:55 -0800</bug_when>
    <thetext>Separate from what logging is desirable, there’s a performance-related question too: On an operating system where there is no super-low-cost logging mechanism like os_log, it might not be right to log those same messages through a higher cost logging mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511442</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-03-01 10:04:02 -0800</bug_when>
    <thetext>Thanks for the historical context Keith. 

I still think that at the very least, having RELEASE_LOG() act like LOG(), that is, only work in Debug builds, on platforms without os_log, makes sense as many of these logs would also be helpful for debug logging purproses. I don&apos;t think that would have the same performance concerns.

It might also be helpful to some of this context in the source, so other port maintainers can understand the tradeoffs of enabling RELEASE_LOG() to log in Release builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511751</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-03-01 20:22:09 -0800</bug_when>
    <thetext>For what it’s worth, I agree with Sam on both of those points.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511822</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-02 09:47:03 -0800</bug_when>
    <thetext>The Linux equivalent of os_log would be sd-journal [1] from libsystemd (which we would want to be an optional dependency, not required), but I&apos;m not familiar with it, nor am I convinced it&apos;s as low-cost as os_log, which sounds impressive. Not sure if using sd-journal would really make a ton of sense for WebKit, because WebKit is only a system library, not a system service.

Falling back to debug LOG() makes a lot of sense to me.

[1] https://www.freedesktop.org/software/systemd/man/sd-journal.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620176</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-18 09:12:21 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; The Linux equivalent of os_log would be sd-journal [1] from libsystemd
&gt; (which we would want to be an optional dependency, not required), but I&apos;m
&gt; not familiar with it, nor am I convinced it&apos;s as low-cost as os_log, which
&gt; sounds impressive. 

I&apos;ve started working on a patch for optional sd-journal support...

&gt; Not sure if using sd-journal would really make a ton of
&gt; sense for WebKit, because WebKit is only a system library, not a system
&gt; service.
&gt; 

Well, AFAIU on mac platforms it&apos;s not a system service either?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620185</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-18 09:25:08 -0800</bug_when>
    <thetext>I’d love to help explain the role of the WebKit framework on macOS, but I don’t know what &quot;system library&quot; or &quot;system service&quot; mean so I can’t easily help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620290</commentid>
    <comment_count>8</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-02-18 13:14:44 -0800</bug_when>
    <thetext>I wanted to know about sd-journal, so I found this document https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs. I got to it from http://0pointer.de/blog/projects/the-journal.html, so I believe that article is from Mr. systemd, Lennart Poettering. I haven&apos;t read it yet, but I intend to.

But I also wanted to mention something about our RELEASE_LOGging. First, we&apos;re making more and more use of it, since we&apos;re finding it very valuable for its intended goal of gathering post-mortem information from testers and customers. Second, be very conscious of os_log&apos;s own goals of being very fast and space efficient. For example, I gathered the last two minutes of logging on my system. The binary files were 119MB, with the textual expansion being 477MB. For another data point, I collected all the logging on my system. The binary files, covering 2-3 weeks of activity, were 1.3GB; their textual expansion was 7.5GB. Since we watch WebKit&apos;s performance very closely, we know that we are gathering this information without appreciable or even noticeable performance slowdown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620331</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-18 14:39:17 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; I’d love to help explain the role of the WebKit framework on macOS, but I
&gt; don’t know what &quot;system library&quot; or &quot;system service&quot; mean so I can’t easily
&gt; help.

Sorry Darin, by system service I actually meant system library. I think what Michael means with is that WebKit-based apps on Linux are not the usual programs that log data to OS-level logging facilities, such as system-wide daemons, for instance. That&apos;s just my interpretation though, Michael please correct me if I am misinterpreting your comment.

Anyways, I think sd-journal could be used... As long as it can easily be disabled at compile-time and that it doesn&apos;t have a negative impact otherwise, of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620348</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-18 14:56:32 -0800</bug_when>
    <thetext>Honestly, I have no clue what I meant when I wrote that comment.

I don&apos;t see any reason WebKit should not log to the journal by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620627</commentid>
    <comment_count>11</comment_count>
      <attachid>391153</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-19 04:41:36 -0800</bug_when>
    <thetext>Created attachment 391153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620638</commentid>
    <comment_count>12</comment_count>
      <attachid>391157</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-19 07:05:18 -0800</bug_when>
    <thetext>Created attachment 391157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620794</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-19 12:11:25 -0800</bug_when>
    <thetext>I guess talk to Adrian about how to fix the EWS:

-- Could NOT find SYSTEMD (missing: SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES) (found version &quot;&quot;)
CMake Error at Source/cmake/OptionsGTK.cmake:462 (message):
  libsystemd is needed for ENABLE_RELEASE_LOGGING
Call Stack (most recent call first):
  Source/cmake/WebKitCommon.cmake:57 (include)
  CMakeLists.txt:169 (include)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620804</commentid>
    <comment_count>14</comment_count>
      <attachid>391157</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-19 12:33:24 -0800</bug_when>
    <thetext>Comment on attachment 391157
Patch

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

Thanks, having release logs is going to be a huge improvement.

&gt; Source/WTF/wtf/Assertions.h:541
&gt; +#define RELEASE_LOG(channel, ...) SD_JOURNAL_SEND(channel, LOG_NOTICE, __VA_ARGS__)
&gt; +#define RELEASE_LOG_ERROR(channel, ...) SD_JOURNAL_SEND(channel, LOG_ERR, __VA_ARGS__)
&gt; +#define RELEASE_LOG_FAULT(channel, ...) SD_JOURNAL_SEND(channel, LOG_CRIT, __VA_ARGS__)
&gt; +#define RELEASE_LOG_INFO(channel, ...) SD_JOURNAL_SEND(channel, LOG_INFO, __VA_ARGS__)

Ideally LOG_ERR and LOG_CRIT would also print to stderr in addition to the journal, yes? Because these are important error messages, and you shouldn&apos;t need to inspect the journal to see important error messages. And since stderr is already going to be printed to the journal, that implies that it might be best to just use g_warning() or g_critical() for these (respectively) and reserve SD_JOURNAL_SEND() for vanilla RELEASE_LOG() and RELEASE_LOG_INFO()... yes? Does that make sense? What do you think?

&gt; Source/WTF/wtf/Assertions.h:552
&gt; +#define RELEASE_LOG_WITH_LEVEL(channel, logLevel, ...) do { \
&gt; +    if (LOG_CHANNEL(channel).level &gt;= (logLevel)) \
&gt; +        SD_JOURNAL_SEND(channel, LOG_INFO, __VA_ARGS__); \
&gt; +} while (0)
&gt; +
&gt; +#define RELEASE_LOG_WITH_LEVEL_IF(isAllowed, channel, logLevel, ...) do { \
&gt; +    if ((isAllowed) &amp;&amp; LOG_CHANNEL(channel).level &gt;= (logLevel)) \
&gt; +        SD_JOURNAL_SEND(channel, LOG_INFO, __VA_ARGS__); \
&gt; +} while (0)
&gt; +#endif

Then if you agree with that suggestion, here you would check the level to decide whether to use SD_JOURNAL_SEND() or not.

&gt; Source/WTF/wtf/Logger.h:33
&gt; +// Don&apos;t send call site informations to the journal because those would always

information

&gt; Source/WTF/wtf/Logger.h:36
&gt; +#define SD_JOURNAL_SUPPRESS_LOCATION
&gt; +#include &lt;systemd/sd-journal.h&gt;

This is really sensitive to include order. If Assertions.h gets included before Logger.h, this doesn&apos;t work. I&apos;d define this also in Assertions.h, to be safe.

&gt; Source/cmake/FindSystemd.cmake:5
&gt; +# Once done, this will define
&gt; +#
&gt; +#  SYSTEMD_INCLUDE_DIRS - the SYSTEMD include drectories
&gt; +#  SYSTEMD_LIBRARIES - link these to use SYSTEMD

Don is going to throw a fit as he&apos;s trying to convert find modules to use targets. See r256731 for example of how much nicer it is to use targets instead. You can coordinate with him to figure out what exactly FindSystemd.cmake should look like, but I&apos;m pretty sure he&apos;s going to want it to define a target rather than SYSTEMD_INCLUDE_DIRS or SYSTEMD_LIBRARIES.

&gt; Source/cmake/OptionsGTK.cmake:90
&gt; +WEBKIT_OPTION_DEFINE(ENABLE_RELEASE_LOGGING &quot;Whether to enable sd-journal logging&quot; PUBLIC ON)

I would name it USE_SYSTEMD instead, since I&apos;m also going to want to use libsystemd to run web processes in isolated systemd scopes, and it&apos;d be nice to have only one public build option to disable all use of libsystemd instead of multiple options.

(

&gt; Source/cmake/OptionsGTK.cmake:459
&gt; +        message(STATUS &quot;Release logs will be sent to the SystemD journal&quot;)

systemd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620817</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-19 13:01:45 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; Don is going to throw a fit as he&apos;s trying to convert find modules to use
&gt; targets. See r256731 for example of how much nicer it is to use targets
&gt; instead. You can coordinate with him to figure out what exactly
&gt; FindSystemd.cmake should look like, but I&apos;m pretty sure he&apos;s going to want
&gt; it to define a target rather than SYSTEMD_INCLUDE_DIRS or SYSTEMD_LIBRARIES.

Talked to Don. Use r256601 as example of how to add a modern find module. I&apos;m sure he&apos;d appreciate not having to update this one himself. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620829</commentid>
    <comment_count>16</comment_count>
      <attachid>391157</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-02-19 13:23:44 -0800</bug_when>
    <thetext>Comment on attachment 391157
Patch

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

&gt;&gt; Source/cmake/FindSystemd.cmake:5
&gt;&gt; +#  SYSTEMD_LIBRARIES - link these to use SYSTEMD
&gt; 
&gt; Don is going to throw a fit as he&apos;s trying to convert find modules to use targets. See r256731 for example of how much nicer it is to use targets instead. You can coordinate with him to figure out what exactly FindSystemd.cmake should look like, but I&apos;m pretty sure he&apos;s going to want it to define a target rather than SYSTEMD_INCLUDE_DIRS or SYSTEMD_LIBRARIES.

Yes please follow along with some of the updated CMake modules. See FindOpenJPEG.cmake for something you can copy pasta and modify accordingly. There&apos;s also FindSQLite3.cmake and FindFontconfig.cmake in there which are roughly the same minus the finding of version numbers. Then just use the created systemd target instead of using the ${SYSTEMD_*} ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620830</commentid>
    <comment_count>17</comment_count>
      <attachid>391157</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-02-19 13:23:45 -0800</bug_when>
    <thetext>Comment on attachment 391157
Patch

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

&gt;&gt; Source/cmake/FindSystemd.cmake:5
&gt;&gt; +#  SYSTEMD_LIBRARIES - link these to use SYSTEMD
&gt; 
&gt; Don is going to throw a fit as he&apos;s trying to convert find modules to use targets. See r256731 for example of how much nicer it is to use targets instead. You can coordinate with him to figure out what exactly FindSystemd.cmake should look like, but I&apos;m pretty sure he&apos;s going to want it to define a target rather than SYSTEMD_INCLUDE_DIRS or SYSTEMD_LIBRARIES.

Yes please follow along with some of the updated CMake modules. See FindOpenJPEG.cmake for something you can copy pasta and modify accordingly. There&apos;s also FindSQLite3.cmake and FindFontconfig.cmake in there which are roughly the same minus the finding of version numbers. Then just use the created systemd target instead of using the ${SYSTEMD_*} ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621153</commentid>
    <comment_count>18</comment_count>
      <attachid>391157</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-20 03:27:31 -0800</bug_when>
    <thetext>Comment on attachment 391157
Patch

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

&gt;&gt; Source/WTF/wtf/Assertions.h:541
&gt;&gt; +#define RELEASE_LOG_INFO(channel, ...) SD_JOURNAL_SEND(channel, LOG_INFO, __VA_ARGS__)
&gt; 
&gt; Ideally LOG_ERR and LOG_CRIT would also print to stderr in addition to the journal, yes? Because these are important error messages, and you shouldn&apos;t need to inspect the journal to see important error messages. And since stderr is already going to be printed to the journal, that implies that it might be best to just use g_warning() or g_critical() for these (respectively) and reserve SD_JOURNAL_SEND() for vanilla RELEASE_LOG() and RELEASE_LOG_INFO()... yes? Does that make sense? What do you think?

Kinda makes sense, but by using g_warning/g_critical we lose the channel information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621159</commentid>
    <comment_count>19</comment_count>
      <attachid>391157</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-20 04:10:53 -0800</bug_when>
    <thetext>Comment on attachment 391157
Patch

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

&gt;&gt; Source/WTF/wtf/Logger.h:36
&gt;&gt; +#include &lt;systemd/sd-journal.h&gt;
&gt; 
&gt; This is really sensitive to include order. If Assertions.h gets included before Logger.h, this doesn&apos;t work. I&apos;d define this also in Assertions.h, to be safe.

Thing is, thanks to the usage of macros for logging in Assertions.h, we can get accurate call site information sent to sd-journal. Which isn&apos;t the case for the method-based approach used in the Logger :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621170</commentid>
    <comment_count>20</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-02-20 05:17:14 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #18)
&gt; Comment on attachment 391157 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=391157&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/Assertions.h:541
&gt; &gt;&gt; +#define RELEASE_LOG_INFO(channel, ...) SD_JOURNAL_SEND(channel, LOG_INFO, __VA_ARGS__)
&gt; &gt; 
&gt; &gt; Ideally LOG_ERR and LOG_CRIT would also print to stderr in addition to the journal, yes? Because these are important error messages, and you shouldn&apos;t need to inspect the journal to see important error messages. And since stderr is already going to be printed to the journal, that implies that it might be best to just use g_warning() or g_critical() for these (respectively) and reserve SD_JOURNAL_SEND() for vanilla RELEASE_LOG() and RELEASE_LOG_INFO()... yes? Does that make sense? What do you think?
&gt; 
&gt; Kinda makes sense, but by using g_warning/g_critical we lose the channel
&gt; information.

How about using g_log_structured(), then? We can pass journald field
names to it, therefore we can set CHANNEL+SUBSYSTEM, and the default
GLib log handler will automatically print to stderr the messages with
level warning and higher, and allow using the “G_MESSAGES_DEBUG”
environment variable to configure what to log (as expected for any
libraries and applications which use GLib):

  GUniquePtr&lt;char&gt; messageId(g_uuid_string_random());
  g_log_structured(logDomain, G_LOG_LEVEL_WARNING,
                   &quot;MESSAGE_ID&quot;, messageId,
                   &quot;CHANNEL&quot;, channel.name.,
                   &quot;SUBSYSTEM&quot;, channel.subsystem,
                   &quot;CODE_FILE&quot;, sourceFileName,  // If available.
                   &quot;CODE_LINE&quot;, sourceFileLine,  // Ditto.
                   &quot;CODE_FUNC&quot;, sourceFunction,  // Ditto.
                   &quot;MESSAGE&quot;, logMessage.utf8().data());

I am not 100% sure what to pass as “logDomain”, but we could as well pass
the “G_LOG_DOMAIN” constant to it, and then arrange things in CMake to
pass e.g. “-DG_LOG_DOMAIN=&quot;WebKit-WebCore&quot;”, “-DG_LOG_DOMAIN=&quot;WebKit-JSC&quot;”,
“-DG_LOG_DOMAIN=&quot;WebKit-UIProcess&quot;” and so on for the different components.

Reference for g_log_structured() here:

  https://developer.gnome.org/glib/stable/glib-Message-Logging.html#g-log-structured

(BTW, I think it would be fine to land this first without adding the
additional code to either user stderr or the GLib logging; that can be
done in a follow-up patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621186</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-02-20 06:43:12 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #19)
&gt; Comment on attachment 391157 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=391157&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/Logger.h:36
&gt; &gt;&gt; +#include &lt;systemd/sd-journal.h&gt;
&gt; &gt; 
&gt; &gt; This is really sensitive to include order. If Assertions.h gets included before Logger.h, this doesn&apos;t work. I&apos;d define this also in Assertions.h, to be safe.
&gt; 
&gt; Thing is, thanks to the usage of macros for logging in Assertions.h, we can
&gt; get accurate call site information sent to sd-journal. Which isn&apos;t the case
&gt; for the method-based approach used in the Logger :(

Most of the logging that goes through Logger use the macros in LoggerHelper.h. You could modify those to (optionally?) include more accurate call site information if necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621207</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-20 07:36:47 -0800</bug_when>
    <thetext>(In reply to Adrian Perez from comment #20)
&gt; How about using g_log_structured(), then? We can pass journald field
&gt; names to it, therefore we can set CHANNEL+SUBSYSTEM, and the default
&gt; GLib log handler will automatically print to stderr the messages with
&gt; level warning and higher, and allow using the “G_MESSAGES_DEBUG”
&gt; environment variable to configure what to log (as expected for any
&gt; libraries and applications which use GLib)

Good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621644</commentid>
    <comment_count>23</comment_count>
      <attachid>391397</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-21 07:54:19 -0800</bug_when>
    <thetext>Created attachment 391397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621659</commentid>
    <comment_count>24</comment_count>
      <attachid>391397</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-21 08:41:21 -0800</bug_when>
    <thetext>Comment on attachment 391397
Patch

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

&gt; Source/WTF/wtf/PlatformGTK.cmake:72
&gt; +    ${SYSTEMD_INCLUDE_DIRS}

This shouldn&apos;t be needed. Include dirs should be propagated by the Systemd::Systemd target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622083</commentid>
    <comment_count>25</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-24 01:19:09 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #22)
&gt; (In reply to Adrian Perez from comment #20)
&gt; &gt; How about using g_log_structured(), then? We can pass journald field
&gt; &gt; names to it, therefore we can set CHANNEL+SUBSYSTEM, and the default
&gt; &gt; GLib log handler will automatically print to stderr the messages with
&gt; &gt; level warning and higher, and allow using the “G_MESSAGES_DEBUG”
&gt; &gt; environment variable to configure what to log (as expected for any
&gt; &gt; libraries and applications which use GLib)
&gt; 
&gt; Good idea.

I&apos;ve tested this idea, but then I can&apos;t easily filter messages by channel. Also logs are not sent to the journal unless the app requests it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622086</commentid>
    <comment_count>26</comment_count>
      <attachid>391518</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-02-24 01:58:22 -0800</bug_when>
    <thetext>Created attachment 391518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625996</commentid>
    <comment_count>27</comment_count>
      <attachid>392549</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-05 02:17:42 -0800</bug_when>
    <thetext>Created attachment 392549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625997</commentid>
    <comment_count>28</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-05 02:18:15 -0800</bug_when>
    <thetext>Rebased... Would someone like to review this before it bitrots?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626005</commentid>
    <comment_count>29</comment_count>
      <attachid>392549</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-05 02:38:41 -0800</bug_when>
    <thetext>Comment on attachment 392549
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:63
&gt; +    , m_logIdentifier(mediaSource-&gt;nextSourceBufferLogIdentifier())

Can mediaSource be nullptr? If yes, this is a potential segfault, otherwise mediaSource should be passed by reference

&gt; Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:88
&gt; +    const Logger&amp; logger() const final { return m_logger.get(); }

Why not just return m_mediaSource-&gt;logger() here instead of copying Ref&lt;Logger&gt;? And similarly in other cases like this, where lifetimes of two objects are tied to each other</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626043</commentid>
    <comment_count>30</comment_count>
      <attachid>392549</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-05 06:56:53 -0800</bug_when>
    <thetext>Comment on attachment 392549
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:63
&gt;&gt; +    , m_logIdentifier(mediaSource-&gt;nextSourceBufferLogIdentifier())
&gt; 
&gt; Can mediaSource be nullptr? If yes, this is a potential segfault, otherwise mediaSource should be passed by reference

Can&apos;t be nullptr. I agree a ref would make sense here but would rather address this issue in a separate follow-up patch. I haven&apos;t closely followed the design of the SourceBuffer/MediaSource relationship, it seems like some changes could be made across the range of supported platforms here.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:88
&gt;&gt; +    const Logger&amp; logger() const final { return m_logger.get(); }
&gt; 
&gt; Why not just return m_mediaSource-&gt;logger() here instead of copying Ref&lt;Logger&gt;? And similarly in other cases like this, where lifetimes of two objects are tied to each other

I&apos;ve just used the same approach as in the AVF impl, TBH.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626044</commentid>
    <comment_count>31</comment_count>
      <attachid>392549</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-05 07:01:37 -0800</bug_when>
    <thetext>Comment on attachment 392549
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:63
&gt;&gt;&gt; +    , m_logIdentifier(mediaSource-&gt;nextSourceBufferLogIdentifier())
&gt;&gt; 
&gt;&gt; Can mediaSource be nullptr? If yes, this is a potential segfault, otherwise mediaSource should be passed by reference
&gt; 
&gt; Can&apos;t be nullptr. I agree a ref would make sense here but would rather address this issue in a separate follow-up patch. I haven&apos;t closely followed the design of the SourceBuffer/MediaSource relationship, it seems like some changes could be made across the range of supported platforms here.

Agreed

&gt;&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:88
&gt;&gt;&gt; +    const Logger&amp; logger() const final { return m_logger.get(); }
&gt;&gt; 
&gt;&gt; Why not just return m_mediaSource-&gt;logger() here instead of copying Ref&lt;Logger&gt;? And similarly in other cases like this, where lifetimes of two objects are tied to each other
&gt; 
&gt; I&apos;ve just used the same approach as in the AVF impl, TBH.

Looks like premature pessimization to me - extra reference churn, extra fields in objects (which in this case will remain in release builds)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630280</commentid>
    <comment_count>32</comment_count>
      <attachid>393642</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-16 03:29:49 -0700</bug_when>
    <thetext>Created attachment 393642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630281</commentid>
    <comment_count>33</comment_count>
      <attachid>393642</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-16 03:31:54 -0700</bug_when>
    <thetext>Comment on attachment 393642
Patch

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

&gt; Source/cmake/FindSystemd.cmake:55
&gt; +include(FindPkgConfig)

Please use find_package(PkgConfig QUIET) instead. Including find modules is wrong and causes (rightful) warnings witn CMake 3.17</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630287</commentid>
    <comment_count>34</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-16 03:58:03 -0700</bug_when>
    <thetext>Is that your only comment? Please make a full review so we can avoid un-necessary micro-iterations of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630294</commentid>
    <comment_count>35</comment_count>
      <attachid>393642</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-16 04:27:57 -0700</bug_when>
    <thetext>Comment on attachment 393642
Patch

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

&gt; Source/cmake/OptionsWPE.cmake:76
&gt; +WEBKIT_OPTION_DEFINE(USE_SYSTEMD &quot;Whether to enable sd-journal logging&quot; PUBLIC ON)

Is &quot;sd-journal logging&quot; an official term? I guess &quot;journald logging&quot; might be more obvious for users</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630295</commentid>
    <comment_count>36</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-16 04:28:58 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #34)
&gt; Is that your only comment? Please make a full review so we can avoid
&gt; un-necessary micro-iterations of the patch.

I think I have no more comments, except previous concern about Ref churn</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630428</commentid>
    <comment_count>37</comment_count>
      <attachid>393642</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-16 13:01:46 -0700</bug_when>
    <thetext>Comment on attachment 393642
Patch

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

Did not review the whole patch, but one small comment

&gt; Source/WTF/wtf/Assertions.h:169
&gt; +#if USE(OS_LOG)
&gt;      __unsafe_unretained os_log_t osLogChannel;
&gt;  #endif
&gt; +#endif

I prefer separate #if vs. nested #if for cases like this:

    #endif
    #if USE(OS_LOG) &amp;&amp; !RELEASE_LOG_DISABLED
        __unsafe_unretained os_log_t osLogChannel;
    #endif

This applies in other places below too. I suggest writing the whole expression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630680</commentid>
    <comment_count>38</comment_count>
      <attachid>393740</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-17 03:28:30 -0700</bug_when>
    <thetext>Created attachment 393740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630720</commentid>
    <comment_count>39</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-17 07:56:25 -0700</bug_when>
    <thetext>Committed r258547: &lt;https://trac.webkit.org/changeset/258547&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630721</commentid>
    <comment_count>40</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-17 07:57:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/60538783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631313</commentid>
    <comment_count>41</comment_count>
    <who name="Jim Mason">jmason</who>
    <bug_when>2020-03-18 12:44:00 -0700</bug_when>
    <thetext>In the gtk build with -DUSE_SYSTEMD=OFF, I am getting the following build errors:

/build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:436:24: error: &apos;class WebCore::MediaPlayer&apos; has no member named &apos;mediaPlayerLogger&apos;
  436 |     , m_logger(player-&gt;mediaPlayerLogger())
      |                        ^~~~~~~~~~~~~~~~~
/build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:437:31: error: &apos;class WebCore::MediaPlayer&apos; has no member named &apos;mediaPlayerLogIdentifier&apos;
  437 |     , m_logIdentifier(player-&gt;mediaPlayerLogIdentifier())
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~
/build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: In member function &apos;virtual WTFLogChannel&amp; WebCore::MediaPlayerPrivateGStreamer::logChannel() const&apos;:
/build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3844:21: error: &apos;LogMedia&apos; is not a member of &apos;WebCore&apos;
 3844 |     return WebCore::LogMedia;
      |                     ^~~~~~~~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631315</commentid>
    <comment_count>42</comment_count>
      <attachid>393740</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-18 12:49:17 -0700</bug_when>
    <thetext>Comment on attachment 393740
Patch

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

Indeed, a few #if checks are missing

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:435
&gt; +#endif

#if !RELEASE_LOG_DISABLED

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:121
&gt; +    , public CanMakeWeakPtr&lt;MediaPlayerPrivateGStreamer, WeakPtrFactoryInitialization::Eager&gt;

#if !RELEASE_LOG_DISABLED

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:543
&gt;  #endif

#if !RELEASE_LOG_DISABLED

&gt; Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:85
&gt;  

#if !RELEASE_LOG_DISABLED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631593</commentid>
    <comment_count>43</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-19 03:26:50 -0700</bug_when>
    <thetext>(In reply to Jim Mason from comment #41)
&gt; In the gtk build with -DUSE_SYSTEMD=OFF, I am getting the following build
&gt; errors:
&gt; 
&gt; /build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/
&gt; platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:436:24: error:
&gt; &apos;class WebCore::MediaPlayer&apos; has no member named &apos;mediaPlayerLogger&apos;
&gt;   436 |     , m_logger(player-&gt;mediaPlayerLogger())
&gt;       |                        ^~~~~~~~~~~~~~~~~
&gt; /build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/
&gt; platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:437:31: error:
&gt; &apos;class WebCore::MediaPlayer&apos; has no member named &apos;mediaPlayerLogIdentifier&apos;
&gt;   437 |     , m_logIdentifier(player-&gt;mediaPlayerLogIdentifier())
&gt;       |                               ^~~~~~~~~~~~~~~~~~~~~~~~
&gt; /build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/
&gt; platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: In member
&gt; function &apos;virtual WTFLogChannel&amp;
&gt; WebCore::MediaPlayerPrivateGStreamer::logChannel() const&apos;:
&gt; /build/rtutils/components/desktop/webkitgtk4-dev/webkit/Source/WebCore/
&gt; platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3844:21: error:
&gt; &apos;LogMedia&apos; is not a member of &apos;WebCore&apos;
&gt;  3844 |     return WebCore::LogMedia;
&gt;       |                     ^~~~~~~~

Fixed in r258691</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631642</commentid>
    <comment_count>44</comment_count>
    <who name="Jim Mason">jmason</who>
    <bug_when>2020-03-19 07:23:44 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #43)
&gt; Fixed in r258691

Confirmed, builds and runs fine now.  Thank you.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391153</attachid>
            <date>2020-02-19 04:41:36 -0800</date>
            <delta_ts>2020-02-19 07:05:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195182-20200219124134.patch</filename>
            <type>text/plain</type>
            <size>38852</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRiODY1MTRkNjhmZWQ3MWEzNTA3MzAx
NTVkMTY5YTIxNzZjMGZiMmUuLjI1NjE3MzNhYTc1MzlhYWViNTgyNGU2OWJlM2QxODVkOTQwZDU2
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUg
Q29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzZC1qb3VybmFsIGxvZ2dpbmcgc3VwcG9ydCBhbmQgd3JhcCB0aGUgb3NfbG9n
IGNhbGxzIHdpdGggdGhlIFVTRShPU19MT0cpIGd1YXJkLgorICAgICAgICAKKyAgICAgICAgKiB3
dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAg
KiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dG9TdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1X
UEUuY21ha2U6CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIw
MjAtMDItMTggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGFuIG9zX2xvZyBQcmludFN0cmVhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY4OWFjMzJjYjMyYzdl
ZGY3ZmY3M2UxMWZiMzM2NDk2MTZjZTViMGEuLjg0NGQyYmQwNTMxNWUxZGM0MzMzZDVjZWY3OTNk
NWIzNTFjMDBjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMC0wMi0xOSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVMRUFTRV9M
T0cgc2hvdWxkIG5vdCBiZSBDb2NvYSBzcGVjaWZpYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV1BFL0dUSyBidWlsZCBmaXhlcyByZWxhdGVkIHdpdGgg
UmVsZWFzZSBsb2dnaW5nIHN1cHBvcnQuCisgICAgICAgIAorICAgICAgICAqIGJyaWRnZS9ucHJ1
bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm90dGxpbmdSZWFzb25Ub1N0cmluZyk6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9TdHJpbmcpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnN0cmluZ0ZvckNQVVNhbXBsaW5nQWN0aXZpdHlTdGF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bWVkaWFQbGF5ZXJMb2dnZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94
eUNsZWFyS2V5OjpjZW5jRGVjcnlwdFN1YnNhbXBsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
UHJveHlDbGVhcktleTo6aW5pdGlhbGl6ZUdjcnlwdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjpNZWRpYVNv
dXJjZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6
fk1lZGlhU291cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0
cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VH
U3RyZWFtZXI6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6U291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVMb2dMZXZlbCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVz
IGNvbnN0KToKKwogMjAyMC0wMi0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBTY3JvbGxWaWV3OjpzdHlsZURpZENoYW5nZSB0byBzdHlsZUFuZFJl
bmRlclRyZWVEaWRDaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMu
Y3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggOWFiNzgwOWEyNTZlNmJj
NDAwMDBiYWRkYmQ3M2UwYjdmMDU0MDdkMi4uMThiNjg2OWM5YzU0OTY3NzliZjY3N2Q0Y2JiNGYx
YWIxM2QwN2YyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTc0LDYgKzc0LDEwIEBACiAjaW5j
bHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAorI2lmIFVTRShKT1VSTkFMRCkKKyNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogV1RG
X0FUVFJJQlVURV9QUklOVEYoMSwgMCkgc3RhdGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5k
QXJndW1lbnRzKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQpAQCAtNTIzLDcgKzUy
Nyw3IEBAIHN0YXRpYyB2b2lkIHNldFN0YXRlT2ZBbGxDaGFubmVscyhXVEZMb2dDaGFubmVsKiBj
aGFubmVsc1tdLCBzaXplX3QgY2hhbm5lbENvdW50CiAKIHZvaWQgV1RGSW5pdGlhbGl6ZUxvZ0No
YW5uZWxTdGF0ZXNGcm9tU3RyaW5nKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBj
b3VudCwgY29uc3QgY2hhciogbG9nTGV2ZWwpCiB7Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisjaWYgVVNFKE9TX0xPRykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFdURkxvZ0NoYW5uZWwqIGNoYW5u
ZWwgPSBjaGFubmVsc1tpXTsKICAgICAgICAgY2hhbm5lbC0+b3NMb2dDaGFubmVsID0gb3NfbG9n
X2NyZWF0ZShjaGFubmVsLT5zdWJzeXN0ZW0sIGNoYW5uZWwtPm5hbWUpOwpAQCAtNTc3LDEyICs1
ODEsMjMgQEAgdm9pZCBXVEZSZWxlYXNlTG9nU3RhY2tUcmFjZShXVEZMb2dDaGFubmVsKiBjaGFu
bmVsKQogICAgICAgICBmb3IgKGludCBmcmFtZU51bWJlciA9IDE7IGZyYW1lTnVtYmVyIDwgc3Rh
Y2tUcmFjZS0+c2l6ZSgpOyArK2ZyYW1lTnVtYmVyKSB7CiAgICAgICAgICAgICBhdXRvIHN0YWNr
RnJhbWUgPSBzdGFja1tmcmFtZU51bWJlcl07CiAgICAgICAgICAgICBhdXRvIGRlbWFuZ2xlZCA9
IFdURjo6U3RhY2tUcmFjZTo6ZGVtYW5nbGUoc3RhY2tGcmFtZSk7CisjaWYgVVNFKE9TX0xPRykK
ICAgICAgICAgICAgIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5kZW1hbmdsZWROYW1lKCkp
CiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9zTG9nQ2hhbm5lbCwgIiUtM2QgJXAg
JXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPmRlbWFuZ2xl
ZE5hbWUoKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5t
YW5nbGVkTmFtZSgpKQogICAgICAgICAgICAgICAgIG9zX2xvZyhjaGFubmVsLT5vc0xvZ0NoYW5u
ZWwsICIlLTNkICVwICV7cHVibGljfXMiLCBmcmFtZU51bWJlciwgc3RhY2tGcmFtZSwgZGVtYW5n
bGVkLT5tYW5nbGVkTmFtZSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBv
c19sb2coY2hhbm5lbC0+b3NMb2dDaGFubmVsLCAiJS0zZCAlcCIsIGZyYW1lTnVtYmVyLCBzdGFj
a0ZyYW1lKTsKKyNlbGlmIFVTRShKT1VSTkFMRCkKKyAgICAgICAgICAgIFN0cmluZ1ByaW50U3Ry
ZWFtIG91dDsKKyAgICAgICAgICAgIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5kZW1hbmds
ZWROYW1lKCkpCisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCAlcyIsIGZyYW1l
TnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPmRlbWFuZ2xlZE5hbWUoKSk7CisgICAgICAg
ICAgICBlbHNlIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5tYW5nbGVkTmFtZSgpKQorICAg
ICAgICAgICAgICAgIG91dC5wcmludGYoIiUtM2QgJXAgJXMiLCBmcmFtZU51bWJlciwgc3RhY2tG
cmFtZSwgZGVtYW5nbGVkLT5tYW5nbGVkTmFtZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBvdXQucHJpbnRmKCIlLTNkICVwIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUp
OworICAgICAgICAgICAgc2Rfam91cm5hbF9zZW5kKCJTVUJTWVNURU09JXMiLCBjaGFubmVsLT5z
dWJzeXN0ZW0sICJNRVNTQUdFPSVzIiwgb3V0LnRvQ1N0cmluZygpLmRhdGEoKSwgbnVsbHB0cik7
CisjZW5kaWYKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAppbmRleCBiMWE3M2Yw
ZDM1NzBiOWZjMTFlMWI5MTY5MjQyOGYwNmRlOGFjNDE2Li40Y2UzMTY4NTY0ZDljYWQyMjA4NjRk
YTM5MWUyZTY2ZjQ2NDRjZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCkBAIC01MSw2ICs1MSwxMCBAQAog
I2luY2x1ZGUgPG9zL2xvZy5oPgogI2VuZGlmCiAKKyNpZiBVU0UoSk9VUk5BTEQpCisjaW5jbHVk
ZSA8c3lzdGVtZC9zZC1qb3VybmFsLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAj
aW5jbHVkZSA8Y3N0ZGxpYj4KICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KQEAgLTkxLDcgKzk1LDcg
QEAgZXh0ZXJuICJDIiB2b2lkIF9SZWFkV3JpdGVCYXJyaWVyKHZvaWQpOwogI2VuZGlmCiAKICNp
Zm5kZWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRElTQUJMRUQg
IShVU0UoT1NfTE9HKSkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRElTQUJMRUQgIShVU0UoT1NfTE9H
KSB8fCBVU0UoSk9VUk5BTEQpKQogI2VuZGlmCiAKICNpZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJM
RSkKQEAgLTE1NCw4ICsxNTgsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIFdURkxvZ0xldmVs
IGxldmVsOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIHN1YnN5
c3RlbTsKKyNpZiBVU0UoT1NfTE9HKQogICAgIF9fdW5zYWZlX3VucmV0YWluZWQgb3NfbG9nX3Qg
b3NMb2dDaGFubmVsOwogI2VuZGlmCisjZW5kaWYKIH0gV1RGTG9nQ2hhbm5lbDsKIAogI2RlZmlu
ZSBMT0dfQ0hBTk5FTChuYW1lKSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFO
TkVMX1BSRUZJWCwgbmFtZSkKQEAgLTE2Myw3ICsxNjksMTMgQEAgdHlwZWRlZiBzdHJ1Y3Qgewog
I2RlZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKHByZWZpeCwgY2hhbm5lbCkgSk9J
Tl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkKICNkZWZp
bmUgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkg
cHJlZml4ICMjIGNoYW5uZWwKIAorI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgTE9HX0NIQU5O
RUxfV0VCS0lUX1NVQlNZU1RFTSAiV2ViS2l0R1RLIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2Rl
ZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNICJXUEVXZWJLaXQiCisjZWxzZQogI2Rl
ZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNICJjb20uYXBwbGUuV2ViS2l0IgorI2Vu
ZGlmCiAKICNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5FTChuYW1lKSBcCiAgICAgZXh0ZXJuIFdU
RkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSk7CkBAIC0xNzIsOSArMTg0LDEyIEBAIHR5cGVk
ZWYgc3RydWN0IHsKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAogI2RlZmluZSBERUZJTkVfTE9H
X0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBcCiAgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5F
TChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdURkxvZ0xldmVsKTEg
fTsKLSNlbHNlCisjZWxpZiBVU0UoT1NfTE9HKQogI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwo
bmFtZSwgc3Vic3lzdGVtKSBcCiAgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9
IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdURkxvZ0xldmVsKTEsIHN1YnN5c3Rl
bSwgT1NfTE9HX0RFRkFVTFQgfTsKKyNlbGlmIFVTRShKT1VSTkFMRCkKKyNkZWZpbmUgREVGSU5F
X0xPR19DSEFOTkVMKG5hbWUsIHN1YnN5c3RlbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5l
bFN0YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSwgc3Vic3lzdGVtIH07CiAjZW5kaWYKICNl
bmRpZgogCkBAIC00OTksMTYgKzUxNCwxMiBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWls
dXJlRHVlVG9VbnJlYWNoYWJsZUNvZGUgPSBmYWxzZTsKIAogI2RlZmluZSBSRUxFQVNFX0xPR19T
VEFDS1RSQUNFKGNoYW5uZWwpICgodm9pZCkwKQogI2Vsc2UKKyNpZiBVU0UoT1NfTE9HKQogI2Rl
ZmluZSBQVUJMSUNfTE9HX1NUUklORyAie3B1YmxpY31zIgogI2RlZmluZSBSRUxFQVNFX0xPRyhj
aGFubmVsLCAuLi4pIG9zX2xvZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9f
VkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCAuLi4pIG9zX2xv
Z19lcnJvcihMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQog
I2RlZmluZSBSRUxFQVNFX0xPR19GQVVMVChjaGFubmVsLCAuLi4pIG9zX2xvZ19mYXVsdChMT0df
Q0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxF
QVNFX0xPR19JTkZPKGNoYW5uZWwsIC4uLikgb3NfbG9nX2luZm8oTE9HX0NIQU5ORUwoY2hhbm5l
bCkub3NMb2dDaGFubmVsLCBfX1ZBX0FSR1NfXykKLQotI2RlZmluZSBSRUxFQVNFX0xPR19JRihp
c0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRygg
ICAgICBjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCi0jZGVmaW5lIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQp
IFJFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKLSNk
ZWZpbmUgUkVMRUFTRV9MT0dfSU5GT19JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBp
ZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPR19JTkZPKGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3
aGlsZSAoMCkKLQogI2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKGNoYW5uZWwsIGxvZ0xl
dmVsLCAuLi4pIGRvIHsgXAogICAgIGlmIChMT0dfQ0hBTk5FTChjaGFubmVsKS5sZXZlbCA+PSAo
bG9nTGV2ZWwpKSBcCiAgICAgICAgIG9zX2xvZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0No
YW5uZWwsIF9fVkFfQVJHU19fKTsgXApAQCAtNTE5LDYgKzUzMCwzMiBAQCBjb25zdGV4cHIgYm9v
bCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJsZUNvZGUgPSBmYWxzZTsKICAgICAgICAg
b3NfbG9nKExPR19DSEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pOyBc
CiB9IHdoaWxlICgwKQogCisjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0UoY2hhbm5lbCkg
V1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2UoJkxPR19DSEFOTkVMKGNoYW5uZWwpKQorI2VsaWYgVVNF
KEpPVVJOQUxEKQorI2RlZmluZSBQVUJMSUNfTE9HX1NUUklORyAicyIKKyNkZWZpbmUgU0RfSk9V
Uk5BTF9TRU5EKGNoYW5uZWwsIHByaW9yaXR5LCAuLi4pIGRvIHsgXAorICAgICAgICBzZF9qb3Vy
bmFsX3NlbmQoIlNVQlNZU1RFTT0lcyIsIExPR19DSEFOTkVMKGNoYW5uZWwpLnN1YnN5c3RlbSwg
IkNIQU5ORUw9JXMiLCBMT0dfQ0hBTk5FTChjaGFubmVsKS5uYW1lLCAiUFJJT1JJVFk9JWkiLCBw
cmlvcml0eSwgIk1FU1NBR0U9IiBfX1ZBX0FSR1NfXywgbnVsbHB0cik7IFwKK30gd2hpbGUgKDAp
CisjZGVmaW5lIFJFTEVBU0VfTE9HKGNoYW5uZWwsIC4uLikgU0RfSk9VUk5BTF9TRU5EKGNoYW5u
ZWwsIExPR19OT1RJQ0UsIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihj
aGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBMT0dfRVJSLCBfX1ZBX0FSR1Nf
XykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRkFVTFQoY2hhbm5lbCwgLi4uKSBTRF9KT1VSTkFMX1NF
TkQoY2hhbm5lbCwgTE9HX0NSSVQsIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19J
TkZPKGNoYW5uZWwsIC4uLikgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19JTkZPLCBfX1ZB
X0FSR1NfXykKKworI2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKGNoYW5uZWwsIGxvZ0xl
dmVsLCAuLi4pIGRvIHsgXAorICAgIGlmIChMT0dfQ0hBTk5FTChjaGFubmVsKS5sZXZlbCA+PSAo
bG9nTGV2ZWwpKSBcCisgICAgICAgIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBMT0dfSU5GTywg
X19WQV9BUkdTX18pOyBcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJFTEVBU0VfTE9HX1dJVEhf
TEVWRUxfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBsb2dMZXZlbCwgLi4uKSBkbyB7IFwKKyAgICBp
ZiAoKGlzQWxsb3dlZCkgJiYgTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0gKGxvZ0xldmVs
KSkgXAorICAgICAgICBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0lORk8sIF9fVkFfQVJH
U19fKTsgXAorfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGKGlz
QWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HKGNo
YW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJS
T1JfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFT
RV9MT0dfRVJST1IoY2hhbm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBS
RUxFQVNFX0xPR19JTkZPX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0Fs
bG93ZWQpIFJFTEVBU0VfTE9HX0lORk8oY2hhbm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgw
KQorCiAjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0UoY2hhbm5lbCkgV1RGUmVsZWFzZUxv
Z1N0YWNrVHJhY2UoJkxPR19DSEFOTkVMKGNoYW5uZWwpKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKaW5kZXgg
NGYyMzhjZTNlZGU1ZmJlODQzMzZjMmE3YjZiOGY1ZmM2OTNkMTg2Ni4uZWJjYzhhYjg0ZmU2NjZj
YjhiZTQ1OTA2N2IzY2Q4YmQwMWUyOTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9n
Z2VyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKQEAgLTI5LDYgKzI5LDEzIEBACiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCisjaWYgVVNFKEpPVVJOQUxEKQorLy8gRG9uJ3Qgc2VuZCBjYWxs
IHNpdGUgaW5mb3JtYXRpb25zIHRvIHRoZSBqb3VybmFsIGJlY2F1c2UgdGhvc2Ugd291bGQgYWx3
YXlzCisvLyBwb2ludCB0byB0aGlzIGZpbGUgYW55d2F5LgorI2RlZmluZSBTRF9KT1VSTkFMX1NV
UFBSRVNTX0xPQ0FUSU9OCisjaW5jbHVkZSA8c3lzdGVtZC9zZC1qb3VybmFsLmg+CisjZW5kaWYK
KwogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBAIC0yNDYsNyArMjUz
LDExIEBAIHByaXZhdGU6CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgV1RGTG9n
KCZjaGFubmVsLCAiJXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKKyNpZiBV
U0UoT1NfTE9HKQogICAgICAgICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIle3B1Ymxp
Y31zIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKKyNlbGlmIFVTRShKT1VSTkFMRCkKKyAg
ICAgICAgc2Rfam91cm5hbF9zZW5kKCJTVUJTWVNURU09JXMiLCBjaGFubmVsLnN1YnN5c3RlbSwg
IkNIQU5ORUw9JXMiLCBjaGFubmVsLm5hbWUsICJNRVNTQUdFPSVzIiwgbG9nTWVzc2FnZS51dGY4
KCkuZGF0YSgpLCBudWxscHRyKTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICAgICAgaWYgKGNoYW5u
ZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxl
dmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggMTM1NzU2
ZDg5N2VjNjgyODM4MTJhMTc1YTM3ZjU5OTdhZDY1ZDQ5My4uNTdmOWIwMTQzMWZlZmNkOTIxYWQ5
N2I0ZGM1ZjM5Yzk3ZjIwNjgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwCkBAIC0zNiw4ICszNiwxMCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogI2lmIFJFTEVBU0Vf
TE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsIExvZ01lbW9yeVByZXNzdXJlID0geyBXVEZMb2dD
aGFubmVsU3RhdGU6Ok9uLCAiTWVtb3J5UHJlc3N1cmUiLCBXVEZMb2dMZXZlbDo6RXJyb3IgfTsK
LSNlbHNlCisjZWxpZiBVU0UoT1NfTE9HKQogV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3Vy
ZSA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2
ZWw6OkVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9
OworI2VsaWYgVVNFKEpPVVJOQUxEKQorV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9
IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6
OkVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNIH07CiAjZW5kaWYKIAogV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnNf
bG9nZ2luZ0VuYWJsZWQgPSBmYWxzZTsKQEAgLTgzLDYgKzg1LDggQEAgc3RhdGljIGNvbnN0IGNo
YXIqIHRvU3RyaW5nKE1lbW9yeVVzYWdlUG9saWN5IHBvbGljeSkKICAgICBjYXNlIE1lbW9yeVVz
YWdlUG9saWN5OjpDb25zZXJ2YXRpdmU6IHJldHVybiAiQ29uc2VydmF0aXZlIjsKICAgICBjYXNl
IE1lbW9yeVVzYWdlUG9saWN5OjpTdHJpY3Q6IHJldHVybiAiU3RyaWN0IjsKICAgICB9CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYThkOTc5Mjk2YWI3YzcwNTJiMTA0ZDIxMWM5N2JjMDJj
MzFkOWRjZi4uYjZjMzc5ZWI4MDMxOWZhMjI0YmJiNGQzNThjNjIyYTlkZWVjYmRiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTU4LDYgKzU4LDcgQEAgbGlzdChBUFBFTkQgV1RGX0xJ
QlJBUklFUwogICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQogICAgICR7R0xJQl9HT0JKRUNUX0xJ
QlJBUklFU30KICAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7U1lTVEVNRF9MSUJSQVJJRVN9
CiAgICAgVGhyZWFkczo6VGhyZWFkcwogICAgIFpMSUI6OlpMSUIKICkKQEAgLTY1LDQgKzY2LDUg
QEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwogbGlzdChBUFBFTkQgV1RGX1NZU1RFTV9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgJHtHSU9fVU5JWF9JTkNMVURFX0RJUlN9CiAgICAgJHtHTElC
X0lOQ0xVREVfRElSU30KKyAgICAke1NZU1RFTURfSU5DTFVERV9ESVJTfQogKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZQppbmRleCBlNWE4ZmY0NzgxNjNmOGIyMzA2ZmZhYjcyZTQ0MmZlYzQ4NmRl
MzFhLi5mMDhiOTQwNjhjMjBjYjUwODM3MGIwZDBmMWFjNDM3MmY2ZmYwNDUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybVdQRS5jbWFrZQpAQCAtNDMsNiArNDMsNyBAQCBsaXN0KEFQUEVORCBXVEZfTElCUkFS
SUVTCiAgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CiAgICAgJHtHTElCX0dPQkpFQ1RfTElCUkFS
SUVTfQogICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtTWVNURU1EX0xJQlJBUklFU30KICAg
ICBUaHJlYWRzOjpUaHJlYWRzCiAgICAgWkxJQjo6WkxJQgogKQpAQCAtNTAsNCArNTEsNSBAQCBs
aXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCiBsaXN0KEFQUEVORCBXVEZfU1lTVEVNX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAke0dJT19VTklYX0lOQ0xVREVfRElSU30KICAgICAke0dMSUJfSU5D
TFVERV9ESVJTfQorICAgICR7U1lTVEVNRF9JTkNMVURFX0RJUlN9CiApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwIGIvU291cmNlL1dURi93dGYv
UmVmQ291bnRlZExlYWtDb3VudGVyLmNwcAppbmRleCBlMzNmYWNiODVkMzNhZWI4MWU5ZmEzZjQy
NWYzYThlMjBmYzA4Njc0Li5jYmZkNDY5ZDRjMGE2N2E5ZWNjMWEwODA0YjNhN2YyYWY2Mjg4YThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKQEAgLTQxLDggKzQx
LDEwIEBAIHZvaWQgUmVmQ291bnRlZExlYWtDb3VudGVyOjpkZWNyZW1lbnQoKSB7IH0KICNkZWZp
bmUgTE9HX0NIQU5ORUxfUFJFRklYIExvZwogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiBzdGF0
aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0
ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IgfTsKLSNlbHNlCisj
ZWxpZiBVU0UoT1NfTE9HKQogc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtz
ID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAiUmVmQ291bnRlZExlYWtzIiwgV1RGTG9nTGV2
ZWw6OkVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9
OworI2VsaWYgVVNFKEpPVVJOQUxEKQorc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRl
ZExlYWtzID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAiUmVmQ291bnRlZExlYWtzIiwgV1RG
TG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNIH07CiAjZW5kaWYK
IAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKiwgUHRySGFzaDxjb25zdCBjaGFy
Kj4+IFJlYXNvblNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwu
aAppbmRleCAzZGVlNmNhMWYzZTIxZTZiOTczMmJhNjkwZmZhYWQ4YThjNTkzZWFhLi41OThmOWRk
ZjEwODAyY2MyMGY4NGI0OWMyYWE5MzQwYmE4NjViOWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaWYgZGVmaW5lZChN
T1pfWDExKQogICAgICNpbmNsdWRlIDxYMTEvWHJlc291cmNlLmg+CiAKKyAgICAjdW5kZWYgQWx3
YXlzCiAgICAgI3VuZGVmIE5vbmUKICAgICAjdW5kZWYgQWJvdmUKICAgICAjdW5kZWYgQmVsb3cK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKaW5kZXggMDE0ZDRjZDhhZGEzNWY4YzVlM2JlMWU0Y2RkNjUxMjEzMzRhY2YwZS4uY2RmZGZi
OWI4NzYyMmM3ODFmMzhlYjM3NGY0M2UzNGY3MGQ1ODdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIHRocm90dGxpbmdSZWFzb25Ub1N0cmluZyhTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXI6OlRocm90dGwKICAgICBjYXNlIFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6VGhyb3R0bGluZ1JlYXNvbjo6Tm9uSW50ZXJhY3RlZENyb3NzT3JpZ2luRnJhbWU6
CiAgICAgICAgIHJldHVybiAiTm9uSW50ZXJhY3RpdmVDcm9zc09yaWdpbkZyYW1lIjsKICAgICB9
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAK
IHN0YXRpYyBTdHJpbmcgdGhyb3R0bGluZ1JlYXNvbnNUb1N0cmluZyhPcHRpb25TZXQ8U2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsaW5nUmVhc29uPiByZWFzb25zKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCmluZGV4IDM2ZTM4ZDQ3OTE3ZTNm
MmNkYjlkZGE4YzAwYmIyZDUyYWQ0YjYzMDMuLmYyZGU5N2I2Mzc5NzA3YmFiMjMyOTJmZDcyZDQ0
NDAyNThjNWY3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5j
cHAKQEAgLTQ4LDYgKzQ4LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRvU3RyaW5nKFBlcmZvcm1h
bmNlTG9nZ2luZzo6UG9pbnRPZkludGVyZXN0IHBvaSkKICAgICBjYXNlIFBlcmZvcm1hbmNlTG9n
Z2luZzo6TWFpbkZyYW1lTG9hZENvbXBsZXRlZDoKICAgICAgICAgcmV0dXJuICJNYWluRnJhbWVM
b2FkQ29tcGxldGVkIjsKICAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gIiI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZU1vbml0b3IuY3BwCmluZGV4IGU2NDVhYjkyMzVkYTQzNzAwMjJlN2I4MzBhYTA4MDg3MDM3
YzcxZjQuLmY4NWZiZWQwMzQwMjE0MjI3ZTYwYWE0ODdhM2JhZWQzMzk5N2YyYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTW9uaXRvci5jcHAKQEAgLTI2Miw2ICsyNjIsOCBA
QCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHN0cmluZ0ZvckNQVVNhbXBsaW5nQWN0aXZpdHlT
dGF0ZShBY3Rpdml0eVN0YXRlRm9yQ1BVUwogICAgIGNhc2UgQWN0aXZpdHlTdGF0ZUZvckNQVVNh
bXBsaW5nOjpWaXNpYmxlQW5kQWN0aXZlOgogICAgICAgICByZXR1cm4gIlZpc2libGVBbmRBY3Rp
dmUiOwogICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAiIjsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCmluZGV4IDU1M2Q4ZWUzZWI0NTU2OTkxMjNiYmFiZDU5ZGYzYTI0ZTAzOWU4
YjguLjQ0ZGQyZDBjODFlMTk4ZDhhOTI5NGRlNWZhZTEyM2MwMzA4MTRhNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC00MTMsMTUgKzQx
MywxNiBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQogICAgICwgbV9wcmVsb2FkKHBsYXllci0+cHJl
bG9hZCgpKQogICAgICwgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzKE1l
ZGlhVGltZTo6emVyb1RpbWUoKSkKICAgICAsIG1fZHJhd1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVwYWludCkKLSAgICAsIG1fcmVh
ZHlUaW1lckhhbmRsZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpyZWFkeVRpbWVyRmlyZWQKLSkKKyAgICAsIG1fcmVhZHlUaW1lckhhbmRsZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZWFk
eVRpbWVyRmlyZWQpCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2lmIFVTRShOSUNPU0lB
KQogICAgICwgbV9uaWNvc2lhTGF5ZXIoTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmlj
b3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMp
KSkKICNlbHNlCiAgICAgLCBtX3BsYXRmb3JtTGF5ZXJQcm94eShhZG9wdFJlZihuZXcgVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgpKSkKICNlbmRpZgotI2VuZGlmICAgICAgCisjZW5k
aWYKKyAgICAsIG1fbG9nZ2VyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1f
bG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKQogewogI2lm
IFVTRShHTElCKQogICAgIG1fcmVhZHlUaW1lckhhbmRsZXIuc2V0UHJpb3JpdHkoR19QUklPUklU
WV9ERUZBVUxUX0lETEUpOwpAQCAtMzgyMSw2ICszODIyLDExIEBAIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpleHRlbmRlZFN1cHBvcnRzVHlw
ZShjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2Vi
Q29yZTo6TG9nTWVkaWE7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTIxYjIwZDEx
Y2M4ZGQ5NGJlMjg0ZDc0Njk5Y2QyNzE3YjRlMDU0NS4uMDQxYTU4YWZmOTY1NjA3YTM2ZWQ0MTY3
NzZkNWVmNTFiYjFmMDhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9u
LmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKQEAgLTM3LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAg
LTExNyw3ICsxMTksOSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIHZvaWQg
cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpOwogCiAvLyBVc2UgZWFnZXIgaW5pdGlh
bGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRy
KCkgZnJvbSBhbm90aGVyIHRocmVhZC4KLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6
YXRpb246OkVhZ2VyPgorY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlv
bjo6RWFnZXI+CisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgogI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKICNpZiBVU0UoTklDT1NJQSkKICAgICAsIHB1YmxpYyBOaWNvc2lhOjpDb250ZW50
TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Q2xpZW50CkBAIC0yMjgsNiArMjMyLDE0IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGZsdXNoQ3VycmVudEJ1ZmZlcigpOwogI2VuZGlmCiAKKyAgICBjb25zdCBM
b2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9Cisg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciI7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlm
aWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4o
bV9sb2dJZGVudGlmaWVyKTsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25z
dCBvdmVycmlkZTsKKworICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigp
IHsgcmV0dXJuIGxvZ0lkZW50aWZpZXIoKTsgfQorICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5
ZXJMb2dnZXIoKSB7IHJldHVybiBsb2dnZXIoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBN
YWluVGhyZWFkTm90aWZpY2F0aW9uIHsKICAgICAgICAgVmlkZW9DaGFuZ2VkID0gMSA8PCAwLApA
QCAtNTMxLDYgKzU0Myw4IEBAIHByaXZhdGU6CiAjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQ
TEFZX0RNQUJVRikKICAgICBHVW5pcXVlUHRyPHN0cnVjdCB3cGVfdmlkZW9fcGxhbmVfZGlzcGxh
eV9kbWFidWZfc291cmNlPiBtX3dwZVZpZGVvUGxhbmVEaXNwbGF5RG1hQnVmOwogI2VuZGlmCisg
ICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVu
dGlmaWVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKaW5k
ZXggNmM0MjUwZGYwNTFiMGFkYWQ1Yjg5MjA5MTg1NWIzMWQzZTg5MzBlNS4uYzFiNmIzNGY2ODZm
NGNmNzJmZTYxMjUzMjA0MjQ0ZDg1N2ZlNGQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5
Q2xlYXJLZXkuY3BwCkBAIC0xNzEsNyArMTcxLDExIEBAIGJvb2wgQ0RNUHJveHlDbGVhcktleTo6
Y2VuY0RlY3J5cHRTdWJzYW1wbGVkKGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiAgICAgICAg
ICAgICBMT0coRU1FLCAiRU1FIC0gc3Vic2FtcGxlIGluZGV4ICV1IC0gJXUgYnl0ZXMgZW5jcnlw
dGVkICglbHUgYnl0ZXMgbGVmdCB0byBkZWNyeXB0KSIsIHN1YnNhbXBsZUluZGV4LCBzdWJzYW1w
bGVOdW1FbmNyeXB0ZWRCeXRlcywgaW5wdXQuZW5jcnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMgLSBl
bmNyeXB0ZWRCdWZmZXJCeXRlT2Zmc2V0KTsKIAogICAgICAgICAgICAgaWYgKGdjcnlfZXJyb3Jf
dCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQobV9nY3J5SGFuZGxlLCBpbnB1dC5l
bmNyeXB0ZWRCdWZmZXIgKyBlbmNyeXB0ZWRCdWZmZXJCeXRlT2Zmc2V0LCBzdWJzYW1wbGVOdW1F
bmNyeXB0ZWRCeXRlcywgMCwgMCkpIHsKKyNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgICAgICAg
ICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9k
ZWNyeXB0KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKKyNlbHNlCisgICAgICAg
ICAgICAgICAgVU5VU0VEX1ZBUklBQkxFKGNpcGhlckVycm9yKTsKKyNlbmRpZgogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KIApAQCAtMTkzLDcgKzE5NywxMSBA
QCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0KENETVByb3h5Q2xlYXJLZXk6OmNl
bmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiB2b2lkIENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxp
emVHY3J5cHQoKQogewogICAgIGlmIChnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9v
cGVuKCZtX2djcnlIYW5kbGUsIEdDUllfQ0lQSEVSX0FFUzEyOCwgR0NSWV9DSVBIRVJfTU9ERV9D
VFIsIEdDUllfQ0lQSEVSX1NFQ1VSRSkpIHsKKyNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExP
RyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfb3Blbik6
ICVzIiwgZ3BnX3N0cmVycm9yKGVycm9yKSk7CisjZWxzZQorICAgICAgICBVTlVTRURfVkFSSUFC
TEUoZXJyb3IpOworI2VuZGlmCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGZhbHNlICYmICJTaG91
bGQgbm90IGdldCB0aGlzIGZhciB3aXRoIGEgZnVuY3Rpb25hbCBHQ3J5cHQhIik7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFLmgKaW5kZXggNWQxMDEzZmNiZWYwNTc5MzQ4MGJiMzhlZGVmZTRiNjRmMGFjZjQyYy4uNGUw
OGI1ZGRmNWE4YWMzMGE4NDFhYzBkZjhjMzVhMzcwMjY1MjBjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCkBAIC04NCw2ICs4
NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGJsb2NrRHVyYXRpb25DaGFuZ2VzKCk7CiAgICAgdm9p
ZCB1bmJsb2NrRHVyYXRpb25DaGFuZ2VzKCk7CiAKKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFu
bmVsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gV2ViQ29yZTo6TG9nTWVkaWFTb3VyY2U7IH0KKwog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJGYWN0b3J5R1N0cmVhbWVyTVNF
OwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VH
U3RyZWFtZXIuY3BwCmluZGV4IGU2MmNkNTZhODQ2YjM0NzYxMjM0NDgzNTI1YTJlNmEwZmI2ODBl
NTMuLmM4ZjU4MDU2ZWFkNDVkZTYxNWE4ODJjMWI5M2Y5MmM0MTkyZTA2YTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEdTVFJFQU1FUikKIAogI2luY2x1ZGUgIkNv
bnRlbnRUeXBlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgiCkBAIC02
MCwxNyArNjEsMjMgQEAgTWVkaWFTb3VyY2VHU3RyZWFtZXI6Ok1lZGlhU291cmNlR1N0cmVhbWVy
KE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCYgbWVkaWFTb3VyY2UKICAgICAsIG1fY2xpZW50KE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjpjcmVhdGUocGxheWVyUHJpdmF0ZSkpCiAgICAg
LCBtX21lZGlhU291cmNlKG1lZGlhU291cmNlKQogICAgICwgbV9wbGF5ZXJQcml2YXRlKHBsYXll
clByaXZhdGUpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihtX3Bs
YXllclByaXZhdGUubWVkaWFQbGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllciht
X3BsYXllclByaXZhdGUubWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKIHsKIH0K
IAogTWVkaWFTb3VyY2VHU3RyZWFtZXI6On5NZWRpYVNvdXJjZUdTdHJlYW1lcigpCiB7CisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICBmb3IgKGF1dG8mIHNvdXJjZUJ1ZmZlclBy
aXZhdGUgOiBtX3NvdXJjZUJ1ZmZlcnMpCiAgICAgICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUtPmNs
ZWFyTWVkaWFTb3VyY2UoKTsKIH0KIAogTWVkaWFTb3VyY2VHU3RyZWFtZXI6OkFkZFN0YXR1cyBN
ZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyKGNvbnN0IENvbnRlbnRUeXBlJiBj
b250ZW50VHlwZSwgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+JiBzb3VyY2VCdWZmZXJQcml2
YXRlKQogeworICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCBjb250ZW50VHlwZSk7CiAgICAg
c291cmNlQnVmZmVyUHJpdmF0ZSA9IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0
ZSh0aGlzLCBtX2NsaWVudC5nZXQoKSwgY29udGVudFR5cGUpOwogICAgIFJlZlB0cjxTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyID0gc3Rh
dGljX2Nhc3Q8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcio+KHNvdXJjZUJ1ZmZlclByaXZh
dGUuZ2V0KCkpOwogICAgIG1fc291cmNlQnVmZmVycy5hZGQoc291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcik7CkBAIC0xMzUsNSArMTQyLDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRp
bWVSYW5nZXM+IE1lZGlhU291cmNlR1N0cmVhbWVyOjpidWZmZXJlZCgpCiAgICAgcmV0dXJuIG1f
bWVkaWFTb3VyY2UtPmJ1ZmZlcmVkKCk7CiB9CiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
K1dURkxvZ0NoYW5uZWwmIE1lZGlhU291cmNlR1N0cmVhbWVyOjpsb2dDaGFubmVsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gTG9nTWVkaWFTb3VyY2U7Cit9CisKKyNlbmRpZgorCiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaAppbmRleCBjOWEwOWZhMDQz
OWZlZjhlYjhkYjc1MDVmY2JjOTdlMDUyMzc4ZWE2Li41Y2Y5YjgyMGExOTQ3ZjgwMTcxODBjYWZi
NTZiNzYyZjVjMjYzYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1l
ci5oCkBAIC0zOSw2ICszOSw3IEBACiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFTcmMgV2ViS2l0TWVkaWFTcmM7CiAKQEAgLTUwLDcgKzUx
LDExIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTsKIGNsYXNzIFBsYXRm
b3JtVGltZVJhbmdlczsKIAogLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIGNhbGxlZCBNZWRpYVNv
dXJjZVByaXZhdGVHU3RyZWFtZXI/Ci1jbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lciBmaW5hbCA6
IHB1YmxpYyBNZWRpYVNvdXJjZVByaXZhdGUgeworY2xhc3MgTWVkaWFTb3VyY2VHU3RyZWFtZXIg
ZmluYWwgOiBwdWJsaWMgTWVkaWFTb3VyY2VQcml2YXRlCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CiBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgb3BlbihNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQmLCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UmKTsKICAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZUdTdHJlYW1lcigp
OwpAQCAtNzMsNiArNzgsMTUgQEAgcHVibGljOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
ICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIu
Z2V0KCk7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyIjsgfQorICAgIGNvbnN0IHZvaWQq
IGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0K
KyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisKKyAgICBjb25z
dCB2b2lkKiBuZXh0U291cmNlQnVmZmVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIGNoaWxkTG9n
SWRlbnRpZmllcihtX2xvZ0lkZW50aWZpZXIsICsrbV9uZXh0U291cmNlQnVmZmVySUQpOyB9Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJjZVBy
aXZhdGVDbGllbnQmLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UmKTsKIApAQCAtODEs
NiArOTUsMTEgQEAgcHJpdmF0ZToKICAgICBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJN
U0U+IG1fY2xpZW50OwogICAgIFJlZjxNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+IG1fbWVkaWFT
b3VyY2U7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBtX3BsYXllclByaXZh
dGU7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9s
b2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworICAgIHVpbnQ2NF90IG1f
bmV4dFNvdXJjZUJ1ZmZlcklEIHsgMCB9OworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3YzFl
Nzk5MTZkOTNmOGFmMTExZGNhODNhZDUyYzVjNGU1YzhmN2ZkLi43MjBkMzQ0ZmZkMmNjNjllMTMw
OWMyM2E1MGU0MGZlNTE2NjA0YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTU4LDYgKzU4LDEwIEBAIFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVkaWFT
b3VyY2VHU3RyZWFtZXIqCiAgICAgLCBtX21lZGlhU291cmNlKG1lZGlhU291cmNlKQogICAgICwg
bV90eXBlKGNvbnRlbnRUeXBlKQogICAgICwgbV9jbGllbnQoY2xpZW50LmdldCgpKQorI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgbV9sb2dnZXIobWVkaWFTb3VyY2UtPmxvZ2dlcigp
KQorICAgICwgbV9sb2dJZGVudGlmaWVyKG1lZGlhU291cmNlLT5uZXh0U291cmNlQnVmZmVyTG9n
SWRlbnRpZmllcigpKQorI2VuZGlmCiB7CiB9CiAKQEAgLTE3Nyw1ICsxODEsMTIgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmRQYXJzaW5nRmFpbGVkKCkKICAgICAg
ICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5k
Q29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6UGFyc2luZ0ZhaWxlZCk7CiB9CiAK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxvZ0NoYW5uZWwmIFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBMb2dNZWRp
YVNvdXJjZTsKK30KKyNlbmRpZgorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZTVmZTQwNjhhODJhN2QyMmVj
Zjk0NTdmZGUyYjk4ZTExN2NiOTBiNC4uMWNjYWZhMGE1Zjk2N2FlNDA3NWQzMDg5NzJiYzIxMDk2
MjkzNDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmgKQEAgLTQxLDEyICs0MSwxNyBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclBy
aXZhdGUuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTb3VyY2VHU3RyZWFt
ZXI7CiAKLWNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMg
U291cmNlQnVmZmVyUHJpdmF0ZSB7CitjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
IGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUKKyNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKKyAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCisjZW5kaWYKK3sKIAogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKE1lZGlh
U291cmNlR1N0cmVhbWVyKiwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiwgY29u
c3QgQ29udGVudFR5cGUmKTsKQEAgLTc5LDYgKzg0LDE1IEBAIHB1YmxpYzoKIAogICAgIENvbnRl
bnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAorI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAiU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lciI7IH0KKyAg
ICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJ
ZGVudGlmaWVyOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFs
OworICAgIGNvbnN0IExvZ2dlciYgc291cmNlQnVmZmVyTG9nZ2VyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBzb3VyY2VCdWZmZXJMb2dJ
ZGVudGlmaWVyKCkgZmluYWwgeyByZXR1cm4gbG9nSWRlbnRpZmllcigpOyB9CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhU291cmNlR1N0
cmVhbWVyKiwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiwgY29uc3QgQ29udGVu
dFR5cGUmKTsKICAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U7
CkBAIC05MCw2ICsxMDQsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNSZWFkeUZvck1vcmVT
YW1wbGVzID0gdHJ1ZTsKICAgICBib29sIG1fbm90aWZ5V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMg
PSBmYWxzZTsKICAgICBBdG9tU3RyaW5nIG1fdHJhY2tJZDsKKworI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQq
IG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIuY3BwCmluZGV4IGI1MTY0OWEwYThkNWZlN2QzNGIxOTFjNmY4OTFhZjQw
MjllNmI0ODEuLjUxZjA1ZDg1MmRlYjdkZDllZjgwZjhmYzMyOTUyOWJjZjA0MmYyMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaCIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggZjdkYTNmN2Y0MDJkYTg5MzhkN2FkZGZhN2EwMTVh
MjQ4YjI2YTkxMS4uZDdjZGE3ODc1OTM3OGIyN2VmZGFhNGIxYThmNzczMDllMmJmOTVjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0xNTcsNiArMTU3LDggQEAg
c3RhdGljIHJ0Yzo6TG9nZ2luZ1NldmVyaXR5IGNvbXB1dGVMb2dMZXZlbCgpCiAgICAgY2FzZSBX
VEZMb2dMZXZlbDo6RGVidWc6CiAgICAgICAgIHJldHVybiBydGM6OkxTX1ZFUkJPU0U7CiAgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHJ0Yzo6TFNf
Tk9ORTsKICNlbHNlCiAgICAgcmV0dXJuIHJ0Yzo6TFNfTk9ORTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGM0ZjA5ZTZhYjlmNWJmMjA1YmM3YzQwY2M1
OWQwMTZkY2JhNzgwYmMuLjQzMGUxNzUzODY4YTVlNDgxYmQ2YWQzZjUwYzBhYmVkYjRhMjg4YmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQ3MCw2ICs0NzAsNyBA
QCBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSQogI2Vsc2UKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4g
Y29va2llcyhzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0KGNvb2tpZVN0b3JhZ2UoKSwg
dXJpLmdldCgpLCBUUlVFKSk7CiAgICAgVU5VU0VEX1BBUkFNKHNhbWVTaXRlSW5mbyk7CisgICAg
VU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwogI2VuZGlmCiAgICAgaWYgKCFjb29raWVzKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFN5c3RlbWQu
Y21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZFN5c3RlbWQuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQwMjI1
NGZkOGNlNWNlN2I2ZDgyOThkNTBiNGJmMzYyOTg4ODgxOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFrZQpAQCAtMCwwICsxLDUxIEBACisjIC0gVHJ5IHRv
IGZpbmQgU1lTVEVNRAorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIFNZU1RF
TURfSU5DTFVERV9ESVJTIC0gdGhlIFNZU1RFTUQgaW5jbHVkZSBkcmVjdG9yaWVzCisjICBTWVNU
RU1EX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFNZU1RFTUQKKyMKKyMgQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElT
JycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykK
K3BrZ19jaGVja19tb2R1bGVzKFBDX1NZU1RFTUQgbGlic3lzdGVtZCkKKworZmluZF9wYXRoKFNZ
U1RFTURfSU5DTFVERV9ESVJTCisgICAgTkFNRVMgc3lzdGVtZC9zZC1qb3VybmFsLmgKKyAgICBI
SU5UUyAke1BDX1NZU1RFTURfSU5DTFVERURJUn0KKyAgICAgICAgICAke1BDX1NZU1RFTURfSU5D
TFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoU1lTVEVNRF9MSUJSQVJJRVMKKyAgICBOQU1F
UyBzeXN0ZW1kCisgICAgSElOVFMgJHtQQ19TWVNURU1EX0xJQlJBUllfRElSU30KKyAgICAgICAg
ICAke1BDX1NZU1RFTURfTElCRElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3Rh
bmRhcmRBcmdzKQorRklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFNZU1RFTUQgUkVR
VUlSRURfVkFSUyBTWVNURU1EX0lOQ0xVREVfRElSUyBTWVNURU1EX0xJQlJBUklFUworICAgIFZF
UlNJT05fVkFSIFBDX1NZU1RFTURfVkVSU0lPTikKK21hcmtfYXNfYWR2YW5jZWQoCisgICAgU1lT
VEVNRF9JTkNMVURFX0RJUlMKKyAgICBTWVNURU1EX0xJQlJBUklFUworKQpkaWZmIC0tZ2l0IGEv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5j
bWFrZQppbmRleCAzNjFjODYwYzg5OTZkNDJkZWI3YThmZWVjNDk4MGI1YTNlNzA0ZGEyLi41Njg3
MGY5YjY4YTc2MTcwZGRmMDdiYzRiYWE5MDQ0ZTM5NzkzZThkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFr
ZQpAQCAtODcsNiArODcsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfTElCU0VDUkVUICJX
aGV0aGVyIHRvIGVuYWJsZSB0aGUgcGVyc2lzdGVudCBjcmVkZW50aWFsCiBXRUJLSVRfT1BUSU9O
X0RFRklORShVU0VfT1BFTkpQRUcgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIEpQRUcy
MDAwIGltYWdlcy4iIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9XT0ZGMiAi
V2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgV09GRjIgV2ViIEZvbnRzLiIgUFVCTElDIE9O
KQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1dQRV9SRU5ERVJFUiAiV2hldGhlciB0byBlbmFi
bGUgV1BFIHJlbmRlcmluZyIgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X1JFTEVBU0VfTE9HR0lORyAiV2hldGhlciB0byBlbmFibGUgc2Qtam91cm5hbCBsb2dnaW5nIiBQ
VUJMSUMgT04pCiAKICMgUHJpdmF0ZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBHVEsgcG9ydC4g
Q2hhbmdpbmcgdGhlc2Ugb3B0aW9ucyBpcwogIyBjb21wbGV0ZWx5IHVuc3VwcG9ydGVkLiBUaGV5
IGFyZSBpbnRlbmRlZCBmb3IgdXNlIG9ubHkgYnkgV2ViS2l0IGRldmVsb3BlcnMuCkBAIC00NTEs
MyArNDUyLDEzIEBAIGVuZG1hY3JvKCkKIAogaW5jbHVkZShCdWJibGV3cmFwU2FuZGJveENoZWNr
cykKIGluY2x1ZGUoR1N0cmVhbWVyQ2hlY2tzKQorCitpZiAoRU5BQkxFX1JFTEVBU0VfTE9HR0lO
RykKKyAgICBmaW5kX3BhY2thZ2UoU3lzdGVtZCkKKyAgICBpZiAoUENfU1lTVEVNRF9GT1VORCkK
KyAgICAgICAgbWVzc2FnZShTVEFUVVMgIlJlbGVhc2UgbG9ncyB3aWxsIGJlIHNlbnQgdG8gdGhl
IFN5c3RlbUQgam91cm5hbCIpCisgICAgICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9K
T1VSTkFMRCBUUlVFKQorICAgIGVsc2UgKCkKKyAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAi
bGlic3lzdGVtZCBpcyBuZWVkZWQgZm9yIEVOQUJMRV9SRUxFQVNFX0xPR0dJTkciKQorICAgIGVu
ZGlmICgpCitlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21h
a2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCA5MjVjNzk3Nzg0OThkZmQ3
NjIxNGQ4MGFkMzdiNDY3NTM2NjRhOWM3Li4yN2EyNGIwY2ZhOTA3MzI2NzIwNWMyYjdlMGU0OTNj
ZGM1MGYwNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysg
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtNzMsNiArNzMsNyBAQCBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfR1RLRE9DICJXaGV0aGVyIG9yIG5vdCB0byB1c2UgZ2VuZXJh
dGUgZ3RrZG9jLiIgUFVCTAogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX09QRU5KUEVHICJXaGV0
aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBKUEVHMjAwMCBpbWFnZXMuIiBQVUJMSUMgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRklORShVU0VfV09GRjIgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQg
Zm9yIFdPRkYyIFdlYiBGb250cy4iIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGSU5FKEVO
QUJMRV9XUEVfUVRfQVBJICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciB0aGUgUXQ1L1FN
TCBwbHVnaW4iIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUkVMRUFT
RV9MT0dHSU5HICJXaGV0aGVyIHRvIGVuYWJsZSBzZC1qb3VybmFsIGxvZ2dpbmciIFBVQkxJQyBP
TikKIAogIyBQcml2YXRlIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIFdQRSBwb3J0LgogV0VCS0lU
X09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9IT0xFUFVOQ0ggIldoZXRoZXIgdG8gZW5hYmxl
IEdTdHJlYW1lciBob2xlcHVuY2giIFBSSVZBVEUgT0ZGKQpAQCAtMjI0LDMgKzIyNSwxMyBAQCBz
ZXQoV1BFV2ViRXh0ZW5zaW9uX1BLR0NPTkZJR19GSUxFICR7Q01BS0VfQklOQVJZX0RJUn0vd3Bl
LXdlYi1leHRlbnNpb24tJHtXUEVfQQogCiBpbmNsdWRlKEJ1YmJsZXdyYXBTYW5kYm94Q2hlY2tz
KQogaW5jbHVkZShHU3RyZWFtZXJDaGVja3MpCisKK2lmIChFTkFCTEVfUkVMRUFTRV9MT0dHSU5H
KQorICAgIGZpbmRfcGFja2FnZShTeXN0ZW1kKQorICAgIGlmIChQQ19TWVNURU1EX0ZPVU5EKQor
ICAgICAgICBtZXNzYWdlKFNUQVRVUyAiUmVsZWFzZSBsb2dzIHdpbGwgYmUgc2VudCB0byB0aGUg
U3lzdGVtRCBqb3VybmFsIikKKyAgICAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0pP
VVJOQUxEIFRSVUUpCisgICAgZWxzZSAoKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJs
aWJzeXN0ZW1kIGlzIG5lZWRlZCBmb3IgRU5BQkxFX1JFTEVBU0VfTE9HR0lORyIpCisgICAgZW5k
aWYgKCkKK2VuZGlmICgpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXgg
MWFjZDUxZGFmN2QxMTQ2NzQ3YjA4YWIzMDg2OGEzNzQxNTAxNGY0Mi4uYWVmY2I3ZTQ0ZWZiMTYz
ZjRlNWVmY2ExOGMwMWMyZTVmNDI3YmE2NyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAyLTE5ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUxFQVNFX0xPRyBzaG91bGQgbm90IGJl
IENvY29hIHNwZWNpZmljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTUxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBuZXcgRU5BQkxFX1JFTEVBU0VfTE9HR0lORyBDTWFrZSBvcHRpb24sIGVu
YWJsZWQgYnkgZGVmYXVsdAorICAgICAgICBpbiB0aGUgR1RLIGFuZCBXUEUgcG9ydHMuIFdoZW4g
dGhpcyBpcyBlbmFibGVkLCByZWxlYXNlIGxvZ3Mgd2lsbAorICAgICAgICBiZSBzZW50IHRvIHRo
ZSBTeXN0ZW1kIEpvdXJuYWwuIFRvIHJldHJpZXZlIG1lZGlhIGxvZ3MgZm9yCisgICAgICAgIGlu
c3RhbmNlLCB0aGlzIGNvbW1hbmQgY2FuIGJlIHVzZWQ6CisKKyAgICAgICAgJCBqb3VybmFsY3Rs
IFNVQlNZU1RFTT1XZWJLaXRHVEsgQ0hBTk5FTD1NZWRpYQorCisgICAgICAgICogU291cmNlL2Nt
YWtlL0ZpbmRTeXN0ZW1kLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0
aW9uc0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZToK
KwogMjAyMC0wMi0xNyAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAg
ICAgICAgIFtDTWFrZV0gVXNlIGJ1aWx0aW4gdGFyZ2V0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391157</attachid>
            <date>2020-02-19 07:05:18 -0800</date>
            <delta_ts>2020-02-21 07:54:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195182-20200219150516.patch</filename>
            <type>text/plain</type>
            <size>40717</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2OTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRiODY1MTRkNjhmZWQ3MWEzNTA3MzAx
NTVkMTY5YTIxNzZjMGZiMmUuLjI1NjE3MzNhYTc1MzlhYWViNTgyNGU2OWJlM2QxODVkOTQwZDU2
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUg
Q29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzZC1qb3VybmFsIGxvZ2dpbmcgc3VwcG9ydCBhbmQgd3JhcCB0aGUgb3NfbG9n
IGNhbGxzIHdpdGggdGhlIFVTRShPU19MT0cpIGd1YXJkLgorICAgICAgICAKKyAgICAgICAgKiB3
dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAg
KiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dG9TdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1X
UEUuY21ha2U6CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIw
MjAtMDItMTggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGFuIG9zX2xvZyBQcmludFN0cmVhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY4OWFjMzJjYjMyYzdl
ZGY3ZmY3M2UxMWZiMzM2NDk2MTZjZTViMGEuLjg0NGQyYmQwNTMxNWUxZGM0MzMzZDVjZWY3OTNk
NWIzNTFjMDBjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMC0wMi0xOSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVMRUFTRV9M
T0cgc2hvdWxkIG5vdCBiZSBDb2NvYSBzcGVjaWZpYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV1BFL0dUSyBidWlsZCBmaXhlcyByZWxhdGVkIHdpdGgg
UmVsZWFzZSBsb2dnaW5nIHN1cHBvcnQuCisgICAgICAgIAorICAgICAgICAqIGJyaWRnZS9ucHJ1
bnRpbWVfaW50ZXJuYWwuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRocm90dGxpbmdSZWFzb25Ub1N0cmluZyk6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9TdHJpbmcpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnN0cmluZ0ZvckNQVVNhbXBsaW5nQWN0aXZpdHlTdGF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bWVkaWFQbGF5ZXJMb2dnZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94
eUNsZWFyS2V5OjpjZW5jRGVjcnlwdFN1YnNhbXBsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
UHJveHlDbGVhcktleTo6aW5pdGlhbGl6ZUdjcnlwdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjpNZWRpYVNv
dXJjZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6
fk1lZGlhU291cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0
cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VH
U3RyZWFtZXI6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6U291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVMb2dMZXZlbCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVz
IGNvbnN0KToKKwogMjAyMC0wMi0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBTY3JvbGxWaWV3OjpzdHlsZURpZENoYW5nZSB0byBzdHlsZUFuZFJl
bmRlclRyZWVEaWRDaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMu
Y3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggOWFiNzgwOWEyNTZlNmJj
NDAwMDBiYWRkYmQ3M2UwYjdmMDU0MDdkMi4uYTkwZDMxMDA1NjIwMGQ1NzdjOTM4MjY0MDg3Njhh
YWYzYTU1Y2JhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTc0LDYgKzc0LDEwIEBACiAjaW5j
bHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAorI2lmIFVTRShKT1VSTkFMRCkKKyNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogV1RG
X0FUVFJJQlVURV9QUklOVEYoMSwgMCkgc3RhdGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5k
QXJndW1lbnRzKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQpAQCAtNTIzLDcgKzUy
Nyw3IEBAIHN0YXRpYyB2b2lkIHNldFN0YXRlT2ZBbGxDaGFubmVscyhXVEZMb2dDaGFubmVsKiBj
aGFubmVsc1tdLCBzaXplX3QgY2hhbm5lbENvdW50CiAKIHZvaWQgV1RGSW5pdGlhbGl6ZUxvZ0No
YW5uZWxTdGF0ZXNGcm9tU3RyaW5nKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBj
b3VudCwgY29uc3QgY2hhciogbG9nTGV2ZWwpCiB7Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisjaWYgVVNFKE9TX0xPRykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFdURkxvZ0NoYW5uZWwqIGNoYW5u
ZWwgPSBjaGFubmVsc1tpXTsKICAgICAgICAgY2hhbm5lbC0+b3NMb2dDaGFubmVsID0gb3NfbG9n
X2NyZWF0ZShjaGFubmVsLT5zdWJzeXN0ZW0sIGNoYW5uZWwtPm5hbWUpOwpAQCAtNTc3LDEyICs1
ODEsMjMgQEAgdm9pZCBXVEZSZWxlYXNlTG9nU3RhY2tUcmFjZShXVEZMb2dDaGFubmVsKiBjaGFu
bmVsKQogICAgICAgICBmb3IgKGludCBmcmFtZU51bWJlciA9IDE7IGZyYW1lTnVtYmVyIDwgc3Rh
Y2tUcmFjZS0+c2l6ZSgpOyArK2ZyYW1lTnVtYmVyKSB7CiAgICAgICAgICAgICBhdXRvIHN0YWNr
RnJhbWUgPSBzdGFja1tmcmFtZU51bWJlcl07CiAgICAgICAgICAgICBhdXRvIGRlbWFuZ2xlZCA9
IFdURjo6U3RhY2tUcmFjZTo6ZGVtYW5nbGUoc3RhY2tGcmFtZSk7CisjaWYgVVNFKE9TX0xPRykK
ICAgICAgICAgICAgIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5kZW1hbmdsZWROYW1lKCkp
CiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9zTG9nQ2hhbm5lbCwgIiUtM2QgJXAg
JXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPmRlbWFuZ2xl
ZE5hbWUoKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5t
YW5nbGVkTmFtZSgpKQogICAgICAgICAgICAgICAgIG9zX2xvZyhjaGFubmVsLT5vc0xvZ0NoYW5u
ZWwsICIlLTNkICVwICV7cHVibGljfXMiLCBmcmFtZU51bWJlciwgc3RhY2tGcmFtZSwgZGVtYW5n
bGVkLT5tYW5nbGVkTmFtZSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBv
c19sb2coY2hhbm5lbC0+b3NMb2dDaGFubmVsLCAiJS0zZCAlcCIsIGZyYW1lTnVtYmVyLCBzdGFj
a0ZyYW1lKTsKKyNlbGlmIFVTRShKT1VSTkFMRCkKKyAgICAgICAgICAgIFN0cmluZ1ByaW50U3Ry
ZWFtIG91dDsKKyAgICAgICAgICAgIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5kZW1hbmds
ZWROYW1lKCkpCisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCAlcyIsIGZyYW1l
TnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPmRlbWFuZ2xlZE5hbWUoKSk7CisgICAgICAg
ICAgICBlbHNlIGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5tYW5nbGVkTmFtZSgpKQorICAg
ICAgICAgICAgICAgIG91dC5wcmludGYoIiUtM2QgJXAgJXMiLCBmcmFtZU51bWJlciwgc3RhY2tG
cmFtZSwgZGVtYW5nbGVkLT5tYW5nbGVkTmFtZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBvdXQucHJpbnRmKCIlLTNkICVwIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUp
OworICAgICAgICAgICAgc2Rfam91cm5hbF9zZW5kKCJTVUJTWVNURU09JXMiLCBjaGFubmVsLT5z
dWJzeXN0ZW0sICJDSEFOTkVMPSVzIiwgY2hhbm5lbC0+bmFtZSwgIk1FU1NBR0U9JXMiLCBvdXQu
dG9DU3RyaW5nKCkuZGF0YSgpLCBudWxscHRyKTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIvU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5oCmluZGV4IGIxYTczZjBkMzU3MGI5ZmMxMWUxYjkxNjkyNDI4ZjA2ZGU4
YWM0MTYuLjM0MDhkZmVkMDI2MjlkYTM3N2EwY2RmMWE5MDEyM2M2MjVjM2UxNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmgKQEAgLTUxLDYgKzUxLDEwIEBACiAjaW5jbHVkZSA8b3MvbG9nLmg+CiAjZW5kaWYK
IAorI2lmIFVTRShKT1VSTkFMRCkKKyNpbmNsdWRlIDxzeXN0ZW1kL3NkLWpvdXJuYWwuaD4KKyNl
bmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxjc3RkbGliPgogI2luY2x1ZGUg
PHR5cGVfdHJhaXRzPgpAQCAtOTEsNyArOTUsNyBAQCBleHRlcm4gIkMiIHZvaWQgX1JlYWRXcml0
ZUJhcnJpZXIodm9pZCk7CiAjZW5kaWYKIAogI2lmbmRlZiBSRUxFQVNFX0xPR19ESVNBQkxFRAot
I2RlZmluZSBSRUxFQVNFX0xPR19ESVNBQkxFRCAhKFVTRShPU19MT0cpKQorI2RlZmluZSBSRUxF
QVNFX0xPR19ESVNBQkxFRCAhKFVTRShPU19MT0cpIHx8IFVTRShKT1VSTkFMRCkpCiAjZW5kaWYK
IAogI2lmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQpAQCAtMTU0LDggKzE1OCwxMCBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAgICAgV1RGTG9nTGV2ZWwgbGV2ZWw7CiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgY29uc3QgY2hhciogc3Vic3lzdGVtOworI2lmIFVTRShPU19MT0cpCiAgICAg
X191bnNhZmVfdW5yZXRhaW5lZCBvc19sb2dfdCBvc0xvZ0NoYW5uZWw7CiAjZW5kaWYKKyNlbmRp
ZgogfSBXVEZMb2dDaGFubmVsOwogCiAjZGVmaW5lIExPR19DSEFOTkVMKG5hbWUpIEpPSU5fTE9H
X0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJFRklYLCBuYW1lKQpAQCAtMTYzLDcg
KzE2OSwxMyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIEpPSU5fTE9HX0NIQU5ORUxfV0lU
SF9QUkVGSVgocHJlZml4LCBjaGFubmVsKSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYX0xF
VkVMXzIocHJlZml4LCBjaGFubmVsKQogI2RlZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJF
RklYX0xFVkVMXzIocHJlZml4LCBjaGFubmVsKSBwcmVmaXggIyMgY2hhbm5lbAogCisjaWYgUExB
VEZPUk0oR1RLKQorI2RlZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNICJXZWJLaXRH
VEsiCisjZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJT
WVNURU0gIldQRVdlYktpdCIKKyNlbHNlCiAjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJT
WVNURU0gImNvbS5hcHBsZS5XZWJLaXQiCisjZW5kaWYKIAogI2RlZmluZSBERUNMQVJFX0xPR19D
SEFOTkVMKG5hbWUpIFwKICAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1l
KTsKQEAgLTE3Miw5ICsxODQsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2lmIFJFTEVBU0VfTE9H
X0RJU0FCTEVECiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwK
ICAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0
YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OwotI2Vsc2UKKyNlbGlmIFVTRShPU19MT0cp
CiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwKICAgICBXVEZM
b2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNu
YW1lLCAoV1RGTG9nTGV2ZWwpMSwgc3Vic3lzdGVtLCBPU19MT0dfREVGQVVMVCB9OworI2VsaWYg
VVNFKEpPVVJOQUxEKQorI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVt
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NI
QU5ORUwobmFtZSkgPSB7IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZl
bCkxLCBzdWJzeXN0ZW0gfTsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTQ5OSwxNiArNTE0LDEyIEBA
IGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1VucmVhY2hhYmxlQ29kZSA9IGZh
bHNlOwogCiAjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0UoY2hhbm5lbCkgKCh2b2lkKTAp
CiAjZWxzZQorI2lmIFVTRShPU19MT0cpCiAjZGVmaW5lIFBVQkxJQ19MT0dfU1RSSU5HICJ7cHVi
bGljfXMiCiAjZGVmaW5lIFJFTEVBU0VfTE9HKGNoYW5uZWwsIC4uLikgb3NfbG9nKExPR19DSEFO
TkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0Vf
TE9HX0VSUk9SKGNoYW5uZWwsIC4uLikgb3NfbG9nX2Vycm9yKExPR19DSEFOTkVMKGNoYW5uZWwp
Lm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0ZBVUxUKGNo
YW5uZWwsIC4uLikgb3NfbG9nX2ZhdWx0KExPR19DSEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5l
bCwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lORk8oY2hhbm5lbCwgLi4uKSBv
c19sb2dfaW5mbyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19f
KQotCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7
IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HKCAgICAgIGNoYW5uZWwsIF9fVkFfQVJHU19fKTsg
fSB3aGlsZSAoMCkKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbGxvd2VkLCBjaGFu
bmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwg
X19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQotI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPX0lGKGlz
QWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0lO
Rk8oY2hhbm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQotCiAjZGVmaW5lIFJFTEVBU0Vf
TE9HX1dJVEhfTEVWRUwoY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCiAgICAgaWYgKExP
R19DSEFOTkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKICAgICAgICAgb3NfbG9n
KExPR19DSEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pOyBcCkBAIC01
MTksNiArNTMwLDMyIEBAIGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1VucmVh
Y2hhYmxlQ29kZSA9IGZhbHNlOwogICAgICAgICBvc19sb2coTE9HX0NIQU5ORUwoY2hhbm5lbCku
b3NMb2dDaGFubmVsLCBfX1ZBX0FSR1NfXyk7IFwKIH0gd2hpbGUgKDApCiAKKyNlbGlmIFVTRShK
T1VSTkFMRCkKKyNkZWZpbmUgUFVCTElDX0xPR19TVFJJTkcgInMiCisjZGVmaW5lIFNEX0pPVVJO
QUxfU0VORChjaGFubmVsLCBwcmlvcml0eSwgLi4uKSBkbyB7IFwKKyAgICAgICAgc2Rfam91cm5h
bF9zZW5kKCJTVUJTWVNURU09JXMiLCBMT0dfQ0hBTk5FTChjaGFubmVsKS5zdWJzeXN0ZW0sICJD
SEFOTkVMPSVzIiwgTE9HX0NIQU5ORUwoY2hhbm5lbCkubmFtZSwgIlBSSU9SSVRZPSVpIiwgcHJp
b3JpdHksICJNRVNTQUdFPSIgX19WQV9BUkdTX18sIG51bGxwdHIpOyBcCit9IHdoaWxlICgwKQor
I2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFubmVs
LCBMT0dfTk9USUNFLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hh
bm5lbCwgLi4uKSBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0VSUiwgX19WQV9BUkdTX18p
CisjZGVmaW5lIFJFTEVBU0VfTE9HX0ZBVUxUKGNoYW5uZWwsIC4uLikgU0RfSk9VUk5BTF9TRU5E
KGNoYW5uZWwsIExPR19DUklULCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSU5G
TyhjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBMT0dfSU5GTywgX19WQV9B
UkdTX18pCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChjaGFubmVsLCBsb2dMZXZl
bCwgLi4uKSBkbyB7IFwKKyAgICBpZiAoTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0gKGxv
Z0xldmVsKSkgXAorICAgICAgICBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0lORk8sIF9f
VkFfQVJHU19fKTsgXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xF
VkVMX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCisgICAgaWYg
KChpc0FsbG93ZWQpICYmIExPR19DSEFOTkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkp
IFwKKyAgICAgICAgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19JTkZPLCBfX1ZBX0FSR1Nf
Xyk7IFwKK30gd2hpbGUgKDApCisjZW5kaWYKKworI2RlZmluZSBSRUxFQVNFX0xPR19TVEFDS1RS
QUNFKGNoYW5uZWwpIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKCZMT0dfQ0hBTk5FTChjaGFubmVs
KSkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsg
aWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0coY2hhbm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxl
ICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4u
LikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBfX1ZBX0FS
R1NfXyk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lORk9fSUYoaXNBbGxvd2Vk
LCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfSU5GTyhjaGFu
bmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCisKICNkZWZpbmUgUkVMRUFTRV9MT0dfU1RB
Q0tUUkFDRShjaGFubmVsKSBXVEZSZWxlYXNlTG9nU3RhY2tUcmFjZSgmTE9HX0NIQU5ORUwoY2hh
bm5lbCkpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9T
b3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA0ZjIzOGNlM2VkZTVmYmU4NDMzNmMyYTdiNmI4
ZjVmYzY5M2QxODY2Li5lYmNjOGFiODRmZTY2NmNiOGJlNDU5MDY3YjNjZDhiZDAxZTI5MTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9M
b2dnZXIuaApAQCAtMjksNiArMjksMTMgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBVU0Uo
Sk9VUk5BTEQpCisvLyBEb24ndCBzZW5kIGNhbGwgc2l0ZSBpbmZvcm1hdGlvbnMgdG8gdGhlIGpv
dXJuYWwgYmVjYXVzZSB0aG9zZSB3b3VsZCBhbHdheXMKKy8vIHBvaW50IHRvIHRoaXMgZmlsZSBh
bnl3YXkuCisjZGVmaW5lIFNEX0pPVVJOQUxfU1VQUFJFU1NfTE9DQVRJT04KKyNpbmNsdWRlIDxz
eXN0ZW1kL3NkLWpvdXJuYWwuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4KQEAgLTI0Niw3ICsyNTMsMTEgQEAgcHJpdmF0ZToKICNpZiBSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgICAgICBXVEZMb2coJmNoYW5uZWwsICIlcyIsIGxvZ01lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSk7CiAjZWxzZQorI2lmIFVTRShPU19MT0cpCiAgICAgICAgIG9zX2xvZyhj
aGFubmVsLm9zTG9nQ2hhbm5lbCwgIiV7cHVibGljfXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRh
KCkpOworI2VsaWYgVVNFKEpPVVJOQUxEKQorICAgICAgICBzZF9qb3VybmFsX3NlbmQoIlNVQlNZ
U1RFTT0lcyIsIGNoYW5uZWwuc3Vic3lzdGVtLCAiQ0hBTk5FTD0lcyIsIGNoYW5uZWwubmFtZSwg
Ik1FU1NBR0U9JXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCksIG51bGxwdHIpOworI2VuZGlm
CiAjZW5kaWYKIAogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmNwcAppbmRleCAxMzU3NTZkODk3ZWM2ODI4MzgxMmExNzVhMzdmNTk5N2Fk
NjVkNDkzLi41N2Y5YjAxNDMxZmVmY2Q5MjFhZDk3YjRkYzVmMzljOTdmMjA2ODFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTM2LDggKzM2LDEwIEBAIG5h
bWVzcGFjZSBXVEYgewogCiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKIFdURkxvZ0NoYW5uZWwg
TG9nTWVtb3J5UHJlc3N1cmUgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJNZW1vcnlQcmVz
c3VyZSIsIFdURkxvZ0xldmVsOjpFcnJvciB9OwotI2Vsc2UKKyNlbGlmIFVTRShPU19MT0cpCiBX
VEZMb2dDaGFubmVsIExvZ01lbW9yeVByZXNzdXJlID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9u
LCAiTWVtb3J5UHJlc3N1cmUiLCBXVEZMb2dMZXZlbDo6RXJyb3IsIExPR19DSEFOTkVMX1dFQktJ
VF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07CisjZWxpZiBVU0UoSk9VUk5BTEQpCitXVEZM
b2dDaGFubmVsIExvZ01lbW9yeVByZXNzdXJlID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAi
TWVtb3J5UHJlc3N1cmUiLCBXVEZMb2dMZXZlbDo6RXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9T
VUJTWVNURU0gfTsKICNlbmRpZgogCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6c19sb2dnaW5nRW5hYmxlZCA9IGZhbHNlOwpAQCAt
ODMsNiArODUsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmcoTWVtb3J5VXNhZ2VQb2xp
Y3kgcG9saWN5KQogICAgIGNhc2UgTWVtb3J5VXNhZ2VQb2xpY3k6OkNvbnNlcnZhdGl2ZTogcmV0
dXJuICJDb25zZXJ2YXRpdmUiOwogICAgIGNhc2UgTWVtb3J5VXNhZ2VQb2xpY3k6OlN0cmljdDog
cmV0dXJuICJTdHJpY3QiOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gIiI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1HVEsuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBhOGQ5
NzkyOTZhYjdjNzA1MmIxMDRkMjExYzk3YmMwMmMzMWQ5ZGNmLi5iNmMzNzllYjgwMzE5ZmEyMjRi
YmI0ZDM1OGM2MjJhOWRlZWNiZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNTgs
NiArNTgsNyBAQCBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCiAgICAgJHtHTElCX0dJT19MSUJS
QVJJRVN9CiAgICAgJHtHTElCX0dPQkpFQ1RfTElCUkFSSUVTfQogICAgICR7R0xJQl9MSUJSQVJJ
RVN9CisgICAgJHtTWVNURU1EX0xJQlJBUklFU30KICAgICBUaHJlYWRzOjpUaHJlYWRzCiAgICAg
WkxJQjo6WkxJQgogKQpAQCAtNjUsNCArNjYsNSBAQCBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVT
CiBsaXN0KEFQUEVORCBXVEZfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0dJT19V
TklYX0lOQ0xVREVfRElSU30KICAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7U1lTVEVN
RF9JTkNMVURFX0RJUlN9CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQ
RS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGU1YThmZjQ3
ODE2M2Y4YjIzMDZmZmFiNzJlNDQyZmVjNDg2ZGUzMWEuLmYwOGI5NDA2OGMyMGNiNTA4MzcwYjBk
MGYxYWM0MzcyZjZmZjA0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BF
LmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC00Myw2ICs0
Myw3IEBAIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKICAgICAke0dMSUJfR0lPX0xJQlJBUklF
U30KICAgICAke0dMSUJfR09CSkVDVF9MSUJSQVJJRVN9CiAgICAgJHtHTElCX0xJQlJBUklFU30K
KyAgICAke1NZU1RFTURfTElCUkFSSUVTfQogICAgIFRocmVhZHM6OlRocmVhZHMKICAgICBaTElC
OjpaTElCCiApCkBAIC01MCw0ICs1MSw1IEBAIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKIGxp
c3QoQVBQRU5EIFdURl9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7R0lPX1VOSVhf
SU5DTFVERV9ESVJTfQogICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtTWVNURU1EX0lO
Q0xVREVfRElSU30KICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFr
Q291bnRlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCmlu
ZGV4IGUzM2ZhY2I4NWQzM2FlYjgxZTlmYTNmNDI1ZjNhOGUyMGZjMDg2NzQuLmNiZmQ0NjlkNGMw
YTY3YTllY2MxYTA4MDRiM2E3ZjJhZjYyODhhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUmVmQ291bnRl
ZExlYWtDb3VudGVyLmNwcApAQCAtNDEsOCArNDEsMTAgQEAgdm9pZCBSZWZDb3VudGVkTGVha0Nv
dW50ZXI6OmRlY3JlbWVudCgpIHsgfQogI2RlZmluZSBMT0dfQ0hBTk5FTF9QUkVGSVggTG9nCiAj
aWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKIHN0YXRpYyBXVEZMb2dDaGFubmVsIExvZ1JlZkNvdW50
ZWRMZWFrcyA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIlJlZkNvdW50ZWRMZWFrcyIsIFdU
RkxvZ0xldmVsOjpFcnJvciB9OwotI2Vsc2UKKyNlbGlmIFVTRShPU19MT0cpCiBzdGF0aWMgV1RG
TG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24s
ICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IsIExPR19DSEFOTkVMX1dFQktJ
VF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07CisjZWxpZiBVU0UoSk9VUk5BTEQpCitzdGF0
aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0
ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IsIExPR19DSEFOTkVM
X1dFQktJVF9TVUJTWVNURU0gfTsKICNlbmRpZgogCiB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PGNv
bnN0IGNoYXIqLCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gUmVhc29uU2V0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCmluZGV4IDNkZWU2Y2ExZjNlMjFlNmI5NzMy
YmE2OTBmZmFhZDhhOGM1OTNlYWEuLjU5OGY5ZGRmMTA4MDJjYzIwZjg0YjQ5YzJhYTkzNDBiYTg2
NWI5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKQEAg
LTM1LDYgKzM1LDcgQEAKICNpZiBkZWZpbmVkKE1PWl9YMTEpCiAgICAgI2luY2x1ZGUgPFgxMS9Y
cmVzb3VyY2UuaD4KIAorICAgICN1bmRlZiBBbHdheXMKICAgICAjdW5kZWYgTm9uZQogICAgICN1
bmRlZiBBYm92ZQogICAgICN1bmRlZiBCZWxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAwMTRkNGNkOGFkYTM1ZjhjNWUz
YmUxZTRjZGQ2NTEyMTMzNGFjZjBlLi5jZGZkZmI5Yjg3NjIyYzc4MWYzOGViMzc0ZjQzZTM0Zjcw
ZDU4N2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmNwcApAQCAtOTcsNiArOTcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogdGhyb3R0
bGluZ1JlYXNvblRvU3RyaW5nKFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VGhyb3R0bAog
ICAgIGNhc2UgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsaW5nUmVhc29uOjpO
b25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5GcmFtZToKICAgICAgICAgcmV0dXJuICJOb25JbnRlcmFj
dGl2ZUNyb3NzT3JpZ2luRnJhbWUiOwogICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiAiIjsKIH0KIAogc3RhdGljIFN0cmluZyB0aHJvdHRsaW5nUmVh
c29uc1RvU3RyaW5nKE9wdGlvblNldDxTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OlRocm90
dGxpbmdSZWFzb24+IHJlYXNvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9n
Z2luZy5jcHAKaW5kZXggMzZlMzhkNDc5MTdlM2YyY2RiOWRkYThjMDBiYjJkNTJhZDRiNjMwMy4u
ZjJkZTk3YjYzNzk3MDdiYWIyMzI5MmZkNzJkNDQ0MDI1OGM1Zjc1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcApAQCAtNDgsNiArNDgsOCBAQCBzdGF0aWMg
Y29uc3QgY2hhciogdG9TdHJpbmcoUGVyZm9ybWFuY2VMb2dnaW5nOjpQb2ludE9mSW50ZXJlc3Qg
cG9pKQogICAgIGNhc2UgUGVyZm9ybWFuY2VMb2dnaW5nOjpNYWluRnJhbWVMb2FkQ29tcGxldGVk
OgogICAgICAgICByZXR1cm4gIk1haW5GcmFtZUxvYWRDb21wbGV0ZWQiOwogICAgIH0KKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTW9uaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTW9uaXRvci5jcHAKaW5kZXggZTY0NWFi
OTIzNWRhNDM3MDAyMmU3YjgzMGFhMDgwODcwMzdjNzFmNC4uZjg1ZmJlZDAzNDAyMTQyMjdlNjBh
YTQ4N2EzYmFlZDMzOTk3ZjJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZU1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VN
b25pdG9yLmNwcApAQCAtMjYyLDYgKzI2Miw4IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciog
c3RyaW5nRm9yQ1BVU2FtcGxpbmdBY3Rpdml0eVN0YXRlKEFjdGl2aXR5U3RhdGVGb3JDUFVTCiAg
ICAgY2FzZSBBY3Rpdml0eVN0YXRlRm9yQ1BVU2FtcGxpbmc6OlZpc2libGVBbmRBY3RpdmU6CiAg
ICAgICAgIHJldHVybiAiVmlzaWJsZUFuZEFjdGl2ZSI7CiAgICAgfQorICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNTUzZDhlZTNl
YjQ1NTY5OTEyM2JiYWJkNTlkZjNhMjRlMDM5ZThiOC4uNDRkZDJkMGM4MWUxOThkOGE5Mjk0ZGU1
ZmFlMTIzYzAzMDgxNGE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTQxMywxNSArNDEzLDE2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIp
CiAgICAgLCBtX3ByZWxvYWQocGxheWVyLT5wcmVsb2FkKCkpCiAgICAgLCBtX21heFRpbWVMb2Fk
ZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoTWVkaWFUaW1lOjp6ZXJvVGltZSgpKQogICAgICwg
bV9kcmF3VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpyZXBhaW50KQotICAgICwgbV9yZWFkeVRpbWVySGFuZGxlcihSdW5Mb29wOjptYWlu
KCksIHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlYWR5VGltZXJGaXJlZAot
KQorICAgICwgbV9yZWFkeVRpbWVySGFuZGxlcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlYWR5VGltZXJGaXJlZCkKICNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgLCBtX25pY29zaWFMYXllcihOaWNv
c2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFw
cGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQogI2Vsc2UKICAgICAsIG1fcGxhdGZvcm1M
YXllclByb3h5KGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5KCkp
KQogI2VuZGlmCi0jZW5kaWYgICAgICAKKyNlbmRpZgorICAgICwgbV9sb2dnZXIocGxheWVyLT5t
ZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQ
bGF5ZXJMb2dJZGVudGlmaWVyKCkpCiB7CiAjaWYgVVNFKEdMSUIpCiAgICAgbV9yZWFkeVRpbWVy
SGFuZGxlci5zZXRQcmlvcml0eShHX1BSSU9SSVRZX0RFRkFVTFRfSURMRSk7CkBAIC0zODIxLDYg
KzM4MjIsMTEgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmV4dGVuZGVkU3VwcG9ydHNUeXBlKGNvbnMKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCitXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvZ0NoYW5u
ZWwoKSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjpMb2dNZWRpYTsKK30KKwogfQogCiAj
ZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaAppbmRleCA1MjFiMjBkMTFjYzhkZDk0YmUyODRkNzQ2OTljZDI3MTdiNGUw
NTQ1Li4wNDFhNThhZmY5NjU2MDdhMzZlZDQxNjc3NmQ1ZWY1MWJiMWYwOGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJHU3RyZWFtZXJFTUVV
dGlsaXRpZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWFpblRocmVhZE5v
dGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1MYXllci5oIgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+
CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Cisj
aW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtMTE3LDcgKzExOSw5IEBAIGNsYXNzIFZpZGVv
VHJhY2tQcml2YXRlR1N0cmVhbWVyOwogdm9pZCByZWdpc3RlcldlYktpdEdTdHJlYW1lckVsZW1l
bnRzKCk7CiAKIC8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0
b3J5IHNpbmNlIHdlIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIGFub3RoZXIgdGhyZWFkLgotY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZSwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+CitjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4KKyAgICAsIHByaXZhdGUgTG9n
Z2VySGVscGVyCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2lmIFVTRShOSUNPU0lBKQog
ICAgICwgcHVibGljIE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGll
bnQKQEAgLTIyOCw2ICsyMzIsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hDdXJyZW50QnVm
ZmVyKCk7CiAjZW5kaWYKIAorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIjsg
fQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBy
ZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihtX2xvZ0lkZW50aWZpZXIpOyB9CisgICAgV1RG
TG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgY29uc3Qgdm9p
ZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4gbG9nSWRlbnRpZmllcigpOyB9
CisgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIHsgcmV0dXJuIGxvZ2dlcigp
OyB9CisKIHByb3RlY3RlZDoKICAgICBlbnVtIE1haW5UaHJlYWROb3RpZmljYXRpb24gewogICAg
ICAgICBWaWRlb0NoYW5nZWQgPSAxIDw8IDAsCkBAIC01MzEsNiArNTQzLDggQEAgcHJpdmF0ZToK
ICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAgIEdVbmlxdWVQdHI8
c3RydWN0IHdwZV92aWRlb19wbGFuZV9kaXNwbGF5X2RtYWJ1Zl9zb3VyY2U+IG1fd3BlVmlkZW9Q
bGFuZURpc3BsYXlEbWFCdWY7CiAjZW5kaWYKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dl
cjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5
Q2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAppbmRleCA2YzQyNTBkZjA1MWIwYWRhZDViODkyMDkx
ODU1YjMxZDNlODkzMGU1Li5jMWI2YjM0ZjY4NmY0Y2Y3MmZlNjEyNTMyMDQyNDRkODU3ZmU0ZDNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKQEAgLTE3MSw3ICsxNzEs
MTEgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdFN1YnNhbXBsZWQoY2VuY0Rl
Y3J5cHRDb250ZXh0JiBpbnB1dCkKICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBzdWJzYW1w
bGUgaW5kZXggJXUgLSAldSBieXRlcyBlbmNyeXB0ZWQgKCVsdSBieXRlcyBsZWZ0IHRvIGRlY3J5
cHQpIiwgc3Vic2FtcGxlSW5kZXgsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCBpbnB1dC5l
bmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyAtIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQpOwog
CiAgICAgICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0gZ2NyeV9jaXBoZXJf
ZGVjcnlwdChtX2djcnlIYW5kbGUsIGlucHV0LmVuY3J5cHRlZEJ1ZmZlciArIGVuY3J5cHRlZEJ1
ZmZlckJ5dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCAwLCAwKSkgeworI2lm
ICFMT0dfRElTQUJMRUQKICAgICAgICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlD
bGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQpOiAlcyIsIGdwZ19zdHJlcnJvcihj
aXBoZXJFcnJvcikpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBVTlVTRURfVkFSSUFCTEUoY2lw
aGVyRXJyb3IpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgfQogCkBAIC0xOTMsNyArMTk3LDExIEBAIGJvb2wgQ0RNUHJveHlDbGVhcktleTo6Y2Vu
Y0RlY3J5cHQoQ0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1dCkKIHZv
aWQgQ0RNUHJveHlDbGVhcktleTo6aW5pdGlhbGl6ZUdjcnlwdCgpCiB7CiAgICAgaWYgKGdjcnlf
ZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJm1fZ2NyeUhhbmRsZSwgR0NSWV9DSVBI
RVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9DSVBIRVJfU0VDVVJFKSkgewor
I2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJL
ZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9vcGVuKTogJXMiLCBncGdfc3RyZXJyb3IoZXJyb3IpKTsK
KyNlbHNlCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShlcnJvcik7CisjZW5kaWYKICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoZmFsc2UgJiYgIlNob3VsZCBub3QgZ2V0IHRoaXMgZmFyIHdpdGggYSBm
dW5jdGlvbmFsIEdDcnlwdCEiKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAppbmRleCA1ZDEwMTNmY2JlZjA1Nzkz
NDgwYmIzOGVkZWZlNGI2NGYwYWNmNDJjLi40ZTA4YjVkZGY1YThhYzMwYTg0MWFjMGRmOGMzNWEz
NzAyNjUyMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyTVNFLmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgogICAgIHZvaWQgYmxv
Y2tEdXJhdGlvbkNoYW5nZXMoKTsKICAgICB2b2lkIHVuYmxvY2tEdXJhdGlvbkNoYW5nZXMoKTsK
IAorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBX
ZWJDb3JlOjpMb2dNZWRpYVNvdXJjZTsgfQorCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBN
ZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXJNU0U7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZTYyY2Q1NmE4
NDZiMzQ3NjEyMzQ0ODM1MjVhMmU2YTBmYjY4MGU1My4uYzhmNTgwNTZlYWQ0NWRlNjE1YTg4MmMx
YjkzZjkyYzQxOTJlMDZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJl
YW1lci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBV
U0UoR1NUUkVBTUVSKQogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgiCiAjaW5jbHVkZSAiTWVkaWFTb3Vy
Y2VDbGllbnRHU3RyZWFtZXJNU0UuaCIKQEAgLTYwLDE3ICs2MSwyMyBAQCBNZWRpYVNvdXJjZUdT
dHJlYW1lcjo6TWVkaWFTb3VyY2VHU3RyZWFtZXIoTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50JiBt
ZWRpYVNvdXJjZQogICAgICwgbV9jbGllbnQoTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U6
OmNyZWF0ZShwbGF5ZXJQcml2YXRlKSkKICAgICAsIG1fbWVkaWFTb3VyY2UobWVkaWFTb3VyY2Up
CiAgICAgLCBtX3BsYXllclByaXZhdGUocGxheWVyUHJpdmF0ZSkKKyNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKG1fcGxheWVyUHJpdmF0ZS5tZWRpYVBsYXllckxvZ2dl
cigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKG1fcGxheWVyUHJpdmF0ZS5tZWRpYVBsYXllckxv
Z0lkZW50aWZpZXIoKSkKKyNlbmRpZgogewogfQogCiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6fk1l
ZGlhU291cmNlR1N0cmVhbWVyKCkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwog
ICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyUHJpdmF0ZSA6IG1fc291cmNlQnVmZmVycykKICAg
ICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZS0+Y2xlYXJNZWRpYVNvdXJjZSgpOwogfQogCiBNZWRp
YVNvdXJjZUdTdHJlYW1lcjo6QWRkU3RhdHVzIE1lZGlhU291cmNlR1N0cmVhbWVyOjphZGRTb3Vy
Y2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBSZWZQdHI8U291cmNlQnVm
ZmVyUHJpdmF0ZT4mIHNvdXJjZUJ1ZmZlclByaXZhdGUpCiB7CisgICAgREVCVUdfTE9HKExPR0lE
RU5USUZJRVIsIGNvbnRlbnRUeXBlKTsKICAgICBzb3VyY2VCdWZmZXJQcml2YXRlID0gU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKHRoaXMsIG1fY2xpZW50LmdldCgpLCBjb250
ZW50VHlwZSk7CiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI+IHNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBzdGF0aWNfY2FzdDxTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyKj4oc291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKSk7CiAgICAgbV9zb3VyY2VCdWZm
ZXJzLmFkZChzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKTsKQEAgLTEzNSw1ICsxNDIsMTMg
QEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFTb3VyY2VHU3RyZWFt
ZXI6OmJ1ZmZlcmVkKCkKICAgICByZXR1cm4gbV9tZWRpYVNvdXJjZS0+YnVmZmVyZWQoKTsKIH0K
IAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorV1RGTG9nQ2hhbm5lbCYgTWVkaWFTb3VyY2VH
U3RyZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBMb2dNZWRpYVNvdXJj
ZTsKK30KKworI2VuZGlmCisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJj
ZUdTdHJlYW1lci5oCmluZGV4IGM5YTA5ZmEwNDM5ZmVmOGViOGRiNzUwNWZjYmM5N2UwNTIzNzhl
YTYuLjVjZjliODIwYTE5NDdmODAxNzE4MGNhZmI1NmI3NjJmNWMyNjNiNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmgKQEAgLTM5LDYgKzM5LDcgQEAKIAogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYVNyYyBX
ZWJLaXRNZWRpYVNyYzsKIApAQCAtNTAsNyArNTEsMTEgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyTVNFOwogY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOwogCiAvLyBGSVhNRTog
U2hvdWxkIHRoaXMgYmUgY2FsbGVkIE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lcj8KLWNsYXNz
IE1lZGlhU291cmNlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIE1lZGlhU291cmNlUHJpdmF0ZSB7
CitjbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBNZWRpYVNvdXJjZVBy
aXZhdGUKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIHByaXZhdGUgTG9nZ2VySGVs
cGVyCisjZW5kaWYKK3sKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBvcGVuKE1lZGlhU291cmNl
UHJpdmF0ZUNsaWVudCYsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRSYpOwogICAgIHZp
cnR1YWwgfk1lZGlhU291cmNlR1N0cmVhbWVyKCk7CkBAIC03Myw2ICs3OCwxNSBAQCBwdWJsaWM6
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpOwog
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVNvdXJjZVByaXZhdGVH
U3RyZWFtZXIiOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5u
ZWwoKSBjb25zdCBmaW5hbDsKKworICAgIGNvbnN0IHZvaWQqIG5leHRTb3VyY2VCdWZmZXJMb2dJ
ZGVudGlmaWVyKCkgeyByZXR1cm4gY2hpbGRMb2dJZGVudGlmaWVyKG1fbG9nSWRlbnRpZmllciwg
KyttX25leHRTb3VyY2VCdWZmZXJJRCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE1lZGlh
U291cmNlR1N0cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCYsIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lck1TRSYpOwogCkBAIC04MSw2ICs5NSwxMSBAQCBwcml2YXRlOgogICAgIFJl
ZjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRT4gbV9jbGllbnQ7CiAgICAgUmVmPE1lZGlh
U291cmNlUHJpdmF0ZUNsaWVudD4gbV9tZWRpYVNvdXJjZTsKICAgICBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0UmIG1fcGxheWVyUHJpdmF0ZTsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xv
Z0lkZW50aWZpZXI7CisgICAgdWludDY0X3QgbV9uZXh0U291cmNlQnVmZmVySUQgeyAwIH07Cisj
ZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDdjMWU3OTkxNmQ5M2Y4YWYxMTFkY2E4M2FkNTJjNWM0
ZTVjOGY3ZmQuLjcyMGQzNDRmZmQyY2M2OWUxMzA5YzIzYTUwZTQwZmU1MTY2MDRiNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtNTgsNiArNTgsMTAgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6U291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVNvdXJjZUdTdHJlYW1lcioKICAgICAsIG1fbWVk
aWFTb3VyY2UobWVkaWFTb3VyY2UpCiAgICAgLCBtX3R5cGUoY29udGVudFR5cGUpCiAgICAgLCBt
X2NsaWVudChjbGllbnQuZ2V0KCkpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBt
X2xvZ2dlcihtZWRpYVNvdXJjZS0+bG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobWVk
aWFTb3VyY2UtPm5leHRTb3VyY2VCdWZmZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKIHsKIH0K
IApAQCAtMTc3LDUgKzE4MSwxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
OmFwcGVuZFBhcnNpbmdGYWlsZWQoKQogICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
V1RGTG9nQ2hhbm5lbCYgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOworfQorI2VuZGlmCisKIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuaAppbmRleCBlNWZlNDA2OGE4MmE3ZDIyZWNmOTQ1N2ZkZTJiOThlMTE3Y2I5MGI0Li4xY2Nh
ZmEwYTVmOTY3YWU0MDc1ZDMwODk3MmJjMjEwOTYyOTM0MDgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNDEsMTIgKzQxLDE3
IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1l
ci5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lcjsKIAotY2xhc3MgU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKK2NsYXNz
IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVy
UHJpdmF0ZQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHJpdmF0ZSBMb2dnZXJI
ZWxwZXIKKyNlbmRpZgorewogCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyPiBjcmVhdGUoTWVkaWFTb3VyY2VHU3RyZWFtZXIqLCBSZWY8TWVkaWFT
b3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+LCBjb25zdCBDb250ZW50VHlwZSYpOwpAQCAtNzksNiAr
ODQsMTUgQEAgcHVibGljOgogCiAgICAgQ29udGVudFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgTG9nZ2Vy
JiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNv
bnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyIjsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBXVEZMb2dDaGFu
bmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisgICAgY29uc3QgTG9nZ2VyJiBzb3VyY2VC
dWZmZXJMb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAg
IGNvbnN0IHZvaWQqIHNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSBmaW5hbCB7IHJldHVybiBs
b2dJZGVudGlmaWVyKCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VHU3RyZWFtZXIqLCBSZWY8TWVkaWFTb3VyY2VDbGll
bnRHU3RyZWFtZXJNU0U+LCBjb25zdCBDb250ZW50VHlwZSYpOwogICAgIGZyaWVuZCBjbGFzcyBN
ZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTsKQEAgLTkwLDYgKzEwNCwxMSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXMgPSB0cnVlOwogICAgIGJvb2wgbV9u
b3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IGZhbHNlOwogICAgIEF0b21TdHJpbmcgbV90
cmFja0lkOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dl
cj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKaW5kZXggYjUx
NjQ5YTBhOGQ1ZmU3ZDM0YjE5MWM2Zjg5MWFmNDAyOWU2YjQ4MS4uNTFmMDVkODUyZGViN2RkOWVm
ODBmOGZjMzI5NTI5YmNmMDQyZjIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YS5oIgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCBm
N2RhM2Y3ZjQwMmRhODkzOGQ3YWRkZmE3YTAxNWEyNDhiMjZhOTExLi5kN2NkYTc4NzU5Mzc4YjI3
ZWZkYWE0YjFhOGY3NzMwOWUyYmY5NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5jcHAKQEAgLTE1Nyw2ICsxNTcsOCBAQCBzdGF0aWMgcnRjOjpMb2dnaW5nU2V2ZXJpdHkg
Y29tcHV0ZUxvZ0xldmVsKCkKICAgICBjYXNlIFdURkxvZ0xldmVsOjpEZWJ1ZzoKICAgICAgICAg
cmV0dXJuIHJ0Yzo6TFNfVkVSQk9TRTsKICAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gcnRjOjpMU19OT05FOwogI2Vsc2UKICAgICByZXR1cm4gcnRj
OjpMU19OT05FOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggYzRmMDllNmFiOWY1YmYyMDViYzdjNDBjYzU5ZDAxNmRjYmE3ODBiYy4uNDMwZTE3NTM4Njhh
NWU0ODFiZDZhZDNmNTBjMGFiZWRiNGEyODhiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtNDcwLDYgKzQ3MCw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJCiAj
ZWxzZQogICAgIEdVbmlxdWVQdHI8R1NMaXN0PiBjb29raWVzKHNvdXBfY29va2llX2phcl9nZXRf
Y29va2llX2xpc3QoY29va2llU3RvcmFnZSgpLCB1cmkuZ2V0KCksIFRSVUUpKTsKICAgICBVTlVT
RURfUEFSQU0oc2FtZVNpdGVJbmZvKTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAj
ZW5kaWYKICAgICBpZiAoIWNvb2tpZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kU3lz
dGVtZC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDAyMjU0ZmQ4Y2U1Y2U3YjZkODI5OGQ1MGI0YmYzNjI5
ODg4ODE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRTeXN0ZW1kLmNtYWtl
CkBAIC0wLDAgKzEsNTEgQEAKKyMgLSBUcnkgdG8gZmluZCBTWVNURU1ECisjIE9uY2UgZG9uZSwg
dGhpcyB3aWxsIGRlZmluZQorIworIyAgU1lTVEVNRF9JTkNMVURFX0RJUlMgLSB0aGUgU1lTVEVN
RCBpbmNsdWRlIGRyZWN0b3JpZXMKKyMgIFNZU1RFTURfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0
byB1c2UgU1lTVEVNRAorIworIyBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfU1lTVEVN
RCBsaWJzeXN0ZW1kKQorCitmaW5kX3BhdGgoU1lTVEVNRF9JTkNMVURFX0RJUlMKKyAgICBOQU1F
UyBzeXN0ZW1kL3NkLWpvdXJuYWwuaAorICAgIEhJTlRTICR7UENfU1lTVEVNRF9JTkNMVURFRElS
fQorICAgICAgICAgICR7UENfU1lTVEVNRF9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFy
eShTWVNURU1EX0xJQlJBUklFUworICAgIE5BTUVTIHN5c3RlbWQKKyAgICBISU5UUyAke1BDX1NZ
U1RFTURfTElCUkFSWV9ESVJTfQorICAgICAgICAgICR7UENfU1lTVEVNRF9MSUJESVJ9CispCisK
K2luY2x1ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitGSU5EX1BBQ0tBR0VfSEFO
RExFX1NUQU5EQVJEX0FSR1MoU1lTVEVNRCBSRVFVSVJFRF9WQVJTIFNZU1RFTURfSU5DTFVERV9E
SVJTIFNZU1RFTURfTElCUkFSSUVTCisgICAgVkVSU0lPTl9WQVIgUENfU1lTVEVNRF9WRVJTSU9O
KQorbWFya19hc19hZHZhbmNlZCgKKyAgICBTWVNURU1EX0lOQ0xVREVfRElSUworICAgIFNZU1RF
TURfTElCUkFSSUVTCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDM2MWM4NjBjODk5NmQ0MmRl
YjdhOGZlZWM0OTgwYjVhM2U3MDRkYTIuLjU2ODcwZjliNjhhNzYxNzBkZGYwN2JjNGJhYTkwNDRl
Mzk3OTNlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC04Nyw2ICs4Nyw3IEBAIFdFQktJVF9P
UFRJT05fREVGSU5FKFVTRV9MSUJTRUNSRVQgIldoZXRoZXIgdG8gZW5hYmxlIHRoZSBwZXJzaXN0
ZW50IGNyZWRlbnRpYWwKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOSlBFRyAiV2hldGhl
ciB0byBlbmFibGUgc3VwcG9ydCBmb3IgSlBFRzIwMDAgaW1hZ2VzLiIgUFVCTElDIE9OKQogV0VC
S0lUX09QVElPTl9ERUZJTkUoVVNFX1dPRkYyICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZv
ciBXT0ZGMiBXZWIgRm9udHMuIiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0Vf
V1BFX1JFTkRFUkVSICJXaGV0aGVyIHRvIGVuYWJsZSBXUEUgcmVuZGVyaW5nIiBQVUJMSUMgT04p
CitXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUkVMRUFTRV9MT0dHSU5HICJXaGV0aGVyIHRv
IGVuYWJsZSBzZC1qb3VybmFsIGxvZ2dpbmciIFBVQkxJQyBPTikKIAogIyBQcml2YXRlIG9wdGlv
bnMgc3BlY2lmaWMgdG8gdGhlIEdUSyBwb3J0LiBDaGFuZ2luZyB0aGVzZSBvcHRpb25zIGlzCiAj
IGNvbXBsZXRlbHkgdW5zdXBwb3J0ZWQuIFRoZXkgYXJlIGludGVuZGVkIGZvciB1c2Ugb25seSBi
eSBXZWJLaXQgZGV2ZWxvcGVycy4KQEAgLTQ1MSwzICs0NTIsMTMgQEAgZW5kbWFjcm8oKQogCiBp
bmNsdWRlKEJ1YmJsZXdyYXBTYW5kYm94Q2hlY2tzKQogaW5jbHVkZShHU3RyZWFtZXJDaGVja3Mp
CisKK2lmIChFTkFCTEVfUkVMRUFTRV9MT0dHSU5HKQorICAgIGZpbmRfcGFja2FnZShTeXN0ZW1k
KQorICAgIGlmIChQQ19TWVNURU1EX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKFNUQVRVUyAiUmVs
ZWFzZSBsb2dzIHdpbGwgYmUgc2VudCB0byB0aGUgU3lzdGVtRCBqb3VybmFsIikKKyAgICAgICAg
U0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0pPVVJOQUxEIFRSVUUpCisgICAgZWxzZSAoKQor
ICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJsaWJzeXN0ZW1kIGlzIG5lZWRlZCBmb3IgRU5B
QkxFX1JFTEVBU0VfTE9HR0lORyIpCisgICAgZW5kaWYgKCkKK2VuZGlmICgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlCmluZGV4IDkyNWM3OTc3ODQ5OGRmZDc2MjE0ZDgwYWQzN2I0Njc1MzY2NGE5YzcuLjI3
YTI0YjBjZmE5MDczMjY3MjA1YzJiN2UwZTQ5M2NkYzUwZjA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNt
YWtlCkBAIC03Myw2ICs3Myw3IEBAIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9HVEtET0Mg
IldoZXRoZXIgb3Igbm90IHRvIHVzZSBnZW5lcmF0ZSBndGtkb2MuIiBQVUJMCiBXRUJLSVRfT1BU
SU9OX0RFRklORShVU0VfT1BFTkpQRUcgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIEpQ
RUcyMDAwIGltYWdlcy4iIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9XT0ZG
MiAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgV09GRjIgV2ViIEZvbnRzLiIgUFVCTElD
IE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dQRV9RVF9BUEkgIldoZXRoZXIgdG8g
ZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBRdDUvUU1MIHBsdWdpbiIgUFVCTElDIE9GRikKK1dFQktJ
VF9PUFRJT05fREVGSU5FKEVOQUJMRV9SRUxFQVNFX0xPR0dJTkcgIldoZXRoZXIgdG8gZW5hYmxl
IHNkLWpvdXJuYWwgbG9nZ2luZyIgUFVCTElDIE9OKQogCiAjIFByaXZhdGUgb3B0aW9ucyBzcGVj
aWZpYyB0byB0aGUgV1BFIHBvcnQuCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfR1NUUkVBTUVS
X0hPTEVQVU5DSCAiV2hldGhlciB0byBlbmFibGUgR1N0cmVhbWVyIGhvbGVwdW5jaCIgUFJJVkFU
RSBPRkYpCkBAIC0yMjQsMyArMjI1LDEzIEBAIHNldChXUEVXZWJFeHRlbnNpb25fUEtHQ09ORklH
X0ZJTEUgJHtDTUFLRV9CSU5BUllfRElSfS93cGUtd2ViLWV4dGVuc2lvbi0ke1dQRV9BCiAKIGlu
Y2x1ZGUoQnViYmxld3JhcFNhbmRib3hDaGVja3MpCiBpbmNsdWRlKEdTdHJlYW1lckNoZWNrcykK
KworaWYgKEVOQUJMRV9SRUxFQVNFX0xPR0dJTkcpCisgICAgZmluZF9wYWNrYWdlKFN5c3RlbWQp
CisgICAgaWYgKFBDX1NZU1RFTURfRk9VTkQpCisgICAgICAgIG1lc3NhZ2UoU1RBVFVTICJSZWxl
YXNlIGxvZ3Mgd2lsbCBiZSBzZW50IHRvIHRoZSBTeXN0ZW1EIGpvdXJuYWwiKQorICAgICAgICBT
RVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfSk9VUk5BTEQgVFJVRSkKKyAgICBlbHNlICgpCisg
ICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgImxpYnN5c3RlbWQgaXMgbmVlZGVkIGZvciBFTkFC
TEVfUkVMRUFTRV9MT0dHSU5HIikKKyAgICBlbmRpZiAoKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcyBiL1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVu
ZGVuY2llcwppbmRleCA2ZmQ1NjZmMGRjZjNjNTE0MmY2OTBmZTJiMzkzYTZlMDNlNzllM2EzLi5i
YTYyMjczZTQ2Yzg4N2U4MDBhN2VmN2FjNThhMDY5M2M2NWYwMjIzIDEwMDc1NQotLS0gYS9Ub29s
cy9ndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMKKysrIGIvVG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5k
ZW5jaWVzCkBAIC0xMzMsNiArMTMzLDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1dp
dGhBcHQgewogICAgICAgICBsaWJzb3VwMi40LWRldiBcCiAgICAgICAgIGxpYnNxbGl0ZTMtZGV2
IFwKICAgICAgICAgbGlic3J0cDItZGV2IFwKKyAgICAgICAgbGlic3lzdGVtZC1kZXYgXAogICAg
ICAgICBsaWJ0YXNuMS02LWRldiBcCiAgICAgICAgIGxpYnRoZW9yYS1kZXYgXAogICAgICAgICBs
aWJ0b29sIFwKQEAgLTMwNyw2ICszMDgsNyBAQCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVz
V2l0aFBhY21hbiB7CiAgICAgICAgIGxpYnNlY3JldCBcCiAgICAgICAgIGxpYnNvdXAgXAogICAg
ICAgICBsaWJzcnRwIFwKKyAgICAgICAgbGlic3lzdGVtZCBcCiAgICAgICAgIHNxbGl0ZSBcCiAg
ICAgICAgIGxpYnRhc24xIFwKICAgICAgICAgbGlidGhlb3JhIFwKQEAgLTQ2Nyw2ICs0NjksNyBA
QCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0aERuZiB7CiAgICAgICAgIGxpYnNlY3Jl
dC1kZXZlbCBcCiAgICAgICAgIGxpYnNvdXAtZGV2ZWwgXAogICAgICAgICBsaWJzcnRwLWRldmVs
IFwKKyAgICAgICAgbGlic3lzdGVtZC1kZXZlbCBcCiAgICAgICAgIGxpYnRhc24xLWRldmVsIFwK
ICAgICAgICAgbGlidGhlb3JhLWRldmVsIFwKICAgICAgICAgbGlidjRsLWRldmVsIFwKZGlmZiAt
LWdpdCBhL1Rvb2xzL3dwZS9pbnN0YWxsLWRlcGVuZGVuY2llcyBiL1Rvb2xzL3dwZS9pbnN0YWxs
LWRlcGVuZGVuY2llcwppbmRleCBjYTFjZDNmZGVmMGNhZjY0NjY4MjNlNWE4ZWQ5MmI0NDdjNDkw
YWExLi5lNDI4Y2QyYWE1MjBkNjFiMDdiNTVlNDRjNDgzMTI2MWJkZjI2YTdhIDEwMDc1NQotLS0g
YS9Ub29scy93cGUvaW5zdGFsbC1kZXBlbmRlbmNpZXMKKysrIGIvVG9vbHMvd3BlL2luc3RhbGwt
ZGVwZW5kZW5jaWVzCkBAIC04MSw2ICs4MSw3IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNp
ZXNXaXRoQXB0IHsKICAgICAgICAgJChhcHRJZkVsc2UgbGlicG5nLWRldiBsaWJwbmcxMi1kZXYp
IFwKICAgICAgICAgbGlic2VjY29tcC1kZXYgXAogICAgICAgICBsaWJzcWxpdGUzLWRldiBcCisg
ICAgICAgIGxpYnN5c3RlbWQtZGV2IFwKICAgICAgICAgbGlidGFzbjEtNi1kZXYgXAogICAgICAg
ICBsaWJ0b29sIFwKICAgICAgICAgbGlid2VicC1kZXYgXApAQCAtMTkyLDYgKzE5Myw3IEBAIGZ1
bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoUGFjbWFuIHsKICAgICAgICAgcnVieQogICAg
ICAgICBzZWQgXAogICAgICAgICBzcWxpdGUgXAorICAgICAgICBsaWJzeXN0ZW1kIFwKICAgICAg
ICAgdGV4aW5mbyBcCiAgICAgICAgIHdoaWNoIFwKICAgICAgICAgemxpYiBcCkBAIC0yOTEsNiAr
MjkzLDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhEbmYgewogICAgICAgICBs
aWJqcGVnLXR1cmJvLWRldmVsIFwKICAgICAgICAgbGlicG5nLWRldmVsIFwKICAgICAgICAgbGli
c2VjY29tcC1kZXZlbCBcCisgICAgICAgIGxpYnN5c3RlbWQtZGV2ZWwgXAogICAgICAgICBsaWJ0
YXNuMS1kZXZlbCBcCiAgICAgICAgIGxpYnRvb2wgXAogICAgICAgICBsaWJ3ZWJwLWRldmVsIFwK
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxYWNkNTFkYWY3ZDExNDY3
NDdiMDhhYjMwODY4YTM3NDE1MDE0ZjQyLi5hZWZjYjdlNDRlZmIxNjNmNGU1ZWZjYTE4YzAxYzJl
NWY0MjdiYTY3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUgQ29jb2Egc3BlY2lmaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTE4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyBFTkFCTEVfUkVMRUFTRV9MT0dHSU5HIENNYWtlIG9wdGlvbiwgZW5hYmxlZCBieSBkZWZhdWx0
CisgICAgICAgIGluIHRoZSBHVEsgYW5kIFdQRSBwb3J0cy4gV2hlbiB0aGlzIGlzIGVuYWJsZWQs
IHJlbGVhc2UgbG9ncyB3aWxsCisgICAgICAgIGJlIHNlbnQgdG8gdGhlIFN5c3RlbWQgSm91cm5h
bC4gVG8gcmV0cmlldmUgbWVkaWEgbG9ncyBmb3IKKyAgICAgICAgaW5zdGFuY2UsIHRoaXMgY29t
bWFuZCBjYW4gYmUgdXNlZDoKKworICAgICAgICAkIGpvdXJuYWxjdGwgU1VCU1lTVEVNPVdlYktp
dEdUSyBDSEFOTkVMPU1lZGlhCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvRmluZFN5c3RlbWQu
Y21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgor
ICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlOgorCiAyMDIwLTAyLTE3ICBE
b24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBV
c2UgYnVpbHRpbiB0YXJnZXRzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391397</attachid>
            <date>2020-02-21 07:54:19 -0800</date>
            <delta_ts>2020-02-24 01:58:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195182-20200221155417.patch</filename>
            <type>text/plain</type>
            <size>48397</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE1Y2JhMmUwNTBjYzY5ZjVkN2RjOGFm
YzhiZmM3NTNiZTBlYTNhMjkuLjJjMTMwM2EyMjlmYzI0YTFmY2M0YWRjNmEwZTIzZjZmN2VjNDE0
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUg
Q29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzZC1qb3VybmFsIGxvZ2dpbmcgc3VwcG9ydCBhbmQgd3JhcCB0aGUgb3NfbG9n
IGNhbGxzIHdpdGggdGhlIFVTRShPU19MT0cpIGd1YXJkLgorICAgICAgICAKKyAgICAgICAgKiB3
dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAg
KiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dG9TdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1X
UEUuY21ha2U6CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIw
MjAtMDItMjAgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViQXV0aG5dIFJlcGxhY2UgRGV2aWNlSWRlbnRpdHkuZnJhbWV3b3JrCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWExNDg0M2ViZTdlYmY5ODJkYThhMzE1ZjBkZWQ2NTVjZjUxZjVkOS4uMzRjZDczMjAxYjA4Nzlj
MzY4YzhlNjFhZTQzOTc1MjgwMWU1ODExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisy
MDIwLTAyLTE5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBSRUxFQVNFX0xPRyBzaG91bGQgbm90IGJlIENvY29hIHNwZWNpZmljCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUxODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXUEUvR1RLIGJ1aWxkIGZpeGVz
IHJlbGF0ZWQgd2l0aCBSZWxlYXNlIGxvZ2dpbmcgc3VwcG9ydC4KKyAgICAgICAgCisgICAgICAg
ICogYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyb3R0bGluZ1JlYXNv
blRvU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZU1vbml0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yQ1BVU2FtcGxpbmdBY3Rpdml0eVN0
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpt
ZWRpYVBsYXllckxvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjptZWRpYVBsYXllckxvZ2dlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0U3Vic2FtcGxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDRE1Qcm94eUNsZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3Ry
ZWFtZXI6Ok1lZGlhU291cmNlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291
cmNlR1N0cmVhbWVyOjp+TWVkaWFTb3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUxv
Z0xldmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmdldFJhd0Nvb2tpZXMgY29uc3QpOgorCiAyMDIwLTAyLTIxICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVc2UgY3VzdG9tIHRoZW1l
IHN0eWxlIGZvciBtZWRpYSBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCA5YWI3ODA5
YTI1NmU2YmM0MDAwMGJhZGRiZDczZTBiN2YwNTQwN2QyLi40MDczZmQ1YmU5YjI1ODZlMmJjMjdi
YWQwYTBjNTUyMGM3OTI4MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtNzQsNiArNzQsMTAg
QEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZgogCisjaWYgVVNFKEpPVVJOQUxEKQorI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYg
ewogCiBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAwKSBzdGF0aWMgU3RyaW5nIGNyZWF0ZVdpdGhG
b3JtYXRBbmRBcmd1bWVudHMoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCkBAIC01
MjMsNyArNTI3LDcgQEAgc3RhdGljIHZvaWQgc2V0U3RhdGVPZkFsbENoYW5uZWxzKFdURkxvZ0No
YW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBjaGFubmVsQ291bnQKIAogdm9pZCBXVEZJbml0aWFs
aXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbHNbXSwg
c2l6ZV90IGNvdW50LCBjb25zdCBjaGFyKiBsb2dMZXZlbCkKIHsKLSNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyNpZiBVU0UoT1NfTE9HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgV1RGTG9nQ2hhbm5l
bCogY2hhbm5lbCA9IGNoYW5uZWxzW2ldOwogICAgICAgICBjaGFubmVsLT5vc0xvZ0NoYW5uZWwg
PSBvc19sb2dfY3JlYXRlKGNoYW5uZWwtPnN1YnN5c3RlbSwgY2hhbm5lbC0+bmFtZSk7CkBAIC01
NzcsMTIgKzU4MSwyMyBAQCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5u
ZWwqIGNoYW5uZWwpCiAgICAgICAgIGZvciAoaW50IGZyYW1lTnVtYmVyID0gMTsgZnJhbWVOdW1i
ZXIgPCBzdGFja1RyYWNlLT5zaXplKCk7ICsrZnJhbWVOdW1iZXIpIHsKICAgICAgICAgICAgIGF1
dG8gc3RhY2tGcmFtZSA9IHN0YWNrW2ZyYW1lTnVtYmVyXTsKICAgICAgICAgICAgIGF1dG8gZGVt
YW5nbGVkID0gV1RGOjpTdGFja1RyYWNlOjpkZW1hbmdsZShzdGFja0ZyYW1lKTsKKyNpZiBVU0Uo
T1NfTE9HKQogICAgICAgICAgICAgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQtPmRlbWFuZ2xl
ZE5hbWUoKSkKICAgICAgICAgICAgICAgICBvc19sb2coY2hhbm5lbC0+b3NMb2dDaGFubmVsLCAi
JS0zZCAlcCAle3B1YmxpY31zIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+
ZGVtYW5nbGVkTmFtZSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGRlbWFuZ2xlZCAmJiBkZW1h
bmdsZWQtPm1hbmdsZWROYW1lKCkpCiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9z
TG9nQ2hhbm5lbCwgIiUtM2QgJXAgJXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1l
LCBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIG9zX2xvZyhjaGFubmVsLT5vc0xvZ0NoYW5uZWwsICIlLTNkICVwIiwgZnJhbWVOdW1i
ZXIsIHN0YWNrRnJhbWUpOworI2VsaWYgVVNFKEpPVVJOQUxEKQorICAgICAgICAgICAgU3RyaW5n
UHJpbnRTdHJlYW0gb3V0OworICAgICAgICAgICAgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQt
PmRlbWFuZ2xlZE5hbWUoKSkKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIlLTNkICVwICVz
IiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+ZGVtYW5nbGVkTmFtZSgpKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQtPm1hbmdsZWROYW1l
KCkpCisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCAlcyIsIGZyYW1lTnVtYmVy
LCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiUtM2QgJXAiLCBmcmFtZU51bWJlciwgc3Rh
Y2tGcmFtZSk7CisgICAgICAgICAgICBzZF9qb3VybmFsX3NlbmQoIldFQktJVF9TVUJTWVNURU09
JXMiLCBjaGFubmVsLT5zdWJzeXN0ZW0sICJXRUJLSVRfQ0hBTk5FTD0lcyIsIGNoYW5uZWwtPm5h
bWUsICJNRVNTQUdFPSVzIiwgb3V0LnRvQ1N0cmluZygpLmRhdGEoKSwgbnVsbHB0cik7CisjZW5k
aWYKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2Vy
dGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAppbmRleCBiMWE3M2YwZDM1NzBi
OWZjMTFlMWI5MTY5MjQyOGYwNmRlOGFjNDE2Li4yMzUzMzg3NDYyNWE4YjE4MTBlODA3NjBiZGUx
Y2I0NWMxNzAyOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysr
IGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCkBAIC01MSw2ICs1MSwxMSBAQAogI2luY2x1
ZGUgPG9zL2xvZy5oPgogI2VuZGlmCiAKKyNpZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIFNEX0pP
VVJOQUxfU1VQUFJFU1NfTE9DQVRJT04KKyNpbmNsdWRlIDxzeXN0ZW1kL3NkLWpvdXJuYWwuaD4K
KyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxjc3RkbGliPgogI2luY2x1
ZGUgPHR5cGVfdHJhaXRzPgpAQCAtOTEsNyArOTYsMTEgQEAgZXh0ZXJuICJDIiB2b2lkIF9SZWFk
V3JpdGVCYXJyaWVyKHZvaWQpOwogI2VuZGlmCiAKICNpZm5kZWYgUkVMRUFTRV9MT0dfRElTQUJM
RUQKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRElTQUJMRUQgIShVU0UoT1NfTE9HKSkKKyNkZWZpbmUg
UkVMRUFTRV9MT0dfRElTQUJMRUQgIShVU0UoT1NfTE9HKSB8fCBVU0UoSk9VUk5BTEQpKQorI2Vu
ZGlmCisKKyNpZm5kZWYgVkVSQk9TRV9SRUxFQVNFX0xPRworI2RlZmluZSBWRVJCT1NFX1JFTEVB
U0VfTE9HIFVTRShKT1VSTkFMRCkKICNlbmRpZgogCiAjaWYgQ09NUElMRVIoR0NDX0NPTVBBVElC
TEUpCkBAIC0xNTQsOCArMTYzLDEwIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICBXVEZMb2dMZXZl
bCBsZXZlbDsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBjaGFyKiBzdWJz
eXN0ZW07CisjaWYgVVNFKE9TX0xPRykKICAgICBfX3Vuc2FmZV91bnJldGFpbmVkIG9zX2xvZ190
IG9zTG9nQ2hhbm5lbDsKICNlbmRpZgorI2VuZGlmCiB9IFdURkxvZ0NoYW5uZWw7CiAKICNkZWZp
bmUgTE9HX0NIQU5ORUwobmFtZSkgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hB
Tk5FTF9QUkVGSVgsIG5hbWUpCkBAIC0xNjMsNyArMTc0LDEzIEBAIHR5cGVkZWYgc3RydWN0IHsK
ICNkZWZpbmUgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChwcmVmaXgsIGNoYW5uZWwpIEpP
SU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwpCiAjZGVm
aW5lIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwp
IHByZWZpeCAjIyBjaGFubmVsCiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5lIExPR19DSEFO
TkVMX1dFQktJVF9TVUJTWVNURU0gIldlYktpdEdUSyIKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNk
ZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiV1BFV2ViS2l0IgorI2Vsc2UKICNk
ZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiY29tLmFwcGxlLldlYktpdCIKKyNl
bmRpZgogCiAjZGVmaW5lIERFQ0xBUkVfTE9HX0NIQU5ORUwobmFtZSkgXAogICAgIGV4dGVybiBX
VEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpOwpAQCAtMTcyLDkgKzE4OSwxMiBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICNkZWZpbmUgREVGSU5FX0xP
R19DSEFOTkVMKG5hbWUsIHN1YnN5c3RlbSkgXAogICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5O
RUwobmFtZSkgPSB7IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkx
IH07Ci0jZWxzZQorI2VsaWYgVVNFKE9TX0xPRykKICNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVM
KG5hbWUsIHN1YnN5c3RlbSkgXAogICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkg
PSB7IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxLCBzdWJzeXN0
ZW0sIE9TX0xPR19ERUZBVUxUIH07CisjZWxpZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIERFRklO
RV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5u
ZWxTdGF0ZSkwLCAjbmFtZSwgKFdURkxvZ0xldmVsKTEsIHN1YnN5c3RlbSB9OwogI2VuZGlmCiAj
ZW5kaWYKIApAQCAtNDk5LDE2ICs1MTksMTIgQEAgY29uc3RleHByIGJvb2wgYXNzZXJ0aW9uRmFp
bHVyZUR1ZVRvVW5yZWFjaGFibGVDb2RlID0gZmFsc2U7CiAKICNkZWZpbmUgUkVMRUFTRV9MT0df
U1RBQ0tUUkFDRShjaGFubmVsKSAoKHZvaWQpMCkKICNlbHNlCisjaWYgVVNFKE9TX0xPRykKICNk
ZWZpbmUgUFVCTElDX0xPR19TVFJJTkcgIntwdWJsaWN9cyIKICNkZWZpbmUgUkVMRUFTRV9MT0co
Y2hhbm5lbCwgLi4uKSBvc19sb2coTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBf
X1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgLi4uKSBvc19s
b2dfZXJyb3IoTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBfX1ZBX0FSR1NfXykK
ICNkZWZpbmUgUkVMRUFTRV9MT0dfRkFVTFQoY2hhbm5lbCwgLi4uKSBvc19sb2dfZmF1bHQoTE9H
X0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVM
RUFTRV9MT0dfSU5GTyhjaGFubmVsLCAuLi4pIG9zX2xvZ19pbmZvKExPR19DSEFOTkVMKGNoYW5u
ZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pCi0KLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUYo
aXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0co
ICAgICAgY2hhbm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQotI2RlZmluZSBSRUxFQVNF
X0xPR19FUlJPUl9JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2Vk
KSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCi0j
ZGVmaW5lIFJFTEVBU0VfTE9HX0lORk9fSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsg
aWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfSU5GTyhjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0g
d2hpbGUgKDApCi0KICNkZWZpbmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChjaGFubmVsLCBsb2dM
ZXZlbCwgLi4uKSBkbyB7IFwKICAgICBpZiAoTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0g
KGxvZ0xldmVsKSkgXAogICAgICAgICBvc19sb2coTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dD
aGFubmVsLCBfX1ZBX0FSR1NfXyk7IFwKQEAgLTUxOSw2ICs1MzUsMzMgQEAgY29uc3RleHByIGJv
b2wgYXNzZXJ0aW9uRmFpbHVyZUR1ZVRvVW5yZWFjaGFibGVDb2RlID0gZmFsc2U7CiAgICAgICAg
IG9zX2xvZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKTsg
XAogfSB3aGlsZSAoMCkKIAorI2VsaWYgVVNFKEpPVVJOQUxEKQorI2RlZmluZSBQVUJMSUNfTE9H
X1NUUklORyAicyIKKyNkZWZpbmUgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIHByaW9yaXR5LCBm
aWxlLCBsaW5lLCBmdW5jdGlvbiwgLi4uKSBzZF9qb3VybmFsX3NlbmRfd2l0aF9sb2NhdGlvbigi
Q09ERV9GSUxFPSIgZmlsZSwgIkNPREVfTElORT0iIGxpbmUsIGZ1bmN0aW9uLCAiV0VCS0lUX1NV
QlNZU1RFTT0lcyIsIExPR19DSEFOTkVMKGNoYW5uZWwpLnN1YnN5c3RlbSwgIldFQktJVF9DSEFO
TkVMPSVzIiwgTE9HX0NIQU5ORUwoY2hhbm5lbCkubmFtZSwgIlBSSU9SSVRZPSVpIiwgcHJpb3Jp
dHksICJNRVNTQUdFPSIgX19WQV9BUkdTX18sIG51bGxwdHIpCisKKyNkZWZpbmUgX1hTVFJJTkdJ
RlkobGluZSkgI2xpbmUKKyNkZWZpbmUgX1NUUklOR0lGWShsaW5lKSBfWFNUUklOR0lGWShsaW5l
KQorI2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFu
bmVsLCBMT0dfTk9USUNFLCBfX0ZJTEVfXywgX1NUUklOR0lGWShfX0xJTkVfXyksIF9fZnVuY19f
LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgLi4uKSBT
RF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0VSUiwgX19GSUxFX18sIF9TVFJJTkdJRlkoX19M
SU5FX18pLCBfX2Z1bmNfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0ZBVUxU
KGNoYW5uZWwsIC4uLikgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19DUklULCBfX0ZJTEVf
XywgX1NUUklOR0lGWShfX0xJTkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
UkVMRUFTRV9MT0dfSU5GTyhjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBM
T0dfSU5GTywgX19GSUxFX18sIF9TVFJJTkdJRlkoX19MSU5FX18pLCBfX2Z1bmNfXywgX19WQV9B
UkdTX18pCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChjaGFubmVsLCBsb2dMZXZl
bCwgLi4uKSBkbyB7IFwKKyAgICBpZiAoTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0gKGxv
Z0xldmVsKSkgXAorICAgICAgICBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0lORk8sIF9f
RklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19fKTsgXAor
fSB3aGlsZSAoMCkKKworI2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGlzQWxsb3dl
ZCwgY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCisgICAgaWYgKChpc0FsbG93ZWQpICYm
IExPR19DSEFOTkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKKyAgICAgICAgU0Rf
Sk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19JTkZPLCBfX0ZJTEVfXywgX1NUUklOR0lGWShfX0xJ
TkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1NfXyk7IFwKK30gd2hpbGUgKDApCisjZW5kaWYKKwor
I2RlZmluZSBSRUxFQVNFX0xPR19TVEFDS1RSQUNFKGNoYW5uZWwpIFdURlJlbGVhc2VMb2dTdGFj
a1RyYWNlKCZMT0dfQ0hBTk5FTChjaGFubmVsKSkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoaXNB
bGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0coY2hh
bm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJP
Ul9JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNF
X0xPR19FUlJPUihjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJF
TEVBU0VfTE9HX0lORk9fSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxs
b3dlZCkgUkVMRUFTRV9MT0dfSU5GTyhjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDAp
CisKICNkZWZpbmUgUkVMRUFTRV9MT0dfU1RBQ0tUUkFDRShjaGFubmVsKSBXVEZSZWxlYXNlTG9n
U3RhY2tUcmFjZSgmTE9HX0NIQU5ORUwoY2hhbm5lbCkpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA0
ZjIzOGNlM2VkZTVmYmU4NDMzNmMyYTdiNmI4ZjVmYzY5M2QxODY2Li4wNDIwODQ0NTBiNDUwOGNk
YjdlZDlkMzNjZTRlNDQyMGJlZDU0OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMjksNiArMjksMTEgQEAKICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIFNEX0pPVVJOQUxf
U1VQUFJFU1NfTE9DQVRJT04KKyNpbmNsdWRlIDxzeXN0ZW1kL3NkLWpvdXJuYWwuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTE3NCw2ICsx
NzksNTcgQEAgcHVibGljOgogICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkRlYnVn
LCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3Vt
ZW50cz4KKyAgICBpbmxpbmUgdm9pZCBsb2dBbHdheXNWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNo
YW5uZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwg
VU5VU0VEX0ZVTkNUSU9OIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAorICAg
IHsKKyNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICAvLyAiU3RhbmRhcmQiIFdlYkNv
cmUgbG9nZ2luZyBnb2VzIHRvIHN0ZGVyciwgd2hpY2ggaXMgY2FwdHVyZWQgaW4gbGF5b3V0IHRl
c3Qgb3V0cHV0IGFuZCBjYW4gZ2VuZXJhbGx5IGJlIGEgcHJvYmxlbQorICAgICAgICAvLyAgb24g
c29tZSBzeXN0ZW1zLCBzbyBkb24ndCBhbGxvdyBpdC4KKyAgICAgICAgVU5VU0VEX1BBUkFNKGNo
YW5uZWwpOworI2Vsc2UKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVs
OjpBbHdheXMpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hh
bm5lbCwgV1RGTG9nTGV2ZWw6OkFsd2F5cywgZmlsZSwgZnVuY3Rpb24sIGxpbmUsIGFyZ3VtZW50
cy4uLik7CisjZW5kaWYKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+CisgICAgaW5saW5lIHZvaWQgZXJyb3JWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWws
IGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3Qg
QXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXdpbGxM
b2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkVycm9yKSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBsb2dWZXJib3NlKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpFcnJvciwgZmlsZSwgZnVu
Y3Rpb24sIGxpbmUsIGFyZ3VtZW50cy4uLik7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gQXJndW1lbnRzPgorICAgIGlubGluZSB2b2lkIHdhcm5pbmdWZXJib3NlKFdURkxvZ0No
YW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBp
bnQgbGluZSwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworICAg
ICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcpKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hhbm5lbCwgV1RGTG9nTGV2ZWw6
Oldhcm5pbmcsIGZpbGUsIGZ1bmN0aW9uLCBsaW5lLCBhcmd1bWVudHMuLi4pOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBpbmxpbmUgdm9pZCBpbmZv
VmVyYm9zZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBj
aGFyKiBmdW5jdGlvbiwgaW50IGxpbmUsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpJ
bmZvKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dWZXJib3NlKGNoYW5uZWws
IFdURkxvZ0xldmVsOjpJbmZvLCBmaWxlLCBmdW5jdGlvbiwgbGluZSwgYXJndW1lbnRzLi4uKTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAgaW5saW5l
IHZvaWQgZGVidWdWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZp
bGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3QgQXJndW1lbnRzJi4uLiBh
cmd1bWVudHMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RG
TG9nTGV2ZWw6OkRlYnVnKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dWZXJi
b3NlKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpEZWJ1ZywgZmlsZSwgZnVuY3Rpb24sIGxpbmUsIGFy
Z3VtZW50cy4uLik7CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgd2lsbExvZyhjb25zdCBXVEZM
b2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmICghbV9lbmFibGVkKQpAQCAtMjQ2LDcgKzMwMiw0MiBAQCBwcml2YXRlOgogI2lmIFJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIFdURkxvZygmY2hhbm5lbCwgIiVzIiwgbG9nTWVz
c2FnZS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCisjaWYgVVNFKE9TX0xPRykKKyAgICAgICAgb3Nf
bG9nKGNoYW5uZWwub3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7CisjZWxpZiBVU0UoSk9VUk5BTEQpCisgICAgICAgIHNkX2pvdXJuYWxfc2VuZCgi
V0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNoYW5uZWwuc3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9
JXMiLCBjaGFubmVsLm5hbWUsICJNRVNTQUdFPSVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgp
LCBudWxscHRyKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUg
PT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gbG9jayA9IHRyeUhvbGRMb2NrKG9ic2Vy
dmVyTG9jaygpKTsKKyAgICAgICAgaWYgKCFsb2NrKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCisgICAgICAgICAg
ICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1
ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudD4KKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgbG9nVmVy
Ym9zZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCwgY29uc3QgY2hh
ciogZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGludCBsaW5lLCBjb25zdCBBcmd1bWVudCYu
Li4gYXJndW1lbnRzKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGxvZ01lc3NhZ2UgPSBtYWtlU3Ry
aW5nKExvZ0FyZ3VtZW50PEFyZ3VtZW50Pjo6dG9TdHJpbmcoYXJndW1lbnRzKS4uLik7CisKKyNp
ZiBSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICBXVEZMb2dWZXJib3NlKGZpbGUsIGxpbmUs
IGZ1bmN0aW9uLCAmY2hhbm5lbCwgIiVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKKyNl
bHNlCisjaWYgVVNFKE9TX0xPRykKICAgICAgICAgb3NfbG9nKGNoYW5uZWwub3NMb2dDaGFubmVs
LCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShmaWxlKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGxpbmUpOworICAgICAgICBVTlVT
RURfUEFSQU0oZnVuY3Rpb24pOworI2VsaWYgVVNFKEpPVVJOQUxEKQorICAgICAgICBhdXRvIGZp
bGVTdHJpbmcgPSBtYWtlU3RyaW5nKCJDT0RFX0ZJTEU9IiwgZmlsZSk7CisgICAgICAgIGF1dG8g
bGluZVN0cmluZyA9IG1ha2VTdHJpbmcoIkNPREVfTElORT0iLCBsaW5lKTsKKyAgICAgICAgc2Rf
am91cm5hbF9zZW5kX3dpdGhfbG9jYXRpb24oZmlsZVN0cmluZy51dGY4KCkuZGF0YSgpLCBsaW5l
U3RyaW5nLnV0ZjgoKS5kYXRhKCksIGZ1bmN0aW9uLCAiV0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNo
YW5uZWwuc3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9JXMiLCBjaGFubmVsLm5hbWUsICJNRVNT
QUdFPSVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpLCBudWxscHRyKTsKKyNlbmRpZgogI2Vu
ZGlmCiAKICAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpP
ZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TG9nZ2VySGVscGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaAppbmRleCAwZDRj
MjkyYjk4ODBlMmY5NDRhOWNkOWNiNTgxOGM2OTZiOWZkZWQ4Li44MjhiNmFlMjA5MDBmZGUwMDc1
MzFmYmJkOGE5NjY4ZTJmMzNiOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJI
ZWxwZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaApAQCAtNDMsMTggKzQz
LDI3IEBAIHB1YmxpYzoKIAogI2RlZmluZSBMT0dJREVOVElGSUVSIFdURjo6TG9nZ2VyOjpMb2dT
aXRlSWRlbnRpZmllcihsb2dDbGFzc05hbWUoKSwgX19mdW5jX18sIGxvZ0lkZW50aWZpZXIoKSkK
IAorI2lmIFZFUkJPU0VfUkVMRUFTRV9MT0cKKyNkZWZpbmUgQUxXQVlTX0xPRyguLi4pICAgICBs
b2dnZXIoKS5sb2dBbHdheXNWZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxFX18sIF9fZnVuY19f
LCBfX0xJTkVfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgbG9n
Z2VyKCkuZXJyb3JWZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxFX18sIF9fZnVuY19fLCBfX0xJ
TkVfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIFdBUk5JTkdfTE9HKC4uLikgICAgbG9nZ2VyKCku
d2FybmluZ1ZlcmJvc2UobG9nQ2hhbm5lbCgpLCBfX0ZJTEVfXywgX19mdW5jX18sIF9fTElORV9f
LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgSU5GT19MT0coLi4uKSAgICAgICBsb2dnZXIoKS5pbmZv
VmVyYm9zZShsb2dDaGFubmVsKCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18sIF9fVkFf
QVJHU19fKQorI2RlZmluZSBERUJVR19MT0coLi4uKSAgICAgIGxvZ2dlcigpLmRlYnVnVmVyYm9z
ZShsb2dDaGFubmVsKCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18sIF9fVkFfQVJHU19f
KQorI2Vsc2UKICNkZWZpbmUgQUxXQVlTX0xPRyguLi4pICAgICBsb2dnZXIoKS5sb2dBbHdheXMo
bG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgRVJST1JfTE9HKC4uLikgICAgICBs
b2dnZXIoKS5lcnJvcihsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQogI2RlZmluZSBXQVJOSU5H
X0xPRyguLi4pICAgIGxvZ2dlcigpLndhcm5pbmcobG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykK
ICNkZWZpbmUgSU5GT19MT0coLi4uKSAgICAgICBsb2dnZXIoKS5pbmZvKGxvZ0NoYW5uZWwoKSwg
X19WQV9BUkdTX18pCiAjZGVmaW5lIERFQlVHX0xPRyguLi4pICAgICAgbG9nZ2VyKCkuZGVidWco
bG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKKyNlbmRpZgorCiAjZGVmaW5lIFdJTExfTE9HKF9s
ZXZlbF8pICAgbG9nZ2VyKCkud2lsbExvZyhsb2dDaGFubmVsKCksIF9sZXZlbF8pCiAKLSNkZWZp
bmUgQUxXQVlTX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgIGlmIChjb25kaXRpb24pIGxvZ2dl
cigpLmxvZ0Fsd2F5cyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBFUlJPUl9M
T0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAgaWYgKGNvbmRpdGlvbikgbG9nZ2VyKCkuZXJyb3Io
bG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgV0FSTklOR19MT0dfSUYoY29uZGl0
aW9uLCAuLi4pICAgIGlmIChjb25kaXRpb24pIGxvZ2dlcigpLndhcm5pbmcobG9nQ2hhbm5lbCgp
LCBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgSU5GT19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAg
IGlmIChjb25kaXRpb24pIGxvZ2dlcigpLmluZm8obG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykK
LSNkZWZpbmUgREVCVUdfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgIGlmIChjb25kaXRpb24p
IGxvZ2dlcigpLmRlYnVnKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIEFMV0FZ
U19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICBpZiAoY29uZGl0aW9uKSBBTFdBWVNfTE9HKF9f
VkFfQVJHU19fKQorI2RlZmluZSBFUlJPUl9MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAgaWYg
KGNvbmRpdGlvbikgRVJST1JfTE9HKF9fVkFfQVJHU19fKQorI2RlZmluZSBXQVJOSU5HX0xPR19J
Rihjb25kaXRpb24sIC4uLikgICAgaWYgKGNvbmRpdGlvbikgV0FSTklOR19MT0coX19WQV9BUkdT
X18pCisjZGVmaW5lIElORk9fTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgICBpZiAoY29uZGl0
aW9uKSBJTkZPX0xPRyhfX1ZBX0FSR1NfXykKKyNkZWZpbmUgREVCVUdfTE9HX0lGKGNvbmRpdGlv
biwgLi4uKSAgICAgIGlmIChjb25kaXRpb24pIERFQlVHX0xPRyhfX1ZBX0FSR1NfXykKIAogICAg
IGNvbnN0IHZvaWQqIGNoaWxkTG9nSWRlbnRpZmllcihjb25zdCB2b2lkKiBwYXJlbnRJZGVudGlm
aWVyLCB1aW50NjRfdCBjaGlsZElkZW50aWZpZXIpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggMTM1NzU2ZDg5N2VjNjgyODM4MTJhMTc1
YTM3ZjU5OTdhZDY1ZDQ5My4uNTdmOWIwMTQzMWZlZmNkOTIxYWQ5N2I0ZGM1ZjM5Yzk3ZjIwNjgx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCkBAIC0zNiw4ICsz
NiwxMCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZM
b2dDaGFubmVsIExvZ01lbW9yeVByZXNzdXJlID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAi
TWVtb3J5UHJlc3N1cmUiLCBXVEZMb2dMZXZlbDo6RXJyb3IgfTsKLSNlbHNlCisjZWxpZiBVU0Uo
T1NfTE9HKQogV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5l
bFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hB
Tk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9OworI2VsaWYgVVNFKEpPVVJO
QUxEKQorV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hBTk5F
TF9XRUJLSVRfU1VCU1lTVEVNIH07CiAjZW5kaWYKIAogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnNfbG9nZ2luZ0VuYWJsZWQgPSBm
YWxzZTsKQEAgLTgzLDYgKzg1LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRvU3RyaW5nKE1lbW9y
eVVzYWdlUG9saWN5IHBvbGljeSkKICAgICBjYXNlIE1lbW9yeVVzYWdlUG9saWN5OjpDb25zZXJ2
YXRpdmU6IHJldHVybiAiQ29uc2VydmF0aXZlIjsKICAgICBjYXNlIE1lbW9yeVVzYWdlUG9saWN5
OjpTdHJpY3Q6IHJldHVybiAiU3RyaWN0IjsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuICIiOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UK
aW5kZXggYThkOTc5Mjk2YWI3YzcwNTJiMTA0ZDIxMWM5N2JjMDJjMzFkOWRjZi4uMTlhYzY2MjBl
M2ZjNmQwOWVhMTNjOGNiYmNjYmFkYWE0YWJhNTFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21h
a2UKQEAgLTYyLDcgKzYyLDEyIEBAIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKICAgICBaTElC
OjpaTElCCiApCiAKK2lmIChTeXN0ZW1kX0ZPVU5EKQorICAgIGxpc3QoQVBQRU5EIFdURl9MSUJS
QVJJRVMgU3lzdGVtZDo6U3lzdGVtZCkKK2VuZGlmICgpCisKIGxpc3QoQVBQRU5EIFdURl9TWVNU
RU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7R0lPX1VOSVhfSU5DTFVERV9ESVJTfQogICAg
ICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtTWVNURU1EX0lOQ0xVREVfRElSU30KICkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggZTVhOGZmNDc4MTYzZjhiMjMwNmZmYWI3MmU0NDJm
ZWM0ODZkZTMxYS4uZGU0NzQxMDEwZjE1ODFmNzI5ODM2YjdmMmVjMTE5ZmYwZGU0YTJiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTQ3LDYgKzQ3LDEwIEBAIGxpc3QoQVBQRU5EIFdU
Rl9MSUJSQVJJRVMKICAgICBaTElCOjpaTElCCiApCiAKK2lmIChTeXN0ZW1kX0ZPVU5EKQorICAg
IGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMgU3lzdGVtZDo6U3lzdGVtZCkKK2VuZGlmICgpCisK
IGxpc3QoQVBQRU5EIFdURl9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7R0lPX1VO
SVhfSU5DTFVERV9ESVJTfQogICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwIGIvU291cmNlL1dURi93dGYv
UmVmQ291bnRlZExlYWtDb3VudGVyLmNwcAppbmRleCBlMzNmYWNiODVkMzNhZWI4MWU5ZmEzZjQy
NWYzYThlMjBmYzA4Njc0Li5jYmZkNDY5ZDRjMGE2N2E5ZWNjMWEwODA0YjNhN2YyYWY2Mjg4YThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKQEAgLTQxLDggKzQx
LDEwIEBAIHZvaWQgUmVmQ291bnRlZExlYWtDb3VudGVyOjpkZWNyZW1lbnQoKSB7IH0KICNkZWZp
bmUgTE9HX0NIQU5ORUxfUFJFRklYIExvZwogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiBzdGF0
aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0
ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IgfTsKLSNlbHNlCisj
ZWxpZiBVU0UoT1NfTE9HKQogc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtz
ID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAiUmVmQ291bnRlZExlYWtzIiwgV1RGTG9nTGV2
ZWw6OkVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9
OworI2VsaWYgVVNFKEpPVVJOQUxEKQorc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRl
ZExlYWtzID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAiUmVmQ291bnRlZExlYWtzIiwgV1RG
TG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNIH07CiAjZW5kaWYK
IAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKiwgUHRySGFzaDxjb25zdCBjaGFy
Kj4+IFJlYXNvblNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRp
bWVfaW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwu
aAppbmRleCAzZGVlNmNhMWYzZTIxZTZiOTczMmJhNjkwZmZhYWQ4YThjNTkzZWFhLi41OThmOWRk
ZjEwODAyY2MyMGY4NGI0OWMyYWE5MzQwYmE4NjViOWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaWYgZGVmaW5lZChN
T1pfWDExKQogICAgICNpbmNsdWRlIDxYMTEvWHJlc291cmNlLmg+CiAKKyAgICAjdW5kZWYgQWx3
YXlzCiAgICAgI3VuZGVmIE5vbmUKICAgICAjdW5kZWYgQWJvdmUKICAgICAjdW5kZWYgQmVsb3cK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKaW5kZXggMDE0ZDRjZDhhZGEzNWY4YzVlM2JlMWU0Y2RkNjUxMjEzMzRhY2YwZS4uY2RmZGZi
OWI4NzYyMmM3ODFmMzhlYjM3NGY0M2UzNGY3MGQ1ODdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTk3LDYgKzk3LDgg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIHRocm90dGxpbmdSZWFzb25Ub1N0cmluZyhTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXI6OlRocm90dGwKICAgICBjYXNlIFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6VGhyb3R0bGluZ1JlYXNvbjo6Tm9uSW50ZXJhY3RlZENyb3NzT3JpZ2luRnJhbWU6
CiAgICAgICAgIHJldHVybiAiTm9uSW50ZXJhY3RpdmVDcm9zc09yaWdpbkZyYW1lIjsKICAgICB9
CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAK
IHN0YXRpYyBTdHJpbmcgdGhyb3R0bGluZ1JlYXNvbnNUb1N0cmluZyhPcHRpb25TZXQ8U2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsaW5nUmVhc29uPiByZWFzb25zKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCmluZGV4IDM2ZTM4ZDQ3OTE3ZTNm
MmNkYjlkZGE4YzAwYmIyZDUyYWQ0YjYzMDMuLmYyZGU5N2I2Mzc5NzA3YmFiMjMyOTJmZDcyZDQ0
NDAyNThjNWY3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5j
cHAKQEAgLTQ4LDYgKzQ4LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRvU3RyaW5nKFBlcmZvcm1h
bmNlTG9nZ2luZzo6UG9pbnRPZkludGVyZXN0IHBvaSkKICAgICBjYXNlIFBlcmZvcm1hbmNlTG9n
Z2luZzo6TWFpbkZyYW1lTG9hZENvbXBsZXRlZDoKICAgICAgICAgcmV0dXJuICJNYWluRnJhbWVM
b2FkQ29tcGxldGVkIjsKICAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gIiI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZU1vbml0b3IuY3BwCmluZGV4IGU2NDVhYjkyMzVkYTQzNzAwMjJlN2I4MzBhYTA4MDg3MDM3
YzcxZjQuLmY4NWZiZWQwMzQwMjE0MjI3ZTYwYWE0ODdhM2JhZWQzMzk5N2YyYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTW9uaXRvci5jcHAKQEAgLTI2Miw2ICsyNjIsOCBA
QCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHN0cmluZ0ZvckNQVVNhbXBsaW5nQWN0aXZpdHlT
dGF0ZShBY3Rpdml0eVN0YXRlRm9yQ1BVUwogICAgIGNhc2UgQWN0aXZpdHlTdGF0ZUZvckNQVVNh
bXBsaW5nOjpWaXNpYmxlQW5kQWN0aXZlOgogICAgICAgICByZXR1cm4gIlZpc2libGVBbmRBY3Rp
dmUiOwogICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAiIjsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwCmluZGV4IDU1M2Q4ZWUzZWI0NTU2OTkxMjNiYmFiZDU5ZGYzYTI0ZTAzOWU4
YjguLjQ0ZGQyZDBjODFlMTk4ZDhhOTI5NGRlNWZhZTEyM2MwMzA4MTRhNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC00MTMsMTUgKzQx
MywxNiBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQogICAgICwgbV9wcmVsb2FkKHBsYXllci0+cHJl
bG9hZCgpKQogICAgICwgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzKE1l
ZGlhVGltZTo6emVyb1RpbWUoKSkKICAgICAsIG1fZHJhd1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVwYWludCkKLSAgICAsIG1fcmVh
ZHlUaW1lckhhbmRsZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpyZWFkeVRpbWVyRmlyZWQKLSkKKyAgICAsIG1fcmVhZHlUaW1lckhhbmRsZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZWFk
eVRpbWVyRmlyZWQpCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2lmIFVTRShOSUNPU0lB
KQogICAgICwgbV9uaWNvc2lhTGF5ZXIoTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmlj
b3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMp
KSkKICNlbHNlCiAgICAgLCBtX3BsYXRmb3JtTGF5ZXJQcm94eShhZG9wdFJlZihuZXcgVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eSgpKSkKICNlbmRpZgotI2VuZGlmICAgICAgCisjZW5k
aWYKKyAgICAsIG1fbG9nZ2VyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1f
bG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKQogewogI2lm
IFVTRShHTElCKQogICAgIG1fcmVhZHlUaW1lckhhbmRsZXIuc2V0UHJpb3JpdHkoR19QUklPUklU
WV9ERUZBVUxUX0lETEUpOwpAQCAtMzgyMSw2ICszODIyLDExIEBAIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpleHRlbmRlZFN1cHBvcnRzVHlw
ZShjb25zCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2Vi
Q29yZTo6TG9nTWVkaWE7Cit9CisKIH0KIAogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTIxYjIwZDEx
Y2M4ZGQ5NGJlMjg0ZDc0Njk5Y2QyNzE3YjRlMDU0NS4uMDQxYTU4YWZmOTY1NjA3YTM2ZWQ0MTY3
NzZkNWVmNTFiYjFmMDhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiR1N0cmVhbWVyQ29tbW9u
LmgiCiAjaW5jbHVkZSAiR1N0cmVhbWVyRU1FVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKQEAgLTM3LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAg
LTExNyw3ICsxMTksOSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIHZvaWQg
cmVnaXN0ZXJXZWJLaXRHU3RyZWFtZXJFbGVtZW50cygpOwogCiAvLyBVc2UgZWFnZXIgaW5pdGlh
bGl6YXRpb24gZm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRy
KCkgZnJvbSBhbm90aGVyIHRocmVhZC4KLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6
YXRpb246OkVhZ2VyPgorY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlv
bjo6RWFnZXI+CisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgogI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKICNpZiBVU0UoTklDT1NJQSkKICAgICAsIHB1YmxpYyBOaWNvc2lhOjpDb250ZW50
TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Q2xpZW50CkBAIC0yMjgsNiArMjMyLDE0IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGZsdXNoQ3VycmVudEJ1ZmZlcigpOwogI2VuZGlmCiAKKyAgICBjb25zdCBM
b2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9Cisg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciI7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlm
aWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4o
bV9sb2dJZGVudGlmaWVyKTsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25z
dCBvdmVycmlkZTsKKworICAgIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigp
IHsgcmV0dXJuIGxvZ0lkZW50aWZpZXIoKTsgfQorICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5
ZXJMb2dnZXIoKSB7IHJldHVybiBsb2dnZXIoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBN
YWluVGhyZWFkTm90aWZpY2F0aW9uIHsKICAgICAgICAgVmlkZW9DaGFuZ2VkID0gMSA8PCAwLApA
QCAtNTMxLDYgKzU0Myw4IEBAIHByaXZhdGU6CiAjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQ
TEFZX0RNQUJVRikKICAgICBHVW5pcXVlUHRyPHN0cnVjdCB3cGVfdmlkZW9fcGxhbmVfZGlzcGxh
eV9kbWFidWZfc291cmNlPiBtX3dwZVZpZGVvUGxhbmVEaXNwbGF5RG1hQnVmOwogI2VuZGlmCisg
ICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVu
dGlmaWVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKaW5k
ZXggNmM0MjUwZGYwNTFiMGFkYWQ1Yjg5MjA5MTg1NWIzMWQzZTg5MzBlNS4uYzFiNmIzNGY2ODZm
NGNmNzJmZTYxMjUzMjA0MjQ0ZDg1N2ZlNGQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5
Q2xlYXJLZXkuY3BwCkBAIC0xNzEsNyArMTcxLDExIEBAIGJvb2wgQ0RNUHJveHlDbGVhcktleTo6
Y2VuY0RlY3J5cHRTdWJzYW1wbGVkKGNlbmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiAgICAgICAg
ICAgICBMT0coRU1FLCAiRU1FIC0gc3Vic2FtcGxlIGluZGV4ICV1IC0gJXUgYnl0ZXMgZW5jcnlw
dGVkICglbHUgYnl0ZXMgbGVmdCB0byBkZWNyeXB0KSIsIHN1YnNhbXBsZUluZGV4LCBzdWJzYW1w
bGVOdW1FbmNyeXB0ZWRCeXRlcywgaW5wdXQuZW5jcnlwdGVkQnVmZmVyU2l6ZUluQnl0ZXMgLSBl
bmNyeXB0ZWRCdWZmZXJCeXRlT2Zmc2V0KTsKIAogICAgICAgICAgICAgaWYgKGdjcnlfZXJyb3Jf
dCBjaXBoZXJFcnJvciA9IGdjcnlfY2lwaGVyX2RlY3J5cHQobV9nY3J5SGFuZGxlLCBpbnB1dC5l
bmNyeXB0ZWRCdWZmZXIgKyBlbmNyeXB0ZWRCdWZmZXJCeXRlT2Zmc2V0LCBzdWJzYW1wbGVOdW1F
bmNyeXB0ZWRCeXRlcywgMCwgMCkpIHsKKyNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgICAgICAg
ICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9k
ZWNyeXB0KTogJXMiLCBncGdfc3RyZXJyb3IoY2lwaGVyRXJyb3IpKTsKKyNlbHNlCisgICAgICAg
ICAgICAgICAgVU5VU0VEX1ZBUklBQkxFKGNpcGhlckVycm9yKTsKKyNlbmRpZgogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KIApAQCAtMTkzLDcgKzE5NywxMSBA
QCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0KENETVByb3h5Q2xlYXJLZXk6OmNl
bmNEZWNyeXB0Q29udGV4dCYgaW5wdXQpCiB2b2lkIENETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxp
emVHY3J5cHQoKQogewogICAgIGlmIChnY3J5X2Vycm9yX3QgZXJyb3IgPSBnY3J5X2NpcGhlcl9v
cGVuKCZtX2djcnlIYW5kbGUsIEdDUllfQ0lQSEVSX0FFUzEyOCwgR0NSWV9DSVBIRVJfTU9ERV9D
VFIsIEdDUllfQ0lQSEVSX1NFQ1VSRSkpIHsKKyNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIExP
RyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfb3Blbik6
ICVzIiwgZ3BnX3N0cmVycm9yKGVycm9yKSk7CisjZWxzZQorICAgICAgICBVTlVTRURfVkFSSUFC
TEUoZXJyb3IpOworI2VuZGlmCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGZhbHNlICYmICJTaG91
bGQgbm90IGdldCB0aGlzIGZhciB3aXRoIGEgZnVuY3Rpb25hbCBHQ3J5cHQhIik7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFLmgKaW5kZXggNWQxMDEzZmNiZWYwNTc5MzQ4MGJiMzhlZGVmZTRiNjRmMGFjZjQyYy4uNGUw
OGI1ZGRmNWE4YWMzMGE4NDFhYzBkZjhjMzVhMzcwMjY1MjBjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCkBAIC04NCw2ICs4
NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGJsb2NrRHVyYXRpb25DaGFuZ2VzKCk7CiAgICAgdm9p
ZCB1bmJsb2NrRHVyYXRpb25DaGFuZ2VzKCk7CiAKKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFu
bmVsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gV2ViQ29yZTo6TG9nTWVkaWFTb3VyY2U7IH0KKwog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJGYWN0b3J5R1N0cmVhbWVyTVNF
OwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VH
U3RyZWFtZXIuY3BwCmluZGV4IGU2MmNkNTZhODQ2YjM0NzYxMjM0NDgzNTI1YTJlNmEwZmI2ODBl
NTMuLmM4ZjU4MDU2ZWFkNDVkZTYxNWE4ODJjMWI5M2Y5MmM0MTkyZTA2YTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEdTVFJFQU1FUikKIAogI2luY2x1ZGUgIkNv
bnRlbnRUeXBlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRS5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgiCkBAIC02
MCwxNyArNjEsMjMgQEAgTWVkaWFTb3VyY2VHU3RyZWFtZXI6Ok1lZGlhU291cmNlR1N0cmVhbWVy
KE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCYgbWVkaWFTb3VyY2UKICAgICAsIG1fY2xpZW50KE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOjpjcmVhdGUocGxheWVyUHJpdmF0ZSkpCiAgICAg
LCBtX21lZGlhU291cmNlKG1lZGlhU291cmNlKQogICAgICwgbV9wbGF5ZXJQcml2YXRlKHBsYXll
clByaXZhdGUpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihtX3Bs
YXllclByaXZhdGUubWVkaWFQbGF5ZXJMb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllciht
X3BsYXllclByaXZhdGUubWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKIHsKIH0K
IAogTWVkaWFTb3VyY2VHU3RyZWFtZXI6On5NZWRpYVNvdXJjZUdTdHJlYW1lcigpCiB7CisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICBmb3IgKGF1dG8mIHNvdXJjZUJ1ZmZlclBy
aXZhdGUgOiBtX3NvdXJjZUJ1ZmZlcnMpCiAgICAgICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUtPmNs
ZWFyTWVkaWFTb3VyY2UoKTsKIH0KIAogTWVkaWFTb3VyY2VHU3RyZWFtZXI6OkFkZFN0YXR1cyBN
ZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyKGNvbnN0IENvbnRlbnRUeXBlJiBj
b250ZW50VHlwZSwgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+JiBzb3VyY2VCdWZmZXJQcml2
YXRlKQogeworICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCBjb250ZW50VHlwZSk7CiAgICAg
c291cmNlQnVmZmVyUHJpdmF0ZSA9IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0
ZSh0aGlzLCBtX2NsaWVudC5nZXQoKSwgY29udGVudFR5cGUpOwogICAgIFJlZlB0cjxTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyID0gc3Rh
dGljX2Nhc3Q8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcio+KHNvdXJjZUJ1ZmZlclByaXZh
dGUuZ2V0KCkpOwogICAgIG1fc291cmNlQnVmZmVycy5hZGQoc291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcik7CkBAIC0xMzUsNSArMTQyLDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRp
bWVSYW5nZXM+IE1lZGlhU291cmNlR1N0cmVhbWVyOjpidWZmZXJlZCgpCiAgICAgcmV0dXJuIG1f
bWVkaWFTb3VyY2UtPmJ1ZmZlcmVkKCk7CiB9CiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
K1dURkxvZ0NoYW5uZWwmIE1lZGlhU291cmNlR1N0cmVhbWVyOjpsb2dDaGFubmVsKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gTG9nTWVkaWFTb3VyY2U7Cit9CisKKyNlbmRpZgorCiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaAppbmRleCBjOWEwOWZhMDQz
OWZlZjhlYjhkYjc1MDVmY2JjOTdlMDUyMzc4ZWE2Li41Y2Y5YjgyMGExOTQ3ZjgwMTcxODBjYWZi
NTZiNzYyZjVjMjYzYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1l
ci5oCkBAIC0zOSw2ICszOSw3IEBACiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFTcmMgV2ViS2l0TWVkaWFTcmM7CiAKQEAgLTUwLDcgKzUx
LDExIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRTsKIGNsYXNzIFBsYXRm
b3JtVGltZVJhbmdlczsKIAogLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIGNhbGxlZCBNZWRpYVNv
dXJjZVByaXZhdGVHU3RyZWFtZXI/Ci1jbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lciBmaW5hbCA6
IHB1YmxpYyBNZWRpYVNvdXJjZVByaXZhdGUgeworY2xhc3MgTWVkaWFTb3VyY2VHU3RyZWFtZXIg
ZmluYWwgOiBwdWJsaWMgTWVkaWFTb3VyY2VQcml2YXRlCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CiBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgb3BlbihNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQmLCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UmKTsKICAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZUdTdHJlYW1lcigp
OwpAQCAtNzMsNiArNzgsMTUgQEAgcHVibGljOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
ICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIu
Z2V0KCk7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyIjsgfQorICAgIGNvbnN0IHZvaWQq
IGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0K
KyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisKKyAgICBjb25z
dCB2b2lkKiBuZXh0U291cmNlQnVmZmVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIGNoaWxkTG9n
SWRlbnRpZmllcihtX2xvZ0lkZW50aWZpZXIsICsrbV9uZXh0U291cmNlQnVmZmVySUQpOyB9Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJjZVBy
aXZhdGVDbGllbnQmLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UmKTsKIApAQCAtODEs
NiArOTUsMTEgQEAgcHJpdmF0ZToKICAgICBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJN
U0U+IG1fY2xpZW50OwogICAgIFJlZjxNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ+IG1fbWVkaWFT
b3VyY2U7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBtX3BsYXllclByaXZh
dGU7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9s
b2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworICAgIHVpbnQ2NF90IG1f
bmV4dFNvdXJjZUJ1ZmZlcklEIHsgMCB9OworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3YzFl
Nzk5MTZkOTNmOGFmMTExZGNhODNhZDUyYzVjNGU1YzhmN2ZkLi43MjBkMzQ0ZmZkMmNjNjllMTMw
OWMyM2E1MGU0MGZlNTE2NjA0YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTU4LDYgKzU4LDEwIEBAIFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVkaWFT
b3VyY2VHU3RyZWFtZXIqCiAgICAgLCBtX21lZGlhU291cmNlKG1lZGlhU291cmNlKQogICAgICwg
bV90eXBlKGNvbnRlbnRUeXBlKQogICAgICwgbV9jbGllbnQoY2xpZW50LmdldCgpKQorI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgbV9sb2dnZXIobWVkaWFTb3VyY2UtPmxvZ2dlcigp
KQorICAgICwgbV9sb2dJZGVudGlmaWVyKG1lZGlhU291cmNlLT5uZXh0U291cmNlQnVmZmVyTG9n
SWRlbnRpZmllcigpKQorI2VuZGlmCiB7CiB9CiAKQEAgLTE3Nyw1ICsxODEsMTIgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmRQYXJzaW5nRmFpbGVkKCkKICAgICAg
ICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5k
Q29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6UGFyc2luZ0ZhaWxlZCk7CiB9CiAK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxvZ0NoYW5uZWwmIFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBMb2dNZWRp
YVNvdXJjZTsKK30KKyNlbmRpZgorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZTVmZTQwNjhhODJhN2QyMmVj
Zjk0NTdmZGUyYjk4ZTExN2NiOTBiNC4uMWNjYWZhMGE1Zjk2N2FlNDA3NWQzMDg5NzJiYzIxMDk2
MjkzNDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmgKQEAgLTQxLDEyICs0MSwxNyBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclBy
aXZhdGUuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTb3VyY2VHU3RyZWFt
ZXI7CiAKLWNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMg
U291cmNlQnVmZmVyUHJpdmF0ZSB7CitjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
IGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUKKyNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKKyAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCisjZW5kaWYKK3sKIAogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKE1lZGlh
U291cmNlR1N0cmVhbWVyKiwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiwgY29u
c3QgQ29udGVudFR5cGUmKTsKQEAgLTc5LDYgKzg0LDE1IEBAIHB1YmxpYzoKIAogICAgIENvbnRl
bnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAorI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAiU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lciI7IH0KKyAg
ICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dJ
ZGVudGlmaWVyOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFs
OworICAgIGNvbnN0IExvZ2dlciYgc291cmNlQnVmZmVyTG9nZ2VyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCB2b2lkKiBzb3VyY2VCdWZmZXJMb2dJ
ZGVudGlmaWVyKCkgZmluYWwgeyByZXR1cm4gbG9nSWRlbnRpZmllcigpOyB9CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhU291cmNlR1N0
cmVhbWVyKiwgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiwgY29uc3QgQ29udGVu
dFR5cGUmKTsKICAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U7
CkBAIC05MCw2ICsxMDQsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNSZWFkeUZvck1vcmVT
YW1wbGVzID0gdHJ1ZTsKICAgICBib29sIG1fbm90aWZ5V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMg
PSBmYWxzZTsKICAgICBBdG9tU3RyaW5nIG1fdHJhY2tJZDsKKworI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQq
IG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIuY3BwCmluZGV4IGI1MTY0OWEwYThkNWZlN2QzNGIxOTFjNmY4OTFhZjQw
MjllNmI0ODEuLjUxZjA1ZDg1MmRlYjdkZDllZjgwZjhmYzMyOTUyOWJjZjA0MmYyMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaCIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggZjdkYTNmN2Y0MDJkYTg5MzhkN2FkZGZhN2EwMTVh
MjQ4YjI2YTkxMS4uZDdjZGE3ODc1OTM3OGIyN2VmZGFhNGIxYThmNzczMDllMmJmOTVjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0xNTcsNiArMTU3LDggQEAg
c3RhdGljIHJ0Yzo6TG9nZ2luZ1NldmVyaXR5IGNvbXB1dGVMb2dMZXZlbCgpCiAgICAgY2FzZSBX
VEZMb2dMZXZlbDo6RGVidWc6CiAgICAgICAgIHJldHVybiBydGM6OkxTX1ZFUkJPU0U7CiAgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHJ0Yzo6TFNf
Tk9ORTsKICNlbHNlCiAgICAgcmV0dXJuIHJ0Yzo6TFNfTk9ORTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGM0ZjA5ZTZhYjlmNWJmMjA1YmM3YzQwY2M1
OWQwMTZkY2JhNzgwYmMuLjQzMGUxNzUzODY4YTVlNDgxYmQ2YWQzZjUwYzBhYmVkYjRhMjg4YmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTQ3MCw2ICs0NzAsNyBA
QCBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSQogI2Vsc2UKICAgICBHVW5pcXVlUHRyPEdTTGlzdD4g
Y29va2llcyhzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0KGNvb2tpZVN0b3JhZ2UoKSwg
dXJpLmdldCgpLCBUUlVFKSk7CiAgICAgVU5VU0VEX1BBUkFNKHNhbWVTaXRlSW5mbyk7CisgICAg
VU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwogI2VuZGlmCiAgICAgaWYgKCFjb29raWVzKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFN5c3RlbWQu
Y21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZFN5c3RlbWQuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRkZmYw
ZWE2YTg3ZGZhMjk0ZGFjNjU0YzNhMDc5YzBmMTg2ZjdlNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFrZQpAQCAtMCwwICsxLDkxIEBACisjIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJ
UycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNbPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1bLnJzdDoK
K0ZpbmRTeXN0ZW1kCistLS0tLS0tLS0tLQorCitGaW5kIFN5c3RlbWQgaGVhZGVycyBhbmQgbGli
cmFyaWVzLgorCitJbXBvcnRlZCBUYXJnZXRzCiteXl5eXl5eXl5eXl5eXl5eCisKK2BgU3lzdGVt
ZDo6U3lzdGVtZGBgCisgIFRoZSBTeXN0ZW1kIGxpYnJhcnksIGlmIGZvdW5kLgorCitSZXN1bHQg
VmFyaWFibGVzCiteXl5eXl5eXl5eXl5eXl5eCisKK1RoaXMgd2lsbCBkZWZpbmUgdGhlIGZvbGxv
d2luZyB2YXJpYWJsZXMgaW4geW91ciBwcm9qZWN0OgorCitgYFN5c3RlbWRfRk9VTkRgYAorICB0
cnVlIGlmICh0aGUgcmVxdWVzdGVkIHZlcnNpb24gb2YpIFN5c3RlbWQgaXMgYXZhaWxhYmxlLgor
YGBTeXN0ZW1kX1ZFUlNJT05gYAorICB0aGUgdmVyc2lvbiBvZiBTeXN0ZW1kLgorYGBTeXN0ZW1k
X0xJQlJBUklFU2BgCisgIHRoZSBsaWJyYXJpZXMgdG8gbGluayBhZ2FpbnN0IHRvIHVzZSBTeXN0
ZW1kLgorYGBTeXN0ZW1kX0lOQ0xVREVfRElSU2BgCisgIHdoZXJlIHRvIGZpbmQgdGhlIFN5c3Rl
bWQgaGVhZGVycy4KK2BgU3lzdGVtZF9DT01QSUxFX09QVElPTlNgYAorICB0aGlzIHNob3VsZCBi
ZSBwYXNzZWQgdG8gdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucygpLCBpZiB0aGUKKyAgdGFyZ2V0IGlz
IG5vdCB1c2VkIGZvciBsaW5raW5nCisKKyNdPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1dCisKK2luY2x1ZGUoRmlu
ZFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1NZU1RFTUQgUVVJRVQgbGlic3lzdGVt
ZCkKK3NldChTeXN0ZW1kX0NPTVBJTEVfT1BUSU9OUyAke1BDX1NZU1RFTURfQ0ZMQUdTX09USEVS
fSkKK3NldChTeXN0ZW1kX1ZFUlNJT04gJHtQQ19TWVNURU1EX1ZFUlNJT059KQorCitmaW5kX3Bh
dGgoU3lzdGVtZF9JTkNMVURFX0RJUgorICAgIE5BTUVTIHN5c3RlbWQvc2Qtam91cm5hbC5oCisg
ICAgSElOVFMgJHtQQ19TWVNURU1EX0lOQ0xVREVESVJ9ICR7UENfU1lTVEVNRF9JTkNMVURFX0RJ
UlN9CispCisKK2ZpbmRfbGlicmFyeShTeXN0ZW1kX0xJQlJBUlkKKyAgICBOQU1FUyAke1N5c3Rl
bWRfTkFNRVN9IHN5c3RlbWQKKyAgICBISU5UUyAke1BDX1NZU1RFTURfTElCRElSfSAke1BDX1NZ
U1RFTURfTElCUkFSWV9ESVJTfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRh
cmRBcmdzKQorZmluZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdzKFN5c3RlbWQKKyAgICBG
T1VORF9WQVIgU3lzdGVtZF9GT1VORAorICAgIFJFUVVJUkVEX1ZBUlMgU3lzdGVtZF9MSUJSQVJZ
IFN5c3RlbWRfSU5DTFVERV9ESVIKKyAgICBWRVJTSU9OX1ZBUiBTeXN0ZW1kX1ZFUlNJT04KKykK
KworaWYgKFN5c3RlbWRfTElCUkFSWSBBTkQgTk9UIFRBUkdFVCBTeXN0ZW1kOjpTeXN0ZW1kKQor
ICAgIGFkZF9saWJyYXJ5KFN5c3RlbWQ6OlN5c3RlbWQgVU5LTk9XTiBJTVBPUlRFRCBHTE9CQUwp
CisgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFN5c3RlbWQ6OlN5c3RlbWQgUFJPUEVSVElFUwor
ICAgICAgICBJTVBPUlRFRF9MT0NBVElPTiAiJHtTeXN0ZW1kX0xJQlJBUll9IgorICAgICAgICBJ
TlRFUkZBQ0VfQ09NUElMRV9PUFRJT05TICIke1N5c3RlbWRfQ09NUElMRV9PUFRJT05TfSIKKyAg
ICAgICAgSU5URVJGQUNFX0lOQ0xVREVfRElSRUNUT1JJRVMgIiR7U3lzdGVtZF9JTkNMVURFX0RJ
Un0iCisgICAgKQorZW5kaWYgKCkKKworbWFya19hc19hZHZhbmNlZChTeXN0ZW1kX0lOQ0xVREVf
RElSIFN5c3RlbWRfTElCUkFSWSkKKworaWYgKFN5c3RlbWRfRk9VTkQpCisgICAgc2V0KFN5c3Rl
bWRfTElCUkFSSUVTICR7U3lzdGVtZF9MSUJSQVJZfSkKKyAgICBzZXQoU3lzdGVtZF9JTkNMVURF
X0RJUlMgJHtTeXN0ZW1kX0lOQ0xVREVfRElSfSkKK2VuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
CmluZGV4IDg5Zjc2NDhiZmQ2M2YwZTllMWVlNDk4NjMyOTZhYTc4YjkwNmZmNGUuLjQwM2MyZWM2
OThiYjg4MThmNmUzNGM1YzY0ZDc1MjYzNGM0ZjdhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFr
ZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBA
IC04Nyw2ICs4Nyw3IEBAIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9MSUJTRUNSRVQgIldoZXRo
ZXIgdG8gZW5hYmxlIHRoZSBwZXJzaXN0ZW50IGNyZWRlbnRpYWwKIFdFQktJVF9PUFRJT05fREVG
SU5FKFVTRV9PUEVOSlBFRyAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgSlBFRzIwMDAg
aW1hZ2VzLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1dPRkYyICJXaGV0
aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBXT0ZGMiBXZWIgRm9udHMuIiBQVUJMSUMgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRklORShVU0VfV1BFX1JFTkRFUkVSICJXaGV0aGVyIHRvIGVuYWJsZSBX
UEUgcmVuZGVyaW5nIiBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfU1lTVEVN
RCAiV2hldGhlciB0byBlbmFibGUgc2Qtam91cm5hbCBsb2dnaW5nIiBQVUJMSUMgT04pCiAKICMg
UHJpdmF0ZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBHVEsgcG9ydC4gQ2hhbmdpbmcgdGhlc2Ug
b3B0aW9ucyBpcwogIyBjb21wbGV0ZWx5IHVuc3VwcG9ydGVkLiBUaGV5IGFyZSBpbnRlbmRlZCBm
b3IgdXNlIG9ubHkgYnkgV2ViS2l0IGRldmVsb3BlcnMuCkBAIC0zODYsNiArMzg3LDE2IEBAIGlm
IChVU0VfV09GRjIpCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKK2lmIChVU0VfU1lTVEVNRCkK
KyAgICBmaW5kX3BhY2thZ2UoU3lzdGVtZCkKKyAgICBpZiAoU3lzdGVtZF9GT1VORCkKKyAgICAg
ICAgbWVzc2FnZShTVEFUVVMgIlJlbGVhc2UgbG9ncyB3aWxsIGJlIHNlbnQgdG8gdGhlIFN5c3Rl
bWQgam91cm5hbCIpCisgICAgICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9KT1VSTkFM
RCBUUlVFKQorICAgIGVsc2UgKCkKKyAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAibGlic3lz
dGVtZCBpcyBuZWVkZWQgZm9yIFVTRV9TWVNURU1EIikKKyAgICBlbmRpZiAoKQorZW5kaWYgKCkK
KwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMjQ3CiBpZiAo
RU5BQkxFRF9DT01QSUxFUl9TQU5JVElaRVJTKQogICAgIHNldChFTkFCTEVfSU5UUk9TUEVDVElP
TiBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCmluZGV4IGE1OWYyMzkwYzEzY2IxMzYxZmMwZDNhNTM3
ZTM3NTI3N2UwNWQ2NjkuLjQ2ZjlmNjZiZmI5MWI5ZDgwZTVjNWM4NzNmYWU2NTFhOGE3NDlkYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zV1BFLmNtYWtlCkBAIC03Myw2ICs3Myw3IEBAIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9HVEtET0MgIldoZXRoZXIgb3Igbm90IHRvIHVzZSBnZW5lcmF0ZSBndGtkb2Mu
IiBQVUJMCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfT1BFTkpQRUcgIldoZXRoZXIgdG8gZW5h
YmxlIHN1cHBvcnQgZm9yIEpQRUcyMDAwIGltYWdlcy4iIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJ
T05fREVGSU5FKFVTRV9XT0ZGMiAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgV09GRjIg
V2ViIEZvbnRzLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dQRV9R
VF9BUEkgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBRdDUvUU1MIHBsdWdpbiIg
UFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGSU5FKFVTRV9TWVNURU1EICJXaGV0aGVyIHRv
IGVuYWJsZSBzZC1qb3VybmFsIGxvZ2dpbmciIFBVQkxJQyBPTikKIAogIyBQcml2YXRlIG9wdGlv
bnMgc3BlY2lmaWMgdG8gdGhlIFdQRSBwb3J0LgogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dT
VFJFQU1FUl9IT0xFUFVOQ0ggIldoZXRoZXIgdG8gZW5hYmxlIEdTdHJlYW1lciBob2xlcHVuY2gi
IFBSSVZBVEUgT0ZGKQpAQCAtMTcxLDYgKzE3MiwxNiBAQCBpZiAoRU5BQkxFX1dQRV9RVF9BUEkg
T1IgVVNFX1dQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKICAgICBmaW5kX3BhY2thZ2Uo
V1BFQmFja2VuZC1mZG8gMS41LjAgUkVRVUlSRUQpCiBlbmRpZiAoKQogCitpZiAoVVNFX1NZU1RF
TUQpCisgICAgZmluZF9wYWNrYWdlKFN5c3RlbWQpCisgICAgaWYgKFN5c3RlbWRfRk9VTkQpCisg
ICAgICAgIG1lc3NhZ2UoU1RBVFVTICJSZWxlYXNlIGxvZ3Mgd2lsbCBiZSBzZW50IHRvIHRoZSBT
eXN0ZW1kIGpvdXJuYWwiKQorICAgICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfSk9V
Uk5BTEQgVFJVRSkKKyAgICBlbHNlICgpCisgICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgImxp
YnN5c3RlbWQgaXMgbmVlZGVkIGZvciBVU0VfU1lTVEVNRCIpCisgICAgZW5kaWYgKCkKK2VuZGlm
ICgpCisKIGFkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dQRV9fPTEpCiBhZGRfZGVmaW5pdGlv
bnMoLURHRVRURVhUX1BBQ0tBR0U9IldQRSIpCiBhZGRfZGVmaW5pdGlvbnMoLURKU0NfR0xJQl9B
UElfRU5BQkxFRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcyBi
L1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcwppbmRleCA2ZmQ1NjZmMGRjZjNjNTE0MmY2
OTBmZTJiMzkzYTZlMDNlNzllM2EzLi5iYTYyMjczZTQ2Yzg4N2U4MDBhN2VmN2FjNThhMDY5M2M2
NWYwMjIzIDEwMDc1NQotLS0gYS9Ub29scy9ndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMKKysrIGIv
VG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzCkBAIC0xMzMsNiArMTMzLDcgQEAgZnVuY3Rp
b24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhBcHQgewogICAgICAgICBsaWJzb3VwMi40LWRldiBc
CiAgICAgICAgIGxpYnNxbGl0ZTMtZGV2IFwKICAgICAgICAgbGlic3J0cDItZGV2IFwKKyAgICAg
ICAgbGlic3lzdGVtZC1kZXYgXAogICAgICAgICBsaWJ0YXNuMS02LWRldiBcCiAgICAgICAgIGxp
YnRoZW9yYS1kZXYgXAogICAgICAgICBsaWJ0b29sIFwKQEAgLTMwNyw2ICszMDgsNyBAQCBmdW5j
dGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0aFBhY21hbiB7CiAgICAgICAgIGxpYnNlY3JldCBc
CiAgICAgICAgIGxpYnNvdXAgXAogICAgICAgICBsaWJzcnRwIFwKKyAgICAgICAgbGlic3lzdGVt
ZCBcCiAgICAgICAgIHNxbGl0ZSBcCiAgICAgICAgIGxpYnRhc24xIFwKICAgICAgICAgbGlidGhl
b3JhIFwKQEAgLTQ2Nyw2ICs0NjksNyBAQCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0
aERuZiB7CiAgICAgICAgIGxpYnNlY3JldC1kZXZlbCBcCiAgICAgICAgIGxpYnNvdXAtZGV2ZWwg
XAogICAgICAgICBsaWJzcnRwLWRldmVsIFwKKyAgICAgICAgbGlic3lzdGVtZC1kZXZlbCBcCiAg
ICAgICAgIGxpYnRhc24xLWRldmVsIFwKICAgICAgICAgbGlidGhlb3JhLWRldmVsIFwKICAgICAg
ICAgbGlidjRsLWRldmVsIFwKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9pbnN0YWxsLWRlcGVuZGVu
Y2llcyBiL1Rvb2xzL3dwZS9pbnN0YWxsLWRlcGVuZGVuY2llcwppbmRleCBjYTFjZDNmZGVmMGNh
ZjY0NjY4MjNlNWE4ZWQ5MmI0NDdjNDkwYWExLi5lNDI4Y2QyYWE1MjBkNjFiMDdiNTVlNDRjNDgz
MTI2MWJkZjI2YTdhIDEwMDc1NQotLS0gYS9Ub29scy93cGUvaW5zdGFsbC1kZXBlbmRlbmNpZXMK
KysrIGIvVG9vbHMvd3BlL2luc3RhbGwtZGVwZW5kZW5jaWVzCkBAIC04MSw2ICs4MSw3IEBAIGZ1
bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoQXB0IHsKICAgICAgICAgJChhcHRJZkVsc2Ug
bGlicG5nLWRldiBsaWJwbmcxMi1kZXYpIFwKICAgICAgICAgbGlic2VjY29tcC1kZXYgXAogICAg
ICAgICBsaWJzcWxpdGUzLWRldiBcCisgICAgICAgIGxpYnN5c3RlbWQtZGV2IFwKICAgICAgICAg
bGlidGFzbjEtNi1kZXYgXAogICAgICAgICBsaWJ0b29sIFwKICAgICAgICAgbGlid2VicC1kZXYg
XApAQCAtMTkyLDYgKzE5Myw3IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoUGFj
bWFuIHsKICAgICAgICAgcnVieQogICAgICAgICBzZWQgXAogICAgICAgICBzcWxpdGUgXAorICAg
ICAgICBsaWJzeXN0ZW1kIFwKICAgICAgICAgdGV4aW5mbyBcCiAgICAgICAgIHdoaWNoIFwKICAg
ICAgICAgemxpYiBcCkBAIC0yOTEsNiArMjkzLDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVu
Y2llc1dpdGhEbmYgewogICAgICAgICBsaWJqcGVnLXR1cmJvLWRldmVsIFwKICAgICAgICAgbGli
cG5nLWRldmVsIFwKICAgICAgICAgbGlic2VjY29tcC1kZXZlbCBcCisgICAgICAgIGxpYnN5c3Rl
bWQtZGV2ZWwgXAogICAgICAgICBsaWJ0YXNuMS1kZXZlbCBcCiAgICAgICAgIGxpYnRvb2wgXAog
ICAgICAgICBsaWJ3ZWJwLWRldmVsIFwKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxv
ZwppbmRleCA2Mjc4NmVmM2RkM2Y0MTE3OTExYWRmNGNhOWRkNjhkYjAwYTc1NzM4Li41YzRhNjAx
ODI1OWI5ZWFkMzM3YjZmMTBlOTI3NmUzMjIyZGYyNjhkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cK
KysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3Vs
ZCBub3QgYmUgQ29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBFTkFCTEVfUkVMRUFTRV9MT0dHSU5HIENNYWtlIG9w
dGlvbiwgZW5hYmxlZCBieSBkZWZhdWx0CisgICAgICAgIGluIHRoZSBHVEsgYW5kIFdQRSBwb3J0
cy4gV2hlbiB0aGlzIGlzIGVuYWJsZWQsIHJlbGVhc2UgbG9ncyB3aWxsCisgICAgICAgIGJlIHNl
bnQgdG8gdGhlIFN5c3RlbWQgSm91cm5hbC4gVG8gcmV0cmlldmUgbWVkaWEgbG9ncyBmb3IKKyAg
ICAgICAgaW5zdGFuY2UsIHRoaXMgY29tbWFuZCBjYW4gYmUgdXNlZDoKKworICAgICAgICAkIGpv
dXJuYWxjdGwgU1VCU1lTVEVNPVdlYktpdEdUSyBDSEFOTkVMPU1lZGlhCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvRmluZFN5c3RlbWQuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9j
bWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlOgorCiAyMDIwLTAyLTIwICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3Bl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gTm90IHNldCBjY2FjaGUgY29tcGls
ZXIgcHJlZml4IGlmIGNjYWNoZSBpdHMgYWxyZWFkeSB0aGUgY29tcGlsZXIgYmluYXJ5IGluIHBh
dGguCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391518</attachid>
            <date>2020-02-24 01:58:22 -0800</date>
            <delta_ts>2020-03-05 02:17:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195182-20200224095820.patch</filename>
            <type>text/plain</type>
            <size>48365</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQwN2EzOGFiMDA3YTUzNmRlYTA5NGE0
NTNiZjgwMzY0MDZlMTRmOWYuLjFlYzkyYjM1MjIwYzIwZWU3N2Y1NGZiMjQwYjQ4ZjIxNjg0NGNj
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUg
Q29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzZC1qb3VybmFsIGxvZ2dpbmcgc3VwcG9ydCBhbmQgd3JhcCB0aGUgb3NfbG9n
IGNhbGxzIHdpdGggdGhlIFVTRShPU19MT0cpIGd1YXJkLgorICAgICAgICAKKyAgICAgICAgKiB3
dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAg
KiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dG9TdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1X
UEUuY21ha2U6CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIw
MjAtMDItMjMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBTaHJpbmsgU3RydWN0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxNGFiODk5OWQ2ZDcyYWM1NGYz
YzgwNTMyMDNkMDU4ODM3ODc3Yy4uMmEwNTI5ZDMyZTM4Y2NhNTRkZjE5Y2M4MGU0YzYzMGQ4MDZl
Nzk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAyLTE5ICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUxFQVNFX0xPRyBzaG91
bGQgbm90IGJlIENvY29hIHNwZWNpZmljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTUxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXUEUvR1RLIGJ1aWxkIGZpeGVzIHJlbGF0ZWQgd2l0aCBSZWxlYXNl
IGxvZ2dpbmcgc3VwcG9ydC4KKyAgICAgICAgCisgICAgICAgICogYnJpZGdlL25wcnVudGltZV9p
bnRlcm5hbC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dGhyb3R0bGluZ1JlYXNvblRvU3RyaW5nKToKKyAgICAgICAg
KiBwYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1N0cmlu
Zyk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZU1vbml0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3RyaW5nRm9yQ1BVU2FtcGxpbmdBY3Rpdml0eVN0YXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptZWRp
YVBsYXllckxvZ2dlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9DRE1Qcm94eUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5Q2xlYXJL
ZXk6OmNlbmNEZWNyeXB0U3Vic2FtcGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUNs
ZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6Ok1lZGlhU291cmNlR1N0
cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjp+TWVkaWFT
b3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6
OmFkZFNvdXJjZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1l
cjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI6OmxvZ0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUxvZ0xldmVsKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMgY29uc3Qp
OgorCiAyMDIwLTAyLTI0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1N0cmVhbWVyXVtXUEVdIEFkZCBHc3RHTE1lbW9yeUVHTCBzdXBwb3J0IGZv
ciB0aGUgdmlkZW8tcGxhbmUtZGlzcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCA5YWI3ODA5
YTI1NmU2YmM0MDAwMGJhZGRiZDczZTBiN2YwNTQwN2QyLi40MDczZmQ1YmU5YjI1ODZlMmJjMjdi
YWQwYTBjNTUyMGM3OTI4MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtNzQsNiArNzQsMTAg
QEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZgogCisjaWYgVVNFKEpPVVJOQUxEKQorI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYg
ewogCiBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAwKSBzdGF0aWMgU3RyaW5nIGNyZWF0ZVdpdGhG
b3JtYXRBbmRBcmd1bWVudHMoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCkBAIC01
MjMsNyArNTI3LDcgQEAgc3RhdGljIHZvaWQgc2V0U3RhdGVPZkFsbENoYW5uZWxzKFdURkxvZ0No
YW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBjaGFubmVsQ291bnQKIAogdm9pZCBXVEZJbml0aWFs
aXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbHNbXSwg
c2l6ZV90IGNvdW50LCBjb25zdCBjaGFyKiBsb2dMZXZlbCkKIHsKLSNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyNpZiBVU0UoT1NfTE9HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgV1RGTG9nQ2hhbm5l
bCogY2hhbm5lbCA9IGNoYW5uZWxzW2ldOwogICAgICAgICBjaGFubmVsLT5vc0xvZ0NoYW5uZWwg
PSBvc19sb2dfY3JlYXRlKGNoYW5uZWwtPnN1YnN5c3RlbSwgY2hhbm5lbC0+bmFtZSk7CkBAIC01
NzcsMTIgKzU4MSwyMyBAQCB2b2lkIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5u
ZWwqIGNoYW5uZWwpCiAgICAgICAgIGZvciAoaW50IGZyYW1lTnVtYmVyID0gMTsgZnJhbWVOdW1i
ZXIgPCBzdGFja1RyYWNlLT5zaXplKCk7ICsrZnJhbWVOdW1iZXIpIHsKICAgICAgICAgICAgIGF1
dG8gc3RhY2tGcmFtZSA9IHN0YWNrW2ZyYW1lTnVtYmVyXTsKICAgICAgICAgICAgIGF1dG8gZGVt
YW5nbGVkID0gV1RGOjpTdGFja1RyYWNlOjpkZW1hbmdsZShzdGFja0ZyYW1lKTsKKyNpZiBVU0Uo
T1NfTE9HKQogICAgICAgICAgICAgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQtPmRlbWFuZ2xl
ZE5hbWUoKSkKICAgICAgICAgICAgICAgICBvc19sb2coY2hhbm5lbC0+b3NMb2dDaGFubmVsLCAi
JS0zZCAlcCAle3B1YmxpY31zIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+
ZGVtYW5nbGVkTmFtZSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGRlbWFuZ2xlZCAmJiBkZW1h
bmdsZWQtPm1hbmdsZWROYW1lKCkpCiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9z
TG9nQ2hhbm5lbCwgIiUtM2QgJXAgJXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1l
LCBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIG9zX2xvZyhjaGFubmVsLT5vc0xvZ0NoYW5uZWwsICIlLTNkICVwIiwgZnJhbWVOdW1i
ZXIsIHN0YWNrRnJhbWUpOworI2VsaWYgVVNFKEpPVVJOQUxEKQorICAgICAgICAgICAgU3RyaW5n
UHJpbnRTdHJlYW0gb3V0OworICAgICAgICAgICAgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQt
PmRlbWFuZ2xlZE5hbWUoKSkKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIlLTNkICVwICVz
IiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+ZGVtYW5nbGVkTmFtZSgpKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQtPm1hbmdsZWROYW1l
KCkpCisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiJS0zZCAlcCAlcyIsIGZyYW1lTnVtYmVy
LCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiUtM2QgJXAiLCBmcmFtZU51bWJlciwgc3Rh
Y2tGcmFtZSk7CisgICAgICAgICAgICBzZF9qb3VybmFsX3NlbmQoIldFQktJVF9TVUJTWVNURU09
JXMiLCBjaGFubmVsLT5zdWJzeXN0ZW0sICJXRUJLSVRfQ0hBTk5FTD0lcyIsIGNoYW5uZWwtPm5h
bWUsICJNRVNTQUdFPSVzIiwgb3V0LnRvQ1N0cmluZygpLmRhdGEoKSwgbnVsbHB0cik7CisjZW5k
aWYKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2Vy
dGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAppbmRleCBiMWE3M2YwZDM1NzBi
OWZjMTFlMWI5MTY5MjQyOGYwNmRlOGFjNDE2Li4yMzUzMzg3NDYyNWE4YjE4MTBlODA3NjBiZGUx
Y2I0NWMxNzAyOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysr
IGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCkBAIC01MSw2ICs1MSwxMSBAQAogI2luY2x1
ZGUgPG9zL2xvZy5oPgogI2VuZGlmCiAKKyNpZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIFNEX0pP
VVJOQUxfU1VQUFJFU1NfTE9DQVRJT04KKyNpbmNsdWRlIDxzeXN0ZW1kL3NkLWpvdXJuYWwuaD4K
KyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxjc3RkbGliPgogI2luY2x1
ZGUgPHR5cGVfdHJhaXRzPgpAQCAtOTEsNyArOTYsMTEgQEAgZXh0ZXJuICJDIiB2b2lkIF9SZWFk
V3JpdGVCYXJyaWVyKHZvaWQpOwogI2VuZGlmCiAKICNpZm5kZWYgUkVMRUFTRV9MT0dfRElTQUJM
RUQKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRElTQUJMRUQgIShVU0UoT1NfTE9HKSkKKyNkZWZpbmUg
UkVMRUFTRV9MT0dfRElTQUJMRUQgIShVU0UoT1NfTE9HKSB8fCBVU0UoSk9VUk5BTEQpKQorI2Vu
ZGlmCisKKyNpZm5kZWYgVkVSQk9TRV9SRUxFQVNFX0xPRworI2RlZmluZSBWRVJCT1NFX1JFTEVB
U0VfTE9HIFVTRShKT1VSTkFMRCkKICNlbmRpZgogCiAjaWYgQ09NUElMRVIoR0NDX0NPTVBBVElC
TEUpCkBAIC0xNTQsOCArMTYzLDEwIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICBXVEZMb2dMZXZl
bCBsZXZlbDsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBjaGFyKiBzdWJz
eXN0ZW07CisjaWYgVVNFKE9TX0xPRykKICAgICBfX3Vuc2FmZV91bnJldGFpbmVkIG9zX2xvZ190
IG9zTG9nQ2hhbm5lbDsKICNlbmRpZgorI2VuZGlmCiB9IFdURkxvZ0NoYW5uZWw7CiAKICNkZWZp
bmUgTE9HX0NIQU5ORUwobmFtZSkgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hB
Tk5FTF9QUkVGSVgsIG5hbWUpCkBAIC0xNjMsNyArMTc0LDEzIEBAIHR5cGVkZWYgc3RydWN0IHsK
ICNkZWZpbmUgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChwcmVmaXgsIGNoYW5uZWwpIEpP
SU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwpCiAjZGVm
aW5lIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwp
IHByZWZpeCAjIyBjaGFubmVsCiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5lIExPR19DSEFO
TkVMX1dFQktJVF9TVUJTWVNURU0gIldlYktpdEdUSyIKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNk
ZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiV1BFV2ViS2l0IgorI2Vsc2UKICNk
ZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiY29tLmFwcGxlLldlYktpdCIKKyNl
bmRpZgogCiAjZGVmaW5lIERFQ0xBUkVfTE9HX0NIQU5ORUwobmFtZSkgXAogICAgIGV4dGVybiBX
VEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpOwpAQCAtMTcyLDkgKzE4OSwxMiBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICNkZWZpbmUgREVGSU5FX0xP
R19DSEFOTkVMKG5hbWUsIHN1YnN5c3RlbSkgXAogICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5O
RUwobmFtZSkgPSB7IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkx
IH07Ci0jZWxzZQorI2VsaWYgVVNFKE9TX0xPRykKICNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVM
KG5hbWUsIHN1YnN5c3RlbSkgXAogICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkg
PSB7IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxLCBzdWJzeXN0
ZW0sIE9TX0xPR19ERUZBVUxUIH07CisjZWxpZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIERFRklO
RV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5u
ZWxTdGF0ZSkwLCAjbmFtZSwgKFdURkxvZ0xldmVsKTEsIHN1YnN5c3RlbSB9OwogI2VuZGlmCiAj
ZW5kaWYKIApAQCAtNDk5LDE2ICs1MTksMTIgQEAgY29uc3RleHByIGJvb2wgYXNzZXJ0aW9uRmFp
bHVyZUR1ZVRvVW5yZWFjaGFibGVDb2RlID0gZmFsc2U7CiAKICNkZWZpbmUgUkVMRUFTRV9MT0df
U1RBQ0tUUkFDRShjaGFubmVsKSAoKHZvaWQpMCkKICNlbHNlCisjaWYgVVNFKE9TX0xPRykKICNk
ZWZpbmUgUFVCTElDX0xPR19TVFJJTkcgIntwdWJsaWN9cyIKICNkZWZpbmUgUkVMRUFTRV9MT0co
Y2hhbm5lbCwgLi4uKSBvc19sb2coTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBf
X1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgLi4uKSBvc19s
b2dfZXJyb3IoTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBfX1ZBX0FSR1NfXykK
ICNkZWZpbmUgUkVMRUFTRV9MT0dfRkFVTFQoY2hhbm5lbCwgLi4uKSBvc19sb2dfZmF1bHQoTE9H
X0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVM
RUFTRV9MT0dfSU5GTyhjaGFubmVsLCAuLi4pIG9zX2xvZ19pbmZvKExPR19DSEFOTkVMKGNoYW5u
ZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pCi0KLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUYo
aXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0co
ICAgICAgY2hhbm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQotI2RlZmluZSBSRUxFQVNF
X0xPR19FUlJPUl9JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2Vk
KSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCi0j
ZGVmaW5lIFJFTEVBU0VfTE9HX0lORk9fSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsg
aWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfSU5GTyhjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0g
d2hpbGUgKDApCi0KICNkZWZpbmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChjaGFubmVsLCBsb2dM
ZXZlbCwgLi4uKSBkbyB7IFwKICAgICBpZiAoTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0g
KGxvZ0xldmVsKSkgXAogICAgICAgICBvc19sb2coTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dD
aGFubmVsLCBfX1ZBX0FSR1NfXyk7IFwKQEAgLTUxOSw2ICs1MzUsMzMgQEAgY29uc3RleHByIGJv
b2wgYXNzZXJ0aW9uRmFpbHVyZUR1ZVRvVW5yZWFjaGFibGVDb2RlID0gZmFsc2U7CiAgICAgICAg
IG9zX2xvZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKTsg
XAogfSB3aGlsZSAoMCkKIAorI2VsaWYgVVNFKEpPVVJOQUxEKQorI2RlZmluZSBQVUJMSUNfTE9H
X1NUUklORyAicyIKKyNkZWZpbmUgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIHByaW9yaXR5LCBm
aWxlLCBsaW5lLCBmdW5jdGlvbiwgLi4uKSBzZF9qb3VybmFsX3NlbmRfd2l0aF9sb2NhdGlvbigi
Q09ERV9GSUxFPSIgZmlsZSwgIkNPREVfTElORT0iIGxpbmUsIGZ1bmN0aW9uLCAiV0VCS0lUX1NV
QlNZU1RFTT0lcyIsIExPR19DSEFOTkVMKGNoYW5uZWwpLnN1YnN5c3RlbSwgIldFQktJVF9DSEFO
TkVMPSVzIiwgTE9HX0NIQU5ORUwoY2hhbm5lbCkubmFtZSwgIlBSSU9SSVRZPSVpIiwgcHJpb3Jp
dHksICJNRVNTQUdFPSIgX19WQV9BUkdTX18sIG51bGxwdHIpCisKKyNkZWZpbmUgX1hTVFJJTkdJ
RlkobGluZSkgI2xpbmUKKyNkZWZpbmUgX1NUUklOR0lGWShsaW5lKSBfWFNUUklOR0lGWShsaW5l
KQorI2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFu
bmVsLCBMT0dfTk9USUNFLCBfX0ZJTEVfXywgX1NUUklOR0lGWShfX0xJTkVfXyksIF9fZnVuY19f
LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgLi4uKSBT
RF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0VSUiwgX19GSUxFX18sIF9TVFJJTkdJRlkoX19M
SU5FX18pLCBfX2Z1bmNfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0ZBVUxU
KGNoYW5uZWwsIC4uLikgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19DUklULCBfX0ZJTEVf
XywgX1NUUklOR0lGWShfX0xJTkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
UkVMRUFTRV9MT0dfSU5GTyhjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBM
T0dfSU5GTywgX19GSUxFX18sIF9TVFJJTkdJRlkoX19MSU5FX18pLCBfX2Z1bmNfXywgX19WQV9B
UkdTX18pCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChjaGFubmVsLCBsb2dMZXZl
bCwgLi4uKSBkbyB7IFwKKyAgICBpZiAoTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0gKGxv
Z0xldmVsKSkgXAorICAgICAgICBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0lORk8sIF9f
RklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19fKTsgXAor
fSB3aGlsZSAoMCkKKworI2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGlzQWxsb3dl
ZCwgY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCisgICAgaWYgKChpc0FsbG93ZWQpICYm
IExPR19DSEFOTkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKKyAgICAgICAgU0Rf
Sk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19JTkZPLCBfX0ZJTEVfXywgX1NUUklOR0lGWShfX0xJ
TkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1NfXyk7IFwKK30gd2hpbGUgKDApCisjZW5kaWYKKwor
I2RlZmluZSBSRUxFQVNFX0xPR19TVEFDS1RSQUNFKGNoYW5uZWwpIFdURlJlbGVhc2VMb2dTdGFj
a1RyYWNlKCZMT0dfQ0hBTk5FTChjaGFubmVsKSkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoaXNB
bGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0coY2hh
bm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJP
Ul9JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNF
X0xPR19FUlJPUihjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJF
TEVBU0VfTE9HX0lORk9fSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsgaWYgKGlzQWxs
b3dlZCkgUkVMRUFTRV9MT0dfSU5GTyhjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDAp
CisKICNkZWZpbmUgUkVMRUFTRV9MT0dfU1RBQ0tUUkFDRShjaGFubmVsKSBXVEZSZWxlYXNlTG9n
U3RhY2tUcmFjZSgmTE9HX0NIQU5ORUwoY2hhbm5lbCkpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA0
ZjIzOGNlM2VkZTVmYmU4NDMzNmMyYTdiNmI4ZjVmYzY5M2QxODY2Li4wNDIwODQ0NTBiNDUwOGNk
YjdlZDlkMzNjZTRlNDQyMGJlZDU0OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMjksNiArMjksMTEgQEAKICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIFNEX0pPVVJOQUxf
U1VQUFJFU1NfTE9DQVRJT04KKyNpbmNsdWRlIDxzeXN0ZW1kL3NkLWpvdXJuYWwuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTE3NCw2ICsx
NzksNTcgQEAgcHVibGljOgogICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkRlYnVn
LCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3Vt
ZW50cz4KKyAgICBpbmxpbmUgdm9pZCBsb2dBbHdheXNWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNo
YW5uZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwg
VU5VU0VEX0ZVTkNUSU9OIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAorICAg
IHsKKyNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICAvLyAiU3RhbmRhcmQiIFdlYkNv
cmUgbG9nZ2luZyBnb2VzIHRvIHN0ZGVyciwgd2hpY2ggaXMgY2FwdHVyZWQgaW4gbGF5b3V0IHRl
c3Qgb3V0cHV0IGFuZCBjYW4gZ2VuZXJhbGx5IGJlIGEgcHJvYmxlbQorICAgICAgICAvLyAgb24g
c29tZSBzeXN0ZW1zLCBzbyBkb24ndCBhbGxvdyBpdC4KKyAgICAgICAgVU5VU0VEX1BBUkFNKGNo
YW5uZWwpOworI2Vsc2UKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVs
OjpBbHdheXMpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hh
bm5lbCwgV1RGTG9nTGV2ZWw6OkFsd2F5cywgZmlsZSwgZnVuY3Rpb24sIGxpbmUsIGFyZ3VtZW50
cy4uLik7CisjZW5kaWYKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+CisgICAgaW5saW5lIHZvaWQgZXJyb3JWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWws
IGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3Qg
QXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXdpbGxM
b2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkVycm9yKSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBsb2dWZXJib3NlKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpFcnJvciwgZmlsZSwgZnVu
Y3Rpb24sIGxpbmUsIGFyZ3VtZW50cy4uLik7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gQXJndW1lbnRzPgorICAgIGlubGluZSB2b2lkIHdhcm5pbmdWZXJib3NlKFdURkxvZ0No
YW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBp
bnQgbGluZSwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworICAg
ICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcpKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hhbm5lbCwgV1RGTG9nTGV2ZWw6
Oldhcm5pbmcsIGZpbGUsIGZ1bmN0aW9uLCBsaW5lLCBhcmd1bWVudHMuLi4pOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBpbmxpbmUgdm9pZCBpbmZv
VmVyYm9zZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBj
aGFyKiBmdW5jdGlvbiwgaW50IGxpbmUsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpJ
bmZvKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dWZXJib3NlKGNoYW5uZWws
IFdURkxvZ0xldmVsOjpJbmZvLCBmaWxlLCBmdW5jdGlvbiwgbGluZSwgYXJndW1lbnRzLi4uKTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAgaW5saW5l
IHZvaWQgZGVidWdWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZp
bGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3QgQXJndW1lbnRzJi4uLiBh
cmd1bWVudHMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RG
TG9nTGV2ZWw6OkRlYnVnKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dWZXJi
b3NlKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpEZWJ1ZywgZmlsZSwgZnVuY3Rpb24sIGxpbmUsIGFy
Z3VtZW50cy4uLik7CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgd2lsbExvZyhjb25zdCBXVEZM
b2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmICghbV9lbmFibGVkKQpAQCAtMjQ2LDcgKzMwMiw0MiBAQCBwcml2YXRlOgogI2lmIFJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIFdURkxvZygmY2hhbm5lbCwgIiVzIiwgbG9nTWVz
c2FnZS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCisjaWYgVVNFKE9TX0xPRykKKyAgICAgICAgb3Nf
bG9nKGNoYW5uZWwub3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7CisjZWxpZiBVU0UoSk9VUk5BTEQpCisgICAgICAgIHNkX2pvdXJuYWxfc2VuZCgi
V0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNoYW5uZWwuc3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9
JXMiLCBjaGFubmVsLm5hbWUsICJNRVNTQUdFPSVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgp
LCBudWxscHRyKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUg
PT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gbG9jayA9IHRyeUhvbGRMb2NrKG9ic2Vy
dmVyTG9jaygpKTsKKyAgICAgICAgaWYgKCFsb2NrKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCisgICAgICAgICAg
ICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1
ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudD4KKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgbG9nVmVy
Ym9zZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCwgY29uc3QgY2hh
ciogZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGludCBsaW5lLCBjb25zdCBBcmd1bWVudCYu
Li4gYXJndW1lbnRzKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGxvZ01lc3NhZ2UgPSBtYWtlU3Ry
aW5nKExvZ0FyZ3VtZW50PEFyZ3VtZW50Pjo6dG9TdHJpbmcoYXJndW1lbnRzKS4uLik7CisKKyNp
ZiBSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICBXVEZMb2dWZXJib3NlKGZpbGUsIGxpbmUs
IGZ1bmN0aW9uLCAmY2hhbm5lbCwgIiVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKKyNl
bHNlCisjaWYgVVNFKE9TX0xPRykKICAgICAgICAgb3NfbG9nKGNoYW5uZWwub3NMb2dDaGFubmVs
LCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShmaWxlKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGxpbmUpOworICAgICAgICBVTlVT
RURfUEFSQU0oZnVuY3Rpb24pOworI2VsaWYgVVNFKEpPVVJOQUxEKQorICAgICAgICBhdXRvIGZp
bGVTdHJpbmcgPSBtYWtlU3RyaW5nKCJDT0RFX0ZJTEU9IiwgZmlsZSk7CisgICAgICAgIGF1dG8g
bGluZVN0cmluZyA9IG1ha2VTdHJpbmcoIkNPREVfTElORT0iLCBsaW5lKTsKKyAgICAgICAgc2Rf
am91cm5hbF9zZW5kX3dpdGhfbG9jYXRpb24oZmlsZVN0cmluZy51dGY4KCkuZGF0YSgpLCBsaW5l
U3RyaW5nLnV0ZjgoKS5kYXRhKCksIGZ1bmN0aW9uLCAiV0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNo
YW5uZWwuc3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9JXMiLCBjaGFubmVsLm5hbWUsICJNRVNT
QUdFPSVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpLCBudWxscHRyKTsKKyNlbmRpZgogI2Vu
ZGlmCiAKICAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpP
ZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TG9nZ2VySGVscGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaAppbmRleCAwZDRj
MjkyYjk4ODBlMmY5NDRhOWNkOWNiNTgxOGM2OTZiOWZkZWQ4Li44MjhiNmFlMjA5MDBmZGUwMDc1
MzFmYmJkOGE5NjY4ZTJmMzNiOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJI
ZWxwZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaApAQCAtNDMsMTggKzQz
LDI3IEBAIHB1YmxpYzoKIAogI2RlZmluZSBMT0dJREVOVElGSUVSIFdURjo6TG9nZ2VyOjpMb2dT
aXRlSWRlbnRpZmllcihsb2dDbGFzc05hbWUoKSwgX19mdW5jX18sIGxvZ0lkZW50aWZpZXIoKSkK
IAorI2lmIFZFUkJPU0VfUkVMRUFTRV9MT0cKKyNkZWZpbmUgQUxXQVlTX0xPRyguLi4pICAgICBs
b2dnZXIoKS5sb2dBbHdheXNWZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxFX18sIF9fZnVuY19f
LCBfX0xJTkVfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIEVSUk9SX0xPRyguLi4pICAgICAgbG9n
Z2VyKCkuZXJyb3JWZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxFX18sIF9fZnVuY19fLCBfX0xJ
TkVfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIFdBUk5JTkdfTE9HKC4uLikgICAgbG9nZ2VyKCku
d2FybmluZ1ZlcmJvc2UobG9nQ2hhbm5lbCgpLCBfX0ZJTEVfXywgX19mdW5jX18sIF9fTElORV9f
LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgSU5GT19MT0coLi4uKSAgICAgICBsb2dnZXIoKS5pbmZv
VmVyYm9zZShsb2dDaGFubmVsKCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18sIF9fVkFf
QVJHU19fKQorI2RlZmluZSBERUJVR19MT0coLi4uKSAgICAgIGxvZ2dlcigpLmRlYnVnVmVyYm9z
ZShsb2dDaGFubmVsKCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18sIF9fVkFfQVJHU19f
KQorI2Vsc2UKICNkZWZpbmUgQUxXQVlTX0xPRyguLi4pICAgICBsb2dnZXIoKS5sb2dBbHdheXMo
bG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgRVJST1JfTE9HKC4uLikgICAgICBs
b2dnZXIoKS5lcnJvcihsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQogI2RlZmluZSBXQVJOSU5H
X0xPRyguLi4pICAgIGxvZ2dlcigpLndhcm5pbmcobG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykK
ICNkZWZpbmUgSU5GT19MT0coLi4uKSAgICAgICBsb2dnZXIoKS5pbmZvKGxvZ0NoYW5uZWwoKSwg
X19WQV9BUkdTX18pCiAjZGVmaW5lIERFQlVHX0xPRyguLi4pICAgICAgbG9nZ2VyKCkuZGVidWco
bG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKKyNlbmRpZgorCiAjZGVmaW5lIFdJTExfTE9HKF9s
ZXZlbF8pICAgbG9nZ2VyKCkud2lsbExvZyhsb2dDaGFubmVsKCksIF9sZXZlbF8pCiAKLSNkZWZp
bmUgQUxXQVlTX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgIGlmIChjb25kaXRpb24pIGxvZ2dl
cigpLmxvZ0Fsd2F5cyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBFUlJPUl9M
T0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAgaWYgKGNvbmRpdGlvbikgbG9nZ2VyKCkuZXJyb3Io
bG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgV0FSTklOR19MT0dfSUYoY29uZGl0
aW9uLCAuLi4pICAgIGlmIChjb25kaXRpb24pIGxvZ2dlcigpLndhcm5pbmcobG9nQ2hhbm5lbCgp
LCBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgSU5GT19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAg
IGlmIChjb25kaXRpb24pIGxvZ2dlcigpLmluZm8obG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykK
LSNkZWZpbmUgREVCVUdfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgIGlmIChjb25kaXRpb24p
IGxvZ2dlcigpLmRlYnVnKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIEFMV0FZ
U19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICBpZiAoY29uZGl0aW9uKSBBTFdBWVNfTE9HKF9f
VkFfQVJHU19fKQorI2RlZmluZSBFUlJPUl9MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAgaWYg
KGNvbmRpdGlvbikgRVJST1JfTE9HKF9fVkFfQVJHU19fKQorI2RlZmluZSBXQVJOSU5HX0xPR19J
Rihjb25kaXRpb24sIC4uLikgICAgaWYgKGNvbmRpdGlvbikgV0FSTklOR19MT0coX19WQV9BUkdT
X18pCisjZGVmaW5lIElORk9fTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgICBpZiAoY29uZGl0
aW9uKSBJTkZPX0xPRyhfX1ZBX0FSR1NfXykKKyNkZWZpbmUgREVCVUdfTE9HX0lGKGNvbmRpdGlv
biwgLi4uKSAgICAgIGlmIChjb25kaXRpb24pIERFQlVHX0xPRyhfX1ZBX0FSR1NfXykKIAogICAg
IGNvbnN0IHZvaWQqIGNoaWxkTG9nSWRlbnRpZmllcihjb25zdCB2b2lkKiBwYXJlbnRJZGVudGlm
aWVyLCB1aW50NjRfdCBjaGlsZElkZW50aWZpZXIpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggMTM1NzU2ZDg5N2VjNjgyODM4MTJhMTc1
YTM3ZjU5OTdhZDY1ZDQ5My4uNTdmOWIwMTQzMWZlZmNkOTIxYWQ5N2I0ZGM1ZjM5Yzk3ZjIwNjgx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCkBAIC0zNiw4ICsz
NiwxMCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZM
b2dDaGFubmVsIExvZ01lbW9yeVByZXNzdXJlID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAi
TWVtb3J5UHJlc3N1cmUiLCBXVEZMb2dMZXZlbDo6RXJyb3IgfTsKLSNlbHNlCisjZWxpZiBVU0Uo
T1NfTE9HKQogV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5l
bFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hB
Tk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9OworI2VsaWYgVVNFKEpPVVJO
QUxEKQorV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hBTk5F
TF9XRUJLSVRfU1VCU1lTVEVNIH07CiAjZW5kaWYKIAogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnNfbG9nZ2luZ0VuYWJsZWQgPSBm
YWxzZTsKQEAgLTgzLDYgKzg1LDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIHRvU3RyaW5nKE1lbW9y
eVVzYWdlUG9saWN5IHBvbGljeSkKICAgICBjYXNlIE1lbW9yeVVzYWdlUG9saWN5OjpDb25zZXJ2
YXRpdmU6IHJldHVybiAiQ29uc2VydmF0aXZlIjsKICAgICBjYXNlIE1lbW9yeVVzYWdlUG9saWN5
OjpTdHJpY3Q6IHJldHVybiAiU3RyaWN0IjsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuICIiOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UK
aW5kZXggYThkOTc5Mjk2YWI3YzcwNTJiMTA0ZDIxMWM5N2JjMDJjMzFkOWRjZi4uZjFhOGU4ODVm
NWNhY2U1MDQ1ZDZmMzI0N2Y4Y2VhOTcyZGViNTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1HVEsuY21h
a2UKQEAgLTYyLDYgKzYyLDEwIEBAIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKICAgICBaTElC
OjpaTElCCiApCiAKK2lmIChTeXN0ZW1kX0ZPVU5EKQorICAgIGxpc3QoQVBQRU5EIFdURl9MSUJS
QVJJRVMgU3lzdGVtZDo6U3lzdGVtZCkKK2VuZGlmICgpCisKIGxpc3QoQVBQRU5EIFdURl9TWVNU
RU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7R0lPX1VOSVhfSU5DTFVERV9ESVJTfQogICAg
ICR7R0xJQl9JTkNMVURFX0RJUlN9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGU1YThm
ZjQ3ODE2M2Y4YjIzMDZmZmFiNzJlNDQyZmVjNDg2ZGUzMWEuLmRlNDc0MTAxMGYxNTgxZjcyOTgz
NmI3ZjJlYzExOWZmMGRlNGEyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
V1BFLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC00Nyw2
ICs0NywxMCBAQCBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCiAgICAgWkxJQjo6WkxJQgogKQog
CitpZiAoU3lzdGVtZF9GT1VORCkKKyAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIFN5c3Rl
bWQ6OlN5c3RlbWQpCitlbmRpZiAoKQorCiBsaXN0KEFQUEVORCBXVEZfU1lTVEVNX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAke0dJT19VTklYX0lOQ0xVREVfRElSU30KICAgICAke0dMSUJfSU5D
TFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3Vu
dGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKaW5kZXgg
ZTMzZmFjYjg1ZDMzYWViODFlOWZhM2Y0MjVmM2E4ZTIwZmMwODY3NC4uY2JmZDQ2OWQ0YzBhNjdh
OWVjYzFhMDgwNGIzYTdmMmFmNjI4OGE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVm
Q291bnRlZExlYWtDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVh
a0NvdW50ZXIuY3BwCkBAIC00MSw4ICs0MSwxMCBAQCB2b2lkIFJlZkNvdW50ZWRMZWFrQ291bnRl
cjo6ZGVjcmVtZW50KCkgeyB9CiAjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKICNpZiBS
RUxFQVNFX0xPR19ESVNBQkxFRAogc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExl
YWtzID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAiUmVmQ291bnRlZExlYWtzIiwgV1RGTG9n
TGV2ZWw6OkVycm9yIH07Ci0jZWxzZQorI2VsaWYgVVNFKE9TX0xPRykKIHN0YXRpYyBXVEZMb2dD
aGFubmVsIExvZ1JlZkNvdW50ZWRMZWFrcyA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIlJl
ZkNvdW50ZWRMZWFrcyIsIFdURkxvZ0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NV
QlNZU1RFTSwgT1NfTE9HX0RFRkFVTFQgfTsKKyNlbGlmIFVTRShKT1VSTkFMRCkKK3N0YXRpYyBX
VEZMb2dDaGFubmVsIExvZ1JlZkNvdW50ZWRMZWFrcyA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpP
biwgIlJlZkNvdW50ZWRMZWFrcyIsIFdURkxvZ0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VC
S0lUX1NVQlNZU1RFTSB9OwogI2VuZGlmCiAKIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8Y29uc3Qg
Y2hhciosIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBSZWFzb25TZXQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKaW5kZXggM2RlZTZjYTFmM2UyMWU2Yjk3MzJiYTY5
MGZmYWFkOGE4YzU5M2VhYS4uNTk4ZjlkZGYxMDgwMmNjMjBmODRiNDljMmFhOTM0MGJhODY1Yjlh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaApAQCAtMzUs
NiArMzUsNyBAQAogI2lmIGRlZmluZWQoTU9aX1gxMSkKICAgICAjaW5jbHVkZSA8WDExL1hyZXNv
dXJjZS5oPgogCisgICAgI3VuZGVmIEFsd2F5cwogICAgICN1bmRlZiBOb25lCiAgICAgI3VuZGVm
IEFib3ZlCiAgICAgI3VuZGVmIEJlbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDAxNGQ0Y2Q4YWRhMzVmOGM1ZTNiZTFl
NGNkZDY1MTIxMzM0YWNmMGUuLmNkZmRmYjliODc2MjJjNzgxZjM4ZWIzNzRmNDNlMzRmNzBkNTg3
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwCkBAIC05Nyw2ICs5Nyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJvdHRsaW5n
UmVhc29uVG9TdHJpbmcoU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsCiAgICAg
Y2FzZSBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OlRocm90dGxpbmdSZWFzb246Ok5vbklu
dGVyYWN0ZWRDcm9zc09yaWdpbkZyYW1lOgogICAgICAgICByZXR1cm4gIk5vbkludGVyYWN0aXZl
Q3Jvc3NPcmlnaW5GcmFtZSI7CiAgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuICIiOwogfQogCiBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFzb25z
VG9TdHJpbmcoT3B0aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VGhyb3R0bGlu
Z1JlYXNvbj4gcmVhc29ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VMb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5n
LmNwcAppbmRleCAzNmUzOGQ0NzkxN2UzZjJjZGI5ZGRhOGMwMGJiMmQ1MmFkNGI2MzAzLi5mMmRl
OTdiNjM3OTcwN2JhYjIzMjkyZmQ3MmQ0NDQwMjU4YzVmNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCkBAIC00OCw2ICs0OCw4IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiB0b1N0cmluZyhQZXJmb3JtYW5jZUxvZ2dpbmc6OlBvaW50T2ZJbnRlcmVzdCBwb2kp
CiAgICAgY2FzZSBQZXJmb3JtYW5jZUxvZ2dpbmc6Ok1haW5GcmFtZUxvYWRDb21wbGV0ZWQ6CiAg
ICAgICAgIHJldHVybiAiTWFpbkZyYW1lTG9hZENvbXBsZXRlZCI7CiAgICAgfQorICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcAppbmRleCBlNjQ1YWI5MjM1
ZGE0MzcwMDIyZTdiODMwYWEwODA4NzAzN2M3MWY0Li5mODVmYmVkMDM0MDIxNDIyN2U2MGFhNDg3
YTNiYWVkMzM5OTdmMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1vbml0
b3IuY3BwCkBAIC0yNjIsNiArMjYyLDggQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBzdHJp
bmdGb3JDUFVTYW1wbGluZ0FjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUZvckNQVVMKICAgICBj
YXNlIEFjdGl2aXR5U3RhdGVGb3JDUFVTYW1wbGluZzo6VmlzaWJsZUFuZEFjdGl2ZToKICAgICAg
ICAgcmV0dXJuICJWaXNpYmxlQW5kQWN0aXZlIjsKICAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4NzRlZDVmMThhMjI5
YWQ3NzNiZTFjMmVhNGEyZTBiYTY0OWEzZDkyLi5mZTE0NzhmYzRhZjY2MWJhODE3Njg1NmIwYjc1
N2QwOGYxNTAzZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtNDI1LDE1ICs0MjUsMTYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAg
ICAsIG1fcHJlbG9hZChwbGF5ZXItPnByZWxvYWQoKSkKICAgICAsIG1fbWF4VGltZUxvYWRlZEF0
TGFzdERpZExvYWRpbmdQcm9ncmVzcyhNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgLCBtX2Ry
YXdUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnJlcGFpbnQpCi0gICAgLCBtX3JlYWR5VGltZXJIYW5kbGVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVhZHlUaW1lckZpcmVkCi0pCisg
ICAgLCBtX3JlYWR5VGltZXJIYW5kbGVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJk1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVhZHlUaW1lckZpcmVkKQogI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKICNpZiBVU0UoTklDT1NJQSkKICAgICAsIG1fbmljb3NpYUxheWVyKE5pY29zaWE6
OkNvbnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJ
bXBsOjpjcmVhdGVGYWN0b3J5KCp0aGlzKSkpCiAjZWxzZQogICAgICwgbV9wbGF0Zm9ybUxheWVy
UHJveHkoYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkoKSkpCiAj
ZW5kaWYKLSNlbmRpZiAgICAgIAorI2VuZGlmCisgICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlh
UGxheWVyTG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXll
ckxvZ0lkZW50aWZpZXIoKSkKIHsKICNpZiBVU0UoR0xJQikKICAgICBtX3JlYWR5VGltZXJIYW5k
bGVyLnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKQEAgLTM4MzMsNiArMzgz
NCwxMSBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6ZXh0ZW5kZWRTdXBwb3J0c1R5cGUoY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
K1dURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkNvcmU6OkxvZ01lZGlhOworfQorCiB9CiAKICNlbmRp
ZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oCmluZGV4IDUyMWIyMGQxMWNjOGRkOTRiZTI4NGQ3NDY5OWNkMjcxN2I0ZTA1NDUu
LjA0MWE1OGFmZjk2NTYwN2EzNmVkNDE2Nzc2ZDVlZjUxYmIxZjA4YTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0aWxp
dGllcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNYWluVGhyZWFkTm90aWZp
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUxheWVyLmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNp
bmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0xMTcsNyArMTE5LDkgQEAgY2xhc3MgVmlkZW9UcmFj
a1ByaXZhdGVHU3RyZWFtZXI7CiB2b2lkIHJlZ2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVudHMo
KTsKIAogLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUgV2Vha1B0ckZhY3Rvcnkg
c2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigpIGZyb20gYW5vdGhlciB0aHJlYWQuCi1jbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4KK2NsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKKyAg
ICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIsIFdl
YWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPgorICAgICwgcHJpdmF0ZSBMb2dnZXJI
ZWxwZXIKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaWYgVVNFKE5JQ09TSUEpCiAgICAg
LCBwdWJsaWMgTmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudApA
QCAtMjI4LDYgKzIzMiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaEN1cnJlbnRCdWZmZXIo
KTsKICNlbmRpZgogCisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2xvZ2dlci5nZXQoKTsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIiOyB9Cisg
ICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fbG9nSWRlbnRpZmllcik7IH0KKyAgICBXVEZMb2dD
aGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBjb25zdCB2b2lkKiBt
ZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBsb2dJZGVudGlmaWVyKCk7IH0KKyAg
ICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgeyByZXR1cm4gbG9nZ2VyKCk7IH0K
KwogcHJvdGVjdGVkOgogICAgIGVudW0gTWFpblRocmVhZE5vdGlmaWNhdGlvbiB7CiAgICAgICAg
IFZpZGVvQ2hhbmdlZCA9IDEgPDwgMCwKQEAgLTUzMSw2ICs1NDMsOCBAQCBwcml2YXRlOgogI2lm
IFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAgICAgR1VuaXF1ZVB0cjxzdHJ1
Y3Qgd3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZT4gbV93cGVWaWRlb1BsYW5l
RGlzcGxheURtYUJ1ZjsKICNlbmRpZgorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOwor
ICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVh
cktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L0NETVByb3h5Q2xlYXJLZXkuY3BwCmluZGV4IDZjNDI1MGRmMDUxYjBhZGFkNWI4OTIwOTE4NTVi
MzFkM2U4OTMwZTUuLmMxYjZiMzRmNjg2ZjRjZjcyZmU2MTI1MzIwNDI0NGQ4NTdmZTRkM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNUHJveHlDbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcApAQCAtMTcxLDcgKzE3MSwxMSBA
QCBib29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0U3Vic2FtcGxlZChjZW5jRGVjcnlw
dENvbnRleHQmIGlucHV0KQogICAgICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIHN1YnNhbXBsZSBp
bmRleCAldSAtICV1IGJ5dGVzIGVuY3J5cHRlZCAoJWx1IGJ5dGVzIGxlZnQgdG8gZGVjcnlwdCki
LCBzdWJzYW1wbGVJbmRleCwgc3Vic2FtcGxlTnVtRW5jcnlwdGVkQnl0ZXMsIGlucHV0LmVuY3J5
cHRlZEJ1ZmZlclNpemVJbkJ5dGVzIC0gZW5jcnlwdGVkQnVmZmVyQnl0ZU9mZnNldCk7CiAKICAg
ICAgICAgICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNy
eXB0KG1fZ2NyeUhhbmRsZSwgaW5wdXQuZW5jcnlwdGVkQnVmZmVyICsgZW5jcnlwdGVkQnVmZmVy
Qnl0ZU9mZnNldCwgc3Vic2FtcGxlTnVtRW5jcnlwdGVkQnl0ZXMsIDAsIDApKSB7CisjaWYgIUxP
R19ESVNBQkxFRAogICAgICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFy
S2V5IC0gRVJST1IoZ2NyeV9jaXBoZXJfZGVjcnlwdCk6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhl
ckVycm9yKSk7CisjZWxzZQorICAgICAgICAgICAgICAgIFVOVVNFRF9WQVJJQUJMRShjaXBoZXJF
cnJvcik7CisjZW5kaWYKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICB9CiAKQEAgLTE5Myw3ICsxOTcsMTEgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVj
cnlwdChDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogdm9pZCBD
RE1Qcm94eUNsZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KCkKIHsKICAgICBpZiAoZ2NyeV9lcnJv
cl90IGVycm9yID0gZ2NyeV9jaXBoZXJfb3BlbigmbV9nY3J5SGFuZGxlLCBHQ1JZX0NJUEhFUl9B
RVMxMjgsIEdDUllfQ0lQSEVSX01PREVfQ1RSLCBHQ1JZX0NJUEhFUl9TRUNVUkUpKSB7CisjaWYg
IUxPR19ESVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAt
IEVSUk9SKGdjcnlfY2lwaGVyX29wZW4pOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikpOworI2Vs
c2UKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKGVycm9yKTsKKyNlbmRpZgogICAgICAgICBSRUxF
QVNFX0FTU0VSVChmYWxzZSAmJiAiU2hvdWxkIG5vdCBnZXQgdGhpcyBmYXIgd2l0aCBhIGZ1bmN0
aW9uYWwgR0NyeXB0ISIpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCmluZGV4IDVkMTAxM2ZjYmVmMDU3OTM0ODBi
YjM4ZWRlZmU0YjY0ZjBhY2Y0MmMuLjRlMDhiNWRkZjVhOGFjMzBhODQxYWMwZGY4YzM1YTM3MDI2
NTIwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJNU0UuaApAQCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBibG9ja0R1
cmF0aW9uQ2hhbmdlcygpOwogICAgIHZvaWQgdW5ibG9ja0R1cmF0aW9uQ2hhbmdlcygpOwogCisg
ICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNv
cmU6OkxvZ01lZGlhU291cmNlOyB9CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlh
UGxheWVyRmFjdG9yeUdTdHJlYW1lck1TRTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBlNjJjZDU2YTg0NmIz
NDc2MTIzNDQ4MzUyNWEyZTZhMGZiNjgwZTUzLi5jOGY1ODA1NmVhZDQ1ZGU2MTVhODgyYzFiOTNm
OTJjNDE5MmUwNmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShH
U1RSRUFNRVIpCiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZUNs
aWVudEdTdHJlYW1lck1TRS5oIgpAQCAtNjAsMTcgKzYxLDIzIEBAIE1lZGlhU291cmNlR1N0cmVh
bWVyOjpNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQmIG1lZGlh
U291cmNlCiAgICAgLCBtX2NsaWVudChNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTo6Y3Jl
YXRlKHBsYXllclByaXZhdGUpKQogICAgICwgbV9tZWRpYVNvdXJjZShtZWRpYVNvdXJjZSkKICAg
ICAsIG1fcGxheWVyUHJpdmF0ZShwbGF5ZXJQcml2YXRlKQorI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorICAgICwgbV9sb2dnZXIobV9wbGF5ZXJQcml2YXRlLm1lZGlhUGxheWVyTG9nZ2VyKCkp
CisgICAgLCBtX2xvZ0lkZW50aWZpZXIobV9wbGF5ZXJQcml2YXRlLm1lZGlhUGxheWVyTG9nSWRl
bnRpZmllcigpKQorI2VuZGlmCiB7CiB9CiAKIE1lZGlhU291cmNlR1N0cmVhbWVyOjp+TWVkaWFT
b3VyY2VHU3RyZWFtZXIoKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAg
Zm9yIChhdXRvJiBzb3VyY2VCdWZmZXJQcml2YXRlIDogbV9zb3VyY2VCdWZmZXJzKQogICAgICAg
ICBzb3VyY2VCdWZmZXJQcml2YXRlLT5jbGVhck1lZGlhU291cmNlKCk7CiB9CiAKIE1lZGlhU291
cmNlR1N0cmVhbWVyOjpBZGRTdGF0dXMgTWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1
ZmZlcihjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIFJlZlB0cjxTb3VyY2VCdWZmZXJQ
cml2YXRlPiYgc291cmNlQnVmZmVyUHJpdmF0ZSkKIHsKKyAgICBERUJVR19MT0coTE9HSURFTlRJ
RklFUiwgY29udGVudFR5cGUpOwogICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUodGhpcywgbV9jbGllbnQuZ2V0KCksIGNvbnRlbnRU
eXBlKTsKICAgICBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gc291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lciA9IHN0YXRpY19jYXN0PFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIqPihzb3VyY2VCdWZmZXJQcml2YXRlLmdldCgpKTsKICAgICBtX3NvdXJjZUJ1ZmZlcnMu
YWRkKHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIpOwpAQCAtMTM1LDUgKzE0MiwxMyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6
YnVmZmVyZWQoKQogICAgIHJldHVybiBtX21lZGlhU291cmNlLT5idWZmZXJlZCgpOwogfQogCisj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBNZWRpYVNvdXJjZUdTdHJl
YW1lcjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOwor
fQorCisjZW5kaWYKKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0
cmVhbWVyLmgKaW5kZXggYzlhMDlmYTA0MzlmZWY4ZWI4ZGI3NTA1ZmNiYzk3ZTA1MjM3OGVhNi4u
NWNmOWI4MjBhMTk0N2Y4MDE3MTgwY2FmYjU2Yjc2MmY1YzI2M2I3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaApAQCAtMzksNiArMzksNyBAQAogCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2dnZXJIZWxwZXIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlhU3JjIFdlYktp
dE1lZGlhU3JjOwogCkBAIC01MCw3ICs1MSwxMSBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJNU0U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CiAKIC8vIEZJWE1FOiBTaG91
bGQgdGhpcyBiZSBjYWxsZWQgTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyPwotY2xhc3MgTWVk
aWFTb3VyY2VHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFTb3VyY2VQcml2YXRlIHsKK2Ns
YXNzIE1lZGlhU291cmNlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIE1lZGlhU291cmNlUHJpdmF0
ZQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIK
KyNlbmRpZgorewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG9wZW4oTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50JiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJik7CiAgICAgdmlydHVh
bCB+TWVkaWFTb3VyY2VHU3RyZWFtZXIoKTsKQEAgLTczLDYgKzc4LDE1IEBAIHB1YmxpYzoKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7CiAKKyNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xh
c3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhU291cmNlUHJpdmF0ZUdTdHJl
YW1lciI7IH0KKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0IGZpbmFsOworCisgICAgY29uc3Qgdm9pZCogbmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50
aWZpZXIoKSB7IHJldHVybiBjaGlsZExvZ0lkZW50aWZpZXIobV9sb2dJZGVudGlmaWVyLCArK21f
bmV4dFNvdXJjZUJ1ZmZlcklEKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgTWVkaWFTb3Vy
Y2VHU3RyZWFtZXIoTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50JiwgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyTVNFJik7CiAKQEAgLTgxLDYgKzk1LDExIEBAIHByaXZhdGU6CiAgICAgUmVmPE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiBtX2NsaWVudDsKICAgICBSZWY8TWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50PiBtX21lZGlhU291cmNlOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck1TRSYgbV9wbGF5ZXJQcml2YXRlOworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
ICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRl
bnRpZmllcjsKKyAgICB1aW50NjRfdCBtX25leHRTb3VyY2VCdWZmZXJJRCB7IDAgfTsKKyNlbmRp
ZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKaW5kZXggN2MxZTc5OTE2ZDkzZjhhZjExMWRjYTgzYWQ1MmM1YzRlNWM4
ZjdmZC4uNzIwZDM0NGZmZDJjYzY5ZTEzMDljMjNhNTBlNDBmZTUxNjYwNGI2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC01OCw2ICs1OCwxMCBAQCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhU291cmNlR1N0cmVhbWVyKgogICAgICwgbV9tZWRpYVNv
dXJjZShtZWRpYVNvdXJjZSkKICAgICAsIG1fdHlwZShjb250ZW50VHlwZSkKICAgICAsIG1fY2xp
ZW50KGNsaWVudC5nZXQoKSkKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIG1fbG9n
Z2VyKG1lZGlhU291cmNlLT5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihtZWRpYVNv
dXJjZS0+bmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgogewogfQogCkBA
IC0xNzcsNSArMTgxLDEyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YXBw
ZW5kUGFyc2luZ0ZhaWxlZCgpCiAgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQ6OlBhcnNpbmdGYWlsZWQpOwogfQogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZM
b2dDaGFubmVsJiBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpsb2dDaGFubmVsKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gTG9nTWVkaWFTb3VyY2U7Cit9CisjZW5kaWYKKwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5o
CmluZGV4IGU1ZmU0MDY4YTgyYTdkMjJlY2Y5NDU3ZmRlMmI5OGUxMTdjYjkwYjQuLjFjY2FmYTBh
NWY5NjdhZTQwNzVkMzA4OTcyYmMyMTA5NjI5MzQwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC00MSwxMiArNDEsMTcgQEAK
ICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmgi
CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1lZGlhU291cmNlR1N0cmVhbWVyOwogCi1jbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyIGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUgeworY2xhc3MgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2
YXRlCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBl
cgorI2VuZGlmCit7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI+IGNyZWF0ZShNZWRpYVNvdXJjZUdTdHJlYW1lciosIFJlZjxNZWRpYVNvdXJj
ZUNsaWVudEdTdHJlYW1lck1TRT4sIGNvbnN0IENvbnRlbnRUeXBlJik7CkBAIC03OSw2ICs4NCwx
NSBAQCBwdWJsaWM6CiAKICAgICBDb250ZW50VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9CiAKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxv
Z2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3Qg
Y2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIiOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIFdURkxvZ0NoYW5uZWwm
IGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBMb2dnZXImIHNvdXJjZUJ1ZmZl
ckxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29u
c3Qgdm9pZCogc291cmNlQnVmZmVyTG9nSWRlbnRpZmllcigpIGZpbmFsIHsgcmV0dXJuIGxvZ0lk
ZW50aWZpZXIoKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcihNZWRpYVNvdXJjZUdTdHJlYW1lciosIFJlZjxNZWRpYVNvdXJjZUNsaWVudEdT
dHJlYW1lck1TRT4sIGNvbnN0IENvbnRlbnRUeXBlJik7CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlh
U291cmNlQ2xpZW50R1N0cmVhbWVyTVNFOwpAQCAtOTAsNiArMTA0LDExIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRydWU7CiAgICAgYm9vbCBtX25vdGlm
eVdoZW5SZWFkeUZvck1vcmVTYW1wbGVzID0gZmFsc2U7CiAgICAgQXRvbVN0cmluZyBtX3RyYWNr
SWQ7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBt
X2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisjZW5kaWYKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAppbmRleCBiNTE2NDlh
MGE4ZDVmZTdkMzRiMTkxYzZmODkxYWY0MDI5ZTZiNDgxLi41MWYwNWQ4NTJkZWI3ZGQ5ZWY4MGY4
ZmMzMjk1MjliY2YwNDJmMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKICNpZiBQTEFURk9S
TShDT0NPQSkKICNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgi
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IGY3ZGEz
ZjdmNDAyZGE4OTM4ZDdhZGRmYTdhMDE1YTI0OGIyNmE5MTEuLmQ3Y2RhNzg3NTkzNzhiMjdlZmRh
YTRiMWE4Zjc3MzA5ZTJiZjk1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcApAQCAtMTU3LDYgKzE1Nyw4IEBAIHN0YXRpYyBydGM6OkxvZ2dpbmdTZXZlcml0eSBjb21w
dXRlTG9nTGV2ZWwoKQogICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkRlYnVnOgogICAgICAgICByZXR1
cm4gcnRjOjpMU19WRVJCT1NFOwogICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBydGM6OkxTX05PTkU7CiAjZWxzZQogICAgIHJldHVybiBydGM6OkxT
X05PTkU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCBj
NGYwOWU2YWI5ZjViZjIwNWJjN2M0MGNjNTlkMDE2ZGNiYTc4MGJjLi40MzBlMTc1Mzg2OGE1ZTQ4
MWJkNmFkM2Y1MGMwYWJlZGI0YTI4OGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNv
dXAuY3BwCkBAIC00NzAsNiArNDcwLDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omdl
dFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUkKICNlbHNl
CiAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29r
aWVfbGlzdChjb29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgVFJVRSkpOwogICAgIFVOVVNFRF9Q
QVJBTShzYW1lU2l0ZUluZm8pOworICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICNlbmRp
ZgogICAgIGlmICghY29va2llcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL2NtYWtlL0ZpbmRTeXN0ZW1kLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRTeXN0ZW1k
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVkZGZmMGVhNmE4N2RmYTI5NGRhYzY1NGMzYTA3OWMwZjE4NmY3
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFN5c3RlbWQuY21ha2UKQEAg
LTAsMCArMSw5MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjWz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Wy5yc3Q6CitGaW5kU3lzdGVtZAorLS0tLS0tLS0tLS0KKworRmlu
ZCBTeXN0ZW1kIGhlYWRlcnMgYW5kIGxpYnJhcmllcy4KKworSW1wb3J0ZWQgVGFyZ2V0cworXl5e
Xl5eXl5eXl5eXl5eXgorCitgYFN5c3RlbWQ6OlN5c3RlbWRgYAorICBUaGUgU3lzdGVtZCBsaWJy
YXJ5LCBpZiBmb3VuZC4KKworUmVzdWx0IFZhcmlhYmxlcworXl5eXl5eXl5eXl5eXl5eXgorCitU
aGlzIHdpbGwgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGluIHlvdXIgcHJvamVjdDoK
KworYGBTeXN0ZW1kX0ZPVU5EYGAKKyAgdHJ1ZSBpZiAodGhlIHJlcXVlc3RlZCB2ZXJzaW9uIG9m
KSBTeXN0ZW1kIGlzIGF2YWlsYWJsZS4KK2BgU3lzdGVtZF9WRVJTSU9OYGAKKyAgdGhlIHZlcnNp
b24gb2YgU3lzdGVtZC4KK2BgU3lzdGVtZF9MSUJSQVJJRVNgYAorICB0aGUgbGlicmFyaWVzIHRv
IGxpbmsgYWdhaW5zdCB0byB1c2UgU3lzdGVtZC4KK2BgU3lzdGVtZF9JTkNMVURFX0RJUlNgYAor
ICB3aGVyZSB0byBmaW5kIHRoZSBTeXN0ZW1kIGhlYWRlcnMuCitgYFN5c3RlbWRfQ09NUElMRV9P
UFRJT05TYGAKKyAgdGhpcyBzaG91bGQgYmUgcGFzc2VkIHRvIHRhcmdldF9jb21waWxlX29wdGlv
bnMoKSwgaWYgdGhlCisgIHRhcmdldCBpcyBub3QgdXNlZCBmb3IgbGlua2luZworCisjXT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09XQorCitpbmNsdWRlKEZpbmRQa2dDb25maWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQ
Q19TWVNURU1EIFFVSUVUIGxpYnN5c3RlbWQpCitzZXQoU3lzdGVtZF9DT01QSUxFX09QVElPTlMg
JHtQQ19TWVNURU1EX0NGTEFHU19PVEhFUn0pCitzZXQoU3lzdGVtZF9WRVJTSU9OICR7UENfU1lT
VEVNRF9WRVJTSU9OfSkKKworZmluZF9wYXRoKFN5c3RlbWRfSU5DTFVERV9ESVIKKyAgICBOQU1F
UyBzeXN0ZW1kL3NkLWpvdXJuYWwuaAorICAgIEhJTlRTICR7UENfU1lTVEVNRF9JTkNMVURFRElS
fSAke1BDX1NZU1RFTURfSU5DTFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoU3lzdGVtZF9M
SUJSQVJZCisgICAgTkFNRVMgJHtTeXN0ZW1kX05BTUVTfSBzeXN0ZW1kCisgICAgSElOVFMgJHtQ
Q19TWVNURU1EX0xJQkRJUn0gJHtQQ19TWVNURU1EX0xJQlJBUllfRElSU30KKykKKworaW5jbHVk
ZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3Rh
bmRhcmRfYXJncyhTeXN0ZW1kCisgICAgRk9VTkRfVkFSIFN5c3RlbWRfRk9VTkQKKyAgICBSRVFV
SVJFRF9WQVJTIFN5c3RlbWRfTElCUkFSWSBTeXN0ZW1kX0lOQ0xVREVfRElSCisgICAgVkVSU0lP
Tl9WQVIgU3lzdGVtZF9WRVJTSU9OCispCisKK2lmIChTeXN0ZW1kX0xJQlJBUlkgQU5EIE5PVCBU
QVJHRVQgU3lzdGVtZDo6U3lzdGVtZCkKKyAgICBhZGRfbGlicmFyeShTeXN0ZW1kOjpTeXN0ZW1k
IFVOS05PV04gSU1QT1JURUQgR0xPQkFMKQorICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhTeXN0
ZW1kOjpTeXN0ZW1kIFBST1BFUlRJRVMKKyAgICAgICAgSU1QT1JURURfTE9DQVRJT04gIiR7U3lz
dGVtZF9MSUJSQVJZfSIKKyAgICAgICAgSU5URVJGQUNFX0NPTVBJTEVfT1BUSU9OUyAiJHtTeXN0
ZW1kX0NPTVBJTEVfT1BUSU9OU30iCisgICAgICAgIElOVEVSRkFDRV9JTkNMVURFX0RJUkVDVE9S
SUVTICIke1N5c3RlbWRfSU5DTFVERV9ESVJ9IgorICAgICkKK2VuZGlmICgpCisKK21hcmtfYXNf
YWR2YW5jZWQoU3lzdGVtZF9JTkNMVURFX0RJUiBTeXN0ZW1kX0xJQlJBUlkpCisKK2lmIChTeXN0
ZW1kX0ZPVU5EKQorICAgIHNldChTeXN0ZW1kX0xJQlJBUklFUyAke1N5c3RlbWRfTElCUkFSWX0p
CisgICAgc2V0KFN5c3RlbWRfSU5DTFVERV9ESVJTICR7U3lzdGVtZF9JTkNMVURFX0RJUn0pCitl
bmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCA4OWY3NjQ4YmZkNjNmMGU5ZTFlZTQ5ODYz
Mjk2YWE3OGI5MDZmZjRlLi40MDNjMmVjNjk4YmI4ODE4ZjZlMzRjNWM2NGQ3NTI2MzRjNGY3YTUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtODcsNiArODcsNyBAQCBXRUJLSVRfT1BUSU9OX0RF
RklORShVU0VfTElCU0VDUkVUICJXaGV0aGVyIHRvIGVuYWJsZSB0aGUgcGVyc2lzdGVudCBjcmVk
ZW50aWFsCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfT1BFTkpQRUcgIldoZXRoZXIgdG8gZW5h
YmxlIHN1cHBvcnQgZm9yIEpQRUcyMDAwIGltYWdlcy4iIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJ
T05fREVGSU5FKFVTRV9XT0ZGMiAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgV09GRjIg
V2ViIEZvbnRzLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1dQRV9SRU5E
RVJFUiAiV2hldGhlciB0byBlbmFibGUgV1BFIHJlbmRlcmluZyIgUFVCTElDIE9OKQorV0VCS0lU
X09QVElPTl9ERUZJTkUoVVNFX1NZU1RFTUQgIldoZXRoZXIgdG8gZW5hYmxlIHNkLWpvdXJuYWwg
bG9nZ2luZyIgUFVCTElDIE9OKQogCiAjIFByaXZhdGUgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUg
R1RLIHBvcnQuIENoYW5naW5nIHRoZXNlIG9wdGlvbnMgaXMKICMgY29tcGxldGVseSB1bnN1cHBv
cnRlZC4gVGhleSBhcmUgaW50ZW5kZWQgZm9yIHVzZSBvbmx5IGJ5IFdlYktpdCBkZXZlbG9wZXJz
LgpAQCAtMzg2LDYgKzM4NywxNiBAQCBpZiAoVVNFX1dPRkYyKQogICAgIGVuZGlmICgpCiBlbmRp
ZiAoKQogCitpZiAoVVNFX1NZU1RFTUQpCisgICAgZmluZF9wYWNrYWdlKFN5c3RlbWQpCisgICAg
aWYgKFN5c3RlbWRfRk9VTkQpCisgICAgICAgIG1lc3NhZ2UoU1RBVFVTICJSZWxlYXNlIGxvZ3Mg
d2lsbCBiZSBzZW50IHRvIHRoZSBTeXN0ZW1kIGpvdXJuYWwiKQorICAgICAgICBTRVRfQU5EX0VY
UE9TRV9UT19CVUlMRChVU0VfSk9VUk5BTEQgVFJVRSkKKyAgICBlbHNlICgpCisgICAgICAgIG1l
c3NhZ2UoRkFUQUxfRVJST1IgImxpYnN5c3RlbWQgaXMgbmVlZGVkIGZvciBVU0VfU1lTVEVNRCIp
CisgICAgZW5kaWYgKCkKK2VuZGlmICgpCisKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MjI0NwogaWYgKEVOQUJMRURfQ09NUElMRVJfU0FOSVRJWkVSUykKICAg
ICBzZXQoRU5BQkxFX0lOVFJPU1BFQ1RJT04gT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtl
L09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCBh
NTlmMjM5MGMxM2NiMTM2MWZjMGQzYTUzN2UzNzUyNzdlMDVkNjY5Li40NmY5ZjY2YmZiOTFiOWQ4
MGU1YzVjODczZmFlNjUxYThhNzQ5ZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtNzMsNiAr
NzMsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfR1RLRE9DICJXaGV0aGVyIG9yIG5v
dCB0byB1c2UgZ2VuZXJhdGUgZ3RrZG9jLiIgUFVCTAogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNF
X09QRU5KUEVHICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBKUEVHMjAwMCBpbWFnZXMu
IiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfV09GRjIgIldoZXRoZXIgdG8g
ZW5hYmxlIHN1cHBvcnQgZm9yIFdPRkYyIFdlYiBGb250cy4iIFBVQkxJQyBPTikKIFdFQktJVF9P
UFRJT05fREVGSU5FKEVOQUJMRV9XUEVfUVRfQVBJICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0
IGZvciB0aGUgUXQ1L1FNTCBwbHVnaW4iIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRklO
RShVU0VfU1lTVEVNRCAiV2hldGhlciB0byBlbmFibGUgc2Qtam91cm5hbCBsb2dnaW5nIiBQVUJM
SUMgT04pCiAKICMgUHJpdmF0ZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBXUEUgcG9ydC4KIFdF
QktJVF9PUFRJT05fREVGSU5FKFVTRV9HU1RSRUFNRVJfSE9MRVBVTkNIICJXaGV0aGVyIHRvIGVu
YWJsZSBHU3RyZWFtZXIgaG9sZXB1bmNoIiBQUklWQVRFIE9GRikKQEAgLTE3MSw2ICsxNzIsMTYg
QEAgaWYgKEVOQUJMRV9XUEVfUVRfQVBJIE9SIFVTRV9XUEVfVklERU9fUExBTkVfRElTUExBWV9E
TUFCVUYpCiAgICAgZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQtZmRvIDEuNS4wIFJFUVVJUkVEKQog
ZW5kaWYgKCkKIAoraWYgKFVTRV9TWVNURU1EKQorICAgIGZpbmRfcGFja2FnZShTeXN0ZW1kKQor
ICAgIGlmIChTeXN0ZW1kX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKFNUQVRVUyAiUmVsZWFzZSBs
b2dzIHdpbGwgYmUgc2VudCB0byB0aGUgU3lzdGVtZCBqb3VybmFsIikKKyAgICAgICAgU0VUX0FO
RF9FWFBPU0VfVE9fQlVJTEQoVVNFX0pPVVJOQUxEIFRSVUUpCisgICAgZWxzZSAoKQorICAgICAg
ICBtZXNzYWdlKEZBVEFMX0VSUk9SICJsaWJzeXN0ZW1kIGlzIG5lZWRlZCBmb3IgVVNFX1NZU1RF
TUQiKQorICAgIGVuZGlmICgpCitlbmRpZiAoKQorCiBhZGRfZGVmaW5pdGlvbnMoLURCVUlMRElO
R19XUEVfXz0xKQogYWRkX2RlZmluaXRpb25zKC1ER0VUVEVYVF9QQUNLQUdFPSJXUEUiKQogYWRk
X2RlZmluaXRpb25zKC1ESlNDX0dMSUJfQVBJX0VOQUJMRUQpCmRpZmYgLS1naXQgYS9Ub29scy9n
dGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMgYi9Ub29scy9ndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMK
aW5kZXggNmZkNTY2ZjBkY2YzYzUxNDJmNjkwZmUyYjM5M2E2ZTAzZTc5ZTNhMy4uYmE2MjI3M2U0
NmM4ODdlODAwYTdlZjdhYzU4YTA2OTNjNjVmMDIyMyAxMDA3NTUKLS0tIGEvVG9vbHMvZ3RrL2lu
c3RhbGwtZGVwZW5kZW5jaWVzCisrKyBiL1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcwpA
QCAtMTMzLDYgKzEzMyw3IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoQXB0IHsK
ICAgICAgICAgbGlic291cDIuNC1kZXYgXAogICAgICAgICBsaWJzcWxpdGUzLWRldiBcCiAgICAg
ICAgIGxpYnNydHAyLWRldiBcCisgICAgICAgIGxpYnN5c3RlbWQtZGV2IFwKICAgICAgICAgbGli
dGFzbjEtNi1kZXYgXAogICAgICAgICBsaWJ0aGVvcmEtZGV2IFwKICAgICAgICAgbGlidG9vbCBc
CkBAIC0zMDcsNiArMzA4LDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhQYWNt
YW4gewogICAgICAgICBsaWJzZWNyZXQgXAogICAgICAgICBsaWJzb3VwIFwKICAgICAgICAgbGli
c3J0cCBcCisgICAgICAgIGxpYnN5c3RlbWQgXAogICAgICAgICBzcWxpdGUgXAogICAgICAgICBs
aWJ0YXNuMSBcCiAgICAgICAgIGxpYnRoZW9yYSBcCkBAIC00NjcsNiArNDY5LDcgQEAgZnVuY3Rp
b24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhEbmYgewogICAgICAgICBsaWJzZWNyZXQtZGV2ZWwg
XAogICAgICAgICBsaWJzb3VwLWRldmVsIFwKICAgICAgICAgbGlic3J0cC1kZXZlbCBcCisgICAg
ICAgIGxpYnN5c3RlbWQtZGV2ZWwgXAogICAgICAgICBsaWJ0YXNuMS1kZXZlbCBcCiAgICAgICAg
IGxpYnRoZW9yYS1kZXZlbCBcCiAgICAgICAgIGxpYnY0bC1kZXZlbCBcCmRpZmYgLS1naXQgYS9U
b29scy93cGUvaW5zdGFsbC1kZXBlbmRlbmNpZXMgYi9Ub29scy93cGUvaW5zdGFsbC1kZXBlbmRl
bmNpZXMKaW5kZXggY2ExY2QzZmRlZjBjYWY2NDY2ODIzZTVhOGVkOTJiNDQ3YzQ5MGFhMS4uZTQy
OGNkMmFhNTIwZDYxYjA3YjU1ZTQ0YzQ4MzEyNjFiZGYyNmE3YSAxMDA3NTUKLS0tIGEvVG9vbHMv
d3BlL2luc3RhbGwtZGVwZW5kZW5jaWVzCisrKyBiL1Rvb2xzL3dwZS9pbnN0YWxsLWRlcGVuZGVu
Y2llcwpAQCAtODEsNiArODEsNyBAQCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0aEFw
dCB7CiAgICAgICAgICQoYXB0SWZFbHNlIGxpYnBuZy1kZXYgbGlicG5nMTItZGV2KSBcCiAgICAg
ICAgIGxpYnNlY2NvbXAtZGV2IFwKICAgICAgICAgbGlic3FsaXRlMy1kZXYgXAorICAgICAgICBs
aWJzeXN0ZW1kLWRldiBcCiAgICAgICAgIGxpYnRhc24xLTYtZGV2IFwKICAgICAgICAgbGlidG9v
bCBcCiAgICAgICAgIGxpYndlYnAtZGV2IFwKQEAgLTE5Miw2ICsxOTMsNyBAQCBmdW5jdGlvbiBp
bnN0YWxsRGVwZW5kZW5jaWVzV2l0aFBhY21hbiB7CiAgICAgICAgIHJ1YnkKICAgICAgICAgc2Vk
IFwKICAgICAgICAgc3FsaXRlIFwKKyAgICAgICAgbGlic3lzdGVtZCBcCiAgICAgICAgIHRleGlu
Zm8gXAogICAgICAgICB3aGljaCBcCiAgICAgICAgIHpsaWIgXApAQCAtMjkxLDYgKzI5Myw3IEBA
IGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoRG5mIHsKICAgICAgICAgbGlianBlZy10
dXJiby1kZXZlbCBcCiAgICAgICAgIGxpYnBuZy1kZXZlbCBcCiAgICAgICAgIGxpYnNlY2NvbXAt
ZGV2ZWwgXAorICAgICAgICBsaWJzeXN0ZW1kLWRldmVsIFwKICAgICAgICAgbGlidGFzbjEtZGV2
ZWwgXAogICAgICAgICBsaWJ0b29sIFwKICAgICAgICAgbGlid2VicC1kZXZlbCBcCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNjI3ODZlZjNkZDNmNDExNzkxMWFkZjRj
YTlkZDY4ZGIwMGE3NTczOC4uNWM0YTYwMTgyNTliOWVhZDMzN2I2ZjEwZTkyNzZlMzIyMmRmMjY4
ZCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDIwLTAyLTE5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBSRUxFQVNFX0xPRyBzaG91bGQgbm90IGJlIENvY29hIHNwZWNpZmljCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUxODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgRU5BQkxF
X1JFTEVBU0VfTE9HR0lORyBDTWFrZSBvcHRpb24sIGVuYWJsZWQgYnkgZGVmYXVsdAorICAgICAg
ICBpbiB0aGUgR1RLIGFuZCBXUEUgcG9ydHMuIFdoZW4gdGhpcyBpcyBlbmFibGVkLCByZWxlYXNl
IGxvZ3Mgd2lsbAorICAgICAgICBiZSBzZW50IHRvIHRoZSBTeXN0ZW1kIEpvdXJuYWwuIFRvIHJl
dHJpZXZlIG1lZGlhIGxvZ3MgZm9yCisgICAgICAgIGluc3RhbmNlLCB0aGlzIGNvbW1hbmQgY2Fu
IGJlIHVzZWQ6CisKKyAgICAgICAgJCBqb3VybmFsY3RsIFNVQlNZU1RFTT1XZWJLaXRHVEsgQ0hB
Tk5FTD1NZWRpYQorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRTeXN0ZW1kLmNtYWtlOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZToKKwogMjAyMC0wMi0yMCAgQ2FybG9zIEFs
YmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtX
UEVdIE5vdCBzZXQgY2NhY2hlIGNvbXBpbGVyIHByZWZpeCBpZiBjY2FjaGUgaXRzIGFscmVhZHkg
dGhlIGNvbXBpbGVyIGJpbmFyeSBpbiBwYXRoLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392549</attachid>
            <date>2020-03-05 02:17:42 -0800</date>
            <delta_ts>2020-03-16 03:29:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195182-20200305101740.patch</filename>
            <type>text/plain</type>
            <size>48369</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZmZTQ3YzEyYzgxMzExY2M4OWRkYmI5
NTE2MjE0MjU0ZGU5YTAxNjEuLjI4Mzk2ZDVlNTM4YWEwOTQzZDc3ZDhlMjYwM2M1N2NmZDk4NzFl
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUg
Q29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzZC1qb3VybmFsIGxvZ2dpbmcgc3VwcG9ydCBhbmQgd3JhcCB0aGUgb3NfbG9n
IGNhbGxzIHdpdGggdGhlIFVTRShPU19MT0cpIGd1YXJkLgorICAgICAgICAKKyAgICAgICAgKiB3
dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAg
KiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dG9TdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1X
UEUuY21ha2U6CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIw
MjAtMDMtMDQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRs
ZSBhbiBvdXQgb2YgbWVtb3J5IGVycm9yIHdoaWxlIGNvbnN0cnVjdGluZyB0aGUgQnl0ZWNvZGVH
ZW5lcmF0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZmM2I5NmQwMWZiYjQxOWU4MDY3YzJkMGNlNDBiNWVj
NjlkOTM5MC4uZTQxNWY1MWY1MzZkNzY1ZDQ2OTJlNmExNzYyZjg0NzhhMzZmNGQ1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTAyLTE5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUxFQVNFX0xPRyBzaG91bGQgbm90IGJlIENv
Y29hIHNwZWNpZmljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXUEUvR1RLIGJ1aWxkIGZpeGVzIHJlbGF0ZWQgd2l0aCBSZWxlYXNlIGxvZ2dpbmcgc3Vw
cG9ydC4KKyAgICAgICAgCisgICAgICAgICogYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oOgor
ICAgICAgICAqIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dGhyb3R0bGluZ1JlYXNvblRvU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1N0cmluZyk6CisgICAgICAg
ICogcGFnZS9QZXJmb3JtYW5jZU1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5n
Rm9yQ1BVU2FtcGxpbmdBY3Rpdml0eVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptZWRpYVBsYXllckxvZ0lkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptZWRpYVBsYXllckxvZ2dl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNs
ZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNy
eXB0U3Vic2FtcGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eUNsZWFyS2V5Ojppbml0
aWFsaXplR2NyeXB0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6Ok1lZGlhU291cmNlR1N0cmVhbWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVyOjp+TWVkaWFTb3VyY2VHU3RyZWFt
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6bG9nQ2hhbm5l
bCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVNvdXJjZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Omxv
Z0NoYW5uZWwgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29tcHV0ZUxvZ0xldmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMgY29uc3QpOgorCiAyMDIwLTAz
LTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgUHV0IGFs
bCBnZW5lcmF0ZWQgSlNDZWxscyBpbiBXZWJDb3JlIGludG8gSXNvU3Vic3BhY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0
aW9ucy5jcHAKaW5kZXggOWFiNzgwOWEyNTZlNmJjNDAwMDBiYWRkYmQ3M2UwYjdmMDU0MDdkMi4u
NDA3M2ZkNWJlOWIyNTg2ZTJiYzI3YmFkMGEwYzU1MjBjNzkyODI1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5jcHAKQEAgLTc0LDYgKzc0LDEwIEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAor
I2lmIFVTRShKT1VSTkFMRCkKKyNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KKyNl
bmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogV1RGX0FUVFJJQlVURV9QUklOVEYoMSwgMCkgc3Rh
dGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKGNvbnN0IGNoYXIqIGZvcm1h
dCwgdmFfbGlzdCBhcmdzKQpAQCAtNTIzLDcgKzUyNyw3IEBAIHN0YXRpYyB2b2lkIHNldFN0YXRl
T2ZBbGxDaGFubmVscyhXVEZMb2dDaGFubmVsKiBjaGFubmVsc1tdLCBzaXplX3QgY2hhbm5lbENv
dW50CiAKIHZvaWQgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKFdURkxv
Z0NoYW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBjb3VudCwgY29uc3QgY2hhciogbG9nTGV2ZWwp
CiB7Ci0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgVVNFKE9TX0xPRykgJiYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7
CiAgICAgICAgIFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwgPSBjaGFubmVsc1tpXTsKICAgICAgICAg
Y2hhbm5lbC0+b3NMb2dDaGFubmVsID0gb3NfbG9nX2NyZWF0ZShjaGFubmVsLT5zdWJzeXN0ZW0s
IGNoYW5uZWwtPm5hbWUpOwpAQCAtNTc3LDEyICs1ODEsMjMgQEAgdm9pZCBXVEZSZWxlYXNlTG9n
U3RhY2tUcmFjZShXVEZMb2dDaGFubmVsKiBjaGFubmVsKQogICAgICAgICBmb3IgKGludCBmcmFt
ZU51bWJlciA9IDE7IGZyYW1lTnVtYmVyIDwgc3RhY2tUcmFjZS0+c2l6ZSgpOyArK2ZyYW1lTnVt
YmVyKSB7CiAgICAgICAgICAgICBhdXRvIHN0YWNrRnJhbWUgPSBzdGFja1tmcmFtZU51bWJlcl07
CiAgICAgICAgICAgICBhdXRvIGRlbWFuZ2xlZCA9IFdURjo6U3RhY2tUcmFjZTo6ZGVtYW5nbGUo
c3RhY2tGcmFtZSk7CisjaWYgVVNFKE9TX0xPRykKICAgICAgICAgICAgIGlmIChkZW1hbmdsZWQg
JiYgZGVtYW5nbGVkLT5kZW1hbmdsZWROYW1lKCkpCiAgICAgICAgICAgICAgICAgb3NfbG9nKGNo
YW5uZWwtPm9zTG9nQ2hhbm5lbCwgIiUtM2QgJXAgJXtwdWJsaWN9cyIsIGZyYW1lTnVtYmVyLCBz
dGFja0ZyYW1lLCBkZW1hbmdsZWQtPmRlbWFuZ2xlZE5hbWUoKSk7CiAgICAgICAgICAgICBlbHNl
IGlmIChkZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5tYW5nbGVkTmFtZSgpKQogICAgICAgICAgICAg
ICAgIG9zX2xvZyhjaGFubmVsLT5vc0xvZ0NoYW5uZWwsICIlLTNkICVwICV7cHVibGljfXMiLCBm
cmFtZU51bWJlciwgc3RhY2tGcmFtZSwgZGVtYW5nbGVkLT5tYW5nbGVkTmFtZSgpKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBvc19sb2coY2hhbm5lbC0+b3NMb2dDaGFubmVs
LCAiJS0zZCAlcCIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lKTsKKyNlbGlmIFVTRShKT1VSTkFM
RCkKKyAgICAgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIG91dDsKKyAgICAgICAgICAgIGlmIChk
ZW1hbmdsZWQgJiYgZGVtYW5nbGVkLT5kZW1hbmdsZWROYW1lKCkpCisgICAgICAgICAgICAgICAg
b3V0LnByaW50ZigiJS0zZCAlcCAlcyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmds
ZWQtPmRlbWFuZ2xlZE5hbWUoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChkZW1hbmdsZWQgJiYg
ZGVtYW5nbGVkLT5tYW5nbGVkTmFtZSgpKQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiUt
M2QgJXAgJXMiLCBmcmFtZU51bWJlciwgc3RhY2tGcmFtZSwgZGVtYW5nbGVkLT5tYW5nbGVkTmFt
ZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIlLTNk
ICVwIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUpOworICAgICAgICAgICAgc2Rfam91cm5hbF9z
ZW5kKCJXRUJLSVRfU1VCU1lTVEVNPSVzIiwgY2hhbm5lbC0+c3Vic3lzdGVtLCAiV0VCS0lUX0NI
QU5ORUw9JXMiLCBjaGFubmVsLT5uYW1lLCAiTUVTU0FHRT0lcyIsIG91dC50b0NTdHJpbmcoKS5k
YXRhKCksIG51bGxwdHIpOworI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmgKaW5kZXggYjFhNzNmMGQzNTcwYjlmYzExZTFiOTE2OTI0MjhmMDZkZThhYzQxNi4uMjM1MzM4
NzQ2MjVhOGIxODEwZTgwNzYwYmRlMWNiNDVjMTcwMjkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAt
NTEsNiArNTEsMTEgQEAKICNpbmNsdWRlIDxvcy9sb2cuaD4KICNlbmRpZgogCisjaWYgVVNFKEpP
VVJOQUxEKQorI2RlZmluZSBTRF9KT1VSTkFMX1NVUFBSRVNTX0xPQ0FUSU9OCisjaW5jbHVkZSA8
c3lzdGVtZC9zZC1qb3VybmFsLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAjaW5j
bHVkZSA8Y3N0ZGxpYj4KICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KQEAgLTkxLDcgKzk2LDExIEBA
IGV4dGVybiAiQyIgdm9pZCBfUmVhZFdyaXRlQmFycmllcih2b2lkKTsKICNlbmRpZgogCiAjaWZu
ZGVmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi0jZGVmaW5lIFJFTEVBU0VfTE9HX0RJU0FCTEVEICEo
VVNFKE9TX0xPRykpCisjZGVmaW5lIFJFTEVBU0VfTE9HX0RJU0FCTEVEICEoVVNFKE9TX0xPRykg
fHwgVVNFKEpPVVJOQUxEKSkKKyNlbmRpZgorCisjaWZuZGVmIFZFUkJPU0VfUkVMRUFTRV9MT0cK
KyNkZWZpbmUgVkVSQk9TRV9SRUxFQVNFX0xPRyBVU0UoSk9VUk5BTEQpCiAjZW5kaWYKIAogI2lm
IENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQpAQCAtMTU0LDggKzE2MywxMCBAQCB0eXBlZGVmIHN0
cnVjdCB7CiAgICAgV1RGTG9nTGV2ZWwgbGV2ZWw7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgY29uc3QgY2hhciogc3Vic3lzdGVtOworI2lmIFVTRShPU19MT0cpCiAgICAgX191bnNh
ZmVfdW5yZXRhaW5lZCBvc19sb2dfdCBvc0xvZ0NoYW5uZWw7CiAjZW5kaWYKKyNlbmRpZgogfSBX
VEZMb2dDaGFubmVsOwogCiAjZGVmaW5lIExPR19DSEFOTkVMKG5hbWUpIEpPSU5fTE9HX0NIQU5O
RUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJFRklYLCBuYW1lKQpAQCAtMTYzLDcgKzE3NCwx
MyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVG
SVgocHJlZml4LCBjaGFubmVsKSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYX0xFVkVMXzIo
cHJlZml4LCBjaGFubmVsKQogI2RlZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYX0xF
VkVMXzIocHJlZml4LCBjaGFubmVsKSBwcmVmaXggIyMgY2hhbm5lbAogCisjaWYgUExBVEZPUk0o
R1RLKQorI2RlZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNICJXZWJLaXRHVEsiCisj
ZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0g
IldQRVdlYktpdCIKKyNlbHNlCiAjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0g
ImNvbS5hcHBsZS5XZWJLaXQiCisjZW5kaWYKIAogI2RlZmluZSBERUNMQVJFX0xPR19DSEFOTkVM
KG5hbWUpIFwKICAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKTsKQEAg
LTE3Miw5ICsxODksMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2lmIFJFTEVBU0VfTE9HX0RJU0FC
TEVECiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwKICAgICBX
VEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAs
ICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OwotI2Vsc2UKKyNlbGlmIFVTRShPU19MT0cpCiAjZGVm
aW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwKICAgICBXVEZMb2dDaGFu
bmVsIExPR19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAo
V1RGTG9nTGV2ZWwpMSwgc3Vic3lzdGVtLCBPU19MT0dfREVGQVVMVCB9OworI2VsaWYgVVNFKEpP
VVJOQUxEKQorI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwo
bmFtZSkgPSB7IChXVEZMb2dDaGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxLCBz
dWJzeXN0ZW0gfTsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTQ5OSwxNiArNTE5LDEyIEBAIGNvbnN0
ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1VucmVhY2hhYmxlQ29kZSA9IGZhbHNlOwog
CiAjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0UoY2hhbm5lbCkgKCh2b2lkKTApCiAjZWxz
ZQorI2lmIFVTRShPU19MT0cpCiAjZGVmaW5lIFBVQkxJQ19MT0dfU1RSSU5HICJ7cHVibGljfXMi
CiAjZGVmaW5lIFJFTEVBU0VfTE9HKGNoYW5uZWwsIC4uLikgb3NfbG9nKExPR19DSEFOTkVMKGNo
YW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0VS
Uk9SKGNoYW5uZWwsIC4uLikgb3NfbG9nX2Vycm9yKExPR19DSEFOTkVMKGNoYW5uZWwpLm9zTG9n
Q2hhbm5lbCwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0ZBVUxUKGNoYW5uZWws
IC4uLikgb3NfbG9nX2ZhdWx0KExPR19DSEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19W
QV9BUkdTX18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lORk8oY2hhbm5lbCwgLi4uKSBvc19sb2df
aW5mbyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQotCi0j
ZGVmaW5lIFJFTEVBU0VfTE9HX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChp
c0FsbG93ZWQpIFJFTEVBU0VfTE9HKCAgICAgIGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGls
ZSAoMCkKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAu
Li4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgX19WQV9B
UkdTX18pOyB9IHdoaWxlICgwKQotI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPX0lGKGlzQWxsb3dl
ZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0lORk8oY2hh
bm5lbCwgX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQotCiAjZGVmaW5lIFJFTEVBU0VfTE9HX1dJ
VEhfTEVWRUwoY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCiAgICAgaWYgKExPR19DSEFO
TkVMKGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKICAgICAgICAgb3NfbG9nKExPR19D
SEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pOyBcCkBAIC01MTksNiAr
NTM1LDMzIEBAIGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1VucmVhY2hhYmxl
Q29kZSA9IGZhbHNlOwogICAgICAgICBvc19sb2coTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dD
aGFubmVsLCBfX1ZBX0FSR1NfXyk7IFwKIH0gd2hpbGUgKDApCiAKKyNlbGlmIFVTRShKT1VSTkFM
RCkKKyNkZWZpbmUgUFVCTElDX0xPR19TVFJJTkcgInMiCisjZGVmaW5lIFNEX0pPVVJOQUxfU0VO
RChjaGFubmVsLCBwcmlvcml0eSwgZmlsZSwgbGluZSwgZnVuY3Rpb24sIC4uLikgc2Rfam91cm5h
bF9zZW5kX3dpdGhfbG9jYXRpb24oIkNPREVfRklMRT0iIGZpbGUsICJDT0RFX0xJTkU9IiBsaW5l
LCBmdW5jdGlvbiwgIldFQktJVF9TVUJTWVNURU09JXMiLCBMT0dfQ0hBTk5FTChjaGFubmVsKS5z
dWJzeXN0ZW0sICJXRUJLSVRfQ0hBTk5FTD0lcyIsIExPR19DSEFOTkVMKGNoYW5uZWwpLm5hbWUs
ICJQUklPUklUWT0laSIsIHByaW9yaXR5LCAiTUVTU0FHRT0iIF9fVkFfQVJHU19fLCBudWxscHRy
KQorCisjZGVmaW5lIF9YU1RSSU5HSUZZKGxpbmUpICNsaW5lCisjZGVmaW5lIF9TVFJJTkdJRlko
bGluZSkgX1hTVFJJTkdJRlkobGluZSkKKyNkZWZpbmUgUkVMRUFTRV9MT0coY2hhbm5lbCwgLi4u
KSBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX05PVElDRSwgX19GSUxFX18sIF9TVFJJTkdJ
RlkoX19MSU5FX18pLCBfX2Z1bmNfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9H
X0VSUk9SKGNoYW5uZWwsIC4uLikgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19FUlIsIF9f
RklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19fKQorI2Rl
ZmluZSBSRUxFQVNFX0xPR19GQVVMVChjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFu
bmVsLCBMT0dfQ1JJVCwgX19GSUxFX18sIF9TVFJJTkdJRlkoX19MSU5FX18pLCBfX2Z1bmNfXywg
X19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lORk8oY2hhbm5lbCwgLi4uKSBTRF9K
T1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0lORk8sIF9fRklMRV9fLCBfU1RSSU5HSUZZKF9fTElO
RV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19fKQorCisjZGVmaW5lIFJFTEVBU0VfTE9HX1dJVEhf
TEVWRUwoY2hhbm5lbCwgbG9nTGV2ZWwsIC4uLikgZG8geyBcCisgICAgaWYgKExPR19DSEFOTkVM
KGNoYW5uZWwpLmxldmVsID49IChsb2dMZXZlbCkpIFwKKyAgICAgICAgU0RfSk9VUk5BTF9TRU5E
KGNoYW5uZWwsIExPR19JTkZPLCBfX0ZJTEVfXywgX1NUUklOR0lGWShfX0xJTkVfXyksIF9fZnVu
Y19fLCBfX1ZBX0FSR1NfXyk7IFwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkVMRUFTRV9MT0df
V0lUSF9MRVZFTF9JRihpc0FsbG93ZWQsIGNoYW5uZWwsIGxvZ0xldmVsLCAuLi4pIGRvIHsgXAor
ICAgIGlmICgoaXNBbGxvd2VkKSAmJiBMT0dfQ0hBTk5FTChjaGFubmVsKS5sZXZlbCA+PSAobG9n
TGV2ZWwpKSBcCisgICAgICAgIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBMT0dfSU5GTywgX19G
SUxFX18sIF9TVFJJTkdJRlkoX19MSU5FX18pLCBfX2Z1bmNfXywgX19WQV9BUkdTX18pOyBcCit9
IHdoaWxlICgwKQorI2VuZGlmCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfU1RBQ0tUUkFDRShjaGFu
bmVsKSBXVEZSZWxlYXNlTG9nU3RhY2tUcmFjZSgmTE9HX0NIQU5ORUwoY2hhbm5lbCkpCisjZGVm
aW5lIFJFTEVBU0VfTE9HX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0Fs
bG93ZWQpIFJFTEVBU0VfTE9HKGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKKyNk
ZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCAuLi4pIGRvIHsg
aWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgX19WQV9BUkdTX18pOyB9
IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPX0lGKGlzQWxsb3dlZCwgY2hhbm5l
bCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0lORk8oY2hhbm5lbCwgX19W
QV9BUkdTX18pOyB9IHdoaWxlICgwKQorCiAjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0Uo
Y2hhbm5lbCkgV1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2UoJkxPR19DSEFOTkVMKGNoYW5uZWwpKQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oIGIvU291cmNlL1dU
Ri93dGYvTG9nZ2VyLmgKaW5kZXggNGYyMzhjZTNlZGU1ZmJlODQzMzZjMmE3YjZiOGY1ZmM2OTNk
MTg2Ni4uMDQyMDg0NDUwYjQ1MDhjZGI3ZWQ5ZDMzY2U0ZTQ0MjBiZWQ1NDlmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgK
QEAgLTI5LDYgKzI5LDExIEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCisjaWYgVVNFKEpPVVJOQUxE
KQorI2RlZmluZSBTRF9KT1VSTkFMX1NVUFBSRVNTX0xPQ0FUSU9OCisjaW5jbHVkZSA8c3lzdGVt
ZC9zZC1qb3VybmFsLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CkBAIC0xNzQsNiArMTc5LDU3IEBAIHB1YmxpYzoKICAgICAgICAgbG9nKGNoYW5u
ZWwsIFdURkxvZ0xldmVsOjpEZWJ1ZywgYXJndW1lbnRzLi4uKTsKICAgICB9CiAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAgaW5saW5lIHZvaWQgbG9nQWx3YXlzVmVy
Ym9zZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFy
KiBmdW5jdGlvbiwgaW50IGxpbmUsIFVOVVNFRF9GVU5DVElPTiBjb25zdCBBcmd1bWVudHMmLi4u
IGFyZ3VtZW50cykgY29uc3QKKyAgICB7CisjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAg
ICAgLy8gIlN0YW5kYXJkIiBXZWJDb3JlIGxvZ2dpbmcgZ29lcyB0byBzdGRlcnIsIHdoaWNoIGlz
IGNhcHR1cmVkIGluIGxheW91dCB0ZXN0IG91dHB1dCBhbmQgY2FuIGdlbmVyYWxseSBiZSBhIHBy
b2JsZW0KKyAgICAgICAgLy8gIG9uIHNvbWUgc3lzdGVtcywgc28gZG9uJ3QgYWxsb3cgaXQuCisg
ICAgICAgIFVOVVNFRF9QQVJBTShjaGFubmVsKTsKKyNlbHNlCisgICAgICAgIGlmICghd2lsbExv
ZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6QWx3YXlzKSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBsb2dWZXJib3NlKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMsIGZpbGUsIGZ1
bmN0aW9uLCBsaW5lLCBhcmd1bWVudHMuLi4pOworI2VuZGlmCisgICAgfQorCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgorICAgIGlubGluZSB2b2lkIGVycm9yVmVyYm9zZShX
VEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBmdW5j
dGlvbiwgaW50IGxpbmUsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAorICAg
IHsKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpFcnJvcikpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbG9nVmVyYm9zZShjaGFubmVsLCBXVEZMb2dM
ZXZlbDo6RXJyb3IsIGZpbGUsIGZ1bmN0aW9uLCBsaW5lLCBhcmd1bWVudHMuLi4pOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBpbmxpbmUgdm9pZCB3
YXJuaW5nVmVyYm9zZShXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmaWxlLCBj
b25zdCBjaGFyKiBmdW5jdGlvbiwgaW50IGxpbmUsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1l
bnRzKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xl
dmVsOjpXYXJuaW5nKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dWZXJib3Nl
KGNoYW5uZWwsIFdURkxvZ0xldmVsOjpXYXJuaW5nLCBmaWxlLCBmdW5jdGlvbiwgbGluZSwgYXJn
dW1lbnRzLi4uKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+
CisgICAgaW5saW5lIHZvaWQgaW5mb1ZlcmJvc2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29u
c3QgY2hhciogZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGludCBsaW5lLCBjb25zdCBBcmd1
bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghd2lsbExvZyhj
aGFubmVsLCBXVEZMb2dMZXZlbDo6SW5mbykpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgbG9nVmVyYm9zZShjaGFubmVsLCBXVEZMb2dMZXZlbDo6SW5mbywgZmlsZSwgZnVuY3Rpb24s
IGxpbmUsIGFyZ3VtZW50cy4uLik7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4g
QXJndW1lbnRzPgorICAgIGlubGluZSB2b2lkIGRlYnVnVmVyYm9zZShXVEZMb2dDaGFubmVsJiBj
aGFubmVsLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgaW50IGxpbmUs
IGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYg
KCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpEZWJ1ZykpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgbG9nVmVyYm9zZShjaGFubmVsLCBXVEZMb2dMZXZlbDo6RGVidWcsIGZp
bGUsIGZ1bmN0aW9uLCBsaW5lLCBhcmd1bWVudHMuLi4pOworICAgIH0KKwogICAgIGlubGluZSBi
b29sIHdpbGxMb2coY29uc3QgV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2
ZWwpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIW1fZW5hYmxlZCkKQEAgLTI0Niw3ICszMDIs
NDIgQEAgcHJpdmF0ZToKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBXVEZMb2co
JmNoYW5uZWwsICIlcyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAjZWxzZQorI2lmIFVT
RShPU19MT0cpCisgICAgICAgIG9zX2xvZyhjaGFubmVsLm9zTG9nQ2hhbm5lbCwgIiV7cHVibGlj
fXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworI2VsaWYgVVNFKEpPVVJOQUxEKQorICAg
ICAgICBzZF9qb3VybmFsX3NlbmQoIldFQktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLnN1YnN5
c3RlbSwgIldFQktJVF9DSEFOTkVMPSVzIiwgY2hhbm5lbC5uYW1lLCAiTUVTU0FHRT0lcyIsIGxv
Z01lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbnVsbHB0cik7CisjZW5kaWYKKyNlbmRpZgorCisgICAg
ICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmIHx8IGxldmVs
ID4gY2hhbm5lbC5sZXZlbCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGxv
Y2sgPSB0cnlIb2xkTG9jayhvYnNlcnZlckxvY2soKSk7CisgICAgICAgIGlmICghbG9jaykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9i
c2VydmVycygpKQorICAgICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBs
ZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4g
fSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnQ+CisgICAgc3Rh
dGljIGlubGluZSB2b2lkIGxvZ1ZlcmJvc2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgV1RGTG9n
TGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQg
bGluZSwgY29uc3QgQXJndW1lbnQmLi4uIGFyZ3VtZW50cykKKyAgICB7CisgICAgICAgIFN0cmlu
ZyBsb2dNZXNzYWdlID0gbWFrZVN0cmluZyhMb2dBcmd1bWVudDxBcmd1bWVudD46OnRvU3RyaW5n
KGFyZ3VtZW50cykuLi4pOworCisjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAgICAgV1RG
TG9nVmVyYm9zZShmaWxlLCBsaW5lLCBmdW5jdGlvbiwgJmNoYW5uZWwsICIlcyIsIGxvZ01lc3Nh
Z2UudXRmOCgpLmRhdGEoKSk7CisjZWxzZQorI2lmIFVTRShPU19MT0cpCiAgICAgICAgIG9zX2xv
ZyhjaGFubmVsLm9zTG9nQ2hhbm5lbCwgIiV7cHVibGljfXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICBVTlVTRURfUEFSQU0oZmlsZSk7CisgICAgICAgIFVOVVNFRF9QQVJB
TShsaW5lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGZ1bmN0aW9uKTsKKyNlbGlmIFVTRShKT1VS
TkFMRCkKKyAgICAgICAgYXV0byBmaWxlU3RyaW5nID0gbWFrZVN0cmluZygiQ09ERV9GSUxFPSIs
IGZpbGUpOworICAgICAgICBhdXRvIGxpbmVTdHJpbmcgPSBtYWtlU3RyaW5nKCJDT0RFX0xJTkU9
IiwgbGluZSk7CisgICAgICAgIHNkX2pvdXJuYWxfc2VuZF93aXRoX2xvY2F0aW9uKGZpbGVTdHJp
bmcudXRmOCgpLmRhdGEoKSwgbGluZVN0cmluZy51dGY4KCkuZGF0YSgpLCBmdW5jdGlvbiwgIldF
QktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLnN1YnN5c3RlbSwgIldFQktJVF9DSEFOTkVMPSVz
IiwgY2hhbm5lbC5uYW1lLCAiTUVTU0FHRT0lcyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSwg
bnVsbHB0cik7CisjZW5kaWYKICNlbmRpZgogCiAgICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09
IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oIGIvU291cmNlL1dURi93dGYvTG9n
Z2VySGVscGVyLmgKaW5kZXggMGQ0YzI5MmI5ODgwZTJmOTQ0YTljZDljYjU4MThjNjk2YjlmZGVk
OC4uODI4YjZhZTIwOTAwZmRlMDA3NTMxZmJiZDhhOTY2OGUyZjMzYjljMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9nZ2VySGVscGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2Vy
SGVscGVyLmgKQEAgLTQzLDE4ICs0MywyNyBAQCBwdWJsaWM6CiAKICNkZWZpbmUgTE9HSURFTlRJ
RklFUiBXVEY6OkxvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXIobG9nQ2xhc3NOYW1lKCksIF9fZnVu
Y19fLCBsb2dJZGVudGlmaWVyKCkpCiAKKyNpZiBWRVJCT1NFX1JFTEVBU0VfTE9HCisjZGVmaW5l
IEFMV0FZU19MT0coLi4uKSAgICAgbG9nZ2VyKCkubG9nQWx3YXlzVmVyYm9zZShsb2dDaGFubmVs
KCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18sIF9fVkFfQVJHU19fKQorI2RlZmluZSBF
UlJPUl9MT0coLi4uKSAgICAgIGxvZ2dlcigpLmVycm9yVmVyYm9zZShsb2dDaGFubmVsKCksIF9f
RklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18sIF9fVkFfQVJHU19fKQorI2RlZmluZSBXQVJOSU5H
X0xPRyguLi4pICAgIGxvZ2dlcigpLndhcm5pbmdWZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxF
X18sIF9fZnVuY19fLCBfX0xJTkVfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIElORk9fTE9HKC4u
LikgICAgICAgbG9nZ2VyKCkuaW5mb1ZlcmJvc2UobG9nQ2hhbm5lbCgpLCBfX0ZJTEVfXywgX19m
dW5jX18sIF9fTElORV9fLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgREVCVUdfTE9HKC4uLikgICAg
ICBsb2dnZXIoKS5kZWJ1Z1ZlcmJvc2UobG9nQ2hhbm5lbCgpLCBfX0ZJTEVfXywgX19mdW5jX18s
IF9fTElORV9fLCBfX1ZBX0FSR1NfXykKKyNlbHNlCiAjZGVmaW5lIEFMV0FZU19MT0coLi4uKSAg
ICAgbG9nZ2VyKCkubG9nQWx3YXlzKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCiAjZGVmaW5l
IEVSUk9SX0xPRyguLi4pICAgICAgbG9nZ2VyKCkuZXJyb3IobG9nQ2hhbm5lbCgpLCBfX1ZBX0FS
R1NfXykKICNkZWZpbmUgV0FSTklOR19MT0coLi4uKSAgICBsb2dnZXIoKS53YXJuaW5nKGxvZ0No
YW5uZWwoKSwgX19WQV9BUkdTX18pCiAjZGVmaW5lIElORk9fTE9HKC4uLikgICAgICAgbG9nZ2Vy
KCkuaW5mbyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQogI2RlZmluZSBERUJVR19MT0coLi4u
KSAgICAgIGxvZ2dlcigpLmRlYnVnKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCisjZW5kaWYK
KwogI2RlZmluZSBXSUxMX0xPRyhfbGV2ZWxfKSAgIGxvZ2dlcigpLndpbGxMb2cobG9nQ2hhbm5l
bCgpLCBfbGV2ZWxfKQogCi0jZGVmaW5lIEFMV0FZU19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAg
ICBpZiAoY29uZGl0aW9uKSBsb2dnZXIoKS5sb2dBbHdheXMobG9nQ2hhbm5lbCgpLCBfX1ZBX0FS
R1NfXykKLSNkZWZpbmUgRVJST1JfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgIGlmIChjb25k
aXRpb24pIGxvZ2dlcigpLmVycm9yKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5l
IFdBUk5JTkdfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICBpZiAoY29uZGl0aW9uKSBsb2dnZXIo
KS53YXJuaW5nKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIElORk9fTE9HX0lG
KGNvbmRpdGlvbiwgLi4uKSAgICAgICBpZiAoY29uZGl0aW9uKSBsb2dnZXIoKS5pbmZvKGxvZ0No
YW5uZWwoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIERFQlVHX0xPR19JRihjb25kaXRpb24sIC4u
LikgICAgICBpZiAoY29uZGl0aW9uKSBsb2dnZXIoKS5kZWJ1Zyhsb2dDaGFubmVsKCksIF9fVkFf
QVJHU19fKQorI2RlZmluZSBBTFdBWVNfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgaWYgKGNv
bmRpdGlvbikgQUxXQVlTX0xPRyhfX1ZBX0FSR1NfXykKKyNkZWZpbmUgRVJST1JfTE9HX0lGKGNv
bmRpdGlvbiwgLi4uKSAgICAgIGlmIChjb25kaXRpb24pIEVSUk9SX0xPRyhfX1ZBX0FSR1NfXykK
KyNkZWZpbmUgV0FSTklOR19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgIGlmIChjb25kaXRpb24p
IFdBUk5JTkdfTE9HKF9fVkFfQVJHU19fKQorI2RlZmluZSBJTkZPX0xPR19JRihjb25kaXRpb24s
IC4uLikgICAgICAgaWYgKGNvbmRpdGlvbikgSU5GT19MT0coX19WQV9BUkdTX18pCisjZGVmaW5l
IERFQlVHX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgICBpZiAoY29uZGl0aW9uKSBERUJVR19M
T0coX19WQV9BUkdTX18pCiAKICAgICBjb25zdCB2b2lkKiBjaGlsZExvZ0lkZW50aWZpZXIoY29u
c3Qgdm9pZCogcGFyZW50SWRlbnRpZmllciwgdWludDY0X3QgY2hpbGRJZGVudGlmaWVyKSBjb25z
dAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4IDEz
NTc1NmQ4OTdlYzY4MjgzODEyYTE3NWEzN2Y1OTk3YWQ2NWQ0OTMuLjU3ZjliMDE0MzFmZWZjZDky
MWFkOTdiNGRjNWYzOWM5N2YyMDY4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9y
eVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmNwcApAQCAtMzYsOCArMzYsMTAgQEAgbmFtZXNwYWNlIFdURiB7CiAKICNpZiBSRUxF
QVNFX0xPR19ESVNBQkxFRAogV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9y
IH07Ci0jZWxzZQorI2VsaWYgVVNFKE9TX0xPRykKIFdURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJl
c3N1cmUgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJNZW1vcnlQcmVzc3VyZSIsIFdURkxv
Z0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSwgT1NfTE9HX0RFRkFV
TFQgfTsKKyNlbGlmIFVTRShKT1VSTkFMRCkKK1dURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJlc3N1
cmUgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJNZW1vcnlQcmVzc3VyZSIsIFdURkxvZ0xl
dmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSB9OwogI2VuZGlmCiAKIFdU
Rl9FWFBPUlRfUFJJVkFURSBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2Vy
OjpzX2xvZ2dpbmdFbmFibGVkID0gZmFsc2U7CkBAIC04Myw2ICs4NSw4IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiB0b1N0cmluZyhNZW1vcnlVc2FnZVBvbGljeSBwb2xpY3kpCiAgICAgY2FzZSBNZW1v
cnlVc2FnZVBvbGljeTo6Q29uc2VydmF0aXZlOiByZXR1cm4gIkNvbnNlcnZhdGl2ZSI7CiAgICAg
Y2FzZSBNZW1vcnlVc2FnZVBvbGljeTo6U3RyaWN0OiByZXR1cm4gIlN0cmljdCI7CiAgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGE4ZDk3OTI5NmFiN2M3MDUyYjEwNGQyMTFjOTdi
YzAyYzMxZDlkY2YuLmYxYThlODg1ZjVjYWNlNTA0NWQ2ZjMyNDdmOGNlYTk3MmRlYjUzYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02Miw2ICs2MiwxMCBAQCBsaXN0KEFQUEVORCBX
VEZfTElCUkFSSUVTCiAgICAgWkxJQjo6WkxJQgogKQogCitpZiAoU3lzdGVtZF9GT1VORCkKKyAg
ICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIFN5c3RlbWQ6OlN5c3RlbWQpCitlbmRpZiAoKQor
CiBsaXN0KEFQUEVORCBXVEZfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0dJT19V
TklYX0lOQ0xVREVfRElSU30KICAgICAke0dMSUJfSU5DTFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdQRS5jbWFrZQppbmRleCBlNWE4ZmY0NzgxNjNmOGIyMzA2ZmZhYjcyZTQ0MmZlYzQ4NmRlMzFh
Li5kZTQ3NDEwMTBmMTU4MWY3Mjk4MzZiN2YyZWMxMTlmZjBkZTRhMmI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtNDcsNiArNDcsMTAgQEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklF
UwogICAgIFpMSUI6OlpMSUIKICkKIAoraWYgKFN5c3RlbWRfRk9VTkQpCisgICAgbGlzdChBUFBF
TkQgV1RGX0xJQlJBUklFUyBTeXN0ZW1kOjpTeXN0ZW1kKQorZW5kaWYgKCkKKwogbGlzdChBUFBF
TkQgV1RGX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtHSU9fVU5JWF9JTkNMVURF
X0RJUlN9CiAgICAgJHtHTElCX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVk
TGVha0NvdW50ZXIuY3BwCmluZGV4IGUzM2ZhY2I4NWQzM2FlYjgxZTlmYTNmNDI1ZjNhOGUyMGZj
MDg2NzQuLmNiZmQ0NjlkNGMwYTY3YTllY2MxYTA4MDRiM2E3ZjJhZjYyODhhOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcApAQCAtNDEsOCArNDEsMTAgQEAgdm9p
ZCBSZWZDb3VudGVkTGVha0NvdW50ZXI6OmRlY3JlbWVudCgpIHsgfQogI2RlZmluZSBMT0dfQ0hB
Tk5FTF9QUkVGSVggTG9nCiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKIHN0YXRpYyBXVEZMb2dD
aGFubmVsIExvZ1JlZkNvdW50ZWRMZWFrcyA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIlJl
ZkNvdW50ZWRMZWFrcyIsIFdURkxvZ0xldmVsOjpFcnJvciB9OwotI2Vsc2UKKyNlbGlmIFVTRShP
U19MT0cpCiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxv
Z0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3Is
IExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07CisjZWxpZiBV
U0UoSk9VUk5BTEQpCitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7
IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6
RXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0gfTsKICNlbmRpZgogCiB0eXBlZGVm
IEhhc2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqLCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gUmVhc29u
U2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5h
bC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCmluZGV4IDNk
ZWU2Y2ExZjNlMjFlNmI5NzMyYmE2OTBmZmFhZDhhOGM1OTNlYWEuLjU5OGY5ZGRmMTA4MDJjYzIw
Zjg0YjQ5YzJhYTkzNDBiYTg2NWI5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvbnBydW50
aW1lX2ludGVybmFsLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpZiBkZWZpbmVkKE1PWl9YMTEpCiAg
ICAgI2luY2x1ZGUgPFgxMS9YcmVzb3VyY2UuaD4KIAorICAgICN1bmRlZiBBbHdheXMKICAgICAj
dW5kZWYgTm9uZQogICAgICN1bmRlZiBBYm92ZQogICAgICN1bmRlZiBCZWxvdwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAw
MTRkNGNkOGFkYTM1ZjhjNWUzYmUxZTRjZGQ2NTEyMTMzNGFjZjBlLi5jZGZkZmI5Yjg3NjIyYzc4
MWYzOGViMzc0ZjQzZTM0ZjcwZDU4N2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtOTcsNiArOTcsOCBAQCBzdGF0aWMg
Y29uc3QgY2hhciogdGhyb3R0bGluZ1JlYXNvblRvU3RyaW5nKFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6VGhyb3R0bAogICAgIGNhc2UgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpU
aHJvdHRsaW5nUmVhc29uOjpOb25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5GcmFtZToKICAgICAgICAg
cmV0dXJuICJOb25JbnRlcmFjdGl2ZUNyb3NzT3JpZ2luRnJhbWUiOwogICAgIH0KKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKIH0KIAogc3RhdGljIFN0
cmluZyB0aHJvdHRsaW5nUmVhc29uc1RvU3RyaW5nKE9wdGlvblNldDxTY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXI6OlRocm90dGxpbmdSZWFzb24+IHJlYXNvbnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggMzZlMzhkNDc5MTdlM2YyY2RiOWRkYThj
MDBiYjJkNTJhZDRiNjMwMy4uZjJkZTk3YjYzNzk3MDdiYWIyMzI5MmZkNzJkNDQ0MDI1OGM1Zjc1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcApAQCAtNDgs
NiArNDgsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmcoUGVyZm9ybWFuY2VMb2dnaW5n
OjpQb2ludE9mSW50ZXJlc3QgcG9pKQogICAgIGNhc2UgUGVyZm9ybWFuY2VMb2dnaW5nOjpNYWlu
RnJhbWVMb2FkQ29tcGxldGVkOgogICAgICAgICByZXR1cm4gIk1haW5GcmFtZUxvYWRDb21wbGV0
ZWQiOwogICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAiIjsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTW9uaXRv
ci5jcHAKaW5kZXggZTY0NWFiOTIzNWRhNDM3MDAyMmU3YjgzMGFhMDgwODcwMzdjNzFmNC4uZjg1
ZmJlZDAzNDAyMTQyMjdlNjBhYTQ4N2EzYmFlZDMzOTk3ZjJhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcApAQCAtMjYyLDYgKzI2Miw4IEBAIHN0YXRpYyBp
bmxpbmUgY29uc3QgY2hhciogc3RyaW5nRm9yQ1BVU2FtcGxpbmdBY3Rpdml0eVN0YXRlKEFjdGl2
aXR5U3RhdGVGb3JDUFVTCiAgICAgY2FzZSBBY3Rpdml0eVN0YXRlRm9yQ1BVU2FtcGxpbmc6OlZp
c2libGVBbmRBY3RpdmU6CiAgICAgICAgIHJldHVybiAiVmlzaWJsZUFuZEFjdGl2ZSI7CiAgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKaW5kZXggOThjNjgxNzM4OTFhYjZhOWZlNmMxZjRkMjU2ZmQ2NzU3MTNjNDFiNC4uMTU0ODU1
ZjQwNTY5MmNlN2Y1YWJiYzZlM2QzMmU4ZmJiZDQ1Y2U3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQxNCwxNSArNDE0LDE2IEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3ByZWxvYWQocGxheWVyLT5wcmVsb2FkKCkpCiAg
ICAgLCBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKQogICAgICwgbV9kcmF3VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZXBhaW50KQotICAgICwgbV9yZWFkeVRpbWVySGFu
ZGxlcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnJlYWR5VGltZXJGaXJlZAotKQorICAgICwgbV9yZWFkeVRpbWVySGFuZGxlcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlYWR5VGltZXJGaXJl
ZCkKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgLCBt
X25pY29zaWFMYXllcihOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250
ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQogI2Vsc2UK
ICAgICAsIG1fcGxhdGZvcm1MYXllclByb3h5KGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5KCkpKQogI2VuZGlmCi0jZW5kaWYgICAgICAKKyNlbmRpZgorICAgICwg
bV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlm
aWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCiB7CiAjaWYgVVNFKEdMSUIp
CiAgICAgbV9yZWFkeVRpbWVySGFuZGxlci5zZXRQcmlvcml0eShHX1BSSU9SSVRZX0RFRkFVTFRf
SURMRSk7CkBAIC0zODIyLDYgKzM4MjMsMTEgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmV4dGVuZGVkU3VwcG9ydHNUeXBlKGNvbnMKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCitXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjpMb2dN
ZWRpYTsKK30KKwogfQogCiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBhYmViODU3YTdmZGU1NGEyNzll
ZmM1ZDU4OGU4ZDMyYzY5ZWRmMmE4Li4wNTM1MmNjM2NhMzhkMTA4YTRhMTVkOTAwMDE3MzBjMTFk
MzhjYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNs
dWRlICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1
ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtMTE1LDcgKzEx
Nyw5IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOwogdm9pZCByZWdpc3Rlcldl
YktpdEdTdHJlYW1lckVsZW1lbnRzKCk7CiAKIC8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBm
b3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIGFu
b3RoZXIgdGhyZWFkLgotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFn
ZXI+CitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4K
KyAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQog
I2lmIFVTRShOSUNPU0lBKQogICAgICwgcHVibGljIE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1
cmVNYXBwZXJJbXBsOjpDbGllbnQKQEAgLTIyNiw2ICsyMzAsMTQgQEAgcHVibGljOgogICAgIHZv
aWQgZmx1c2hDdXJyZW50QnVmZmVyKCk7CiAjZW5kaWYKIAorICAgIGNvbnN0IExvZ2dlciYgbG9n
Z2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KKyAgICBjb25zdCBj
aGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyIjsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihtX2xvZ0lkZW50
aWZpZXIpOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IG92ZXJyaWRl
OworCisgICAgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4g
bG9nSWRlbnRpZmllcigpOyB9CisgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigp
IHsgcmV0dXJuIGxvZ2dlcigpOyB9CisKIHByb3RlY3RlZDoKICAgICBlbnVtIE1haW5UaHJlYWRO
b3RpZmljYXRpb24gewogICAgICAgICBWaWRlb0NoYW5nZWQgPSAxIDw8IDAsCkBAIC01MjksNiAr
NTQxLDggQEAgcHJpdmF0ZToKICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVG
KQogICAgIEdVbmlxdWVQdHI8c3RydWN0IHdwZV92aWRlb19wbGFuZV9kaXNwbGF5X2RtYWJ1Zl9z
b3VyY2U+IG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWY7CiAjZW5kaWYKKyAgICBSZWY8Y29u
c3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAppbmRleCA2YzQyNTBk
ZjA1MWIwYWRhZDViODkyMDkxODU1YjMxZDNlODkzMGU1Li5jMWI2YjM0ZjY4NmY0Y2Y3MmZlNjEy
NTMyMDQyNDRkODU3ZmU0ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5j
cHAKQEAgLTE3MSw3ICsxNzEsMTEgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlw
dFN1YnNhbXBsZWQoY2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1dCkKICAgICAgICAgICAgIExPRyhF
TUUsICJFTUUgLSBzdWJzYW1wbGUgaW5kZXggJXUgLSAldSBieXRlcyBlbmNyeXB0ZWQgKCVsdSBi
eXRlcyBsZWZ0IHRvIGRlY3J5cHQpIiwgc3Vic2FtcGxlSW5kZXgsIHN1YnNhbXBsZU51bUVuY3J5
cHRlZEJ5dGVzLCBpbnB1dC5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyAtIGVuY3J5cHRlZEJ1
ZmZlckJ5dGVPZmZzZXQpOwogCiAgICAgICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVy
cm9yID0gZ2NyeV9jaXBoZXJfZGVjcnlwdChtX2djcnlIYW5kbGUsIGlucHV0LmVuY3J5cHRlZEJ1
ZmZlciArIGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5
dGVzLCAwLCAwKSkgeworI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgICAgICAgICBMT0coRU1F
LCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQpOiAl
cyIsIGdwZ19zdHJlcnJvcihjaXBoZXJFcnJvcikpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBV
TlVTRURfVkFSSUFCTEUoY2lwaGVyRXJyb3IpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogCkBAIC0xOTMsNyArMTk3LDExIEBAIGJvb2wgQ0RN
UHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHQoQ0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRD
b250ZXh0JiBpbnB1dCkKIHZvaWQgQ0RNUHJveHlDbGVhcktleTo6aW5pdGlhbGl6ZUdjcnlwdCgp
CiB7CiAgICAgaWYgKGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJm1fZ2Ny
eUhhbmRsZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9D
SVBIRVJfU0VDVVJFKSkgeworI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgTE9HKEVNRSwgIkVN
RSAtIENETVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9vcGVuKTogJXMiLCBncGdf
c3RyZXJyb3IoZXJyb3IpKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShlcnJvcik7
CisjZW5kaWYKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoZmFsc2UgJiYgIlNob3VsZCBub3QgZ2V0
IHRoaXMgZmFyIHdpdGggYSBmdW5jdGlvbmFsIEdDcnlwdCEiKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAppbmRl
eCA1ZDEwMTNmY2JlZjA1NzkzNDgwYmIzOGVkZWZlNGI2NGYwYWNmNDJjLi40ZTA4YjVkZGY1YThh
YzMwYTg0MWFjMGRmOGMzNWEzNzAyNjUyMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ck1TRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKQEAgLTg0LDYgKzg0LDggQEAgcHVi
bGljOgogICAgIHZvaWQgYmxvY2tEdXJhdGlvbkNoYW5nZXMoKTsKICAgICB2b2lkIHVuYmxvY2tE
dXJhdGlvbkNoYW5nZXMoKTsKIAorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpMb2dNZWRpYVNvdXJjZTsgfQorCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBNZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXJNU0U7CiAgICAgc3Rh
dGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggZTYyY2Q1NmE4NDZiMzQ3NjEyMzQ0ODM1MjVhMmU2YTBmYjY4MGU1My4uYzhmNTgw
NTZlYWQ0NWRlNjE1YTg4MmMxYjkzZjkyYzQxOTJlMDZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgiCiAj
aW5jbHVkZSAiTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaCIKQEAgLTYwLDE3ICs2MSwy
MyBAQCBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6TWVkaWFTb3VyY2VHU3RyZWFtZXIoTWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50JiBtZWRpYVNvdXJjZQogICAgICwgbV9jbGllbnQoTWVkaWFTb3VyY2VD
bGllbnRHU3RyZWFtZXJNU0U6OmNyZWF0ZShwbGF5ZXJQcml2YXRlKSkKICAgICAsIG1fbWVkaWFT
b3VyY2UobWVkaWFTb3VyY2UpCiAgICAgLCBtX3BsYXllclByaXZhdGUocGxheWVyUHJpdmF0ZSkK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKG1fcGxheWVyUHJpdmF0
ZS5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKG1fcGxheWVyUHJp
dmF0ZS5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgogewogfQogCiBNZWRpYVNv
dXJjZUdTdHJlYW1lcjo6fk1lZGlhU291cmNlR1N0cmVhbWVyKCkKIHsKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwogICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyUHJpdmF0ZSA6IG1f
c291cmNlQnVmZmVycykKICAgICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZS0+Y2xlYXJNZWRpYVNv
dXJjZSgpOwogfQogCiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6QWRkU3RhdHVzIE1lZGlhU291cmNl
R1N0cmVhbWVyOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBl
LCBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4mIHNvdXJjZUJ1ZmZlclByaXZhdGUpCiB7Cisg
ICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsIGNvbnRlbnRUeXBlKTsKICAgICBzb3VyY2VCdWZm
ZXJQcml2YXRlID0gU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKHRoaXMsIG1f
Y2xpZW50LmdldCgpLCBjb250ZW50VHlwZSk7CiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI+IHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBzdGF0aWNfY2FzdDxT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKj4oc291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKSk7
CiAgICAgbV9zb3VyY2VCdWZmZXJzLmFkZChzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKTsK
QEAgLTEzNSw1ICsxNDIsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4g
TWVkaWFTb3VyY2VHU3RyZWFtZXI6OmJ1ZmZlcmVkKCkKICAgICByZXR1cm4gbV9tZWRpYVNvdXJj
ZS0+YnVmZmVyZWQoKTsKIH0KIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorV1RGTG9nQ2hh
bm5lbCYgTWVkaWFTb3VyY2VHU3RyZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJl
dHVybiBMb2dNZWRpYVNvdXJjZTsKK30KKworI2VuZGlmCisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNv
dXJjZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5oCmluZGV4IGM5YTA5ZmEwNDM5ZmVmOGViOGRi
NzUwNWZjYmM5N2UwNTIzNzhlYTYuLjVjZjliODIwYTE5NDdmODAxNzE4MGNhZmI1NmI3NjJmNWMy
NjNiNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmgKQEAgLTM5
LDYgKzM5LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIHR5cGVkZWYgc3RydWN0
IF9XZWJLaXRNZWRpYVNyYyBXZWJLaXRNZWRpYVNyYzsKIApAQCAtNTAsNyArNTEsMTEgQEAgY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOwogY2xhc3MgUGxhdGZvcm1UaW1lUmFu
Z2VzOwogCiAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgY2FsbGVkIE1lZGlhU291cmNlUHJpdmF0
ZUdTdHJlYW1lcj8KLWNsYXNzIE1lZGlhU291cmNlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIE1l
ZGlhU291cmNlUHJpdmF0ZSB7CitjbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lciBmaW5hbCA6IHB1
YmxpYyBNZWRpYVNvdXJjZVByaXZhdGUKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAs
IHByaXZhdGUgTG9nZ2VySGVscGVyCisjZW5kaWYKK3sKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBvcGVuKE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCYsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lck1TRSYpOwogICAgIHZpcnR1YWwgfk1lZGlhU291cmNlR1N0cmVhbWVyKCk7CkBAIC03Myw2
ICs3OCwxNSBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFu
Z2VzPiBidWZmZXJlZCgpOwogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3Qg
TG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQor
ICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJN
ZWRpYVNvdXJjZVByaXZhdGVHU3RyZWFtZXIiOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRp
ZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIFdURkxv
Z0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKworICAgIGNvbnN0IHZvaWQqIG5l
eHRTb3VyY2VCdWZmZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4gY2hpbGRMb2dJZGVudGlmaWVy
KG1fbG9nSWRlbnRpZmllciwgKyttX25leHRTb3VyY2VCdWZmZXJJRCk7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIE1lZGlhU291cmNlR1N0cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0ZUNsaWVu
dCYsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRSYpOwogCkBAIC04MSw2ICs5NSwxMSBA
QCBwcml2YXRlOgogICAgIFJlZjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRT4gbV9jbGll
bnQ7CiAgICAgUmVmPE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudD4gbV9tZWRpYVNvdXJjZTsKICAg
ICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UmIG1fcGxheWVyUHJpdmF0ZTsKKyNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAg
ICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisgICAgdWludDY0X3QgbV9uZXh0U291cmNl
QnVmZmVySUQgeyAwIH07CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDdjMWU3OTkxNmQ5M2Y4
YWYxMTFkY2E4M2FkNTJjNWM0ZTVjOGY3ZmQuLjcyMGQzNDRmZmQyY2M2OWUxMzA5YzIzYTUwZTQw
ZmU1MTY2MDRiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtNTgsNiArNTgsMTAgQEAgU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVNvdXJjZUdTdHJl
YW1lcioKICAgICAsIG1fbWVkaWFTb3VyY2UobWVkaWFTb3VyY2UpCiAgICAgLCBtX3R5cGUoY29u
dGVudFR5cGUpCiAgICAgLCBtX2NsaWVudChjbGllbnQuZ2V0KCkpCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihtZWRpYVNvdXJjZS0+bG9nZ2VyKCkpCisgICAgLCBt
X2xvZ0lkZW50aWZpZXIobWVkaWFTb3VyY2UtPm5leHRTb3VyY2VCdWZmZXJMb2dJZGVudGlmaWVy
KCkpCisjZW5kaWYKIHsKIH0KIApAQCAtMTc3LDUgKzE4MSwxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI6OmFwcGVuZFBhcnNpbmdGYWlsZWQoKQogICAgICAgICBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAorI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAorV1RGTG9nQ2hhbm5lbCYgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lcjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOwor
fQorI2VuZGlmCisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBlNWZlNDA2OGE4MmE3ZDIyZWNmOTQ1N2ZkZTJi
OThlMTE3Y2I5MGI0Li4xY2NhZmEwYTVmOTY3YWU0MDc1ZDMwODk3MmJjMjEwOTYyOTM0MDgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
aApAQCAtNDEsMTIgKzQxLDE3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJLaXRN
ZWRpYVNvdXJjZUdTdHJlYW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lcjsKIAotY2xh
c3MgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZm
ZXJQcml2YXRlIHsKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgZmluYWwgOiBw
dWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
ICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKKyNlbmRpZgorewogCiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGUoTWVkaWFTb3VyY2VHU3Ry
ZWFtZXIqLCBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+LCBjb25zdCBDb250ZW50
VHlwZSYpOwpAQCAtNzksNiArODQsMTUgQEAgcHVibGljOgogCiAgICAgQ29udGVudFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dl
ci5nZXQoKTsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyIjsgfQorICAgIGNvbnN0IHZv
aWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7
IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisgICAgY29u
c3QgTG9nZ2VyJiBzb3VyY2VCdWZmZXJMb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xv
Z2dlci5nZXQoKTsgfQorICAgIGNvbnN0IHZvaWQqIHNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIo
KSBmaW5hbCB7IHJldHVybiBsb2dJZGVudGlmaWVyKCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VHU3RyZWFtZXIqLCBS
ZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+LCBjb25zdCBDb250ZW50VHlwZSYpOwog
ICAgIGZyaWVuZCBjbGFzcyBNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTsKQEAgLTkwLDYg
KzEwNCwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXMgPSB0
cnVlOwogICAgIGJvb2wgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IGZhbHNlOwog
ICAgIEF0b21TdHJpbmcgbV90cmFja0lkOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisg
ICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVu
dGlmaWVyOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHAKaW5kZXggYjUxNjQ5YTBhOGQ1ZmU3ZDM0YjE5MWM2Zjg5MWFmNDAyOWU2YjQ4MS4u
NTFmMDVkODUyZGViN2RkOWVmODBmOGZjMzI5NTI5YmNmMDQyZjIxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiTG9n
Z2luZy5oIgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJDb2NvYS5oIgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAppbmRleCAxYzQwOTM5YjhjYTk0Y2VkNjg4NGMzNzYxNDVkMDVjOTRiZDhjY2Uy
Li42NGRiMmI0ZTFkZDYwMGRiNzExYTE4ODE2ODE3NTcwYjQyNDkzZGQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTE1Nyw2ICsxNTcsOCBAQCBzdGF0aWMgcnRj
OjpMb2dnaW5nU2V2ZXJpdHkgY29tcHV0ZUxvZ0xldmVsKCkKICAgICBjYXNlIFdURkxvZ0xldmVs
OjpEZWJ1ZzoKICAgICAgICAgcmV0dXJuIHJ0Yzo6TFNfVkVSQk9TRTsKICAgICB9CisgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gcnRjOjpMU19OT05FOwogI2Vs
c2UKICAgICByZXR1cm4gcnRjOjpMU19OT05FOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uU291cC5jcHAKaW5kZXggOTE0ZTEwZTdlYjc3YWQxYjZmZGU4YTRhNDRjYTNhMTlkYzVm
OGQzYS4uNGZkYmJhYjg4OWNlMTljMzM3N2QxNzMzMWMzOTNiZDBkYjAyZTI1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtNDcxLDYgKzQ3MSw3IEBAIGJvb2wgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJCiAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29r
aWVfamFyX2dldF9jb29raWVfbGlzdChjb29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgVFJVRSkp
OwogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oc2FtZVNp
dGVJbmZvKTsKKyAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAjZW5kaWYKICAgICBpZiAo
IWNvb2tpZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9GaW5kU3lzdGVtZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZGRmZjBlYTZhODdkZmEyOTRkYWM2NTRjM2EwNzljMGYxODZmN2U1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRTeXN0ZW1kLmNtYWtlCkBAIC0wLDAgKzEsOTEg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgor
IyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI1s9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PVsucnN0OgorRmluZFN5c3RlbWQKKy0tLS0tLS0tLS0tCisKK0ZpbmQgU3lzdGVtZCBo
ZWFkZXJzIGFuZCBsaWJyYXJpZXMuCisKK0ltcG9ydGVkIFRhcmdldHMKK15eXl5eXl5eXl5eXl5e
Xl4KKworYGBTeXN0ZW1kOjpTeXN0ZW1kYGAKKyAgVGhlIFN5c3RlbWQgbGlicmFyeSwgaWYgZm91
bmQuCisKK1Jlc3VsdCBWYXJpYWJsZXMKK15eXl5eXl5eXl5eXl5eXl4KKworVGhpcyB3aWxsIGRl
ZmluZSB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBpbiB5b3VyIHByb2plY3Q6CisKK2BgU3lzdGVt
ZF9GT1VORGBgCisgIHRydWUgaWYgKHRoZSByZXF1ZXN0ZWQgdmVyc2lvbiBvZikgU3lzdGVtZCBp
cyBhdmFpbGFibGUuCitgYFN5c3RlbWRfVkVSU0lPTmBgCisgIHRoZSB2ZXJzaW9uIG9mIFN5c3Rl
bWQuCitgYFN5c3RlbWRfTElCUkFSSUVTYGAKKyAgdGhlIGxpYnJhcmllcyB0byBsaW5rIGFnYWlu
c3QgdG8gdXNlIFN5c3RlbWQuCitgYFN5c3RlbWRfSU5DTFVERV9ESVJTYGAKKyAgd2hlcmUgdG8g
ZmluZCB0aGUgU3lzdGVtZCBoZWFkZXJzLgorYGBTeXN0ZW1kX0NPTVBJTEVfT1BUSU9OU2BgCisg
IHRoaXMgc2hvdWxkIGJlIHBhc3NlZCB0byB0YXJnZXRfY29tcGlsZV9vcHRpb25zKCksIGlmIHRo
ZQorICB0YXJnZXQgaXMgbm90IHVzZWQgZm9yIGxpbmtpbmcKKworI109PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PV0K
KworaW5jbHVkZShGaW5kUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfU1lTVEVNRCBR
VUlFVCBsaWJzeXN0ZW1kKQorc2V0KFN5c3RlbWRfQ09NUElMRV9PUFRJT05TICR7UENfU1lTVEVN
RF9DRkxBR1NfT1RIRVJ9KQorc2V0KFN5c3RlbWRfVkVSU0lPTiAke1BDX1NZU1RFTURfVkVSU0lP
Tn0pCisKK2ZpbmRfcGF0aChTeXN0ZW1kX0lOQ0xVREVfRElSCisgICAgTkFNRVMgc3lzdGVtZC9z
ZC1qb3VybmFsLmgKKyAgICBISU5UUyAke1BDX1NZU1RFTURfSU5DTFVERURJUn0gJHtQQ19TWVNU
RU1EX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KFN5c3RlbWRfTElCUkFSWQorICAg
IE5BTUVTICR7U3lzdGVtZF9OQU1FU30gc3lzdGVtZAorICAgIEhJTlRTICR7UENfU1lTVEVNRF9M
SUJESVJ9ICR7UENfU1lTVEVNRF9MSUJSQVJZX0RJUlN9CispCisKK2luY2x1ZGUoRmluZFBhY2th
Z2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3Mo
U3lzdGVtZAorICAgIEZPVU5EX1ZBUiBTeXN0ZW1kX0ZPVU5ECisgICAgUkVRVUlSRURfVkFSUyBT
eXN0ZW1kX0xJQlJBUlkgU3lzdGVtZF9JTkNMVURFX0RJUgorICAgIFZFUlNJT05fVkFSIFN5c3Rl
bWRfVkVSU0lPTgorKQorCitpZiAoU3lzdGVtZF9MSUJSQVJZIEFORCBOT1QgVEFSR0VUIFN5c3Rl
bWQ6OlN5c3RlbWQpCisgICAgYWRkX2xpYnJhcnkoU3lzdGVtZDo6U3lzdGVtZCBVTktOT1dOIElN
UE9SVEVEIEdMT0JBTCkKKyAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoU3lzdGVtZDo6U3lzdGVt
ZCBQUk9QRVJUSUVTCisgICAgICAgIElNUE9SVEVEX0xPQ0FUSU9OICIke1N5c3RlbWRfTElCUkFS
WX0iCisgICAgICAgIElOVEVSRkFDRV9DT01QSUxFX09QVElPTlMgIiR7U3lzdGVtZF9DT01QSUxF
X09QVElPTlN9IgorICAgICAgICBJTlRFUkZBQ0VfSU5DTFVERV9ESVJFQ1RPUklFUyAiJHtTeXN0
ZW1kX0lOQ0xVREVfRElSfSIKKyAgICApCitlbmRpZiAoKQorCittYXJrX2FzX2FkdmFuY2VkKFN5
c3RlbWRfSU5DTFVERV9ESVIgU3lzdGVtZF9MSUJSQVJZKQorCitpZiAoU3lzdGVtZF9GT1VORCkK
KyAgICBzZXQoU3lzdGVtZF9MSUJSQVJJRVMgJHtTeXN0ZW1kX0xJQlJBUll9KQorICAgIHNldChT
eXN0ZW1kX0lOQ0xVREVfRElSUyAke1N5c3RlbWRfSU5DTFVERV9ESVJ9KQorZW5kaWYgKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNHVEsuY21ha2UKaW5kZXggZjI4YWZjMzZkNTEzMDdmOGM4Y2Y3NzZhZjU0MzRlOWVmZTFl
NGUxZC4uMjEwNjc4MTQzODFiZTk1MjkwOTQ1NzY5OWIyMTExN2M2OTZlZTdiZSAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNHVEsuY21ha2UKQEAgLTg3LDYgKzg3LDcgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0xJ
QlNFQ1JFVCAiV2hldGhlciB0byBlbmFibGUgdGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbAogV0VC
S0lUX09QVElPTl9ERUZJTkUoVVNFX09QRU5KUEVHICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0
IGZvciBKUEVHMjAwMCBpbWFnZXMuIiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShV
U0VfV09GRjIgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIFdPRkYyIFdlYiBGb250cy4i
IFBVQkxJQyBPTikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9XUEVfUkVOREVSRVIgIldoZXRo
ZXIgdG8gZW5hYmxlIFdQRSByZW5kZXJpbmciIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVG
SU5FKFVTRV9TWVNURU1EICJXaGV0aGVyIHRvIGVuYWJsZSBzZC1qb3VybmFsIGxvZ2dpbmciIFBV
QkxJQyBPTikKIAogIyBQcml2YXRlIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIEdUSyBwb3J0LiBD
aGFuZ2luZyB0aGVzZSBvcHRpb25zIGlzCiAjIGNvbXBsZXRlbHkgdW5zdXBwb3J0ZWQuIFRoZXkg
YXJlIGludGVuZGVkIGZvciB1c2Ugb25seSBieSBXZWJLaXQgZGV2ZWxvcGVycy4KQEAgLTM4Nyw2
ICszODgsMTYgQEAgaWYgKFVTRV9XT0ZGMikKICAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAoraWYg
KFVTRV9TWVNURU1EKQorICAgIGZpbmRfcGFja2FnZShTeXN0ZW1kKQorICAgIGlmIChTeXN0ZW1k
X0ZPVU5EKQorICAgICAgICBtZXNzYWdlKFNUQVRVUyAiUmVsZWFzZSBsb2dzIHdpbGwgYmUgc2Vu
dCB0byB0aGUgU3lzdGVtZCBqb3VybmFsIikKKyAgICAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoVVNFX0pPVVJOQUxEIFRSVUUpCisgICAgZWxzZSAoKQorICAgICAgICBtZXNzYWdlKEZBVEFM
X0VSUk9SICJsaWJzeXN0ZW1kIGlzIG5lZWRlZCBmb3IgVVNFX1NZU1RFTUQiKQorICAgIGVuZGlm
ICgpCitlbmRpZiAoKQorCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODIyNDcKIGlmIChFTkFCTEVEX0NPTVBJTEVSX1NBTklUSVpFUlMpCiAgICAgc2V0KEVOQUJM
RV9JTlRST1NQRUNUSU9OIE9GRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKaW5kZXggMWFiZTk1MzIwZDVh
NjM3OGNmMmE3ZDA5YWE5ZmY4ZDRhN2EwNGM0Yy4uOGVlYzFmNThhODA3OTc4NDUyZDQxMWQ1NjMx
ODUwYzFmODE0YzQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UK
KysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTc0LDYgKzc0LDcgQEAgV0VC
S0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0dUS0RPQyAiV2hldGhlciBvciBub3QgdG8gdXNlIGdl
bmVyYXRlIGd0a2RvYy4iIFBVQkwKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOSlBFRyAi
V2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgSlBFRzIwMDAgaW1hZ2VzLiIgUFVCTElDIE9O
KQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1dPRkYyICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBw
b3J0IGZvciBXT0ZGMiBXZWIgRm9udHMuIiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklO
RShFTkFCTEVfV1BFX1FUX0FQSSAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgdGhlIFF0
NS9RTUwgcGx1Z2luIiBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1NZU1RF
TUQgIldoZXRoZXIgdG8gZW5hYmxlIHNkLWpvdXJuYWwgbG9nZ2luZyIgUFVCTElDIE9OKQogCiAj
IFByaXZhdGUgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUgV1BFIHBvcnQuCiBXRUJLSVRfT1BUSU9O
X0RFRklORShVU0VfR1NUUkVBTUVSX0hPTEVQVU5DSCAiV2hldGhlciB0byBlbmFibGUgR1N0cmVh
bWVyIGhvbGVwdW5jaCIgUFJJVkFURSBPRkYpCkBAIC0xNzIsNiArMTczLDE2IEBAIGlmIChFTkFC
TEVfV1BFX1FUX0FQSSBPUiBVU0VfV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAg
IGZpbmRfcGFja2FnZShXUEVCYWNrZW5kLWZkbyAxLjUuMCBSRVFVSVJFRCkKIGVuZGlmICgpCiAK
K2lmIChVU0VfU1lTVEVNRCkKKyAgICBmaW5kX3BhY2thZ2UoU3lzdGVtZCkKKyAgICBpZiAoU3lz
dGVtZF9GT1VORCkKKyAgICAgICAgbWVzc2FnZShTVEFUVVMgIlJlbGVhc2UgbG9ncyB3aWxsIGJl
IHNlbnQgdG8gdGhlIFN5c3RlbWQgam91cm5hbCIpCisgICAgICAgIFNFVF9BTkRfRVhQT1NFX1RP
X0JVSUxEKFVTRV9KT1VSTkFMRCBUUlVFKQorICAgIGVsc2UgKCkKKyAgICAgICAgbWVzc2FnZShG
QVRBTF9FUlJPUiAibGlic3lzdGVtZCBpcyBuZWVkZWQgZm9yIFVTRV9TWVNURU1EIikKKyAgICBl
bmRpZiAoKQorZW5kaWYgKCkKKwogYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV1BFX189MSkK
IGFkZF9kZWZpbml0aW9ucygtREdFVFRFWFRfUEFDS0FHRT0iV1BFIikKIGFkZF9kZWZpbml0aW9u
cygtREpTQ19HTElCX0FQSV9FTkFCTEVEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2luc3RhbGwt
ZGVwZW5kZW5jaWVzIGIvVG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzCmluZGV4IDZmZDU2
NmYwZGNmM2M1MTQyZjY5MGZlMmIzOTNhNmUwM2U3OWUzYTMuLmJhNjIyNzNlNDZjODg3ZTgwMGE3
ZWY3YWM1OGEwNjkzYzY1ZjAyMjMgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVu
ZGVuY2llcworKysgYi9Ub29scy9ndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMKQEAgLTEzMyw2ICsx
MzMsNyBAQCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0aEFwdCB7CiAgICAgICAgIGxp
YnNvdXAyLjQtZGV2IFwKICAgICAgICAgbGlic3FsaXRlMy1kZXYgXAogICAgICAgICBsaWJzcnRw
Mi1kZXYgXAorICAgICAgICBsaWJzeXN0ZW1kLWRldiBcCiAgICAgICAgIGxpYnRhc24xLTYtZGV2
IFwKICAgICAgICAgbGlidGhlb3JhLWRldiBcCiAgICAgICAgIGxpYnRvb2wgXApAQCAtMzA3LDYg
KzMwOCw3IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoUGFjbWFuIHsKICAgICAg
ICAgbGlic2VjcmV0IFwKICAgICAgICAgbGlic291cCBcCiAgICAgICAgIGxpYnNydHAgXAorICAg
ICAgICBsaWJzeXN0ZW1kIFwKICAgICAgICAgc3FsaXRlIFwKICAgICAgICAgbGlidGFzbjEgXAog
ICAgICAgICBsaWJ0aGVvcmEgXApAQCAtNDY3LDYgKzQ2OSw3IEBAIGZ1bmN0aW9uIGluc3RhbGxE
ZXBlbmRlbmNpZXNXaXRoRG5mIHsKICAgICAgICAgbGlic2VjcmV0LWRldmVsIFwKICAgICAgICAg
bGlic291cC1kZXZlbCBcCiAgICAgICAgIGxpYnNydHAtZGV2ZWwgXAorICAgICAgICBsaWJzeXN0
ZW1kLWRldmVsIFwKICAgICAgICAgbGlidGFzbjEtZGV2ZWwgXAogICAgICAgICBsaWJ0aGVvcmEt
ZGV2ZWwgXAogICAgICAgICBsaWJ2NGwtZGV2ZWwgXApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2lu
c3RhbGwtZGVwZW5kZW5jaWVzIGIvVG9vbHMvd3BlL2luc3RhbGwtZGVwZW5kZW5jaWVzCmluZGV4
IGNhMWNkM2ZkZWYwY2FmNjQ2NjgyM2U1YThlZDkyYjQ0N2M0OTBhYTEuLmU0MjhjZDJhYTUyMGQ2
MWIwN2I1NWU0NGM0ODMxMjYxYmRmMjZhN2EgMTAwNzU1Ci0tLSBhL1Rvb2xzL3dwZS9pbnN0YWxs
LWRlcGVuZGVuY2llcworKysgYi9Ub29scy93cGUvaW5zdGFsbC1kZXBlbmRlbmNpZXMKQEAgLTgx
LDYgKzgxLDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhBcHQgewogICAgICAg
ICAkKGFwdElmRWxzZSBsaWJwbmctZGV2IGxpYnBuZzEyLWRldikgXAogICAgICAgICBsaWJzZWNj
b21wLWRldiBcCiAgICAgICAgIGxpYnNxbGl0ZTMtZGV2IFwKKyAgICAgICAgbGlic3lzdGVtZC1k
ZXYgXAogICAgICAgICBsaWJ0YXNuMS02LWRldiBcCiAgICAgICAgIGxpYnRvb2wgXAogICAgICAg
ICBsaWJ3ZWJwLWRldiBcCkBAIC0xOTIsNiArMTkzLDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVu
ZGVuY2llc1dpdGhQYWNtYW4gewogICAgICAgICBydWJ5CiAgICAgICAgIHNlZCBcCiAgICAgICAg
IHNxbGl0ZSBcCisgICAgICAgIGxpYnN5c3RlbWQgXAogICAgICAgICB0ZXhpbmZvIFwKICAgICAg
ICAgd2hpY2ggXAogICAgICAgICB6bGliIFwKQEAgLTI5MSw2ICsyOTMsNyBAQCBmdW5jdGlvbiBp
bnN0YWxsRGVwZW5kZW5jaWVzV2l0aERuZiB7CiAgICAgICAgIGxpYmpwZWctdHVyYm8tZGV2ZWwg
XAogICAgICAgICBsaWJwbmctZGV2ZWwgXAogICAgICAgICBsaWJzZWNjb21wLWRldmVsIFwKKyAg
ICAgICAgbGlic3lzdGVtZC1kZXZlbCBcCiAgICAgICAgIGxpYnRhc24xLWRldmVsIFwKICAgICAg
ICAgbGlidG9vbCBcCiAgICAgICAgIGxpYndlYnAtZGV2ZWwgXApkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDhmODUwMTIzNjA0OTIwNTNmZDAzM2FkYzVkZDZkOGRkMWIx
N2E5ZGQuLjdmYjZjZTYwMDMyZWIwNTM5M2M2MTBhMGE1ZjIzMTk4Njc0MTA5YTIgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wMi0x
OSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVM
RUFTRV9MT0cgc2hvdWxkIG5vdCBiZSBDb2NvYSBzcGVjaWZpYworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MTgyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEVOQUJMRV9SRUxFQVNFX0xP
R0dJTkcgQ01ha2Ugb3B0aW9uLCBlbmFibGVkIGJ5IGRlZmF1bHQKKyAgICAgICAgaW4gdGhlIEdU
SyBhbmQgV1BFIHBvcnRzLiBXaGVuIHRoaXMgaXMgZW5hYmxlZCwgcmVsZWFzZSBsb2dzIHdpbGwK
KyAgICAgICAgYmUgc2VudCB0byB0aGUgU3lzdGVtZCBKb3VybmFsLiBUbyByZXRyaWV2ZSBtZWRp
YSBsb2dzIGZvcgorICAgICAgICBpbnN0YW5jZSwgdGhpcyBjb21tYW5kIGNhbiBiZSB1c2VkOgor
CisgICAgICAgICQgam91cm5hbGN0bCBTVUJTWVNURU09V2ViS2l0R1RLIENIQU5ORUw9TWVkaWEK
KworICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFrZTogQWRkZWQuCisgICAg
ICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2Nt
YWtlL09wdGlvbnNXUEUuY21ha2U6CisKIDIwMjAtMDMtMDMgIEZ1amlpIEhpcm9ub3JpICA8ZnVq
aWkuaGlyb25vcmlAZ21haWwuY29tPgogCiAgICAgICAgIFtDdXJsXSBBZGQgVExTIGRlYnVnZ2lu
ZyBmZWF0dXJlIHRvIGxvZyBlbmNyeXB0aW9uIGtleXMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393642</attachid>
            <date>2020-03-16 03:29:49 -0700</date>
            <delta_ts>2020-03-17 03:28:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195182-20200316102947.patch</filename>
            <type>text/plain</type>
            <size>48396</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwMTM3YjVmMDAzYzIwMWY5MjAzMmJm
MTU1OTU0NjEyODc1NzJmZGYuLjBlYmRjZDgwM2UzYjFkYzllNmMyN2M5MDhkMmVjYTEyYzhkMjFj
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUg
Q29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzZC1qb3VybmFsIGxvZ2dpbmcgc3VwcG9ydCBhbmQgd3JhcCB0aGUgb3NfbG9n
IGNhbGxzIHdpdGggdGhlIFVTRShPU19MT0cpIGd1YXJkLgorICAgICAgICAKKyAgICAgICAgKiB3
dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAg
KiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dG9TdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1X
UEUuY21ha2U6CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIw
MjAtMDMtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBT
aG91bGQgbm90IHVzZSB2YXJpYWJsZS1sZW5ndGgtYXJyYXkgKFZMQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBl
MzE0NTU0OTAyMzRiNGE4MWU2NjZhZGU2NmFkN2E3Nzk5ZjFjZWE2Li40MTI0MzkzYjJhMzk1NjMz
ZmFhZjUwYTFjYWM3NTcyZDU2YmUzMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIw
MjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUgQ29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdQRS9HVEsgYnVpbGQgZml4ZXMg
cmVsYXRlZCB3aXRoIFJlbGVhc2UgbG9nZ2luZyBzdXBwb3J0LgorICAgICAgICAKKyAgICAgICAg
KiBicmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmg6CisgICAgICAgICogZG9tL1NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0aHJvdHRsaW5nUmVhc29u
VG9TdHJpbmcpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTW9uaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdGb3JDUFVTYW1wbGluZ0FjdGl2aXR5U3Rh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1l
ZGlhUGxheWVyTG9nSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6Om1lZGlhUGxheWVyTG9nZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRTdWJzYW1wbGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNETVByb3h5Q2xlYXJLZXk6OmluaXRpYWxpemVHY3J5cHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyTVNFLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJl
YW1lcjo6TWVkaWFTb3VyY2VHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3Vy
Y2VHU3RyZWFtZXI6On5NZWRpYVNvdXJjZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNvdXJjZUdTdHJlYW1lcjo6YWRkU291cmNlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU291cmNlR1N0cmVhbWVyOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlTG9n
TGV2ZWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Z2V0UmF3Q29va2llcyBjb25zdCk6CisKIDIwMjAtMDMtMTYgIFJvYiBCdWlzICA8cmJ1aXNAaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgYWRkSFRUUE9yaWdpbklmTmVlZGVkIGNhbGxzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuY3BwCmluZGV4IDlhYjc4MDlhMjU2ZTZiYzQwMDAwYmFkZGJkNzNlMGI3ZjA1
NDA3ZDIuLjQwNzNmZDViZTliMjU4NmUyYmMyN2JhZDBhMGM1NTIwYzc5MjgyNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuY3BwCkBAIC03NCw2ICs3NCwxMCBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2Vu
ZGlmCiAKKyNpZiBVU0UoSk9VUk5BTEQpCisjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFt
Lmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdURiB7CiAKIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEs
IDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhjb25zdCBjaGFy
KiBmb3JtYXQsIHZhX2xpc3QgYXJncykKQEAgLTUyMyw3ICs1MjcsNyBAQCBzdGF0aWMgdm9pZCBz
ZXRTdGF0ZU9mQWxsQ2hhbm5lbHMoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbHNbXSwgc2l6ZV90IGNo
YW5uZWxDb3VudAogCiB2b2lkIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmlu
ZyhXVEZMb2dDaGFubmVsKiBjaGFubmVsc1tdLCBzaXplX3QgY291bnQsIGNvbnN0IGNoYXIqIGxv
Z0xldmVsKQogewotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorI2lmIFVTRShPU19MT0cpICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7
ICsraSkgewogICAgICAgICBXVEZMb2dDaGFubmVsKiBjaGFubmVsID0gY2hhbm5lbHNbaV07CiAg
ICAgICAgIGNoYW5uZWwtPm9zTG9nQ2hhbm5lbCA9IG9zX2xvZ19jcmVhdGUoY2hhbm5lbC0+c3Vi
c3lzdGVtLCBjaGFubmVsLT5uYW1lKTsKQEAgLTU3NywxMiArNTgxLDIzIEBAIHZvaWQgV1RGUmVs
ZWFzZUxvZ1N0YWNrVHJhY2UoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCkKICAgICAgICAgZm9yIChp
bnQgZnJhbWVOdW1iZXIgPSAxOyBmcmFtZU51bWJlciA8IHN0YWNrVHJhY2UtPnNpemUoKTsgKytm
cmFtZU51bWJlcikgewogICAgICAgICAgICAgYXV0byBzdGFja0ZyYW1lID0gc3RhY2tbZnJhbWVO
dW1iZXJdOwogICAgICAgICAgICAgYXV0byBkZW1hbmdsZWQgPSBXVEY6OlN0YWNrVHJhY2U6OmRl
bWFuZ2xlKHN0YWNrRnJhbWUpOworI2lmIFVTRShPU19MT0cpCiAgICAgICAgICAgICBpZiAoZGVt
YW5nbGVkICYmIGRlbWFuZ2xlZC0+ZGVtYW5nbGVkTmFtZSgpKQogICAgICAgICAgICAgICAgIG9z
X2xvZyhjaGFubmVsLT5vc0xvZ0NoYW5uZWwsICIlLTNkICVwICV7cHVibGljfXMiLCBmcmFtZU51
bWJlciwgc3RhY2tGcmFtZSwgZGVtYW5nbGVkLT5kZW1hbmdsZWROYW1lKCkpOwogICAgICAgICAg
ICAgZWxzZSBpZiAoZGVtYW5nbGVkICYmIGRlbWFuZ2xlZC0+bWFuZ2xlZE5hbWUoKSkKICAgICAg
ICAgICAgICAgICBvc19sb2coY2hhbm5lbC0+b3NMb2dDaGFubmVsLCAiJS0zZCAlcCAle3B1Ymxp
Y31zIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+bWFuZ2xlZE5hbWUoKSk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9zTG9n
Q2hhbm5lbCwgIiUtM2QgJXAiLCBmcmFtZU51bWJlciwgc3RhY2tGcmFtZSk7CisjZWxpZiBVU0Uo
Sk9VUk5BTEQpCisgICAgICAgICAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7CisgICAgICAgICAg
ICBpZiAoZGVtYW5nbGVkICYmIGRlbWFuZ2xlZC0+ZGVtYW5nbGVkTmFtZSgpKQorICAgICAgICAg
ICAgICAgIG91dC5wcmludGYoIiUtM2QgJXAgJXMiLCBmcmFtZU51bWJlciwgc3RhY2tGcmFtZSwg
ZGVtYW5nbGVkLT5kZW1hbmdsZWROYW1lKCkpOworICAgICAgICAgICAgZWxzZSBpZiAoZGVtYW5n
bGVkICYmIGRlbWFuZ2xlZC0+bWFuZ2xlZE5hbWUoKSkKKyAgICAgICAgICAgICAgICBvdXQucHJp
bnRmKCIlLTNkICVwICVzIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+bWFu
Z2xlZE5hbWUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0LnByaW50
ZigiJS0zZCAlcCIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lKTsKKyAgICAgICAgICAgIHNkX2pv
dXJuYWxfc2VuZCgiV0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNoYW5uZWwtPnN1YnN5c3RlbSwgIldF
QktJVF9DSEFOTkVMPSVzIiwgY2hhbm5lbC0+bmFtZSwgIk1FU1NBR0U9JXMiLCBvdXQudG9DU3Ry
aW5nKCkuZGF0YSgpLCBudWxscHRyKTsKKyNlbmRpZgogICAgICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIvU291cmNlL1dURi93dGYvQXNz
ZXJ0aW9ucy5oCmluZGV4IGIxYTczZjBkMzU3MGI5ZmMxMWUxYjkxNjkyNDI4ZjA2ZGU4YWM0MTYu
LjIzNTMzODc0NjI1YThiMTgxMGU4MDc2MGJkZTFjYjQ1YzE3MDI5MjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmgKQEAgLTUxLDYgKzUxLDExIEBACiAjaW5jbHVkZSA8b3MvbG9nLmg+CiAjZW5kaWYKIAorI2lm
IFVTRShKT1VSTkFMRCkKKyNkZWZpbmUgU0RfSk9VUk5BTF9TVVBQUkVTU19MT0NBVElPTgorI2lu
Y2x1ZGUgPHN5c3RlbWQvc2Qtam91cm5hbC5oPgorI2VuZGlmCisKICNpZmRlZiBfX2NwbHVzcGx1
cwogI2luY2x1ZGUgPGNzdGRsaWI+CiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CkBAIC05MSw3ICs5
NiwxMSBAQCBleHRlcm4gIkMiIHZvaWQgX1JlYWRXcml0ZUJhcnJpZXIodm9pZCk7CiAjZW5kaWYK
IAogI2lmbmRlZiBSRUxFQVNFX0xPR19ESVNBQkxFRAotI2RlZmluZSBSRUxFQVNFX0xPR19ESVNB
QkxFRCAhKFVTRShPU19MT0cpKQorI2RlZmluZSBSRUxFQVNFX0xPR19ESVNBQkxFRCAhKFVTRShP
U19MT0cpIHx8IFVTRShKT1VSTkFMRCkpCisjZW5kaWYKKworI2lmbmRlZiBWRVJCT1NFX1JFTEVB
U0VfTE9HCisjZGVmaW5lIFZFUkJPU0VfUkVMRUFTRV9MT0cgVVNFKEpPVVJOQUxEKQogI2VuZGlm
CiAKICNpZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKQEAgLTE1NCw4ICsxNjMsMTAgQEAgdHlw
ZWRlZiBzdHJ1Y3QgewogICAgIFdURkxvZ0xldmVsIGxldmVsOwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIHN1YnN5c3RlbTsKKyNpZiBVU0UoT1NfTE9HKQogICAg
IF9fdW5zYWZlX3VucmV0YWluZWQgb3NfbG9nX3Qgb3NMb2dDaGFubmVsOwogI2VuZGlmCisjZW5k
aWYKIH0gV1RGTG9nQ2hhbm5lbDsKIAogI2RlZmluZSBMT0dfQ0hBTk5FTChuYW1lKSBKT0lOX0xP
R19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSkKQEAgLTE2Myw3
ICsxNzQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2RlZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJ
VEhfUFJFRklYKHByZWZpeCwgY2hhbm5lbCkgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWF9M
RVZFTF8yKHByZWZpeCwgY2hhbm5lbCkKICNkZWZpbmUgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BS
RUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkgcHJlZml4ICMjIGNoYW5uZWwKIAorI2lmIFBM
QVRGT1JNKEdUSykKKyNkZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSAiV2ViS2l0
R1RLIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2RlZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VC
U1lTVEVNICJXUEVXZWJLaXQiCisjZWxzZQogI2RlZmluZSBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VC
U1lTVEVNICJjb20uYXBwbGUuV2ViS2l0IgorI2VuZGlmCiAKICNkZWZpbmUgREVDTEFSRV9MT0df
Q0hBTk5FTChuYW1lKSBcCiAgICAgZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFt
ZSk7CkBAIC0xNzIsOSArMTg5LDEyIEBAIHR5cGVkZWYgc3RydWN0IHsKICNpZiBSRUxFQVNFX0xP
R19ESVNBQkxFRAogI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBc
CiAgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxT
dGF0ZSkwLCAjbmFtZSwgKFdURkxvZ0xldmVsKTEgfTsKLSNlbHNlCisjZWxpZiBVU0UoT1NfTE9H
KQogI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBcCiAgICAgV1RG
TG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAj
bmFtZSwgKFdURkxvZ0xldmVsKTEsIHN1YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKKyNlbGlm
IFVTRShKT1VSTkFMRCkKKyNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIHN1YnN5c3Rl
bSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19D
SEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2
ZWwpMSwgc3Vic3lzdGVtIH07CiAjZW5kaWYKICNlbmRpZgogCkBAIC00OTksMTYgKzUxOSwxMiBA
QCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJsZUNvZGUgPSBm
YWxzZTsKIAogI2RlZmluZSBSRUxFQVNFX0xPR19TVEFDS1RSQUNFKGNoYW5uZWwpICgodm9pZCkw
KQogI2Vsc2UKKyNpZiBVU0UoT1NfTE9HKQogI2RlZmluZSBQVUJMSUNfTE9HX1NUUklORyAie3B1
YmxpY31zIgogI2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4pIG9zX2xvZyhMT0dfQ0hB
Tk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNF
X0xPR19FUlJPUihjaGFubmVsLCAuLi4pIG9zX2xvZ19lcnJvcihMT0dfQ0hBTk5FTChjaGFubmVs
KS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19GQVVMVChj
aGFubmVsLCAuLi4pIG9zX2xvZ19mYXVsdChMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5u
ZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPKGNoYW5uZWwsIC4uLikg
b3NfbG9nX2luZm8oTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBfX1ZBX0FSR1Nf
XykKLQotI2RlZmluZSBSRUxFQVNFX0xPR19JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8g
eyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyggICAgICBjaGFubmVsLCBfX1ZBX0FSR1NfXyk7
IH0gd2hpbGUgKDApCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWxsb3dlZCwgY2hh
bm5lbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWws
IF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSU5GT19JRihp
c0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPR19J
TkZPKGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKLQogI2RlZmluZSBSRUxFQVNF
X0xPR19XSVRIX0xFVkVMKGNoYW5uZWwsIGxvZ0xldmVsLCAuLi4pIGRvIHsgXAogICAgIGlmIChM
T0dfQ0hBTk5FTChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCiAgICAgICAgIG9zX2xv
ZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKTsgXApAQCAt
NTE5LDYgKzUzNSwzMyBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJl
YWNoYWJsZUNvZGUgPSBmYWxzZTsKICAgICAgICAgb3NfbG9nKExPR19DSEFOTkVMKGNoYW5uZWwp
Lm9zTG9nQ2hhbm5lbCwgX19WQV9BUkdTX18pOyBcCiB9IHdoaWxlICgwKQogCisjZWxpZiBVU0Uo
Sk9VUk5BTEQpCisjZGVmaW5lIFBVQkxJQ19MT0dfU1RSSU5HICJzIgorI2RlZmluZSBTRF9KT1VS
TkFMX1NFTkQoY2hhbm5lbCwgcHJpb3JpdHksIGZpbGUsIGxpbmUsIGZ1bmN0aW9uLCAuLi4pIHNk
X2pvdXJuYWxfc2VuZF93aXRoX2xvY2F0aW9uKCJDT0RFX0ZJTEU9IiBmaWxlLCAiQ09ERV9MSU5F
PSIgbGluZSwgZnVuY3Rpb24sICJXRUJLSVRfU1VCU1lTVEVNPSVzIiwgTE9HX0NIQU5ORUwoY2hh
bm5lbCkuc3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9JXMiLCBMT0dfQ0hBTk5FTChjaGFubmVs
KS5uYW1lLCAiUFJJT1JJVFk9JWkiLCBwcmlvcml0eSwgIk1FU1NBR0U9IiBfX1ZBX0FSR1NfXywg
bnVsbHB0cikKKworI2RlZmluZSBfWFNUUklOR0lGWShsaW5lKSAjbGluZQorI2RlZmluZSBfU1RS
SU5HSUZZKGxpbmUpIF9YU1RSSU5HSUZZKGxpbmUpCisjZGVmaW5lIFJFTEVBU0VfTE9HKGNoYW5u
ZWwsIC4uLikgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19OT1RJQ0UsIF9fRklMRV9fLCBf
U1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxF
QVNFX0xPR19FUlJPUihjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBMT0df
RVJSLCBfX0ZJTEVfXywgX1NUUklOR0lGWShfX0xJTkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1Nf
XykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRkFVTFQoY2hhbm5lbCwgLi4uKSBTRF9KT1VSTkFMX1NF
TkQoY2hhbm5lbCwgTE9HX0NSSVQsIF9fRklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19m
dW5jX18sIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPKGNoYW5uZWwsIC4u
LikgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19JTkZPLCBfX0ZJTEVfXywgX1NUUklOR0lG
WShfX0xJTkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1NfXykKKworI2RlZmluZSBSRUxFQVNFX0xP
R19XSVRIX0xFVkVMKGNoYW5uZWwsIGxvZ0xldmVsLCAuLi4pIGRvIHsgXAorICAgIGlmIChMT0df
Q0hBTk5FTChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCisgICAgICAgIFNEX0pPVVJO
QUxfU0VORChjaGFubmVsLCBMT0dfSU5GTywgX19GSUxFX18sIF9TVFJJTkdJRlkoX19MSU5FX18p
LCBfX2Z1bmNfXywgX19WQV9BUkdTX18pOyBcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJFTEVB
U0VfTE9HX1dJVEhfTEVWRUxfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBsb2dMZXZlbCwgLi4uKSBk
byB7IFwKKyAgICBpZiAoKGlzQWxsb3dlZCkgJiYgTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwg
Pj0gKGxvZ0xldmVsKSkgXAorICAgICAgICBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0lO
Rk8sIF9fRklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19f
KTsgXAorfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJB
Q0UoY2hhbm5lbCkgV1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2UoJkxPR19DSEFOTkVMKGNoYW5uZWwp
KQorI2RlZmluZSBSRUxFQVNFX0xPR19JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBp
ZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyhjaGFubmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUg
KDApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgLi4u
KSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIF9fVkFfQVJH
U19fKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSU5GT19JRihpc0FsbG93ZWQs
IGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPR19JTkZPKGNoYW5u
ZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKKwogI2RlZmluZSBSRUxFQVNFX0xPR19TVEFD
S1RSQUNFKGNoYW5uZWwpIFdURlJlbGVhc2VMb2dTdGFja1RyYWNlKCZMT0dfQ0hBTk5FTChjaGFu
bmVsKSkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDRmMjM4Y2UzZWRlNWZiZTg0MzM2YzJhN2I2Yjhm
NWZjNjkzZDE4NjYuLjA0MjA4NDQ1MGI0NTA4Y2RiN2VkOWQzM2NlNGU0NDIwYmVkNTQ5ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xv
Z2dlci5oCkBAIC0yOSw2ICsyOSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIFVTRShK
T1VSTkFMRCkKKyNkZWZpbmUgU0RfSk9VUk5BTF9TVVBQUkVTU19MT0NBVElPTgorI2luY2x1ZGUg
PHN5c3RlbWQvc2Qtam91cm5hbC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgpAQCAtMTc0LDYgKzE3OSw1NyBAQCBwdWJsaWM6CiAgICAgICAgIGxv
ZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6RGVidWcsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgorICAgIGlubGluZSB2b2lkIGxvZ0Fs
d2F5c1ZlcmJvc2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZmlsZSwgY29u
c3QgY2hhciogZnVuY3Rpb24sIGludCBsaW5lLCBVTlVTRURfRlVOQ1RJT04gY29uc3QgQXJndW1l
bnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVE
CisgICAgICAgIC8vICJTdGFuZGFyZCIgV2ViQ29yZSBsb2dnaW5nIGdvZXMgdG8gc3RkZXJyLCB3
aGljaCBpcyBjYXB0dXJlZCBpbiBsYXlvdXQgdGVzdCBvdXRwdXQgYW5kIGNhbiBnZW5lcmFsbHkg
YmUgYSBwcm9ibGVtCisgICAgICAgIC8vICBvbiBzb21lIHN5c3RlbXMsIHNvIGRvbid0IGFsbG93
IGl0LgorICAgICAgICBVTlVTRURfUEFSQU0oY2hhbm5lbCk7CisjZWxzZQorICAgICAgICBpZiAo
IXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkFsd2F5cykpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgbG9nVmVyYm9zZShjaGFubmVsLCBXVEZMb2dMZXZlbDo6QWx3YXlzLCBm
aWxlLCBmdW5jdGlvbiwgbGluZSwgYXJndW1lbnRzLi4uKTsKKyNlbmRpZgorICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBpbmxpbmUgdm9pZCBlcnJvclZl
cmJvc2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZmlsZSwgY29uc3QgY2hh
ciogZnVuY3Rpb24sIGludCBsaW5lLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29u
c3QKKyAgICB7CisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6RXJy
b3IpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hhbm5lbCwg
V1RGTG9nTGV2ZWw6OkVycm9yLCBmaWxlLCBmdW5jdGlvbiwgbGluZSwgYXJndW1lbnRzLi4uKTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAgaW5saW5l
IHZvaWQgd2FybmluZ1ZlcmJvc2UoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciog
ZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGludCBsaW5lLCBjb25zdCBBcmd1bWVudHMmLi4u
IGFyZ3VtZW50cykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBX
VEZMb2dMZXZlbDo6V2FybmluZykpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbG9n
VmVyYm9zZShjaGFubmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZywgZmlsZSwgZnVuY3Rpb24sIGxp
bmUsIGFyZ3VtZW50cy4uLik7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJn
dW1lbnRzPgorICAgIGlubGluZSB2b2lkIGluZm9WZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5u
ZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29u
c3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXdp
bGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkluZm8pKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGxvZ1ZlcmJvc2UoY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkluZm8sIGZpbGUsIGZ1
bmN0aW9uLCBsaW5lLCBhcmd1bWVudHMuLi4pOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lLi4uIEFyZ3VtZW50cz4KKyAgICBpbmxpbmUgdm9pZCBkZWJ1Z1ZlcmJvc2UoV1RGTG9nQ2hh
bm5lbCYgY2hhbm5lbCwgY29uc3QgY2hhciogZmlsZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGlu
dCBsaW5lLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QKKyAgICB7CisgICAg
ICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6RGVidWcpKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkRl
YnVnLCBmaWxlLCBmdW5jdGlvbiwgbGluZSwgYXJndW1lbnRzLi4uKTsKKyAgICB9CisKICAgICBp
bmxpbmUgYm9vbCB3aWxsTG9nKGNvbnN0IFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIFdURkxvZ0xl
dmVsIGxldmVsKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKCFtX2VuYWJsZWQpCkBAIC0yNDYs
NyArMzAyLDQyIEBAIHByaXZhdGU6CiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAg
V1RGTG9nKCZjaGFubmVsLCAiJXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UK
KyNpZiBVU0UoT1NfTE9HKQorICAgICAgICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIl
e3B1YmxpY31zIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKKyNlbGlmIFVTRShKT1VSTkFM
RCkKKyAgICAgICAgc2Rfam91cm5hbF9zZW5kKCJXRUJLSVRfU1VCU1lTVEVNPSVzIiwgY2hhbm5l
bC5zdWJzeXN0ZW0sICJXRUJLSVRfQ0hBTk5FTD0lcyIsIGNoYW5uZWwubmFtZSwgIk1FU1NBR0U9
JXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCksIG51bGxwdHIpOworI2VuZGlmCisjZW5kaWYK
KworICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8
fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
YXV0byBsb2NrID0gdHJ5SG9sZExvY2sob2JzZXJ2ZXJMb2NrKCkpOworICAgICAgICBpZiAoIWxv
Y2spCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2
ZXIgOiBvYnNlcnZlcnMoKSkKKyAgICAgICAgICAgIG9ic2VydmVyLmRpZExvZ01lc3NhZ2UoY2hh
bm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9WYWx1ZShhcmd1bWVu
dHMpLi4uIH0pOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50Pgor
ICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2dWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWws
IFdURkxvZ0xldmVsIGxldmVsLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBmdW5jdGlv
biwgaW50IGxpbmUsIGNvbnN0IEFyZ3VtZW50Ji4uLiBhcmd1bWVudHMpCisgICAgeworICAgICAg
ICBTdHJpbmcgbG9nTWVzc2FnZSA9IG1ha2VTdHJpbmcoTG9nQXJndW1lbnQ8QXJndW1lbnQ+Ojp0
b1N0cmluZyhhcmd1bWVudHMpLi4uKTsKKworI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
ICAgIFdURkxvZ1ZlcmJvc2UoZmlsZSwgbGluZSwgZnVuY3Rpb24sICZjaGFubmVsLCAiJXMiLCBs
b2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworI2Vsc2UKKyNpZiBVU0UoT1NfTE9HKQogICAgICAg
ICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIle3B1YmxpY31zIiwgbG9nTWVzc2FnZS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGZpbGUpOworICAgICAgICBVTlVT
RURfUEFSQU0obGluZSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7CisjZWxpZiBV
U0UoSk9VUk5BTEQpCisgICAgICAgIGF1dG8gZmlsZVN0cmluZyA9IG1ha2VTdHJpbmcoIkNPREVf
RklMRT0iLCBmaWxlKTsKKyAgICAgICAgYXV0byBsaW5lU3RyaW5nID0gbWFrZVN0cmluZygiQ09E
RV9MSU5FPSIsIGxpbmUpOworICAgICAgICBzZF9qb3VybmFsX3NlbmRfd2l0aF9sb2NhdGlvbihm
aWxlU3RyaW5nLnV0ZjgoKS5kYXRhKCksIGxpbmVTdHJpbmcudXRmOCgpLmRhdGEoKSwgZnVuY3Rp
b24sICJXRUJLSVRfU1VCU1lTVEVNPSVzIiwgY2hhbm5lbC5zdWJzeXN0ZW0sICJXRUJLSVRfQ0hB
Tk5FTD0lcyIsIGNoYW5uZWwubmFtZSwgIk1FU1NBR0U9JXMiLCBsb2dNZXNzYWdlLnV0ZjgoKS5k
YXRhKCksIG51bGxwdHIpOworI2VuZGlmCiAjZW5kaWYKIAogICAgICAgICBpZiAoY2hhbm5lbC5z
dGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXJIZWxwZXIuaCBiL1NvdXJjZS9XVEYv
d3RmL0xvZ2dlckhlbHBlci5oCmluZGV4IDBhZDY1ZWUyNDcwYjcwZmM5YTBlZWY4MmViYTcxZTBm
YzNkNWY4YzcuLjllYjczYmE2ZTBmZDk0YzA0OGRkNTkzYjVmZjUyOTE2ODBiNmRmMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0xvZ2dlckhlbHBlci5oCkBAIC00MywxOCArNDMsMjcgQEAgcHVibGljOgogCiAjZGVmaW5lIExP
R0lERU5USUZJRVIgV1RGOjpMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyKGxvZ0NsYXNzTmFtZSgp
LCBfX2Z1bmNfXywgbG9nSWRlbnRpZmllcigpKQogCisjaWYgVkVSQk9TRV9SRUxFQVNFX0xPRwor
I2RlZmluZSBBTFdBWVNfTE9HKC4uLikgICAgIGxvZ2dlcigpLmxvZ0Fsd2F5c1ZlcmJvc2UobG9n
Q2hhbm5lbCgpLCBfX0ZJTEVfXywgX19mdW5jX18sIF9fTElORV9fLCBfX1ZBX0FSR1NfXykKKyNk
ZWZpbmUgRVJST1JfTE9HKC4uLikgICAgICBsb2dnZXIoKS5lcnJvclZlcmJvc2UobG9nQ2hhbm5l
bCgpLCBfX0ZJTEVfXywgX19mdW5jX18sIF9fTElORV9fLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
V0FSTklOR19MT0coLi4uKSAgICBsb2dnZXIoKS53YXJuaW5nVmVyYm9zZShsb2dDaGFubmVsKCks
IF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18sIF9fVkFfQVJHU19fKQorI2RlZmluZSBJTkZP
X0xPRyguLi4pICAgICAgIGxvZ2dlcigpLmluZm9WZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxF
X18sIF9fZnVuY19fLCBfX0xJTkVfXywgX19WQV9BUkdTX18pCisjZGVmaW5lIERFQlVHX0xPRygu
Li4pICAgICAgbG9nZ2VyKCkuZGVidWdWZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxFX18sIF9f
ZnVuY19fLCBfX0xJTkVfXywgX19WQV9BUkdTX18pCisjZWxzZQogI2RlZmluZSBBTFdBWVNfTE9H
KC4uLikgICAgIGxvZ2dlcigpLmxvZ0Fsd2F5cyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQog
I2RlZmluZSBFUlJPUl9MT0coLi4uKSAgICAgIGxvZ2dlcigpLmVycm9yKGxvZ0NoYW5uZWwoKSwg
X19WQV9BUkdTX18pCiAjZGVmaW5lIFdBUk5JTkdfTE9HKC4uLikgICAgbG9nZ2VyKCkud2Fybmlu
Zyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQogI2RlZmluZSBJTkZPX0xPRyguLi4pICAgICAg
IGxvZ2dlcigpLmluZm8obG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgREVCVUdf
TE9HKC4uLikgICAgICBsb2dnZXIoKS5kZWJ1Zyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQor
I2VuZGlmCisKICNkZWZpbmUgV0lMTF9MT0coX2xldmVsXykgICBsb2dnZXIoKS53aWxsTG9nKGxv
Z0NoYW5uZWwoKSwgX2xldmVsXykKIAotI2RlZmluZSBBTFdBWVNfTE9HX0lGKGNvbmRpdGlvbiwg
Li4uKSAgICAgaWYgKGNvbmRpdGlvbikgbG9nZ2VyKCkubG9nQWx3YXlzKGxvZ0NoYW5uZWwoKSwg
X19WQV9BUkdTX18pCi0jZGVmaW5lIEVSUk9SX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgICBp
ZiAoY29uZGl0aW9uKSBsb2dnZXIoKS5lcnJvcihsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQot
I2RlZmluZSBXQVJOSU5HX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgaWYgKGNvbmRpdGlvbikg
bG9nZ2VyKCkud2FybmluZyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBJTkZP
X0xPR19JRihjb25kaXRpb24sIC4uLikgICAgICAgaWYgKGNvbmRpdGlvbikgbG9nZ2VyKCkuaW5m
byhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBERUJVR19MT0dfSUYoY29uZGl0
aW9uLCAuLi4pICAgICAgaWYgKGNvbmRpdGlvbikgbG9nZ2VyKCkuZGVidWcobG9nQ2hhbm5lbCgp
LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgQUxXQVlTX0xPR19JRihjb25kaXRpb24sIC4uLikgICAg
IGlmIChjb25kaXRpb24pIEFMV0FZU19MT0coX19WQV9BUkdTX18pCisjZGVmaW5lIEVSUk9SX0xP
R19JRihjb25kaXRpb24sIC4uLikgICAgICBpZiAoY29uZGl0aW9uKSBFUlJPUl9MT0coX19WQV9B
UkdTX18pCisjZGVmaW5lIFdBUk5JTkdfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICBpZiAoY29u
ZGl0aW9uKSBXQVJOSU5HX0xPRyhfX1ZBX0FSR1NfXykKKyNkZWZpbmUgSU5GT19MT0dfSUYoY29u
ZGl0aW9uLCAuLi4pICAgICAgIGlmIChjb25kaXRpb24pIElORk9fTE9HKF9fVkFfQVJHU19fKQor
I2RlZmluZSBERUJVR19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAgaWYgKGNvbmRpdGlvbikg
REVCVUdfTE9HKF9fVkFfQVJHU19fKQogCiAjZGVmaW5lIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUo
Li4uKSAgICAgaWYgKGxvZ2dlclB0cigpKSBsb2dnZXJQdHIoKS0+bG9nQWx3YXlzKGxvZ0NoYW5u
ZWwoKSwgX19WQV9BUkdTX18pCiAjZGVmaW5lIEVSUk9SX0xPR19JRl9QT1NTSUJMRSguLi4pICAg
ICAgaWYgKGxvZ2dlclB0cigpKSBsb2dnZXJQdHIoKS0+ZXJyb3IobG9nQ2hhbm5lbCgpLCBfX1ZB
X0FSR1NfXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4IDEz
NTc1NmQ4OTdlYzY4MjgzODEyYTE3NWEzN2Y1OTk3YWQ2NWQ0OTMuLjU3ZjliMDE0MzFmZWZjZDky
MWFkOTdiNGRjNWYzOWM5N2YyMDY4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9y
eVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmNwcApAQCAtMzYsOCArMzYsMTAgQEAgbmFtZXNwYWNlIFdURiB7CiAKICNpZiBSRUxF
QVNFX0xPR19ESVNBQkxFRAogV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9y
IH07Ci0jZWxzZQorI2VsaWYgVVNFKE9TX0xPRykKIFdURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJl
c3N1cmUgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJNZW1vcnlQcmVzc3VyZSIsIFdURkxv
Z0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSwgT1NfTE9HX0RFRkFV
TFQgfTsKKyNlbGlmIFVTRShKT1VSTkFMRCkKK1dURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJlc3N1
cmUgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJNZW1vcnlQcmVzc3VyZSIsIFdURkxvZ0xl
dmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSB9OwogI2VuZGlmCiAKIFdU
Rl9FWFBPUlRfUFJJVkFURSBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2Vy
OjpzX2xvZ2dpbmdFbmFibGVkID0gZmFsc2U7CkBAIC04Myw2ICs4NSw4IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiB0b1N0cmluZyhNZW1vcnlVc2FnZVBvbGljeSBwb2xpY3kpCiAgICAgY2FzZSBNZW1v
cnlVc2FnZVBvbGljeTo6Q29uc2VydmF0aXZlOiByZXR1cm4gIkNvbnNlcnZhdGl2ZSI7CiAgICAg
Y2FzZSBNZW1vcnlVc2FnZVBvbGljeTo6U3RyaWN0OiByZXR1cm4gIlN0cmljdCI7CiAgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGE4ZDk3OTI5NmFiN2M3MDUyYjEwNGQyMTFjOTdi
YzAyYzMxZDlkY2YuLmYxYThlODg1ZjVjYWNlNTA0NWQ2ZjMyNDdmOGNlYTk3MmRlYjUzYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02Miw2ICs2MiwxMCBAQCBsaXN0KEFQUEVORCBX
VEZfTElCUkFSSUVTCiAgICAgWkxJQjo6WkxJQgogKQogCitpZiAoU3lzdGVtZF9GT1VORCkKKyAg
ICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIFN5c3RlbWQ6OlN5c3RlbWQpCitlbmRpZiAoKQor
CiBsaXN0KEFQUEVORCBXVEZfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0dJT19V
TklYX0lOQ0xVREVfRElSU30KICAgICAke0dMSUJfSU5DTFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bVdQRS5jbWFrZQppbmRleCBlNWE4ZmY0NzgxNjNmOGIyMzA2ZmZhYjcyZTQ0MmZlYzQ4NmRlMzFh
Li5kZTQ3NDEwMTBmMTU4MWY3Mjk4MzZiN2YyZWMxMTlmZjBkZTRhMmI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtNDcsNiArNDcsMTAgQEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklF
UwogICAgIFpMSUI6OlpMSUIKICkKIAoraWYgKFN5c3RlbWRfRk9VTkQpCisgICAgbGlzdChBUFBF
TkQgV1RGX0xJQlJBUklFUyBTeXN0ZW1kOjpTeXN0ZW1kKQorZW5kaWYgKCkKKwogbGlzdChBUFBF
TkQgV1RGX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtHSU9fVU5JWF9JTkNMVURF
X0RJUlN9CiAgICAgJHtHTElCX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVk
TGVha0NvdW50ZXIuY3BwCmluZGV4IGUzM2ZhY2I4NWQzM2FlYjgxZTlmYTNmNDI1ZjNhOGUyMGZj
MDg2NzQuLmNiZmQ0NjlkNGMwYTY3YTllY2MxYTA4MDRiM2E3ZjJhZjYyODhhOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcApAQCAtNDEsOCArNDEsMTAgQEAgdm9p
ZCBSZWZDb3VudGVkTGVha0NvdW50ZXI6OmRlY3JlbWVudCgpIHsgfQogI2RlZmluZSBMT0dfQ0hB
Tk5FTF9QUkVGSVggTG9nCiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKIHN0YXRpYyBXVEZMb2dD
aGFubmVsIExvZ1JlZkNvdW50ZWRMZWFrcyA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIlJl
ZkNvdW50ZWRMZWFrcyIsIFdURkxvZ0xldmVsOjpFcnJvciB9OwotI2Vsc2UKKyNlbGlmIFVTRShP
U19MT0cpCiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxv
Z0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3Is
IExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07CisjZWxpZiBV
U0UoSk9VUk5BTEQpCitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7
IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6
RXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0gfTsKICNlbmRpZgogCiB0eXBlZGVm
IEhhc2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqLCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gUmVhc29u
U2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5h
bC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5hbC5oCmluZGV4IDNk
ZWU2Y2ExZjNlMjFlNmI5NzMyYmE2OTBmZmFhZDhhOGM1OTNlYWEuLjU5OGY5ZGRmMTA4MDJjYzIw
Zjg0YjQ5YzJhYTkzNDBiYTg2NWI5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvbnBydW50
aW1lX2ludGVybmFsLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpZiBkZWZpbmVkKE1PWl9YMTEpCiAg
ICAgI2luY2x1ZGUgPFgxMS9YcmVzb3VyY2UuaD4KIAorICAgICN1bmRlZiBBbHdheXMKICAgICAj
dW5kZWYgTm9uZQogICAgICN1bmRlZiBBYm92ZQogICAgICN1bmRlZiBCZWxvdwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAw
MTRkNGNkOGFkYTM1ZjhjNWUzYmUxZTRjZGQ2NTEyMTMzNGFjZjBlLi5jZGZkZmI5Yjg3NjIyYzc4
MWYzOGViMzc0ZjQzZTM0ZjcwZDU4N2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtOTcsNiArOTcsOCBAQCBzdGF0aWMg
Y29uc3QgY2hhciogdGhyb3R0bGluZ1JlYXNvblRvU3RyaW5nKFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6VGhyb3R0bAogICAgIGNhc2UgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpU
aHJvdHRsaW5nUmVhc29uOjpOb25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5GcmFtZToKICAgICAgICAg
cmV0dXJuICJOb25JbnRlcmFjdGl2ZUNyb3NzT3JpZ2luRnJhbWUiOwogICAgIH0KKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKIH0KIAogc3RhdGljIFN0
cmluZyB0aHJvdHRsaW5nUmVhc29uc1RvU3RyaW5nKE9wdGlvblNldDxTY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXI6OlRocm90dGxpbmdSZWFzb24+IHJlYXNvbnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggYmVkMjY3OTYyNjAyYTU0ODBjMGQ2NGYy
ZjEyYjYzMDZlZTQ4NTMyNS4uYzFjOGQxYTJiOTlhYjJlZWQ2MTNkZWJlOTZjNmM5YjY2YmUxNjM0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcApAQCAtNDgs
NiArNDgsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmcoUGVyZm9ybWFuY2VMb2dnaW5n
OjpQb2ludE9mSW50ZXJlc3QgcG9pKQogICAgIGNhc2UgUGVyZm9ybWFuY2VMb2dnaW5nOjpNYWlu
RnJhbWVMb2FkQ29tcGxldGVkOgogICAgICAgICByZXR1cm4gIk1haW5GcmFtZUxvYWRDb21wbGV0
ZWQiOwogICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAiIjsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTW9uaXRv
ci5jcHAKaW5kZXggZTY0NWFiOTIzNWRhNDM3MDAyMmU3YjgzMGFhMDgwODcwMzdjNzFmNC4uZjg1
ZmJlZDAzNDAyMTQyMjdlNjBhYTQ4N2EzYmFlZDMzOTk3ZjJhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcApAQCAtMjYyLDYgKzI2Miw4IEBAIHN0YXRpYyBp
bmxpbmUgY29uc3QgY2hhciogc3RyaW5nRm9yQ1BVU2FtcGxpbmdBY3Rpdml0eVN0YXRlKEFjdGl2
aXR5U3RhdGVGb3JDUFVTCiAgICAgY2FzZSBBY3Rpdml0eVN0YXRlRm9yQ1BVU2FtcGxpbmc6OlZp
c2libGVBbmRBY3RpdmU6CiAgICAgICAgIHJldHVybiAiVmlzaWJsZUFuZEFjdGl2ZSI7CiAgICAg
fQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKaW5kZXggZDEzMjRmNjlmZDUwN2NkMGM5NTZkYTlmMzY0NGY0NTJlNzQ1ZTY4Ni4uZjRhNTNm
NzhhOWFmMDdiNjYyZjU5ZmE1YjAyNzY2MmE4M2ZkZTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQyNSwxNSArNDI1LDE2IEBAIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgLCBtX3ByZWxvYWQocGxheWVyLT5wcmVsb2FkKCkpCiAg
ICAgLCBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3MoTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKQogICAgICwgbV9kcmF3VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZXBhaW50KQotICAgICwgbV9yZWFkeVRpbWVySGFu
ZGxlcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnJlYWR5VGltZXJGaXJlZAotKQorICAgICwgbV9yZWFkeVRpbWVySGFuZGxlcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlYWR5VGltZXJGaXJl
ZCkKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgLCBt
X25pY29zaWFMYXllcihOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250
ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQogI2Vsc2UK
ICAgICAsIG1fcGxhdGZvcm1MYXllclByb3h5KGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5KCkpKQogI2VuZGlmCi0jZW5kaWYgICAgICAKKyNlbmRpZgorICAgICwg
bV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlm
aWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCiB7CiAjaWYgVVNFKEdMSUIp
CiAgICAgbV9yZWFkeVRpbWVySGFuZGxlci5zZXRQcmlvcml0eShHX1BSSU9SSVRZX0RFRkFVTFRf
SURMRSk7CkBAIC0zODM2LDYgKzM4MzcsMTEgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmV4dGVuZGVkU3VwcG9ydHNUeXBlKGNvbnMKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCitXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjpMb2dN
ZWRpYTsKK30KKwogfQogCiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBhYmViODU3YTdmZGU1NGEyNzll
ZmM1ZDU4OGU4ZDMyYzY5ZWRmMmE4Li5mNjYwYmY0ODk1OTA0NjUzMWE4MTFhOTVkMDlmY2ZjYTVi
ZTczOWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNs
dWRlICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1
ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtMTE1LDcgKzEx
Nyw5IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOwogdm9pZCByZWdpc3Rlcldl
YktpdEdTdHJlYW1lckVsZW1lbnRzKCk7CiAKIC8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBm
b3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNpbmNlIHdlIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIGFu
b3RoZXIgdGhyZWFkLgotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFn
ZXI+CitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4K
KyAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQog
I2lmIFVTRShOSUNPU0lBKQogICAgICwgcHVibGljIE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1
cmVNYXBwZXJJbXBsOjpDbGllbnQKQEAgLTIyNiw2ICsyMzAsMTQgQEAgcHVibGljOgogICAgIHZv
aWQgZmx1c2hDdXJyZW50QnVmZmVyKCk7CiAjZW5kaWYKIAorICAgIGNvbnN0IExvZ2dlciYgbG9n
Z2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KKyAgICBjb25zdCBjaGFyKiBs
b2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyIjsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPihtX2xvZ0lkZW50aWZpZXIp
OyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IG92ZXJyaWRlOworCisg
ICAgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4gbG9nSWRl
bnRpZmllcigpOyB9CisgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIHsgcmV0
dXJuIGxvZ2dlcigpOyB9CisKIHByb3RlY3RlZDoKICAgICBlbnVtIE1haW5UaHJlYWROb3RpZmlj
YXRpb24gewogICAgICAgICBWaWRlb0NoYW5nZWQgPSAxIDw8IDAsCkBAIC01MjksNiArNTQxLDgg
QEAgcHJpdmF0ZToKICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAg
IEdVbmlxdWVQdHI8c3RydWN0IHdwZV92aWRlb19wbGFuZV9kaXNwbGF5X2RtYWJ1Zl9zb3VyY2U+
IG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWY7CiAjZW5kaWYKKyAgICBSZWY8Y29uc3QgTG9n
Z2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcAppbmRleCA2YzQyNTBkZjA1MWIw
YWRhZDViODkyMDkxODU1YjMxZDNlODkzMGU1Li5jMWI2YjM0ZjY4NmY0Y2Y3MmZlNjEyNTMyMDQy
NDRkODU3ZmU0ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL0NETVByb3h5Q2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktleS5jcHAKQEAg
LTE3MSw3ICsxNzEsMTEgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdFN1YnNh
bXBsZWQoY2VuY0RlY3J5cHRDb250ZXh0JiBpbnB1dCkKICAgICAgICAgICAgIExPRyhFTUUsICJF
TUUgLSBzdWJzYW1wbGUgaW5kZXggJXUgLSAldSBieXRlcyBlbmNyeXB0ZWQgKCVsdSBieXRlcyBs
ZWZ0IHRvIGRlY3J5cHQpIiwgc3Vic2FtcGxlSW5kZXgsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5
dGVzLCBpbnB1dC5lbmNyeXB0ZWRCdWZmZXJTaXplSW5CeXRlcyAtIGVuY3J5cHRlZEJ1ZmZlckJ5
dGVPZmZzZXQpOwogCiAgICAgICAgICAgICBpZiAoZ2NyeV9lcnJvcl90IGNpcGhlckVycm9yID0g
Z2NyeV9jaXBoZXJfZGVjcnlwdChtX2djcnlIYW5kbGUsIGlucHV0LmVuY3J5cHRlZEJ1ZmZlciAr
IGVuY3J5cHRlZEJ1ZmZlckJ5dGVPZmZzZXQsIHN1YnNhbXBsZU51bUVuY3J5cHRlZEJ5dGVzLCAw
LCAwKSkgeworI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgICAgICAgICBMT0coRU1FLCAiRU1F
IC0gQ0RNUHJveHlDbGVhcktleSAtIEVSUk9SKGdjcnlfY2lwaGVyX2RlY3J5cHQpOiAlcyIsIGdw
Z19zdHJlcnJvcihjaXBoZXJFcnJvcikpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBVTlVTRURf
VkFSSUFCTEUoY2lwaGVyRXJyb3IpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgfQogCkBAIC0xOTMsNyArMTk3LDExIEBAIGJvb2wgQ0RNUHJveHlD
bGVhcktleTo6Y2VuY0RlY3J5cHQoQ0RNUHJveHlDbGVhcktleTo6Y2VuY0RlY3J5cHRDb250ZXh0
JiBpbnB1dCkKIHZvaWQgQ0RNUHJveHlDbGVhcktleTo6aW5pdGlhbGl6ZUdjcnlwdCgpCiB7CiAg
ICAgaWYgKGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfY2lwaGVyX29wZW4oJm1fZ2NyeUhhbmRs
ZSwgR0NSWV9DSVBIRVJfQUVTMTI4LCBHQ1JZX0NJUEhFUl9NT0RFX0NUUiwgR0NSWV9DSVBIRVJf
U0VDVVJFKSkgeworI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENE
TVByb3h5Q2xlYXJLZXkgLSBFUlJPUihnY3J5X2NpcGhlcl9vcGVuKTogJXMiLCBncGdfc3RyZXJy
b3IoZXJyb3IpKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShlcnJvcik7CisjZW5k
aWYKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoZmFsc2UgJiYgIlNob3VsZCBub3QgZ2V0IHRoaXMg
ZmFyIHdpdGggYSBmdW5jdGlvbmFsIEdDcnlwdCEiKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lck1TRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaAppbmRleCA1ZDEw
MTNmY2JlZjA1NzkzNDgwYmIzOGVkZWZlNGI2NGYwYWNmNDJjLi40ZTA4YjVkZGY1YThhYzMwYTg0
MWFjMGRmOGMzNWEzNzAyNjUyMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgog
ICAgIHZvaWQgYmxvY2tEdXJhdGlvbkNoYW5nZXMoKTsKICAgICB2b2lkIHVuYmxvY2tEdXJhdGlv
bkNoYW5nZXMoKTsKIAorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBXZWJDb3JlOjpMb2dNZWRpYVNvdXJjZTsgfQorCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBNZWRpYVBsYXllckZhY3RvcnlHU3RyZWFtZXJNU0U7CiAgICAgc3RhdGljIHZv
aWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZl
SGFzaD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5k
ZXggZTYyY2Q1NmE4NDZiMzQ3NjEyMzQ0ODM1MjVhMmU2YTBmYjY4MGU1My4uYzhmNTgwNTZlYWQ0
NWRlNjE1YTg4MmMxYjkzZjkyYzQxOTJlMDZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRp
YVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKSAmJiBVU0UoR1NUUkVBTUVSKQogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaCIKQEAgLTYwLDE3ICs2MSwyMyBAQCBN
ZWRpYVNvdXJjZUdTdHJlYW1lcjo6TWVkaWFTb3VyY2VHU3RyZWFtZXIoTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50JiBtZWRpYVNvdXJjZQogICAgICwgbV9jbGllbnQoTWVkaWFTb3VyY2VDbGllbnRH
U3RyZWFtZXJNU0U6OmNyZWF0ZShwbGF5ZXJQcml2YXRlKSkKICAgICAsIG1fbWVkaWFTb3VyY2Uo
bWVkaWFTb3VyY2UpCiAgICAgLCBtX3BsYXllclByaXZhdGUocGxheWVyUHJpdmF0ZSkKKyNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKG1fcGxheWVyUHJpdmF0ZS5tZWRp
YVBsYXllckxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKG1fcGxheWVyUHJpdmF0ZS5t
ZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgogewogfQogCiBNZWRpYVNvdXJjZUdT
dHJlYW1lcjo6fk1lZGlhU291cmNlR1N0cmVhbWVyKCkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIpOwogICAgIGZvciAoYXV0byYgc291cmNlQnVmZmVyUHJpdmF0ZSA6IG1fc291cmNl
QnVmZmVycykKICAgICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZS0+Y2xlYXJNZWRpYVNvdXJjZSgp
OwogfQogCiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6QWRkU3RhdHVzIE1lZGlhU291cmNlR1N0cmVh
bWVyOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBSZWZQ
dHI8U291cmNlQnVmZmVyUHJpdmF0ZT4mIHNvdXJjZUJ1ZmZlclByaXZhdGUpCiB7CisgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIsIGNvbnRlbnRUeXBlKTsKICAgICBzb3VyY2VCdWZmZXJQcml2
YXRlID0gU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKHRoaXMsIG1fY2xpZW50
LmdldCgpLCBjb250ZW50VHlwZSk7CiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI+IHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgPSBzdGF0aWNfY2FzdDxTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyKj4oc291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKSk7CiAgICAg
bV9zb3VyY2VCdWZmZXJzLmFkZChzb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKTsKQEAgLTEz
NSw1ICsxNDIsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFT
b3VyY2VHU3RyZWFtZXI6OmJ1ZmZlcmVkKCkKICAgICByZXR1cm4gbV9tZWRpYVNvdXJjZS0+YnVm
ZmVyZWQoKTsKIH0KIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorV1RGTG9nQ2hhbm5lbCYg
TWVkaWFTb3VyY2VHU3RyZWFtZXI6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBM
b2dNZWRpYVNvdXJjZTsKK30KKworI2VuZGlmCisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdT
dHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5oCmluZGV4IGM5YTA5ZmEwNDM5ZmVmOGViOGRiNzUwNWZj
YmM5N2UwNTIzNzhlYTYuLjUxY2FiMmUzZWYyZjg2MTJhY2RmMGY2ODBiNWE4MGM1YWExNzJlOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmgKQEAgLTM5LDYgKzM5
LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9XZWJL
aXRNZWRpYVNyYyBXZWJLaXRNZWRpYVNyYzsKIApAQCAtNTAsNyArNTEsMTEgQEAgY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOwogY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOwog
CiAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgY2FsbGVkIE1lZGlhU291cmNlUHJpdmF0ZUdTdHJl
YW1lcj8KLWNsYXNzIE1lZGlhU291cmNlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIE1lZGlhU291
cmNlUHJpdmF0ZSB7CitjbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBN
ZWRpYVNvdXJjZVByaXZhdGUKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIHByaXZh
dGUgTG9nZ2VySGVscGVyCisjZW5kaWYKK3sKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBvcGVu
KE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCYsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RSYpOwogICAgIHZpcnR1YWwgfk1lZGlhU291cmNlR1N0cmVhbWVyKCk7CkBAIC03Myw2ICs3OCwx
NSBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBi
dWZmZXJlZCgpOwogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgTG9nZ2Vy
JiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQorICAgIGNvbnN0IGNo
YXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVNvdXJjZVBy
aXZhdGVHU3RyZWFtZXIiOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxv
Z0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKworICAgIGNvbnN0IHZvaWQqIG5leHRTb3VyY2VCdWZm
ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4gY2hpbGRMb2dJZGVudGlmaWVyKG1fbG9nSWRlbnRp
ZmllciwgKyttX25leHRTb3VyY2VCdWZmZXJJRCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IE1lZGlhU291cmNlR1N0cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCYsIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lck1TRSYpOwogCkBAIC04MSw2ICs5NSwxMSBAQCBwcml2YXRlOgog
ICAgIFJlZjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRT4gbV9jbGllbnQ7CiAgICAgUmVm
PE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudD4gbV9tZWRpYVNvdXJjZTsKICAgICBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJNU0UmIG1fcGxheWVyUHJpdmF0ZTsKKyNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lk
KiBtX2xvZ0lkZW50aWZpZXI7CisgICAgdWludDY0X3QgbV9uZXh0U291cmNlQnVmZmVySUQgeyAw
IH07CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDdjMWU3OTkxNmQ5M2Y4YWYxMTFkY2E4M2Fk
NTJjNWM0ZTVjOGY3ZmQuLjcyMGQzNDRmZmQyY2M2OWUxMzA5YzIzYTUwZTQwZmU1MTY2MDRiNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyLmNwcApAQCAtNTgsNiArNTgsMTAgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVNvdXJjZUdTdHJlYW1lcioKICAgICAs
IG1fbWVkaWFTb3VyY2UobWVkaWFTb3VyY2UpCiAgICAgLCBtX3R5cGUoY29udGVudFR5cGUpCiAg
ICAgLCBtX2NsaWVudChjbGllbnQuZ2V0KCkpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisg
ICAgLCBtX2xvZ2dlcihtZWRpYVNvdXJjZS0+bG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZp
ZXIobWVkaWFTb3VyY2UtPm5leHRTb3VyY2VCdWZmZXJMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYK
IHsKIH0KIApAQCAtMTc3LDUgKzE4MSwxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI6OmFwcGVuZFBhcnNpbmdGYWlsZWQoKQogICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAorI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorV1RGTG9nQ2hhbm5lbCYgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hh
bm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOworfQorI2VuZGlmCisK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuaAppbmRleCBlNWZlNDA2OGE4MmE3ZDIyZWNmOTQ1N2ZkZTJiOThlMTE3Y2I5MGI0
Li41MzIxZGRjYTVlMzQ0ZTQ2M2IyMGQxOGY3YTVmM2IxOWM1NDQwMDE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNDEsMTIg
KzQxLDE3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlNv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZUdT
dHJlYW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZWRpYVNvdXJjZUdTdHJlYW1lcjsKIAotY2xhc3MgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsK
K2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgU291cmNl
QnVmZmVyUHJpdmF0ZQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHJpdmF0ZSBM
b2dnZXJIZWxwZXIKKyNlbmRpZgorewogCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGUoTWVkaWFTb3VyY2VHU3RyZWFtZXIqLCBSZWY8
TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+LCBjb25zdCBDb250ZW50VHlwZSYpOwpAQCAt
NzksNiArODQsMTUgQEAgcHVibGljOgogCiAgICAgQ29udGVudFR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3Qg
TG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQor
ICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyIjsgfQorICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50
aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBXVEZM
b2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisgICAgY29uc3QgTG9nZ2VyJiBz
b3VyY2VCdWZmZXJMb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQorICAg
IGNvbnN0IHZvaWQqIHNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSBmaW5hbCB7IHJldHVybiBs
b2dJZGVudGlmaWVyKCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIoTWVkaWFTb3VyY2VHU3RyZWFtZXIqLCBSZWY8TWVkaWFTb3VyY2VDbGll
bnRHU3RyZWFtZXJNU0U+LCBjb25zdCBDb250ZW50VHlwZSYpOwogICAgIGZyaWVuZCBjbGFzcyBN
ZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTsKQEAgLTkwLDYgKzEwNCwxMSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXMgPSB0cnVlOwogICAgIGJvb2wgbV9u
b3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IGZhbHNlOwogICAgIEF0b21TdHJpbmcgbV90
cmFja0lkOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dl
cj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKaW5kZXggYjUx
NjQ5YTBhOGQ1ZmU3ZDM0YjE5MWM2Zjg5MWFmNDAyOWU2YjQ4MS4uNTFmMDVkODUyZGViN2RkOWVm
ODBmOGZjMzI5NTI5YmNmMDQyZjIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YS5oIgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAx
YzQwOTM5YjhjYTk0Y2VkNjg4NGMzNzYxNDVkMDVjOTRiZDhjY2UyLi42NGRiMmI0ZTFkZDYwMGRi
NzExYTE4ODE2ODE3NTcwYjQyNDkzZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5jcHAKQEAgLTE1Nyw2ICsxNTcsOCBAQCBzdGF0aWMgcnRjOjpMb2dnaW5nU2V2ZXJpdHkg
Y29tcHV0ZUxvZ0xldmVsKCkKICAgICBjYXNlIFdURkxvZ0xldmVsOjpEZWJ1ZzoKICAgICAgICAg
cmV0dXJuIHJ0Yzo6TFNfVkVSQk9TRTsKICAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gcnRjOjpMU19OT05FOwogI2Vsc2UKICAgICByZXR1cm4gcnRj
OjpMU19OT05FOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggOTE0ZTEwZTdlYjc3YWQxYjZmZGU4YTRhNDRjYTNhMTlkYzVmOGQzYS4uNGZkYmJhYjg4OWNl
MTljMzM3N2QxNzMzMWMzOTNiZDBkYjAyZTI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtNDcxLDYgKzQ3MSw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJCiAg
ICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGNvb2tpZXMoc291cF9jb29raWVfamFyX2dldF9jb29raWVf
bGlzdChjb29raWVTdG9yYWdlKCksIHVyaS5nZXQoKSwgVFJVRSkpOwogICAgIFVOVVNFRF9QQVJB
TShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oc2FtZVNpdGVJbmZvKTsKKyAgICBVTlVT
RURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAjZW5kaWYKICAgICBpZiAoIWNvb2tpZXMpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGRmZjBlYTZh
ODdkZmEyOTRkYWM2NTRjM2EwNzljMGYxODZmN2U1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L2NtYWtlL0ZpbmRTeXN0ZW1kLmNtYWtlCkBAIC0wLDAgKzEsOTEgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI1s9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVsucnN0OgorRmlu
ZFN5c3RlbWQKKy0tLS0tLS0tLS0tCisKK0ZpbmQgU3lzdGVtZCBoZWFkZXJzIGFuZCBsaWJyYXJp
ZXMuCisKK0ltcG9ydGVkIFRhcmdldHMKK15eXl5eXl5eXl5eXl5eXl4KKworYGBTeXN0ZW1kOjpT
eXN0ZW1kYGAKKyAgVGhlIFN5c3RlbWQgbGlicmFyeSwgaWYgZm91bmQuCisKK1Jlc3VsdCBWYXJp
YWJsZXMKK15eXl5eXl5eXl5eXl5eXl4KKworVGhpcyB3aWxsIGRlZmluZSB0aGUgZm9sbG93aW5n
IHZhcmlhYmxlcyBpbiB5b3VyIHByb2plY3Q6CisKK2BgU3lzdGVtZF9GT1VORGBgCisgIHRydWUg
aWYgKHRoZSByZXF1ZXN0ZWQgdmVyc2lvbiBvZikgU3lzdGVtZCBpcyBhdmFpbGFibGUuCitgYFN5
c3RlbWRfVkVSU0lPTmBgCisgIHRoZSB2ZXJzaW9uIG9mIFN5c3RlbWQuCitgYFN5c3RlbWRfTElC
UkFSSUVTYGAKKyAgdGhlIGxpYnJhcmllcyB0byBsaW5rIGFnYWluc3QgdG8gdXNlIFN5c3RlbWQu
CitgYFN5c3RlbWRfSU5DTFVERV9ESVJTYGAKKyAgd2hlcmUgdG8gZmluZCB0aGUgU3lzdGVtZCBo
ZWFkZXJzLgorYGBTeXN0ZW1kX0NPTVBJTEVfT1BUSU9OU2BgCisgIHRoaXMgc2hvdWxkIGJlIHBh
c3NlZCB0byB0YXJnZXRfY29tcGlsZV9vcHRpb25zKCksIGlmIHRoZQorICB0YXJnZXQgaXMgbm90
IHVzZWQgZm9yIGxpbmtpbmcKKworI109PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PV0KKworaW5jbHVkZShGaW5kUGtn
Q29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfU1lTVEVNRCBRVUlFVCBsaWJzeXN0ZW1kKQor
c2V0KFN5c3RlbWRfQ09NUElMRV9PUFRJT05TICR7UENfU1lTVEVNRF9DRkxBR1NfT1RIRVJ9KQor
c2V0KFN5c3RlbWRfVkVSU0lPTiAke1BDX1NZU1RFTURfVkVSU0lPTn0pCisKK2ZpbmRfcGF0aChT
eXN0ZW1kX0lOQ0xVREVfRElSCisgICAgTkFNRVMgc3lzdGVtZC9zZC1qb3VybmFsLmgKKyAgICBI
SU5UUyAke1BDX1NZU1RFTURfSU5DTFVERURJUn0gJHtQQ19TWVNURU1EX0lOQ0xVREVfRElSU30K
KykKKworZmluZF9saWJyYXJ5KFN5c3RlbWRfTElCUkFSWQorICAgIE5BTUVTICR7U3lzdGVtZF9O
QU1FU30gc3lzdGVtZAorICAgIEhJTlRTICR7UENfU1lTVEVNRF9MSUJESVJ9ICR7UENfU1lTVEVN
RF9MSUJSQVJZX0RJUlN9CispCisKK2luY2x1ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFy
Z3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3MoU3lzdGVtZAorICAgIEZPVU5E
X1ZBUiBTeXN0ZW1kX0ZPVU5ECisgICAgUkVRVUlSRURfVkFSUyBTeXN0ZW1kX0xJQlJBUlkgU3lz
dGVtZF9JTkNMVURFX0RJUgorICAgIFZFUlNJT05fVkFSIFN5c3RlbWRfVkVSU0lPTgorKQorCitp
ZiAoU3lzdGVtZF9MSUJSQVJZIEFORCBOT1QgVEFSR0VUIFN5c3RlbWQ6OlN5c3RlbWQpCisgICAg
YWRkX2xpYnJhcnkoU3lzdGVtZDo6U3lzdGVtZCBVTktOT1dOIElNUE9SVEVEIEdMT0JBTCkKKyAg
ICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoU3lzdGVtZDo6U3lzdGVtZCBQUk9QRVJUSUVTCisgICAg
ICAgIElNUE9SVEVEX0xPQ0FUSU9OICIke1N5c3RlbWRfTElCUkFSWX0iCisgICAgICAgIElOVEVS
RkFDRV9DT01QSUxFX09QVElPTlMgIiR7U3lzdGVtZF9DT01QSUxFX09QVElPTlN9IgorICAgICAg
ICBJTlRFUkZBQ0VfSU5DTFVERV9ESVJFQ1RPUklFUyAiJHtTeXN0ZW1kX0lOQ0xVREVfRElSfSIK
KyAgICApCitlbmRpZiAoKQorCittYXJrX2FzX2FkdmFuY2VkKFN5c3RlbWRfSU5DTFVERV9ESVIg
U3lzdGVtZF9MSUJSQVJZKQorCitpZiAoU3lzdGVtZF9GT1VORCkKKyAgICBzZXQoU3lzdGVtZF9M
SUJSQVJJRVMgJHtTeXN0ZW1kX0xJQlJBUll9KQorICAgIHNldChTeXN0ZW1kX0lOQ0xVREVfRElS
UyAke1N5c3RlbWRfSU5DTFVERV9ESVJ9KQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5k
ZXggNWNiMmVjMWVjOWZkYWM3MTA5ZDEwMjc1YmY0ZDcwODhkMmMyYTY4Ni4uYjcwYWFiY2I1Y2Y2
MjZhNjdiZjE3N2Y5M2M5M2RjOGZjOWQ0MTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09w
dGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTg3
LDYgKzg3LDcgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0xJQlNFQ1JFVCAiV2hldGhlciB0
byBlbmFibGUgdGhlIHBlcnNpc3RlbnQgY3JlZGVudGlhbAogV0VCS0lUX09QVElPTl9ERUZJTkUo
VVNFX09QRU5KUEVHICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBKUEVHMjAwMCBpbWFn
ZXMuIiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfV09GRjIgIldoZXRoZXIg
dG8gZW5hYmxlIHN1cHBvcnQgZm9yIFdPRkYyIFdlYiBGb250cy4iIFBVQkxJQyBPTikKIFdFQktJ
VF9PUFRJT05fREVGSU5FKFVTRV9XUEVfUkVOREVSRVIgIldoZXRoZXIgdG8gZW5hYmxlIFdQRSBy
ZW5kZXJpbmciIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGSU5FKFVTRV9TWVNURU1EICJX
aGV0aGVyIHRvIGVuYWJsZSBzZC1qb3VybmFsIGxvZ2dpbmciIFBVQkxJQyBPTikKIAogIyBQcml2
YXRlIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIEdUSyBwb3J0LiBDaGFuZ2luZyB0aGVzZSBvcHRp
b25zIGlzCiAjIGNvbXBsZXRlbHkgdW5zdXBwb3J0ZWQuIFRoZXkgYXJlIGludGVuZGVkIGZvciB1
c2Ugb25seSBieSBXZWJLaXQgZGV2ZWxvcGVycy4KQEAgLTM4Niw2ICszODcsMTYgQEAgaWYgKFVT
RV9XT0ZGMikKICAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAoraWYgKFVTRV9TWVNURU1EKQorICAg
IGZpbmRfcGFja2FnZShTeXN0ZW1kKQorICAgIGlmIChTeXN0ZW1kX0ZPVU5EKQorICAgICAgICBt
ZXNzYWdlKFNUQVRVUyAiUmVsZWFzZSBsb2dzIHdpbGwgYmUgc2VudCB0byB0aGUgU3lzdGVtZCBq
b3VybmFsIikKKyAgICAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0pPVVJOQUxEIFRS
VUUpCisgICAgZWxzZSAoKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJsaWJzeXN0ZW1k
IGlzIG5lZWRlZCBmb3IgVVNFX1NZU1RFTUQiKQorICAgIGVuZGlmICgpCitlbmRpZiAoKQorCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIyNDcKIGlmIChFTkFC
TEVEX0NPTVBJTEVSX1NBTklUSVpFUlMpCiAgICAgc2V0KEVOQUJMRV9JTlRST1NQRUNUSU9OIE9G
RikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2Nt
YWtlL09wdGlvbnNXUEUuY21ha2UKaW5kZXggZGZmNjQ5MWE3MzQwZjFiMzVjZTBjYzI4MTI3ZDJj
NzQxNjU2NTY2MC4uYzFjNDdlZDBkMDIyODVlMjlkY2JjNGVkNDY0NGVkNDYzZTdkOWJiZCAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L09wdGlvbnNXUEUuY21ha2UKQEAgLTczLDYgKzczLDcgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX0dUS0RPQyAiV2hldGhlciBvciBub3QgdG8gdXNlIGdlbmVyYXRlIGd0a2RvYy4iIFBV
QkwKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9PUEVOSlBFRyAiV2hldGhlciB0byBlbmFibGUg
c3VwcG9ydCBmb3IgSlBFRzIwMDAgaW1hZ2VzLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9E
RUZJTkUoVVNFX1dPRkYyICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBXT0ZGMiBXZWIg
Rm9udHMuIiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV1BFX1FUX0FQ
SSAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3IgdGhlIFF0NS9RTUwgcGx1Z2luIiBQVUJM
SUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1NZU1RFTUQgIldoZXRoZXIgdG8gZW5h
YmxlIHNkLWpvdXJuYWwgbG9nZ2luZyIgUFVCTElDIE9OKQogCiAjIFByaXZhdGUgb3B0aW9ucyBz
cGVjaWZpYyB0byB0aGUgV1BFIHBvcnQuCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfR1NUUkVB
TUVSX0hPTEVQVU5DSCAiV2hldGhlciB0byBlbmFibGUgR1N0cmVhbWVyIGhvbGVwdW5jaCIgUFJJ
VkFURSBPRkYpCkBAIC0xNzEsNiArMTcyLDE2IEBAIGlmIChFTkFCTEVfV1BFX1FUX0FQSSBPUiBV
U0VfV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAgIGZpbmRfcGFja2FnZShXUEVC
YWNrZW5kX2ZkbyAxLjUuMCBSRVFVSVJFRCkKIGVuZGlmICgpCiAKK2lmIChVU0VfU1lTVEVNRCkK
KyAgICBmaW5kX3BhY2thZ2UoU3lzdGVtZCkKKyAgICBpZiAoU3lzdGVtZF9GT1VORCkKKyAgICAg
ICAgbWVzc2FnZShTVEFUVVMgIlJlbGVhc2UgbG9ncyB3aWxsIGJlIHNlbnQgdG8gdGhlIFN5c3Rl
bWQgam91cm5hbCIpCisgICAgICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9KT1VSTkFM
RCBUUlVFKQorICAgIGVsc2UgKCkKKyAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAibGlic3lz
dGVtZCBpcyBuZWVkZWQgZm9yIFVTRV9TWVNURU1EIikKKyAgICBlbmRpZiAoKQorZW5kaWYgKCkK
KwogYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV1BFX189MSkKIGFkZF9kZWZpbml0aW9ucygt
REdFVFRFWFRfUEFDS0FHRT0iV1BFIikKIGFkZF9kZWZpbml0aW9ucygtREpTQ19HTElCX0FQSV9F
TkFCTEVEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzIGIvVG9v
bHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzCmluZGV4IDZmZDU2NmYwZGNmM2M1MTQyZjY5MGZl
MmIzOTNhNmUwM2U3OWUzYTMuLmJhNjIyNzNlNDZjODg3ZTgwMGE3ZWY3YWM1OGEwNjkzYzY1ZjAy
MjMgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcworKysgYi9Ub29s
cy9ndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMKQEAgLTEzMyw2ICsxMzMsNyBAQCBmdW5jdGlvbiBp
bnN0YWxsRGVwZW5kZW5jaWVzV2l0aEFwdCB7CiAgICAgICAgIGxpYnNvdXAyLjQtZGV2IFwKICAg
ICAgICAgbGlic3FsaXRlMy1kZXYgXAogICAgICAgICBsaWJzcnRwMi1kZXYgXAorICAgICAgICBs
aWJzeXN0ZW1kLWRldiBcCiAgICAgICAgIGxpYnRhc24xLTYtZGV2IFwKICAgICAgICAgbGlidGhl
b3JhLWRldiBcCiAgICAgICAgIGxpYnRvb2wgXApAQCAtMzA3LDYgKzMwOCw3IEBAIGZ1bmN0aW9u
IGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoUGFjbWFuIHsKICAgICAgICAgbGlic2VjcmV0IFwKICAg
ICAgICAgbGlic291cCBcCiAgICAgICAgIGxpYnNydHAgXAorICAgICAgICBsaWJzeXN0ZW1kIFwK
ICAgICAgICAgc3FsaXRlIFwKICAgICAgICAgbGlidGFzbjEgXAogICAgICAgICBsaWJ0aGVvcmEg
XApAQCAtNDY3LDYgKzQ2OSw3IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoRG5m
IHsKICAgICAgICAgbGlic2VjcmV0LWRldmVsIFwKICAgICAgICAgbGlic291cC1kZXZlbCBcCiAg
ICAgICAgIGxpYnNydHAtZGV2ZWwgXAorICAgICAgICBsaWJzeXN0ZW1kLWRldmVsIFwKICAgICAg
ICAgbGlidGFzbjEtZGV2ZWwgXAogICAgICAgICBsaWJ0aGVvcmEtZGV2ZWwgXAogICAgICAgICBs
aWJ2NGwtZGV2ZWwgXApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2luc3RhbGwtZGVwZW5kZW5jaWVz
IGIvVG9vbHMvd3BlL2luc3RhbGwtZGVwZW5kZW5jaWVzCmluZGV4IGNhMWNkM2ZkZWYwY2FmNjQ2
NjgyM2U1YThlZDkyYjQ0N2M0OTBhYTEuLmU0MjhjZDJhYTUyMGQ2MWIwN2I1NWU0NGM0ODMxMjYx
YmRmMjZhN2EgMTAwNzU1Ci0tLSBhL1Rvb2xzL3dwZS9pbnN0YWxsLWRlcGVuZGVuY2llcworKysg
Yi9Ub29scy93cGUvaW5zdGFsbC1kZXBlbmRlbmNpZXMKQEAgLTgxLDYgKzgxLDcgQEAgZnVuY3Rp
b24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhBcHQgewogICAgICAgICAkKGFwdElmRWxzZSBsaWJw
bmctZGV2IGxpYnBuZzEyLWRldikgXAogICAgICAgICBsaWJzZWNjb21wLWRldiBcCiAgICAgICAg
IGxpYnNxbGl0ZTMtZGV2IFwKKyAgICAgICAgbGlic3lzdGVtZC1kZXYgXAogICAgICAgICBsaWJ0
YXNuMS02LWRldiBcCiAgICAgICAgIGxpYnRvb2wgXAogICAgICAgICBsaWJ3ZWJwLWRldiBcCkBA
IC0xOTIsNiArMTkzLDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhQYWNtYW4g
ewogICAgICAgICBydWJ5CiAgICAgICAgIHNlZCBcCiAgICAgICAgIHNxbGl0ZSBcCisgICAgICAg
IGxpYnN5c3RlbWQgXAogICAgICAgICB0ZXhpbmZvIFwKICAgICAgICAgd2hpY2ggXAogICAgICAg
ICB6bGliIFwKQEAgLTI5MSw2ICsyOTMsNyBAQCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVz
V2l0aERuZiB7CiAgICAgICAgIGxpYmpwZWctdHVyYm8tZGV2ZWwgXAogICAgICAgICBsaWJwbmct
ZGV2ZWwgXAogICAgICAgICBsaWJzZWNjb21wLWRldmVsIFwKKyAgICAgICAgbGlic3lzdGVtZC1k
ZXZlbCBcCiAgICAgICAgIGxpYnRhc24xLWRldmVsIFwKICAgICAgICAgbGlidG9vbCBcCiAgICAg
ICAgIGxpYndlYnAtZGV2ZWwgXApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IGZhMGExMmRmZTI4YjEyYTBkYjU5YzI5OTA0MjI4NDE4YjQ4YjI5NzguLmU3ZDRiMmY5ODE0
YTE4OTJlZGIxNjkzY2VlNjgyYjQyZjg2NDk0OTYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysg
Yi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wMi0xOSAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVMRUFTRV9MT0cgc2hvdWxkIG5v
dCBiZSBDb2NvYSBzcGVjaWZpYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk1MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgbmV3IEVOQUJMRV9SRUxFQVNFX0xPR0dJTkcgQ01ha2Ugb3B0aW9u
LCBlbmFibGVkIGJ5IGRlZmF1bHQKKyAgICAgICAgaW4gdGhlIEdUSyBhbmQgV1BFIHBvcnRzLiBX
aGVuIHRoaXMgaXMgZW5hYmxlZCwgcmVsZWFzZSBsb2dzIHdpbGwKKyAgICAgICAgYmUgc2VudCB0
byB0aGUgU3lzdGVtZCBKb3VybmFsLiBUbyByZXRyaWV2ZSBtZWRpYSBsb2dzIGZvcgorICAgICAg
ICBpbnN0YW5jZSwgdGhpcyBjb21tYW5kIGNhbiBiZSB1c2VkOgorCisgICAgICAgICQgam91cm5h
bGN0bCBTVUJTWVNURU09V2ViS2l0R1RLIENIQU5ORUw9TWVkaWEKKworICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9GaW5kU3lzdGVtZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtl
L09wdGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21h
a2U6CisKIDIwMjAtMDMtMTQgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5v
cmc+CiAKICAgICAgICAgW0NNYWtlXSBXYXJuaW5nIHdoZW4gY2NhY2hlIGlzIG5vdCBpbnN0YWxs
ZWQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393740</attachid>
            <date>2020-03-17 03:28:30 -0700</date>
            <delta_ts>2020-03-17 04:03:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195182-20200317102828.patch</filename>
            <type>text/plain</type>
            <size>49289</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhMzAwOGRhMDI1MjM1NTFkOTI3N2Y4
YzA1MDc2MjY1OGI4OWY2NmMuLmQxODI0NzkzOTE3ZmE4NjYzZjM0Y2IyYzRiMGZkMDUyZjhlYWNm
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFTEVBU0VfTE9HIHNob3VsZCBub3QgYmUg
Q29jb2Egc3BlY2lmaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzZC1qb3VybmFsIGxvZ2dpbmcgc3VwcG9ydCBhbmQgd3JhcCB0aGUgb3NfbG9n
IGNhbGxzIHdpdGggdGhlIFVTRShPU19MT0cpIGd1YXJkLgorICAgICAgICAKKyAgICAgICAgKiB3
dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAg
KiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAgICAgICAgKiB3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dG9TdHJpbmcpOgor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1X
UEUuY21ha2U6CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIw
MjAtMDMtMTYgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgSmF2YVNjcmlwdCBpZGVudGlmaWVyIGdyYW1tYXIgc3VwcG9ydHMgdW5lc2NhcGVkIGFzdHJh
bCBzeW1ib2xzLCBidXQgSlNDIGRvZXNu4oCZdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYzNjEzNzFiMzI4M2Y3
ZDU2ZmZkNzhkMzEzOTFmZDk2NWM3ODA2YzkuLmU0YTcyMjgxNmVlNGM0OTcxMWMwMjI4ODU2YjJj
MjM1NDI1MzQyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMC0wMi0xOSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVMRUFTRV9M
T0cgc2hvdWxkIG5vdCBiZSBDb2NvYSBzcGVjaWZpYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV1BFL0dUSyBidWlsZCBmaXhlcyByZWxhdGVkIHdpdGgg
UmVsZWFzZSBsb2dnaW5nIHN1cHBvcnQuCisKKyAgICAgICAgKiBicmlkZ2UvbnBydW50aW1lX2lu
dGVybmFsLmg6CisgICAgICAgICogZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0aHJvdHRsaW5nUmVhc29uVG9TdHJpbmcpOgorICAgICAgICAq
IHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvU3RyaW5n
KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzdHJpbmdGb3JDUFVTYW1wbGluZ0FjdGl2aXR5U3RhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1lZGlhUGxheWVyTG9nSWRlbnRpZmll
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1lZGlh
UGxheWVyTG9nZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L0NETVByb3h5Q2xlYXJLZXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJveHlDbGVhcktl
eTo6Y2VuY0RlY3J5cHRTdWJzYW1wbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByb3h5Q2xl
YXJLZXk6OmluaXRpYWxpemVHY3J5cHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6TWVkaWFTb3VyY2VHU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VHU3RyZWFtZXI6On5NZWRpYVNv
dXJjZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZUdTdHJlYW1lcjo6
YWRkU291cmNlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlR1N0cmVhbWVy
Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlTG9nTGV2ZWwpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyBjb25zdCk6
CisKIDIwMjAtMDMtMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHU3RyZWFtZXJdW01TRV0gUGxheWJhY2sgcmF0ZSB1cGRhdGUgc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9Bc3NlcnRpb25zLmNwcAppbmRleCA5YWI3ODA5YTI1NmU2YmM0MDAwMGJhZGRiZDczZTBiN2Yw
NTQwN2QyLi40MDczZmQ1YmU5YjI1ODZlMmJjMjdiYWQwYTBjNTUyMGM3OTI4MjU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9B
c3NlcnRpb25zLmNwcApAQCAtNzQsNiArNzQsMTAgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNl
bmRpZgogCisjaWYgVVNFKEpPVVJOQUxEKQorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVh
bS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiBXVEZfQVRUUklCVVRFX1BSSU5URigx
LCAwKSBzdGF0aWMgU3RyaW5nIGNyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMoY29uc3QgY2hh
ciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCkBAIC01MjMsNyArNTI3LDcgQEAgc3RhdGljIHZvaWQg
c2V0U3RhdGVPZkFsbENoYW5uZWxzKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBj
aGFubmVsQ291bnQKIAogdm9pZCBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJp
bmcoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbHNbXSwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFyKiBs
b2dMZXZlbCkKIHsKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNpZiBVU0UoT1NfTE9HKSAm
JiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50
OyArK2kpIHsKICAgICAgICAgV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCA9IGNoYW5uZWxzW2ldOwog
ICAgICAgICBjaGFubmVsLT5vc0xvZ0NoYW5uZWwgPSBvc19sb2dfY3JlYXRlKGNoYW5uZWwtPnN1
YnN5c3RlbSwgY2hhbm5lbC0+bmFtZSk7CkBAIC01NzcsMTIgKzU4MSwyMyBAQCB2b2lkIFdURlJl
bGVhc2VMb2dTdGFja1RyYWNlKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwpCiAgICAgICAgIGZvciAo
aW50IGZyYW1lTnVtYmVyID0gMTsgZnJhbWVOdW1iZXIgPCBzdGFja1RyYWNlLT5zaXplKCk7ICsr
ZnJhbWVOdW1iZXIpIHsKICAgICAgICAgICAgIGF1dG8gc3RhY2tGcmFtZSA9IHN0YWNrW2ZyYW1l
TnVtYmVyXTsKICAgICAgICAgICAgIGF1dG8gZGVtYW5nbGVkID0gV1RGOjpTdGFja1RyYWNlOjpk
ZW1hbmdsZShzdGFja0ZyYW1lKTsKKyNpZiBVU0UoT1NfTE9HKQogICAgICAgICAgICAgaWYgKGRl
bWFuZ2xlZCAmJiBkZW1hbmdsZWQtPmRlbWFuZ2xlZE5hbWUoKSkKICAgICAgICAgICAgICAgICBv
c19sb2coY2hhbm5lbC0+b3NMb2dDaGFubmVsLCAiJS0zZCAlcCAle3B1YmxpY31zIiwgZnJhbWVO
dW1iZXIsIHN0YWNrRnJhbWUsIGRlbWFuZ2xlZC0+ZGVtYW5nbGVkTmFtZSgpKTsKICAgICAgICAg
ICAgIGVsc2UgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkpCiAgICAg
ICAgICAgICAgICAgb3NfbG9nKGNoYW5uZWwtPm9zTG9nQ2hhbm5lbCwgIiUtM2QgJXAgJXtwdWJs
aWN9cyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG9zX2xvZyhjaGFubmVsLT5vc0xv
Z0NoYW5uZWwsICIlLTNkICVwIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUpOworI2VsaWYgVVNF
KEpPVVJOQUxEKQorICAgICAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gb3V0OworICAgICAgICAg
ICAgaWYgKGRlbWFuZ2xlZCAmJiBkZW1hbmdsZWQtPmRlbWFuZ2xlZE5hbWUoKSkKKyAgICAgICAg
ICAgICAgICBvdXQucHJpbnRmKCIlLTNkICVwICVzIiwgZnJhbWVOdW1iZXIsIHN0YWNrRnJhbWUs
IGRlbWFuZ2xlZC0+ZGVtYW5nbGVkTmFtZSgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRlbWFu
Z2xlZCAmJiBkZW1hbmdsZWQtPm1hbmdsZWROYW1lKCkpCisgICAgICAgICAgICAgICAgb3V0LnBy
aW50ZigiJS0zZCAlcCAlcyIsIGZyYW1lTnVtYmVyLCBzdGFja0ZyYW1lLCBkZW1hbmdsZWQtPm1h
bmdsZWROYW1lKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG91dC5wcmlu
dGYoIiUtM2QgJXAiLCBmcmFtZU51bWJlciwgc3RhY2tGcmFtZSk7CisgICAgICAgICAgICBzZF9q
b3VybmFsX3NlbmQoIldFQktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLT5zdWJzeXN0ZW0sICJX
RUJLSVRfQ0hBTk5FTD0lcyIsIGNoYW5uZWwtPm5hbWUsICJNRVNTQUdFPSVzIiwgb3V0LnRvQ1N0
cmluZygpLmRhdGEoKSwgbnVsbHB0cik7CisjZW5kaWYKICAgICAgICAgfQogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuaAppbmRleCBiMWE3M2YwZDM1NzBiOWZjMTFlMWI5MTY5MjQyOGYwNmRlOGFjNDE2
Li40NDIwYjIwNTU4YjcwYTRiM2UzM2Q3OWQ5Y2JkNzUzYjRkYTMwNWUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5oCkBAIC01MSw2ICs1MSwxMSBAQAogI2luY2x1ZGUgPG9zL2xvZy5oPgogI2VuZGlmCiAKKyNp
ZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIFNEX0pPVVJOQUxfU1VQUFJFU1NfTE9DQVRJT04KKyNp
bmNsdWRlIDxzeXN0ZW1kL3NkLWpvdXJuYWwuaD4KKyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3Bs
dXMKICNpbmNsdWRlIDxjc3RkbGliPgogI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgpAQCAtOTEsNyAr
OTYsMTEgQEAgZXh0ZXJuICJDIiB2b2lkIF9SZWFkV3JpdGVCYXJyaWVyKHZvaWQpOwogI2VuZGlm
CiAKICNpZm5kZWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRElT
QUJMRUQgIShVU0UoT1NfTE9HKSkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRElTQUJMRUQgIShVU0Uo
T1NfTE9HKSB8fCBVU0UoSk9VUk5BTEQpKQorI2VuZGlmCisKKyNpZm5kZWYgVkVSQk9TRV9SRUxF
QVNFX0xPRworI2RlZmluZSBWRVJCT1NFX1JFTEVBU0VfTE9HIFVTRShKT1VSTkFMRCkKICNlbmRp
ZgogCiAjaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCkBAIC0xNTQsNiArMTYzLDggQEAgdHlw
ZWRlZiBzdHJ1Y3QgewogICAgIFdURkxvZ0xldmVsIGxldmVsOwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIHN1YnN5c3RlbTsKKyNlbmRpZgorI2lmIFVTRShPU19M
T0cpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIF9fdW5zYWZlX3VucmV0YWluZWQgb3Nf
bG9nX3Qgb3NMb2dDaGFubmVsOwogI2VuZGlmCiB9IFdURkxvZ0NoYW5uZWw7CkBAIC0xNjMsNyAr
MTc0LDEzIEBAIHR5cGVkZWYgc3RydWN0IHsKICNkZWZpbmUgSk9JTl9MT0dfQ0hBTk5FTF9XSVRI
X1BSRUZJWChwcmVmaXgsIGNoYW5uZWwpIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVhfTEVW
RUxfMihwcmVmaXgsIGNoYW5uZWwpCiAjZGVmaW5lIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVG
SVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwpIHByZWZpeCAjIyBjaGFubmVsCiAKKyNpZiBQTEFU
Rk9STShHVEspCisjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0gIldlYktpdEdU
SyIKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNkZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZ
U1RFTSAiV1BFV2ViS2l0IgorI2Vsc2UKICNkZWZpbmUgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZ
U1RFTSAiY29tLmFwcGxlLldlYktpdCIKKyNlbmRpZgogCiAjZGVmaW5lIERFQ0xBUkVfTE9HX0NI
QU5ORUwobmFtZSkgXAogICAgIGV4dGVybiBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUp
OwpAQCAtMTcyLDEwICsxODksMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2lmIFJFTEVBU0VfTE9H
X0RJU0FCTEVECiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwK
ICAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0
YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OwotI2Vsc2UKKyNlbmRpZgorI2lmIFVTRShP
U19MT0cpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogI2RlZmluZSBERUZJTkVfTE9HX0NIQU5O
RUwobmFtZSwgc3Vic3lzdGVtKSBcCiAgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1l
KSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdURkxvZ0xldmVsKTEsIHN1YnN5
c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKICNlbmRpZgorI2lmIFVTRShKT1VSTkFMRCkgJiYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECisjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJz
eXN0ZW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgV1RGTG9nQ2hhbm5lbCBM
T0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFtZSwgKFdURkxv
Z0xldmVsKTEsIHN1YnN5c3RlbSB9OworI2VuZGlmCiAjZW5kaWYKIAogV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgV1RGUmVwb3J0Tm90SW1wbGVtZW50ZWRZZXQoY29uc3QgY2hhciogZmlsZSwgaW50
IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uKTsKQEAgLTQ5OCwxNyArNTIwLDE0IEBAIGNvbnN0
ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1VucmVhY2hhYmxlQ29kZSA9IGZhbHNlOwog
I2RlZmluZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgbGV2
ZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKGNoYW5u
ZWwsIGxldmVsLCBfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCiAKICNkZWZpbmUgUkVMRUFTRV9M
T0dfU1RBQ0tUUkFDRShjaGFubmVsKSAoKHZvaWQpMCkKLSNlbHNlCisjZW5kaWYKKworI2lmIFVT
RShPU19MT0cpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogI2RlZmluZSBQVUJMSUNfTE9HX1NU
UklORyAie3B1YmxpY31zIgogI2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4pIG9zX2xv
ZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmlu
ZSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCAuLi4pIG9zX2xvZ19lcnJvcihMT0dfQ0hBTk5F
TChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xP
R19GQVVMVChjaGFubmVsLCAuLi4pIG9zX2xvZ19mYXVsdChMT0dfQ0hBTk5FTChjaGFubmVsKS5v
c0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPKGNoYW5u
ZWwsIC4uLikgb3NfbG9nX2luZm8oTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBf
X1ZBX0FSR1NfXykKLQotI2RlZmluZSBSRUxFQVNFX0xPR19JRihpc0FsbG93ZWQsIGNoYW5uZWws
IC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyggICAgICBjaGFubmVsLCBfX1ZB
X0FSR1NfXyk7IH0gd2hpbGUgKDApCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWxs
b3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VSUk9S
KGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUkVMRUFTRV9MT0df
SU5GT19JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxF
QVNFX0xPR19JTkZPKGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKLQogI2RlZmlu
ZSBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKGNoYW5uZWwsIGxvZ0xldmVsLCAuLi4pIGRvIHsgXAog
ICAgIGlmIChMT0dfQ0hBTk5FTChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCiAgICAg
ICAgIG9zX2xvZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19f
KTsgXApAQCAtNTE4LDYgKzUzNywzNSBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJl
RHVlVG9VbnJlYWNoYWJsZUNvZGUgPSBmYWxzZTsKICAgICBpZiAoKGlzQWxsb3dlZCkgJiYgTE9H
X0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0gKGxvZ0xldmVsKSkgXAogICAgICAgICBvc19sb2co
TE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBfX1ZBX0FSR1NfXyk7IFwKIH0gd2hp
bGUgKDApCisjZW5kaWYKKworI2lmIFVTRShKT1VSTkFMRCkgJiYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECisjZGVmaW5lIFBVQkxJQ19MT0dfU1RSSU5HICJzIgorI2RlZmluZSBTRF9KT1VSTkFMX1NF
TkQoY2hhbm5lbCwgcHJpb3JpdHksIGZpbGUsIGxpbmUsIGZ1bmN0aW9uLCAuLi4pIHNkX2pvdXJu
YWxfc2VuZF93aXRoX2xvY2F0aW9uKCJDT0RFX0ZJTEU9IiBmaWxlLCAiQ09ERV9MSU5FPSIgbGlu
ZSwgZnVuY3Rpb24sICJXRUJLSVRfU1VCU1lTVEVNPSVzIiwgTE9HX0NIQU5ORUwoY2hhbm5lbCku
c3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9JXMiLCBMT0dfQ0hBTk5FTChjaGFubmVsKS5uYW1l
LCAiUFJJT1JJVFk9JWkiLCBwcmlvcml0eSwgIk1FU1NBR0U9IiBfX1ZBX0FSR1NfXywgbnVsbHB0
cikKKworI2RlZmluZSBfWFNUUklOR0lGWShsaW5lKSAjbGluZQorI2RlZmluZSBfU1RSSU5HSUZZ
KGxpbmUpIF9YU1RSSU5HSUZZKGxpbmUpCisjZGVmaW5lIFJFTEVBU0VfTE9HKGNoYW5uZWwsIC4u
LikgU0RfSk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19OT1RJQ0UsIF9fRklMRV9fLCBfU1RSSU5H
SUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xP
R19FUlJPUihjaGFubmVsLCAuLi4pIFNEX0pPVVJOQUxfU0VORChjaGFubmVsLCBMT0dfRVJSLCBf
X0ZJTEVfXywgX1NUUklOR0lGWShfX0xJTkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1NfXykKKyNk
ZWZpbmUgUkVMRUFTRV9MT0dfRkFVTFQoY2hhbm5lbCwgLi4uKSBTRF9KT1VSTkFMX1NFTkQoY2hh
bm5lbCwgTE9HX0NSSVQsIF9fRklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18s
IF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPKGNoYW5uZWwsIC4uLikgU0Rf
Sk9VUk5BTF9TRU5EKGNoYW5uZWwsIExPR19JTkZPLCBfX0ZJTEVfXywgX1NUUklOR0lGWShfX0xJ
TkVfXyksIF9fZnVuY19fLCBfX1ZBX0FSR1NfXykKKworI2RlZmluZSBSRUxFQVNFX0xPR19XSVRI
X0xFVkVMKGNoYW5uZWwsIGxvZ0xldmVsLCAuLi4pIGRvIHsgXAorICAgIGlmIChMT0dfQ0hBTk5F
TChjaGFubmVsKS5sZXZlbCA+PSAobG9nTGV2ZWwpKSBcCisgICAgICAgIFNEX0pPVVJOQUxfU0VO
RChjaGFubmVsLCBMT0dfSU5GTywgX19GSUxFX18sIF9TVFJJTkdJRlkoX19MSU5FX18pLCBfX2Z1
bmNfXywgX19WQV9BUkdTX18pOyBcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJFTEVBU0VfTE9H
X1dJVEhfTEVWRUxfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBsb2dMZXZlbCwgLi4uKSBkbyB7IFwK
KyAgICBpZiAoKGlzQWxsb3dlZCkgJiYgTE9HX0NIQU5ORUwoY2hhbm5lbCkubGV2ZWwgPj0gKGxv
Z0xldmVsKSkgXAorICAgICAgICBTRF9KT1VSTkFMX1NFTkQoY2hhbm5lbCwgTE9HX0lORk8sIF9f
RklMRV9fLCBfU1RSSU5HSUZZKF9fTElORV9fKSwgX19mdW5jX18sIF9fVkFfQVJHU19fKTsgXAor
fSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjZGVmaW5l
IFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0UoY2hhbm5lbCkgV1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2Uo
JkxPR19DSEFOTkVMKGNoYW5uZWwpKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRihpc0FsbG93ZWQs
IGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyhjaGFubmVsLCBf
X1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlz
QWxsb3dlZCwgY2hhbm5lbCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VS
Uk9SKGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVMRUFTRV9M
T0dfSU5GT19JRihpc0FsbG93ZWQsIGNoYW5uZWwsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBS
RUxFQVNFX0xPR19JTkZPKGNoYW5uZWwsIF9fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKIAogI2Rl
ZmluZSBSRUxFQVNFX0xPR19TVEFDS1RSQUNFKGNoYW5uZWwpIFdURlJlbGVhc2VMb2dTdGFja1Ry
YWNlKCZMT0dfQ0hBTk5FTChjaGFubmVsKSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA0ZjIzOGNlM2Vk
ZTVmYmU4NDMzNmMyYTdiNmI4ZjVmYzY5M2QxODY2Li41YTZiZjU2ZGVmNzMyOGNmY2QwMTYzZGJh
ODE1ODExYTM1MmZlZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMjksNiArMjksMTEgQEAKICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKKyNpZiBVU0UoSk9VUk5BTEQpCisjZGVmaW5lIFNEX0pPVVJOQUxfU1VQUFJFU1Nf
TE9DQVRJT04KKyNpbmNsdWRlIDxzeXN0ZW1kL3NkLWpvdXJuYWwuaD4KKyNlbmRpZgorCiBuYW1l
c3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTE3NCw2ICsxNzksNTcgQEAg
cHVibGljOgogICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkRlYnVnLCBhcmd1bWVu
dHMuLi4pOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAg
ICBpbmxpbmUgdm9pZCBsb2dBbHdheXNWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNv
bnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgVU5VU0VEX0ZV
TkNUSU9OIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAorICAgIHsKKyNpZiBS
RUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICAvLyAiU3RhbmRhcmQiIFdlYkNvcmUgbG9nZ2lu
ZyBnb2VzIHRvIHN0ZGVyciwgd2hpY2ggaXMgY2FwdHVyZWQgaW4gbGF5b3V0IHRlc3Qgb3V0cHV0
IGFuZCBjYW4gZ2VuZXJhbGx5IGJlIGEgcHJvYmxlbQorICAgICAgICAvLyAgb24gc29tZSBzeXN0
ZW1zLCBzbyBkb24ndCBhbGxvdyBpdC4KKyAgICAgICAgVU5VU0VEX1BBUkFNKGNoYW5uZWwpOwor
I2Vsc2UKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hhbm5lbCwgV1RG
TG9nTGV2ZWw6OkFsd2F5cywgZmlsZSwgZnVuY3Rpb24sIGxpbmUsIGFyZ3VtZW50cy4uLik7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAg
aW5saW5lIHZvaWQgZXJyb3JWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNo
YXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3QgQXJndW1lbnRz
Ji4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5l
bCwgV1RGTG9nTGV2ZWw6OkVycm9yKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBs
b2dWZXJib3NlKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpFcnJvciwgZmlsZSwgZnVuY3Rpb24sIGxp
bmUsIGFyZ3VtZW50cy4uLik7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJn
dW1lbnRzPgorICAgIGlubGluZSB2b2lkIHdhcm5pbmdWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNo
YW5uZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwg
Y29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAo
IXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGxvZ1ZlcmJvc2UoY2hhbm5lbCwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcs
IGZpbGUsIGZ1bmN0aW9uLCBsaW5lLCBhcmd1bWVudHMuLi4pOworICAgIH0KKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICBpbmxpbmUgdm9pZCBpbmZvVmVyYm9zZShX
VEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBmdW5j
dGlvbiwgaW50IGxpbmUsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAorICAg
IHsKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpJbmZvKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dWZXJib3NlKGNoYW5uZWwsIFdURkxvZ0xl
dmVsOjpJbmZvLCBmaWxlLCBmdW5jdGlvbiwgbGluZSwgYXJndW1lbnRzLi4uKTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAgaW5saW5lIHZvaWQgZGVi
dWdWZXJib3NlKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0
IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMp
IGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6
OkRlYnVnKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dWZXJib3NlKGNoYW5u
ZWwsIFdURkxvZ0xldmVsOjpEZWJ1ZywgZmlsZSwgZnVuY3Rpb24sIGxpbmUsIGFyZ3VtZW50cy4u
Lik7CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgd2lsbExvZyhjb25zdCBXVEZMb2dDaGFubmVs
JiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmICgh
bV9lbmFibGVkKQpAQCAtMjQ1LDkgKzMwMSw0NCBAQCBwcml2YXRlOgogCiAjaWYgUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICAgICAgV1RGTG9nKCZjaGFubmVsLCAiJXMiLCBsb2dNZXNzYWdlLnV0
ZjgoKS5kYXRhKCkpOwotI2Vsc2UKKyNlbmRpZgorI2lmIFVTRShPU19MT0cpICYmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogICAgICAgICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIle3B1
YmxpY31zIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgorI2lmIFVTRShKT1VS
TkFMRCkgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgICAgIHNkX2pvdXJuYWxfc2VuZCgi
V0VCS0lUX1NVQlNZU1RFTT0lcyIsIGNoYW5uZWwuc3Vic3lzdGVtLCAiV0VCS0lUX0NIQU5ORUw9
JXMiLCBjaGFubmVsLm5hbWUsICJNRVNTQUdFPSVzIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgp
LCBudWxscHRyKTsKKyNlbmRpZgorCisgICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxv
Z0NoYW5uZWxTdGF0ZTo6T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBhdXRvIGxvY2sgPSB0cnlIb2xkTG9jayhvYnNlcnZlckxvY2so
KSk7CisgICAgICAgIGlmICghbG9jaykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBm
b3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQorICAgICAgICAgICAgb2JzZXJ2
ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8QXJndW1l
bnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gQXJndW1lbnQ+CisgICAgc3RhdGljIGlubGluZSB2b2lkIGxvZ1ZlcmJvc2UoV1RG
TG9nQ2hhbm5lbCYgY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIqIGZpbGUs
IGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3QgQXJndW1lbnQmLi4uIGFyZ3Vt
ZW50cykKKyAgICB7CisgICAgICAgIFN0cmluZyBsb2dNZXNzYWdlID0gbWFrZVN0cmluZyhMb2dB
cmd1bWVudDxBcmd1bWVudD46OnRvU3RyaW5nKGFyZ3VtZW50cykuLi4pOworCisjaWYgUkVMRUFT
RV9MT0dfRElTQUJMRUQKKyAgICAgICAgV1RGTG9nVmVyYm9zZShmaWxlLCBsaW5lLCBmdW5jdGlv
biwgJmNoYW5uZWwsICIlcyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisjZW5kaWYKKyNp
ZiBVU0UoT1NfTE9HKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAgICAgb3NfbG9nKGNo
YW5uZWwub3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShmaWxlKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGxp
bmUpOworICAgICAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOworI2VuZGlmCisjaWYgVVNFKEpP
VVJOQUxEKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAgICAgYXV0byBmaWxlU3RyaW5n
ID0gbWFrZVN0cmluZygiQ09ERV9GSUxFPSIsIGZpbGUpOworICAgICAgICBhdXRvIGxpbmVTdHJp
bmcgPSBtYWtlU3RyaW5nKCJDT0RFX0xJTkU9IiwgbGluZSk7CisgICAgICAgIHNkX2pvdXJuYWxf
c2VuZF93aXRoX2xvY2F0aW9uKGZpbGVTdHJpbmcudXRmOCgpLmRhdGEoKSwgbGluZVN0cmluZy51
dGY4KCkuZGF0YSgpLCBmdW5jdGlvbiwgIldFQktJVF9TVUJTWVNURU09JXMiLCBjaGFubmVsLnN1
YnN5c3RlbSwgIldFQktJVF9DSEFOTkVMPSVzIiwgY2hhbm5lbC5uYW1lLCAiTUVTU0FHRT0lcyIs
IGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbnVsbHB0cik7CisjZW5kaWYKIAogICAgICAgICBp
ZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNo
YW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXJIZWxwZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCmluZGV4
IDBhZDY1ZWUyNDcwYjcwZmM5YTBlZWY4MmViYTcxZTBmYzNkNWY4YzcuLjllYjczYmE2ZTBmZDk0
YzA0OGRkNTkzYjVmZjUyOTE2ODBiNmRmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xv
Z2dlckhlbHBlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlckhlbHBlci5oCkBAIC00Mywx
OCArNDMsMjcgQEAgcHVibGljOgogCiAjZGVmaW5lIExPR0lERU5USUZJRVIgV1RGOjpMb2dnZXI6
OkxvZ1NpdGVJZGVudGlmaWVyKGxvZ0NsYXNzTmFtZSgpLCBfX2Z1bmNfXywgbG9nSWRlbnRpZmll
cigpKQogCisjaWYgVkVSQk9TRV9SRUxFQVNFX0xPRworI2RlZmluZSBBTFdBWVNfTE9HKC4uLikg
ICAgIGxvZ2dlcigpLmxvZ0Fsd2F5c1ZlcmJvc2UobG9nQ2hhbm5lbCgpLCBfX0ZJTEVfXywgX19m
dW5jX18sIF9fTElORV9fLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgRVJST1JfTE9HKC4uLikgICAg
ICBsb2dnZXIoKS5lcnJvclZlcmJvc2UobG9nQ2hhbm5lbCgpLCBfX0ZJTEVfXywgX19mdW5jX18s
IF9fTElORV9fLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgV0FSTklOR19MT0coLi4uKSAgICBsb2dn
ZXIoKS53YXJuaW5nVmVyYm9zZShsb2dDaGFubmVsKCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19M
SU5FX18sIF9fVkFfQVJHU19fKQorI2RlZmluZSBJTkZPX0xPRyguLi4pICAgICAgIGxvZ2dlcigp
LmluZm9WZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxFX18sIF9fZnVuY19fLCBfX0xJTkVfXywg
X19WQV9BUkdTX18pCisjZGVmaW5lIERFQlVHX0xPRyguLi4pICAgICAgbG9nZ2VyKCkuZGVidWdW
ZXJib3NlKGxvZ0NoYW5uZWwoKSwgX19GSUxFX18sIF9fZnVuY19fLCBfX0xJTkVfXywgX19WQV9B
UkdTX18pCisjZWxzZQogI2RlZmluZSBBTFdBWVNfTE9HKC4uLikgICAgIGxvZ2dlcigpLmxvZ0Fs
d2F5cyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQogI2RlZmluZSBFUlJPUl9MT0coLi4uKSAg
ICAgIGxvZ2dlcigpLmVycm9yKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCiAjZGVmaW5lIFdB
Uk5JTkdfTE9HKC4uLikgICAgbG9nZ2VyKCkud2FybmluZyhsb2dDaGFubmVsKCksIF9fVkFfQVJH
U19fKQogI2RlZmluZSBJTkZPX0xPRyguLi4pICAgICAgIGxvZ2dlcigpLmluZm8obG9nQ2hhbm5l
bCgpLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgREVCVUdfTE9HKC4uLikgICAgICBsb2dnZXIoKS5k
ZWJ1Zyhsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQorI2VuZGlmCisKICNkZWZpbmUgV0lMTF9M
T0coX2xldmVsXykgICBsb2dnZXIoKS53aWxsTG9nKGxvZ0NoYW5uZWwoKSwgX2xldmVsXykKIAot
I2RlZmluZSBBTFdBWVNfTE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICAgaWYgKGNvbmRpdGlvbikg
bG9nZ2VyKCkubG9nQWx3YXlzKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIEVS
Uk9SX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgICBpZiAoY29uZGl0aW9uKSBsb2dnZXIoKS5l
cnJvcihsb2dDaGFubmVsKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBXQVJOSU5HX0xPR19JRihj
b25kaXRpb24sIC4uLikgICAgaWYgKGNvbmRpdGlvbikgbG9nZ2VyKCkud2FybmluZyhsb2dDaGFu
bmVsKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBJTkZPX0xPR19JRihjb25kaXRpb24sIC4uLikg
ICAgICAgaWYgKGNvbmRpdGlvbikgbG9nZ2VyKCkuaW5mbyhsb2dDaGFubmVsKCksIF9fVkFfQVJH
U19fKQotI2RlZmluZSBERUJVR19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAgaWYgKGNvbmRp
dGlvbikgbG9nZ2VyKCkuZGVidWcobG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
QUxXQVlTX0xPR19JRihjb25kaXRpb24sIC4uLikgICAgIGlmIChjb25kaXRpb24pIEFMV0FZU19M
T0coX19WQV9BUkdTX18pCisjZGVmaW5lIEVSUk9SX0xPR19JRihjb25kaXRpb24sIC4uLikgICAg
ICBpZiAoY29uZGl0aW9uKSBFUlJPUl9MT0coX19WQV9BUkdTX18pCisjZGVmaW5lIFdBUk5JTkdf
TE9HX0lGKGNvbmRpdGlvbiwgLi4uKSAgICBpZiAoY29uZGl0aW9uKSBXQVJOSU5HX0xPRyhfX1ZB
X0FSR1NfXykKKyNkZWZpbmUgSU5GT19MT0dfSUYoY29uZGl0aW9uLCAuLi4pICAgICAgIGlmIChj
b25kaXRpb24pIElORk9fTE9HKF9fVkFfQVJHU19fKQorI2RlZmluZSBERUJVR19MT0dfSUYoY29u
ZGl0aW9uLCAuLi4pICAgICAgaWYgKGNvbmRpdGlvbikgREVCVUdfTE9HKF9fVkFfQVJHU19fKQog
CiAjZGVmaW5lIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoLi4uKSAgICAgaWYgKGxvZ2dlclB0cigp
KSBsb2dnZXJQdHIoKS0+bG9nQWx3YXlzKGxvZ0NoYW5uZWwoKSwgX19WQV9BUkdTX18pCiAjZGVm
aW5lIEVSUk9SX0xPR19JRl9QT1NTSUJMRSguLi4pICAgICAgaWYgKGxvZ2dlclB0cigpKSBsb2dn
ZXJQdHIoKS0+ZXJyb3IobG9nQ2hhbm5lbCgpLCBfX1ZBX0FSR1NfXykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4IDEzNTc1NmQ4OTdlYzY4MjgzODEyYTE3NWEz
N2Y1OTk3YWQ2NWQ0OTMuLmMyODAxNjBkZjgwZmM2ZjhmYjQ1NmQ0ZjI1NjUwYTM5Yzk5YTVjZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtMzYsOSArMzYs
MTMgQEAgbmFtZXNwYWNlIFdURiB7CiAKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAogV1RGTG9n
Q2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1l
bW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yIH07Ci0jZWxzZQorI2VuZGlmCisjaWYg
VVNFKE9TX0xPRykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsIExvZ01l
bW9yeVByZXNzdXJlID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAiTWVtb3J5UHJlc3N1cmUi
LCBXVEZMb2dMZXZlbDo6RXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xP
R19ERUZBVUxUIH07CiAjZW5kaWYKKyNpZiBVU0UoSk9VUk5BTEQpICYmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5l
bFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hB
Tk5FTF9XRUJLSVRfU1VCU1lTVEVNIH07CisjZW5kaWYKIAogV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnNfbG9nZ2luZ0VuYWJsZWQg
PSBmYWxzZTsKIApAQCAtODMsNiArODcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmco
TWVtb3J5VXNhZ2VQb2xpY3kgcG9saWN5KQogICAgIGNhc2UgTWVtb3J5VXNhZ2VQb2xpY3k6OkNv
bnNlcnZhdGl2ZTogcmV0dXJuICJDb25zZXJ2YXRpdmUiOwogICAgIGNhc2UgTWVtb3J5VXNhZ2VQ
b2xpY3k6OlN0cmljdDogcmV0dXJuICJTdHJpY3QiOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdUSy5j
bWFrZQppbmRleCBhOGQ5NzkyOTZhYjdjNzA1MmIxMDRkMjExYzk3YmMwMmMzMWQ5ZGNmLi5mMWE4
ZTg4NWY1Y2FjZTUwNDVkNmYzMjQ3ZjhjZWE5NzJkZWI1M2EzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtNjIsNiArNjIsMTAgQEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwogICAg
IFpMSUI6OlpMSUIKICkKIAoraWYgKFN5c3RlbWRfRk9VTkQpCisgICAgbGlzdChBUFBFTkQgV1RG
X0xJQlJBUklFUyBTeXN0ZW1kOjpTeXN0ZW1kKQorZW5kaWYgKCkKKwogbGlzdChBUFBFTkQgV1RG
X1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtHSU9fVU5JWF9JTkNMVURFX0RJUlN9
CiAgICAgJHtHTElCX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXgg
ZTVhOGZmNDc4MTYzZjhiMjMwNmZmYWI3MmU0NDJmZWM0ODZkZTMxYS4uZGU0NzQxMDEwZjE1ODFm
NzI5ODM2YjdmMmVjMTE5ZmYwZGU0YTJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1XUEUuY21ha2UKQEAg
LTQ3LDYgKzQ3LDEwIEBAIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKICAgICBaTElCOjpaTElC
CiApCiAKK2lmIChTeXN0ZW1kX0ZPVU5EKQorICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMg
U3lzdGVtZDo6U3lzdGVtZCkKK2VuZGlmICgpCisKIGxpc3QoQVBQRU5EIFdURl9TWVNURU1fSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICR7R0lPX1VOSVhfSU5DTFVERV9ESVJTfQogICAgICR7R0xJ
Ql9JTkNMVURFX0RJUlN9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVh
a0NvdW50ZXIuY3BwIGIvU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcApp
bmRleCBlMzNmYWNiODVkMzNhZWI4MWU5ZmEzZjQyNWYzYThlMjBmYzA4Njc0Li45Y2YwM2JjOGFm
MTQzZDU1YTg3YTc2NTIxYTNmODEzMTM1ODExZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50
ZWRMZWFrQ291bnRlci5jcHAKQEAgLTQxLDkgKzQxLDEzIEBAIHZvaWQgUmVmQ291bnRlZExlYWtD
b3VudGVyOjpkZWNyZW1lbnQoKSB7IH0KICNkZWZpbmUgTE9HX0NIQU5ORUxfUFJFRklYIExvZwog
I2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3Vu
dGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBX
VEZMb2dMZXZlbDo6RXJyb3IgfTsKLSNlbHNlCisjZW5kaWYKKyNpZiBVU0UoT1NfTE9HKSAmJiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKIHN0YXRpYyBXVEZMb2dDaGFubmVsIExvZ1JlZkNvdW50ZWRM
ZWFrcyA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIlJlZkNvdW50ZWRMZWFrcyIsIFdURkxv
Z0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSwgT1NfTE9HX0RFRkFV
TFQgfTsKICNlbmRpZgorI2lmIFVTRShKT1VSTkFMRCkgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5u
ZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IsIExPR19D
SEFOTkVMX1dFQktJVF9TVUJTWVNURU0gfTsKKyNlbmRpZgogCiB0eXBlZGVmIEhhc2hDb3VudGVk
U2V0PGNvbnN0IGNoYXIqLCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gUmVhc29uU2V0Owogc3RhdGlj
IFJlYXNvblNldCogbGVha01lc3NhZ2VTdXBwcmVzc2lvblJlYXNvbnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvbnBydW50aW1lX2ludGVybmFsLmgKaW5kZXggM2RlZTZjYTFmM2UyMWU2Yjk3MzJi
YTY5MGZmYWFkOGE4YzU5M2VhYS4uNTk4ZjlkZGYxMDgwMmNjMjBmODRiNDljMmFhOTM0MGJhODY1
YjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL25wcnVudGltZV9pbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaApAQCAt
MzUsNiArMzUsNyBAQAogI2lmIGRlZmluZWQoTU9aX1gxMSkKICAgICAjaW5jbHVkZSA8WDExL1hy
ZXNvdXJjZS5oPgogCisgICAgI3VuZGVmIEFsd2F5cwogICAgICN1bmRlZiBOb25lCiAgICAgI3Vu
ZGVmIEFib3ZlCiAgICAgI3VuZGVmIEJlbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDAxNGQ0Y2Q4YWRhMzVmOGM1ZTNi
ZTFlNGNkZDY1MTIxMzM0YWNmMGUuLmNkZmRmYjliODc2MjJjNzgxZjM4ZWIzNzRmNDNlMzRmNzBk
NTg3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCkBAIC05Nyw2ICs5Nyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJvdHRs
aW5nUmVhc29uVG9TdHJpbmcoU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsCiAg
ICAgY2FzZSBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OlRocm90dGxpbmdSZWFzb246Ok5v
bkludGVyYWN0ZWRDcm9zc09yaWdpbkZyYW1lOgogICAgICAgICByZXR1cm4gIk5vbkludGVyYWN0
aXZlQ3Jvc3NPcmlnaW5GcmFtZSI7CiAgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFz
b25zVG9TdHJpbmcoT3B0aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VGhyb3R0
bGluZ1JlYXNvbj4gcmVhc29ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VMb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dn
aW5nLmNwcAppbmRleCBiZWQyNjc5NjI2MDJhNTQ4MGMwZDY0ZjJmMTJiNjMwNmVlNDg1MzI1Li5j
MWM4ZDFhMmI5OWFiMmVlZDYxM2RlYmU5NmM2YzliNjZiZTE2MzQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCkBAIC00OCw2ICs0OCw4IEBAIHN0YXRpYyBj
b25zdCBjaGFyKiB0b1N0cmluZyhQZXJmb3JtYW5jZUxvZ2dpbmc6OlBvaW50T2ZJbnRlcmVzdCBw
b2kpCiAgICAgY2FzZSBQZXJmb3JtYW5jZUxvZ2dpbmc6Ok1haW5GcmFtZUxvYWRDb21wbGV0ZWQ6
CiAgICAgICAgIHJldHVybiAiTWFpbkZyYW1lTG9hZENvbXBsZXRlZCI7CiAgICAgfQorICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNb25pdG9yLmNwcAppbmRleCBlNjQ1YWI5
MjM1ZGE0MzcwMDIyZTdiODMwYWEwODA4NzAzN2M3MWY0Li5mODVmYmVkMDM0MDIxNDIyN2U2MGFh
NDg3YTNiYWVkMzM5OTdmMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1v
bml0b3IuY3BwCkBAIC0yNjIsNiArMjYyLDggQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBz
dHJpbmdGb3JDUFVTYW1wbGluZ0FjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUZvckNQVVMKICAg
ICBjYXNlIEFjdGl2aXR5U3RhdGVGb3JDUFVTYW1wbGluZzo6VmlzaWJsZUFuZEFjdGl2ZToKICAg
ICAgICAgcmV0dXJuICJWaXNpYmxlQW5kQWN0aXZlIjsKICAgICB9CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4YzUwYzIyMTc4
M2NjNDIyOGY5ZjYzMGQ2NzM0ZmVkNzZmMjBhNDBjLi5iMTA3NTYzYTM1MGNlMGIwZjYxNzgwYTcx
YWI2M2VhMmQ3OWIzMDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtNDI1LDE1ICs0MjUsMTYgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikK
ICAgICAsIG1fcHJlbG9hZChwbGF5ZXItPnByZWxvYWQoKSkKICAgICAsIG1fbWF4VGltZUxvYWRl
ZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcyhNZWRpYVRpbWU6Onplcm9UaW1lKCkpCiAgICAgLCBt
X2RyYXdUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnJlcGFpbnQpCi0gICAgLCBtX3JlYWR5VGltZXJIYW5kbGVyKFJ1bkxvb3A6Om1haW4o
KSwgdGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVhZHlUaW1lckZpcmVkCi0p
CisgICAgLCBtX3JlYWR5VGltZXJIYW5kbGVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJk1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVhZHlUaW1lckZpcmVkKQogI2lmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkKICNpZiBVU0UoTklDT1NJQSkKICAgICAsIG1fbmljb3NpYUxheWVyKE5pY29z
aWE6OkNvbnRlbnRMYXllcjo6Y3JlYXRlKE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBw
ZXJJbXBsOjpjcmVhdGVGYWN0b3J5KCp0aGlzKSkpCiAjZWxzZQogICAgICwgbV9wbGF0Zm9ybUxh
eWVyUHJveHkoYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkoKSkp
CiAjZW5kaWYKLSNlbmRpZiAgICAgIAorI2VuZGlmCisgICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1l
ZGlhUGxheWVyTG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBs
YXllckxvZ0lkZW50aWZpZXIoKSkKIHsKICNpZiBVU0UoR0xJQikKICAgICBtX3JlYWR5VGltZXJI
YW5kbGVyLnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKQEAgLTM4MzgsNiAr
MzgzOSwxMSBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6ZXh0ZW5kZWRTdXBwb3J0c1R5cGUoY29ucwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKK1dURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9nQ2hhbm5l
bCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkNvcmU6OkxvZ01lZGlhOworfQorCiB9CiAKICNl
bmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCmluZGV4IGNjNTc5ZTJkOTYxMTM3MGRhZjg3YTc5MjViNDZlOGM3YmQyM2M4
MjYuLmFlNTFiNzVmYmZlMGU4ZmQyMzA5NzNiZGFkYzMwZmVhMDkzNmI4MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0
aWxpdGllcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNYWluVGhyZWFkTm90
aWZpZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUxheWVyLmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4K
ICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0xMTUsNyArMTE3LDkgQEAgY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI7CiB2b2lkIHJlZ2lzdGVyV2ViS2l0R1N0cmVhbWVyRWxlbWVu
dHMoKTsKIAogLy8gVXNlIGVhZ2VyIGluaXRpYWxpemF0aW9uIGZvciB0aGUgV2Vha1B0ckZhY3Rv
cnkgc2luY2Ugd2UgY2FsbCBtYWtlV2Vha1B0cigpIGZyb20gYW5vdGhlciB0aHJlYWQuCi1jbGFz
cyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4KK2NsYXNzIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UK
KyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIs
IFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPgorICAgICwgcHJpdmF0ZSBMb2dn
ZXJIZWxwZXIKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaWYgVVNFKE5JQ09TSUEpCiAg
ICAgLCBwdWJsaWMgTmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVu
dApAQCAtMjI2LDYgKzIzMCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaEN1cnJlbnRCdWZm
ZXIoKTsKICNlbmRpZgogCisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2xvZ2dlcjsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIiOyB9CisgICAg
Y29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fbG9nSWRlbnRpZmllcik7IH0KKyAgICBXVEZMb2dDaGFu
bmVsJiBsb2dDaGFubmVsKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBjb25zdCB2b2lkKiBtZWRp
YVBsYXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBsb2dJZGVudGlmaWVyKCk7IH0KKyAgICBj
b25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgeyByZXR1cm4gbG9nZ2VyKCk7IH0KKwog
cHJvdGVjdGVkOgogICAgIGVudW0gTWFpblRocmVhZE5vdGlmaWNhdGlvbiB7CiAgICAgICAgIFZp
ZGVvQ2hhbmdlZCA9IDEgPDwgMCwKQEAgLTUyOSw2ICs1NDEsOCBAQCBwcml2YXRlOgogI2lmIFVT
RShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAgICAgR1VuaXF1ZVB0cjxzdHJ1Y3Qg
d3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZT4gbV93cGVWaWRlb1BsYW5lRGlz
cGxheURtYUJ1ZjsKICNlbmRpZgorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAg
IGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNUHJveHlDbGVhcktl
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NE
TVByb3h5Q2xlYXJLZXkuY3BwCmluZGV4IDZjNDI1MGRmMDUxYjBhZGFkNWI4OTIwOTE4NTViMzFk
M2U4OTMwZTUuLmMxYjZiMzRmNjg2ZjRjZjcyZmU2MTI1MzIwNDI0NGQ4NTdmZTRkM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RN
UHJveHlDbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9DRE1Qcm94eUNsZWFyS2V5LmNwcApAQCAtMTcxLDcgKzE3MSwxMSBAQCBi
b29sIENETVByb3h5Q2xlYXJLZXk6OmNlbmNEZWNyeXB0U3Vic2FtcGxlZChjZW5jRGVjcnlwdENv
bnRleHQmIGlucHV0KQogICAgICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIHN1YnNhbXBsZSBpbmRl
eCAldSAtICV1IGJ5dGVzIGVuY3J5cHRlZCAoJWx1IGJ5dGVzIGxlZnQgdG8gZGVjcnlwdCkiLCBz
dWJzYW1wbGVJbmRleCwgc3Vic2FtcGxlTnVtRW5jcnlwdGVkQnl0ZXMsIGlucHV0LmVuY3J5cHRl
ZEJ1ZmZlclNpemVJbkJ5dGVzIC0gZW5jcnlwdGVkQnVmZmVyQnl0ZU9mZnNldCk7CiAKICAgICAg
ICAgICAgIGlmIChnY3J5X2Vycm9yX3QgY2lwaGVyRXJyb3IgPSBnY3J5X2NpcGhlcl9kZWNyeXB0
KG1fZ2NyeUhhbmRsZSwgaW5wdXQuZW5jcnlwdGVkQnVmZmVyICsgZW5jcnlwdGVkQnVmZmVyQnl0
ZU9mZnNldCwgc3Vic2FtcGxlTnVtRW5jcnlwdGVkQnl0ZXMsIDAsIDApKSB7CisjaWYgIUxPR19E
SVNBQkxFRAogICAgICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eUNsZWFyS2V5
IC0gRVJST1IoZ2NyeV9jaXBoZXJfZGVjcnlwdCk6ICVzIiwgZ3BnX3N0cmVycm9yKGNpcGhlckVy
cm9yKSk7CisjZWxzZQorICAgICAgICAgICAgICAgIFVOVVNFRF9WQVJJQUJMRShjaXBoZXJFcnJv
cik7CisjZW5kaWYKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9
CiAKQEAgLTE5Myw3ICsxOTcsMTEgQEAgYm9vbCBDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlw
dChDRE1Qcm94eUNsZWFyS2V5OjpjZW5jRGVjcnlwdENvbnRleHQmIGlucHV0KQogdm9pZCBDRE1Q
cm94eUNsZWFyS2V5Ojppbml0aWFsaXplR2NyeXB0KCkKIHsKICAgICBpZiAoZ2NyeV9lcnJvcl90
IGVycm9yID0gZ2NyeV9jaXBoZXJfb3BlbigmbV9nY3J5SGFuZGxlLCBHQ1JZX0NJUEhFUl9BRVMx
MjgsIEdDUllfQ0lQSEVSX01PREVfQ1RSLCBHQ1JZX0NJUEhFUl9TRUNVUkUpKSB7CisjaWYgIUxP
R19ESVNBQkxFRAogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHlDbGVhcktleSAtIEVS
Uk9SKGdjcnlfY2lwaGVyX29wZW4pOiAlcyIsIGdwZ19zdHJlcnJvcihlcnJvcikpOworI2Vsc2UK
KyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKGVycm9yKTsKKyNlbmRpZgogICAgICAgICBSRUxFQVNF
X0FTU0VSVChmYWxzZSAmJiAiU2hvdWxkIG5vdCBnZXQgdGhpcyBmYXIgd2l0aCBhIGZ1bmN0aW9u
YWwgR0NyeXB0ISIpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNF
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5oCmluZGV4IDRkZGYyYmZjNTNmYTMzNTc4YTYyNmI5
MjczZWYxN2IwNTRkOWJkMmIuLmZjNjc0Mjg5NTJmODRjMzllNmUyYjdlYjc5OWZkMmJmZjlkZTY4
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0UuaApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBibG9ja0R1cmF0
aW9uQ2hhbmdlcygpOwogICAgIHZvaWQgdW5ibG9ja0R1cmF0aW9uQ2hhbmdlcygpOwogCisgICAg
V1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6
OkxvZ01lZGlhU291cmNlOyB9CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhUGxh
eWVyRmFjdG9yeUdTdHJlYW1lck1TRTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNv
dXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCBlNjJjZDU2YTg0NmIzNDc2
MTIzNDQ4MzUyNWEyZTZhMGZiNjgwZTUzLi5jOGY1ODA1NmVhZDQ1ZGU2MTVhODgyYzFiOTNmOTJj
NDE5MmUwNmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShHU1RS
RUFNRVIpCiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZUNsaWVu
dEdTdHJlYW1lck1TRS5oIgpAQCAtNjAsMTcgKzYxLDIzIEBAIE1lZGlhU291cmNlR1N0cmVhbWVy
OjpNZWRpYVNvdXJjZUdTdHJlYW1lcihNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQmIG1lZGlhU291
cmNlCiAgICAgLCBtX2NsaWVudChNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTo6Y3JlYXRl
KHBsYXllclByaXZhdGUpKQogICAgICwgbV9tZWRpYVNvdXJjZShtZWRpYVNvdXJjZSkKICAgICAs
IG1fcGxheWVyUHJpdmF0ZShwbGF5ZXJQcml2YXRlKQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAorICAgICwgbV9sb2dnZXIobV9wbGF5ZXJQcml2YXRlLm1lZGlhUGxheWVyTG9nZ2VyKCkpCisg
ICAgLCBtX2xvZ0lkZW50aWZpZXIobV9wbGF5ZXJQcml2YXRlLm1lZGlhUGxheWVyTG9nSWRlbnRp
ZmllcigpKQorI2VuZGlmCiB7CiB9CiAKIE1lZGlhU291cmNlR1N0cmVhbWVyOjp+TWVkaWFTb3Vy
Y2VHU3RyZWFtZXIoKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgZm9y
IChhdXRvJiBzb3VyY2VCdWZmZXJQcml2YXRlIDogbV9zb3VyY2VCdWZmZXJzKQogICAgICAgICBz
b3VyY2VCdWZmZXJQcml2YXRlLT5jbGVhck1lZGlhU291cmNlKCk7CiB9CiAKIE1lZGlhU291cmNl
R1N0cmVhbWVyOjpBZGRTdGF0dXMgTWVkaWFTb3VyY2VHU3RyZWFtZXI6OmFkZFNvdXJjZUJ1ZmZl
cihjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2
YXRlPiYgc291cmNlQnVmZmVyUHJpdmF0ZSkKIHsKKyAgICBERUJVR19MT0coTE9HSURFTlRJRklF
UiwgY29udGVudFR5cGUpOwogICAgIHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpjcmVhdGUodGhpcywgbV9jbGllbnQuZ2V0KCksIGNvbnRlbnRUeXBl
KTsKICAgICBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gc291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lciA9IHN0YXRpY19jYXN0PFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIqPihzb3VyY2VCdWZmZXJQcml2YXRlLmdldCgpKTsKICAgICBtX3NvdXJjZUJ1ZmZlcnMuYWRk
KHNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIpOwpAQCAtMTM1LDUgKzE0MiwxMyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVNvdXJjZUdTdHJlYW1lcjo6YnVm
ZmVyZWQoKQogICAgIHJldHVybiBtX21lZGlhU291cmNlLT5idWZmZXJlZCgpOwogfQogCisjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBNZWRpYVNvdXJjZUdTdHJlYW1l
cjo6bG9nQ2hhbm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIExvZ01lZGlhU291cmNlOworfQor
CisjZW5kaWYKKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlR1N0cmVh
bWVyLmgKaW5kZXggYzlhMDlmYTA0MzlmZWY4ZWI4ZGI3NTA1ZmNiYzk3ZTA1MjM3OGVhNi4uNTFj
YWIyZTNlZjJmODYxMmFjZGYwZjY4MGI1YTgwYzVhYTE3MmU4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUdTdHJl
YW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvTWVkaWFTb3VyY2VHU3RyZWFtZXIuaApAQCAtMzksNiArMzksNyBAQAogCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9M
b2dnZXJIZWxwZXIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlhU3JjIFdlYktpdE1l
ZGlhU3JjOwogCkBAIC01MCw3ICs1MSwxMSBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CiAKIC8vIEZJWE1FOiBTaG91bGQg
dGhpcyBiZSBjYWxsZWQgTWVkaWFTb3VyY2VQcml2YXRlR1N0cmVhbWVyPwotY2xhc3MgTWVkaWFT
b3VyY2VHU3RyZWFtZXIgZmluYWwgOiBwdWJsaWMgTWVkaWFTb3VyY2VQcml2YXRlIHsKK2NsYXNz
IE1lZGlhU291cmNlR1N0cmVhbWVyIGZpbmFsIDogcHVibGljIE1lZGlhU291cmNlUHJpdmF0ZQor
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKKyNl
bmRpZgorewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG9wZW4oTWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50JiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJik7CiAgICAgdmlydHVhbCB+
TWVkaWFTb3VyY2VHU3RyZWFtZXIoKTsKQEAgLTczLDYgKzc4LDE1IEBAIHB1YmxpYzoKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7CiAKKyNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lciI7IH0K
KyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9s
b2dJZGVudGlmaWVyOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZp
bmFsOworCisgICAgY29uc3Qgdm9pZCogbmV4dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSB7
IHJldHVybiBjaGlsZExvZ0lkZW50aWZpZXIobV9sb2dJZGVudGlmaWVyLCArK21fbmV4dFNvdXJj
ZUJ1ZmZlcklEKTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgTWVkaWFTb3VyY2VHU3RyZWFt
ZXIoTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50JiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
TVNFJik7CiAKQEAgLTgxLDYgKzk1LDExIEBAIHByaXZhdGU6CiAgICAgUmVmPE1lZGlhU291cmNl
Q2xpZW50R1N0cmVhbWVyTVNFPiBtX2NsaWVudDsKICAgICBSZWY8TWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50PiBtX21lZGlhU291cmNlOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1T
RSYgbV9wbGF5ZXJQcml2YXRlOworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFJlZjxj
b25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsK
KyAgICB1aW50NjRfdCBtX25leHRTb3VyY2VCdWZmZXJJRCB7IDAgfTsKKyNlbmRpZgogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKaW5kZXggN2MxZTc5OTE2ZDkzZjhhZjExMWRjYTgzYWQ1MmM1YzRlNWM4ZjdmZC4uNzIw
ZDM0NGZmZDJjYzY5ZTEzMDljMjNhNTBlNDBmZTUxNjYwNGI2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC01OCw2ICs1
OCwxMCBAQCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyKE1lZGlhU291cmNlR1N0cmVhbWVyKgogICAgICwgbV9tZWRpYVNvdXJjZShtZWRp
YVNvdXJjZSkKICAgICAsIG1fdHlwZShjb250ZW50VHlwZSkKICAgICAsIG1fY2xpZW50KGNsaWVu
dC5nZXQoKSkKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKG1lZGlh
U291cmNlLT5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcihtZWRpYVNvdXJjZS0+bmV4
dFNvdXJjZUJ1ZmZlckxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgogewogfQogCkBAIC0xNzcsNSAr
MTgxLDEyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YXBwZW5kUGFyc2lu
Z0ZhaWxlZCgpCiAgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlBhcnNp
bmdGYWlsZWQpOwogfQogCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVs
JiBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gTG9nTWVkaWFTb3VyY2U7Cit9CisjZW5kaWYKKwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGU1
ZmU0MDY4YTgyYTdkMjJlY2Y5NDU3ZmRlMmI5OGUxMTdjYjkwYjQuLjUzMjFkZGNhNWUzNDRlNDYz
YjIwZDE4ZjdhNWYzYjE5YzU0NDAwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC00MSwxMiArNDEsMTcgQEAKICNpbmNsdWRl
ICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudC5oIgogI2luY2x1ZGUgIldlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmgiCisjaW5jbHVk
ZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1l
ZGlhU291cmNlR1N0cmVhbWVyOwogCi1jbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
IGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUgeworY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlCisjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgorI2VuZGlm
Cit7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI+IGNyZWF0ZShNZWRpYVNvdXJjZUdTdHJlYW1lciosIFJlZjxNZWRpYVNvdXJjZUNsaWVudEdT
dHJlYW1lck1TRT4sIGNvbnN0IENvbnRlbnRUeXBlJik7CkBAIC03OSw2ICs4NCwxNSBAQCBwdWJs
aWM6CiAKICAgICBDb250ZW50VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3QgY2hhciogbG9n
Q2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIiOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5u
ZWwoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBMb2dnZXImIHNvdXJjZUJ1ZmZlckxvZ2dlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CisgICAgY29uc3Qgdm9pZCogc291cmNl
QnVmZmVyTG9nSWRlbnRpZmllcigpIGZpbmFsIHsgcmV0dXJuIGxvZ0lkZW50aWZpZXIoKTsgfQor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcihNZWRp
YVNvdXJjZUdTdHJlYW1lciosIFJlZjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRT4sIGNv
bnN0IENvbnRlbnRUeXBlJik7CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhU291cmNlQ2xpZW50R1N0
cmVhbWVyTVNFOwpAQCAtOTAsNiArMTA0LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUmVh
ZHlGb3JNb3JlU2FtcGxlcyA9IHRydWU7CiAgICAgYm9vbCBtX25vdGlmeVdoZW5SZWFkeUZvck1v
cmVTYW1wbGVzID0gZmFsc2U7CiAgICAgQXRvbVN0cmluZyBtX3RyYWNrSWQ7CisKKyNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKKyAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBj
b25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAppbmRleCBiNTE2NDlhMGE4ZDVmZTdkMzRiMTkx
YzZmODkxYWY0MDI5ZTZiNDgxLi41MWYwNWQ4NTJkZWI3ZGQ5ZWY4MGY4ZmMzMjk1MjliY2YwNDJm
MjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCkBAIC0yOCw2
ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNs
dWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgiCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDFjNDA5MzliOGNhOTRjZWQ2ODg0
YzM3NjE0NWQwNWM5NGJkOGNjZTIuLjY0ZGIyYjRlMWRkNjAwZGI3MTFhMTg4MTY4MTc1NzBiNDI0
OTNkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMTU3LDYg
KzE1Nyw4IEBAIHN0YXRpYyBydGM6OkxvZ2dpbmdTZXZlcml0eSBjb21wdXRlTG9nTGV2ZWwoKQog
ICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkRlYnVnOgogICAgICAgICByZXR1cm4gcnRjOjpMU19WRVJC
T1NFOwogICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBydGM6OkxTX05PTkU7CiAjZWxzZQogICAgIHJldHVybiBydGM6OkxTX05PTkU7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCA5MTRlMTBlN2ViNzdhZDFi
NmZkZThhNGE0NGNhM2ExOWRjNWY4ZDNhLi40ZmRiYmFiODg5Y2UxOWMzMzc3ZDE3MzMxYzM5M2Jk
MGRiMDJlMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC00NzEs
NiArNDcxLDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUkKICAgICBHVW5pcXVlUHRyPEdTTGlz
dD4gY29va2llcyhzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZV9saXN0KGNvb2tpZVN0b3JhZ2Uo
KSwgdXJpLmdldCgpLCBUUlVFKSk7CiAgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwogICAg
IFVOVVNFRF9QQVJBTShzYW1lU2l0ZUluZm8pOworICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5
KTsKICNlbmRpZgogICAgIGlmICghY29va2llcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRTeXN0ZW1kLmNtYWtlIGIvU291cmNlL2NtYWtlL0Zp
bmRTeXN0ZW1kLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MWY5MjI3ZmM1YmYxYWE2YmJlNzQ4MTI2Yzk3
NmY0ODgyODdkMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFN5c3RlbWQu
Y21ha2UKQEAgLTAsMCArMSw5MiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCisjWz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Wy5yc3Q6CitGaW5kU3lzdGVtZAorLS0tLS0tLS0t
LS0KKworRmluZCBTeXN0ZW1kIGhlYWRlcnMgYW5kIGxpYnJhcmllcy4KKworSW1wb3J0ZWQgVGFy
Z2V0cworXl5eXl5eXl5eXl5eXl5eXgorCitgYFN5c3RlbWQ6OlN5c3RlbWRgYAorICBUaGUgU3lz
dGVtZCBsaWJyYXJ5LCBpZiBmb3VuZC4KKworUmVzdWx0IFZhcmlhYmxlcworXl5eXl5eXl5eXl5e
Xl5eXgorCitUaGlzIHdpbGwgZGVmaW5lIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGluIHlvdXIg
cHJvamVjdDoKKworYGBTeXN0ZW1kX0ZPVU5EYGAKKyAgdHJ1ZSBpZiAodGhlIHJlcXVlc3RlZCB2
ZXJzaW9uIG9mKSBTeXN0ZW1kIGlzIGF2YWlsYWJsZS4KK2BgU3lzdGVtZF9WRVJTSU9OYGAKKyAg
dGhlIHZlcnNpb24gb2YgU3lzdGVtZC4KK2BgU3lzdGVtZF9MSUJSQVJJRVNgYAorICB0aGUgbGli
cmFyaWVzIHRvIGxpbmsgYWdhaW5zdCB0byB1c2UgU3lzdGVtZC4KK2BgU3lzdGVtZF9JTkNMVURF
X0RJUlNgYAorICB3aGVyZSB0byBmaW5kIHRoZSBTeXN0ZW1kIGhlYWRlcnMuCitgYFN5c3RlbWRf
Q09NUElMRV9PUFRJT05TYGAKKyAgdGhpcyBzaG91bGQgYmUgcGFzc2VkIHRvIHRhcmdldF9jb21w
aWxlX29wdGlvbnMoKSwgaWYgdGhlCisgIHRhcmdldCBpcyBub3QgdXNlZCBmb3IgbGlua2luZwor
CisjXT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09XQorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnIFFVSUVUKQorCitw
a2dfY2hlY2tfbW9kdWxlcyhQQ19TWVNURU1EIFFVSUVUIGxpYnN5c3RlbWQpCitzZXQoU3lzdGVt
ZF9DT01QSUxFX09QVElPTlMgJHtQQ19TWVNURU1EX0NGTEFHU19PVEhFUn0pCitzZXQoU3lzdGVt
ZF9WRVJTSU9OICR7UENfU1lTVEVNRF9WRVJTSU9OfSkKKworZmluZF9wYXRoKFN5c3RlbWRfSU5D
TFVERV9ESVIKKyAgICBOQU1FUyBzeXN0ZW1kL3NkLWpvdXJuYWwuaAorICAgIEhJTlRTICR7UENf
U1lTVEVNRF9JTkNMVURFRElSfSAke1BDX1NZU1RFTURfSU5DTFVERV9ESVJTfQorKQorCitmaW5k
X2xpYnJhcnkoU3lzdGVtZF9MSUJSQVJZCisgICAgTkFNRVMgJHtTeXN0ZW1kX05BTUVTfSBzeXN0
ZW1kCisgICAgSElOVFMgJHtQQ19TWVNURU1EX0xJQkRJUn0gJHtQQ19TWVNURU1EX0xJQlJBUllf
RElSU30KKykKKworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRf
cGFja2FnZV9oYW5kbGVfc3RhbmRhcmRfYXJncyhTeXN0ZW1kCisgICAgRk9VTkRfVkFSIFN5c3Rl
bWRfRk9VTkQKKyAgICBSRVFVSVJFRF9WQVJTIFN5c3RlbWRfTElCUkFSWSBTeXN0ZW1kX0lOQ0xV
REVfRElSCisgICAgVkVSU0lPTl9WQVIgU3lzdGVtZF9WRVJTSU9OCispCisKK2lmIChTeXN0ZW1k
X0xJQlJBUlkgQU5EIE5PVCBUQVJHRVQgU3lzdGVtZDo6U3lzdGVtZCkKKyAgICBhZGRfbGlicmFy
eShTeXN0ZW1kOjpTeXN0ZW1kIFVOS05PV04gSU1QT1JURUQgR0xPQkFMKQorICAgIHNldF90YXJn
ZXRfcHJvcGVydGllcyhTeXN0ZW1kOjpTeXN0ZW1kIFBST1BFUlRJRVMKKyAgICAgICAgSU1QT1JU
RURfTE9DQVRJT04gIiR7U3lzdGVtZF9MSUJSQVJZfSIKKyAgICAgICAgSU5URVJGQUNFX0NPTVBJ
TEVfT1BUSU9OUyAiJHtTeXN0ZW1kX0NPTVBJTEVfT1BUSU9OU30iCisgICAgICAgIElOVEVSRkFD
RV9JTkNMVURFX0RJUkVDVE9SSUVTICIke1N5c3RlbWRfSU5DTFVERV9ESVJ9IgorICAgICkKK2Vu
ZGlmICgpCisKK21hcmtfYXNfYWR2YW5jZWQoU3lzdGVtZF9JTkNMVURFX0RJUiBTeXN0ZW1kX0xJ
QlJBUlkpCisKK2lmIChTeXN0ZW1kX0ZPVU5EKQorICAgIHNldChTeXN0ZW1kX0xJQlJBUklFUyAk
e1N5c3RlbWRfTElCUkFSWX0pCisgICAgc2V0KFN5c3RlbWRfSU5DTFVERV9ESVJTICR7U3lzdGVt
ZF9JTkNMVURFX0RJUn0pCitlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlv
bnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCA1Y2IyZWMx
ZWM5ZmRhYzcxMDlkMTAyNzViZjRkNzA4OGQyYzJhNjg2Li5mZDM2N2I4MjYzOGY5NmUxYzFmOTRl
YmVmZTkzZmJiMDQzOWE0ZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5j
bWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtODcsNiArODcsNyBA
QCBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfTElCU0VDUkVUICJXaGV0aGVyIHRvIGVuYWJsZSB0
aGUgcGVyc2lzdGVudCBjcmVkZW50aWFsCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfT1BFTkpQ
RUcgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIEpQRUcyMDAwIGltYWdlcy4iIFBVQkxJ
QyBPTikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9XT0ZGMiAiV2hldGhlciB0byBlbmFibGUg
c3VwcG9ydCBmb3IgV09GRjIgV2ViIEZvbnRzLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9E
RUZJTkUoVVNFX1dQRV9SRU5ERVJFUiAiV2hldGhlciB0byBlbmFibGUgV1BFIHJlbmRlcmluZyIg
UFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1NZU1RFTUQgIldoZXRoZXIgdG8g
ZW5hYmxlIGpvdXJuYWxkIGxvZ2dpbmciIFBVQkxJQyBPTikKIAogIyBQcml2YXRlIG9wdGlvbnMg
c3BlY2lmaWMgdG8gdGhlIEdUSyBwb3J0LiBDaGFuZ2luZyB0aGVzZSBvcHRpb25zIGlzCiAjIGNv
bXBsZXRlbHkgdW5zdXBwb3J0ZWQuIFRoZXkgYXJlIGludGVuZGVkIGZvciB1c2Ugb25seSBieSBX
ZWJLaXQgZGV2ZWxvcGVycy4KQEAgLTM4Niw2ICszODcsMTYgQEAgaWYgKFVTRV9XT0ZGMikKICAg
ICBlbmRpZiAoKQogZW5kaWYgKCkKIAoraWYgKFVTRV9TWVNURU1EKQorICAgIGZpbmRfcGFja2Fn
ZShTeXN0ZW1kKQorICAgIGlmIChTeXN0ZW1kX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKFNUQVRV
UyAiUmVsZWFzZSBsb2dzIHdpbGwgYmUgc2VudCB0byB0aGUgU3lzdGVtZCBqb3VybmFsIikKKyAg
ICAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0pPVVJOQUxEIFRSVUUpCisgICAgZWxz
ZSAoKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJsaWJzeXN0ZW1kIGlzIG5lZWRlZCBm
b3IgVVNFX1NZU1RFTUQiKQorICAgIGVuZGlmICgpCitlbmRpZiAoKQorCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIyNDcKIGlmIChFTkFCTEVEX0NPTVBJTEVS
X1NBTklUSVpFUlMpCiAgICAgc2V0KEVOQUJMRV9JTlRST1NQRUNUSU9OIE9GRikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2UKaW5kZXggMDU1MzFjZjY1NjBjMGY1YjE5ZjQzZTE0NzYyM2YxMTYzYmI5YmQyOS4u
OTVjMzgzYThjMTNjNjZmNzhmNDczYzc2ZTYyMmVhOGZlZDUwYTQzOCAxMDA2NDQKLS0tIGEvU291
cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUu
Y21ha2UKQEAgLTc0LDYgKzc0LDcgQEAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0dUS0RP
QyAiV2hldGhlciBvciBub3QgdG8gdXNlIGdlbmVyYXRlIGd0a2RvYy4iIFBVQkwKIFdFQktJVF9P
UFRJT05fREVGSU5FKFVTRV9PUEVOSlBFRyAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3Ig
SlBFRzIwMDAgaW1hZ2VzLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1dP
RkYyICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBXT0ZGMiBXZWIgRm9udHMuIiBQVUJM
SUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfV1BFX1FUX0FQSSAiV2hldGhlciB0
byBlbmFibGUgc3VwcG9ydCBmb3IgdGhlIFF0NS9RTUwgcGx1Z2luIiBQVUJMSUMgT0ZGKQorV0VC
S0lUX09QVElPTl9ERUZJTkUoVVNFX1NZU1RFTUQgIldoZXRoZXIgdG8gZW5hYmxlIGpvdXJuYWxk
IGxvZ2dpbmciIFBVQkxJQyBPTikKIAogIyBQcml2YXRlIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhl
IFdQRSBwb3J0LgogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9IT0xFUFVOQ0gg
IldoZXRoZXIgdG8gZW5hYmxlIEdTdHJlYW1lciBob2xlcHVuY2giIFBSSVZBVEUgT0ZGKQpAQCAt
MTcyLDExICsxNzMsMjIgQEAgaWYgKEVOQUJMRV9XUEVfUVRfQVBJIE9SIFVTRV9XUEVfVklERU9f
UExBTkVfRElTUExBWV9ETUFCVUYpCiAgICAgZmluZF9wYWNrYWdlKFdQRUJhY2tlbmRfZmRvIDEu
NS4wIFJFUVVJUkVEKQogZW5kaWYgKCkKIAorCiBpZiAoRU5BQkxFX1dFQlhSKQogICAgIGZpbmRf
cGFja2FnZShPcGVuWFIgMS4wKQogICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9PUEVO
WFIgJHtPcGVuWFJfRk9VTkR9KQogZW5kaWYgKCkKIAoraWYgKFVTRV9TWVNURU1EKQorICAgIGZp
bmRfcGFja2FnZShTeXN0ZW1kKQorICAgIGlmIChTeXN0ZW1kX0ZPVU5EKQorICAgICAgICBtZXNz
YWdlKFNUQVRVUyAiUmVsZWFzZSBsb2dzIHdpbGwgYmUgc2VudCB0byB0aGUgU3lzdGVtZCBqb3Vy
bmFsIikKKyAgICAgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0pPVVJOQUxEIFRSVUUp
CisgICAgZWxzZSAoKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJsaWJzeXN0ZW1kIGlz
IG5lZWRlZCBmb3IgVVNFX1NZU1RFTUQiKQorICAgIGVuZGlmICgpCitlbmRpZiAoKQorCiBhZGRf
ZGVmaW5pdGlvbnMoLURCVUlMRElOR19XUEVfXz0xKQogYWRkX2RlZmluaXRpb25zKC1ER0VUVEVY
VF9QQUNLQUdFPSJXUEUiKQogYWRkX2RlZmluaXRpb25zKC1ESlNDX0dMSUJfQVBJX0VOQUJMRUQp
CmRpZmYgLS1naXQgYS9Ub29scy9ndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMgYi9Ub29scy9ndGsv
aW5zdGFsbC1kZXBlbmRlbmNpZXMKaW5kZXggNmZkNTY2ZjBkY2YzYzUxNDJmNjkwZmUyYjM5M2E2
ZTAzZTc5ZTNhMy4uYmE2MjI3M2U0NmM4ODdlODAwYTdlZjdhYzU4YTA2OTNjNjVmMDIyMyAxMDA3
NTUKLS0tIGEvVG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzCisrKyBiL1Rvb2xzL2d0ay9p
bnN0YWxsLWRlcGVuZGVuY2llcwpAQCAtMTMzLDYgKzEzMyw3IEBAIGZ1bmN0aW9uIGluc3RhbGxE
ZXBlbmRlbmNpZXNXaXRoQXB0IHsKICAgICAgICAgbGlic291cDIuNC1kZXYgXAogICAgICAgICBs
aWJzcWxpdGUzLWRldiBcCiAgICAgICAgIGxpYnNydHAyLWRldiBcCisgICAgICAgIGxpYnN5c3Rl
bWQtZGV2IFwKICAgICAgICAgbGlidGFzbjEtNi1kZXYgXAogICAgICAgICBsaWJ0aGVvcmEtZGV2
IFwKICAgICAgICAgbGlidG9vbCBcCkBAIC0zMDcsNiArMzA4LDcgQEAgZnVuY3Rpb24gaW5zdGFs
bERlcGVuZGVuY2llc1dpdGhQYWNtYW4gewogICAgICAgICBsaWJzZWNyZXQgXAogICAgICAgICBs
aWJzb3VwIFwKICAgICAgICAgbGlic3J0cCBcCisgICAgICAgIGxpYnN5c3RlbWQgXAogICAgICAg
ICBzcWxpdGUgXAogICAgICAgICBsaWJ0YXNuMSBcCiAgICAgICAgIGxpYnRoZW9yYSBcCkBAIC00
NjcsNiArNDY5LDcgQEAgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1dpdGhEbmYgewogICAg
ICAgICBsaWJzZWNyZXQtZGV2ZWwgXAogICAgICAgICBsaWJzb3VwLWRldmVsIFwKICAgICAgICAg
bGlic3J0cC1kZXZlbCBcCisgICAgICAgIGxpYnN5c3RlbWQtZGV2ZWwgXAogICAgICAgICBsaWJ0
YXNuMS1kZXZlbCBcCiAgICAgICAgIGxpYnRoZW9yYS1kZXZlbCBcCiAgICAgICAgIGxpYnY0bC1k
ZXZlbCBcCmRpZmYgLS1naXQgYS9Ub29scy93cGUvaW5zdGFsbC1kZXBlbmRlbmNpZXMgYi9Ub29s
cy93cGUvaW5zdGFsbC1kZXBlbmRlbmNpZXMKaW5kZXggY2ExY2QzZmRlZjBjYWY2NDY2ODIzZTVh
OGVkOTJiNDQ3YzQ5MGFhMS4uZTQyOGNkMmFhNTIwZDYxYjA3YjU1ZTQ0YzQ4MzEyNjFiZGYyNmE3
YSAxMDA3NTUKLS0tIGEvVG9vbHMvd3BlL2luc3RhbGwtZGVwZW5kZW5jaWVzCisrKyBiL1Rvb2xz
L3dwZS9pbnN0YWxsLWRlcGVuZGVuY2llcwpAQCAtODEsNiArODEsNyBAQCBmdW5jdGlvbiBpbnN0
YWxsRGVwZW5kZW5jaWVzV2l0aEFwdCB7CiAgICAgICAgICQoYXB0SWZFbHNlIGxpYnBuZy1kZXYg
bGlicG5nMTItZGV2KSBcCiAgICAgICAgIGxpYnNlY2NvbXAtZGV2IFwKICAgICAgICAgbGlic3Fs
aXRlMy1kZXYgXAorICAgICAgICBsaWJzeXN0ZW1kLWRldiBcCiAgICAgICAgIGxpYnRhc24xLTYt
ZGV2IFwKICAgICAgICAgbGlidG9vbCBcCiAgICAgICAgIGxpYndlYnAtZGV2IFwKQEAgLTE5Miw2
ICsxOTMsNyBAQCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0aFBhY21hbiB7CiAgICAg
ICAgIHJ1YnkKICAgICAgICAgc2VkIFwKICAgICAgICAgc3FsaXRlIFwKKyAgICAgICAgbGlic3lz
dGVtZCBcCiAgICAgICAgIHRleGluZm8gXAogICAgICAgICB3aGljaCBcCiAgICAgICAgIHpsaWIg
XApAQCAtMjkxLDYgKzI5Myw3IEBAIGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNXaXRoRG5m
IHsKICAgICAgICAgbGlianBlZy10dXJiby1kZXZlbCBcCiAgICAgICAgIGxpYnBuZy1kZXZlbCBc
CiAgICAgICAgIGxpYnNlY2NvbXAtZGV2ZWwgXAorICAgICAgICBsaWJzeXN0ZW1kLWRldmVsIFwK
ICAgICAgICAgbGlidGFzbjEtZGV2ZWwgXAogICAgICAgICBsaWJ0b29sIFwKICAgICAgICAgbGli
d2VicC1kZXZlbCBcCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggY2Jm
ZjQ3N2I1ODdkYTMyODVjOWY4ZDAwYTVkZGQzODhmODY0NjE3Zi4uOWEwZTYxZjFiYThhNWJiM2Y3
MzNmMGEwMDQyYjQ2MDEyYmUwMmE3NyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAyLTE5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUxFQVNFX0xPRyBzaG91bGQgbm90IGJlIENv
Y29hIHNwZWNpZmljCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBuZXcgRU5BQkxFX1JFTEVBU0VfTE9HR0lORyBDTWFrZSBvcHRpb24sIGVuYWJs
ZWQgYnkgZGVmYXVsdAorICAgICAgICBpbiB0aGUgR1RLIGFuZCBXUEUgcG9ydHMuIFdoZW4gdGhp
cyBpcyBlbmFibGVkLCByZWxlYXNlIGxvZ3Mgd2lsbAorICAgICAgICBiZSBzZW50IHRvIHRoZSBT
eXN0ZW1kIEpvdXJuYWwuIFRvIHJldHJpZXZlIG1lZGlhIGxvZ3MgZm9yCisgICAgICAgIGluc3Rh
bmNlLCB0aGlzIGNvbW1hbmQgY2FuIGJlIHVzZWQ6CisKKyAgICAgICAgJCBqb3VybmFsY3RsIFNV
QlNZU1RFTT1XZWJLaXRHVEsgQ0hBTk5FTD1NZWRpYQorCisgICAgICAgICogU291cmNlL2NtYWtl
L0ZpbmRTeXN0ZW1kLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZToKKwog
MjAyMC0wMy0xNiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIFdlYktpdFN5c3RlbUludGVyZmFjZQo=
</data>
<flag name="review"
          id="409130"
          type_id="1"
          status="+"
          setter="annulen"
    />
          </attachment>
      

    </bug>

</bugzilla>