<?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>160969</bug_id>
          
          <creation_ts>2016-08-18 12:29:45 -0700</creation_ts>
          <short_desc>WebKit should set a subsystem for os_log so it&apos;s easier to filter for WebKit log messages</short_desc>
          <delta_ts>2016-08-31 18:35:40 -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="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221156</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-18 12:29:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/26068734&gt;

With the Logging 2.0 os_log API, you can set a custom subsystem for your logs. This allows you to later filter logs and see just what your subsystem logged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222481</commentid>
    <comment_count>1</comment_count>
      <attachid>286797</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-23 15:55:59 -0700</bug_when>
    <thetext>Created attachment 286797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222483</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 16:00:43 -0700</bug_when>
    <thetext>Attachment 286797 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.h:151:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:156:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:159:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:435:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.h:436:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.h:441:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.h:442:  Extra space after ( in function call  [whitespace/parens] [4]
Total errors found: 7 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222484</commentid>
    <comment_count>3</comment_count>
      <attachid>286797</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-23 16:03:45 -0700</bug_when>
    <thetext>Comment on attachment 286797
Patch

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

&gt; Source/WTF/ChangeLog:36
&gt; +        Registry on Windows, and the `defaults` global domain on macOS. The

Not necessarily the global domain; just a domain that NSUserDefaults picks up.

&gt; Source/WTF/ChangeLog:56
&gt; +        defaults write -g WebCoreLogging -string &apos;all=---,Network=**+&apos;

This is too crazypants. I&apos;d never be able to parse that in my head.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222488</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-23 16:08:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 286797 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=286797&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:36
&gt; &gt; +        Registry on Windows, and the `defaults` global domain on macOS. The
&gt; 
&gt; Not necessarily the global domain; just a domain that NSUserDefaults picks
&gt; up.

Good point.

&gt; &gt; Source/WTF/ChangeLog:56
&gt; &gt; +        defaults write -g WebCoreLogging -string &apos;all=---,Network=**+&apos;
&gt; 
&gt; This is too crazypants. I&apos;d never be able to parse that in my head.

What would you suggest? I thought of something like full structured JSON strings, but that seemed too crazypants for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222491</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-23 16:13:18 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 286797 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=286797&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/ChangeLog:36
&gt; &gt; &gt; +        Registry on Windows, and the `defaults` global domain on macOS. The
&gt; &gt; 
&gt; &gt; Not necessarily the global domain; just a domain that NSUserDefaults picks
&gt; &gt; up.
&gt; 
&gt; Good point.
&gt; 
&gt; &gt; &gt; Source/WTF/ChangeLog:56
&gt; &gt; &gt; +        defaults write -g WebCoreLogging -string &apos;all=---,Network=**+&apos;
&gt; &gt; 
&gt; &gt; This is too crazypants. I&apos;d never be able to parse that in my head.
&gt; 
&gt; What would you suggest? I thought of something like full structured JSON
&gt; strings, but that seemed too crazypants for me.

I think you should break this patch up into several parts:

Part 1: use the com.apple.WebKit subsystem for existing release logging. This would allow us to turn it off with &apos;log config&apos;
Part 2: use log channel names as categories for release logging. This would allow us to filter by category.
Part 3: There is no part 3? Not sure if controlling release logging through &apos;defaults&apos; makes sense, and may even cause problems (someone could disable os_logging for webkit by mistake).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222506</commentid>
    <comment_count>6</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-23 16:31:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think you should break this patch up into several parts:
&gt; 
&gt; Part 1: use the com.apple.WebKit subsystem for existing release logging.
&gt; This would allow us to turn it off with &apos;log config&apos;
&gt; Part 2: use log channel names as categories for release logging. This would
&gt; allow us to filter by category.
&gt; Part 3: There is no part 3? Not sure if controlling release logging through
&gt; &apos;defaults&apos; makes sense, and may even cause problems (someone could disable
&gt; os_logging for webkit by mistake).

One of the use-cases I was thinking of was someone who wanted to use debug-level logging for some local development. They would want to use debug-level logging so that they would be reasonably sure that it would be disabled in most cases. That way, the code could stay around and be re-enabled on an as-needed basis.

At the same time, I wanted to be able to filter out other logging. The biggest comment I get about this new logging is &quot;what is all this logging and how do I get rid of it?&quot;. Someone viewing the logging via Console or the `log` tool can filter it out, but there are also people who use Xcode, which doesn&apos;t have advanced filtering facilities. There&apos;s an environment variable that controls this somewhat, but it is not flexible enough to filter out default and info logging and keep debug logging. So I extended the current `defaults` mechanism to support them.

In short, I wanted to support someone using Xcode to debug with debug-level logging statements, without any other logging getting in the way. I think that&apos;s a common enough scenario that we want to support it, but don&apos;t think that just Part 1 &amp; 2 are sufficient to get us all the way there.

I&apos;m not sure how likely Part 3 would be to cause a problem. This logging is intended to help us uncover issues on users&apos; systems. While we may run into the problem of accidentally turning off logging locally, I&apos;m not sure that we&apos;d ever run into that issue in the wild.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223158</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-08-25 11:54:39 -0700</bug_when>
    <thetext>This is a very large change, so it&apos;s difficult to pick apart, but I think there are at least four separate things going on here:

1) Adding the os_log subsystem.
2) Adding the os_log categories, mapped to our old logging channels.
3) Making os_log runtime switchable, mapped to our old logging channels.
4) Adding debug/info/fault logging.

I think these would be better done as separate patches.

• I think (1) is probably non-contentiously a good idea.

• For (2), I&apos;m not sure that the right way to go for adding os_log categories to release logging is to map these onto the old WK logging channels. The existing mechanism is intended to be debug only, and not designed to be efficient, parsing strings at runtime to discover the set of channels, adds an extra level of indirection, etc. Perhaps it would be better to let logging clients create &amp; pass in their own channels, instead of WTF knowing having to know about all of them? E.g. you could add a ReleaseLogChannel object to set up the channel; FrameLoader could just have a singleton instance of one of these objects so it owned it could own its logging channel.

• For (3), I&apos;d like to be clear on what the goals are here. I think our primary goal here is to have a workaround for current limitation that we don&apos;t think we can turn off the release logging when debugging in Xcode. If that is the goal, then remapping RELEASE_LOG not the old logging system seems like a really heavyweight solution. It seems instead we could have a single global bool flag that in DEBUG builds could be used to disable all release logging. Mapping RELEASE_LOG onto the existing logging mechanisms seems to be taking us in the wrong direction, since longer term I don’t think we want to still be using the existing mechanisms even for debug logging. I think we want to find a suitable way to make the old debug logging be better mapped onto os_log mechanisms on Darwin platforms, so we can use the system channel controls rather than relying on our own.

• For (4), I’m not sure that I yet see the value in adding this. In WebKit we have a policy of not keeping dead code in the tree. If we’re adding these functions, we should have a compelling use case of where we think they should be used. If we’re not currently planning to use these mechanisms, I think you should hold off on landing a patch to add them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223162</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-08-25 12:05:47 -0700</bug_when>
    <thetext>Actually, Maybe I&apos;m wrong to separate (1) and (2) – since the subsystem is specified in the same object as the category, maybe these two changes do fit together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223166</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-25 12:11:48 -0700</bug_when>
    <thetext>I spent some time yesterday talking with some people about their logging needs.

There was a discussion about submitting support for subsystems and categories separately. But once subsystem support was in place, adding support for categories was a three-line change, so it seemed to make sense to include them together. Support for categories is efficient (there&apos;s no string parsing or indirection).

Regarding support for INFO, DEBUG, and FAULT logging, I think we may have cases for these. Safari uses INFO level debugging, so having support for that would help them consolidate their macros onto our facilities. DEBUG logging would be useful for some page-loading issues I&apos;m looking into now. And FAULT logging would be helpful to gather INFO-level logging in the cases where an issue spans the Safari, WebContent, and Networking processes. So I think there&apos;s a need for these macros. Even if there isn&apos;t they&apos;re only a few lines of isolated code. It seems simple enough to include them for the (possibly rare) cases they are needed.

As for some facility to control what logging gets spewed to Xcode, the current mechanism is being removed until we can determine what works best for everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223197</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-25 13:18:37 -0700</bug_when>
    <thetext>After discussing with Gavin, support for INFO, DEBUG, and FAULT logging is coming out of this patch. While there are use cases for them, until there is any actual use of them, they should not be included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223338</commentid>
    <comment_count>11</comment_count>
      <attachid>287048</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-25 17:14:01 -0700</bug_when>
    <thetext>Created attachment 287048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223343</commentid>
    <comment_count>12</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-25 17:24:51 -0700</bug_when>
    <thetext>Patch doesn&apos;t apply. I&apos;ll fix and re-upload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223408</commentid>
    <comment_count>13</comment_count>
      <attachid>287073</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-25 21:35:20 -0700</bug_when>
    <thetext>Created attachment 287073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223409</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-25 21:38:13 -0700</bug_when>
    <thetext>Attachment 287073 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.h:150:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:155:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:158:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:406:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.h:409:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.h:412:  Extra space after ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223672</commentid>
    <comment_count>15</comment_count>
      <attachid>287073</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-26 13:36:53 -0700</bug_when>
    <thetext>Comment on attachment 287073
Patch

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

&gt; Source/WTF/wtf/Assertions.h:160
&gt; +#define LOG_CHANNEL(name) JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, name)
&gt; +#define LOG_CHANNEL_ADDRESS(name) &amp;LOG_CHANNEL(name),
&gt; +#define JOIN_LOG_CHANNEL_WITH_PREFIX(prefix, channel) JOIN_LOG_CHANNEL_WITH_PREFIX_LEVEL_2(prefix, channel)
&gt; +#define JOIN_LOG_CHANNEL_WITH_PREFIX_LEVEL_2(prefix, channel) prefix ## channel
&gt; +
&gt; +#define DECLARE_LOG_CHANNEL(name) \
&gt; +    extern WTFLogChannel LOG_CHANNEL(name);
&gt; +
&gt; +#if !defined(DEFINE_LOG_CHANNEL)
&gt; +#if RELEASE_LOG_DISABLED
&gt; +#define DEFINE_LOG_CHANNEL(name, subsystem) \
&gt; +    WTFLogChannel LOG_CHANNEL(name) = { WTFLogChannelOff, #name };
&gt; +#else
&gt; +#define DEFINE_LOG_CHANNEL(name, subsystem) \
&gt; +    WTFLogChannel LOG_CHANNEL(name) = { WTFLogChannelOff, #name, subsystem, OS_LOG_DEFAULT };
&gt; +#endif
&gt; +#endif

I feel like we should move all this out of Assertions.h and make wtf/Logging.h at some point.

&gt; Source/WTF/wtf/RefCountedLeakCounter.cpp:45
&gt; +static WTFLogChannel LogRefCountedLeaks = { WTFLogChannelOn, &quot;RefCountedLeaks&quot;, &quot;com.apple.WebKit&quot;, OS_LOG_DEFAULT };

I think the &quot;com.apple.WebKit&quot; should be in a macro coming from Assertions.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225155</commentid>
    <comment_count>16</comment_count>
      <attachid>287565</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-08-31 16:43:57 -0700</bug_when>
    <thetext>Created attachment 287565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225158</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-31 16:45:41 -0700</bug_when>
    <thetext>Attachment 287565 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.h:152:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:157:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:160:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:408:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/Assertions.h:414:  Extra space after ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225195</commentid>
    <comment_count>18</comment_count>
      <attachid>287565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-31 18:35:34 -0700</bug_when>
    <thetext>Comment on attachment 287565
Patch

Clearing flags on attachment: 287565

Committed r205275: &lt;http://trac.webkit.org/changeset/205275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225196</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-31 18:35:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286797</attachid>
            <date>2016-08-23 15:55:59 -0700</date>
            <delta_ts>2016-08-25 17:13:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160969-20160823155400.patch</filename>
            <type>text/plain</type>
            <size>75942</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIxZDNiYjZmMjdlMGM4NWY1ZjkzMDhj
MDBmN2ZiMWYzOTBmMjUyZTguLjJjMDNiNThmYjIzMTVlN2FiZjI4M2M0MTg3OGFhNzIyMzhhMDNl
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMTYtMDgtMjMgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZv
ciBvc19sb2cgc28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmaWx0ZXJpbmcgdGhl
IFJFTEVBU0VfTE9HIGxvZ2dpbmcgdmlhIFdURkxvZ0NoYW5uZWxzLgorICAgICAgICBFYWNoIFJF
TEVBU0VfTE9HIG1hY3JvIG5vdyB0YWtlcyBhIFdURkxvZ0NoYW5uZWwgYXMgYSBwYXJhbWV0ZXIu
IFRoZQorICAgICAgICBXVEZMb2dDaGFubmVsIGNvbnRhaW5zIFdURkxvZ0NoYW5uZWxTdGF0ZSBm
bGFncyBmb3Igd2hldGhlciBvciBub3QKKyAgICAgICAgbG9nZ2luZyBzaG91bGQgYmUgcGVyZm9y
bWVkLiBUaGVyZSBpcyBhIGZsYWcgZm9yIGVhY2ggb3NfbG9nIGxvZ2dpbmcKKyAgICAgICAgdHlw
ZSAoREVGQVVMVCwgSU5GTywgREVCVUcsIEVSUk9SLCBhbmQgRkFVTFQpLiBUaGVzZSBmbGFncyBj
YW4gYmUKKyAgICAgICAgY29udHJvbGxlZCB2aWEgZXh0ZXJuYWwgY29uZmlndXJhdGlvbi4gQnkg
ZGVmYXVsdCwgYWxsIGxvZ2dpbmcgdHlwZXMKKyAgICAgICAgYXJlIGVuYWJsZWQgZXhjZXB0IGZv
ciBkZWJ1Zy10eXBlIGxvZ2dpbmcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNwZWNpZnlp
bmcgJ3N1YnN5c3RlbScgYW5kICdjYXRlZ29yeScgd2hlbiBsb2dnaW5nCisgICAgICAgIHdpdGgg
b3NfbG9nLiBUaGUgJ3N1YnN5c3RlbScgaXMgaGFyZC1jb2RlZCB0byAnY29tLmFwcGxlLldlYktp
dCcgYW5kCisgICAgICAgIHRoZSBjYXRlZ29yeSBpcyBzZXQgdG8gdGhlIGxvZ2dpbmcgY2hhbm5l
bCBuYW1lLiBUb29scyBzdWNoIGFzIENvbnNvbGUKKyAgICAgICAgYW5kIGBsb2dgIGNhbiBmaWx0
ZXIgb24gdGhlc2UgdmFsdWVzLiBXaXRoIHRoaXMgYWJpbGl0eSwgdGhlcmUgaXMKKyAgICAgICAg
bGl0dGxlIG5lZWQgZm9yIHByZWZpeGluZyBlYWNoIGxpbmUgd2l0aCAnI1dLJyBhcyB3YXMgcHJl
dmlvdXNseSBkb25lLAorICAgICAgICBhbmQgc28gdGhhdCBiaXQgb2YgdGFnZ2luZyBoYXMgYmVl
biByZW1vdmVkLgorCisgICAgICAgIENvbXBsZXRlIHRoZSBzZXQgb2YgUkVMRUFTRV9MT0cgbWFj
cm9zIGJ5IGFkZGluZyBzdXBwb3J0IGZvciB0aGUgZnVsbAorICAgICAgICBzZXQgb2YgbG9nZ2lu
ZyBsZXZlbHMgc3VwcG9ydGVkIGJ5IG9zX2xvZy4KKworICAgICAgICBNb3ZlIHRoZSBERUNMQVJF
X0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsIGFuZAorICAgICAgICBMT0dfQ0hBTk5F
TF9BRERSRVNTIG1hY3JvcyB0byBoZXJlIC0tIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBleGlzdGVk
IGluCisgICAgICAgIHNldmVyYWwgcGxhY2VzIGVsc2V3aGVyZSBpbiBXZWJLaXQuIFVwZGF0ZSBE
RUZJTkVfTE9HX0NIQU5ORUwgdG8KKyAgICAgICAgaW5pdGlhbGl6ZSB0aGUgbmV3IGZpZWxkcyBm
b3IgZmlsdGVyaW5nIFJFTEVBU0VfTE9HIG1lc3NhZ2VzLgorCisgICAgICAgIENvbmZpZ3VyaW5n
IGxvZyBmaWx0ZXJzOgorCisgICAgICAgIFRyYWRpdGlvbmFsbHksIGNvbmZpZ3VyYXRpb24gaW5m
b3JtYXRpb24gZm9yIGxvZyBmaWx0ZXJzIGhhcyBiZWVuCisgICAgICAgIGRlZmluZWQgaW4gc29t
ZSBleHRlcm5hbCBzdG9yZTogZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIExpbnV4LAorICAgICAg
ICBSZWdpc3RyeSBvbiBXaW5kb3dzLCBhbmQgdGhlIGBkZWZhdWx0c2AgZ2xvYmFsIGRvbWFpbiBv
biBtYWNPUy4gVGhlCisgICAgICAgIGNvbmZpZ3VyYXRpb24gdmFsdWUgaGFzIHRoZSBmb3JtOiA8
dGVybT4sPHRlcm0+LC4uLiwgd2hlcmUgZWFjaCB0ZXJtCisgICAgICAgIGlzIHRoZSBuYW1lIG9m
IGEgY2hhbm5lbCwgb3B0aW9uYWxseSBwcmVmaXhlZCB3aXRoIGEgJy0nLiBJZiB0aGVyZSBpcwor
ICAgICAgICBubyAnLScsIHRoZSBjaGFubmVsIGlzIGVuYWJsZWQgZm9yIGxvZ2dpbmcsIG90aGVy
d2lzZSBpdCdzIGRpc2FibGVkLgorCisgICAgICAgIFRoaXMgZmFjaWxpdHkgaXMgbm93IGV4cGFu
ZGVkIHRvIHN1cHBvcnQgc3BlY2lmeWluZyBob3cgdGhlCisgICAgICAgIG11bHRpLWxldmVsIGxv
Z2dpbmcgdHlwZXMgaW4gdGhlIFJFTEVBU0VfTE9HIG1hY3JvcyBhcmUgZmlsdGVyZWQuIFRvCisg
ICAgICAgIHNwZWNpZnkgdGhpcyBpbmZvcm1hdGlvbiwgYSA8dGVybT4gY2FuIGhhdmUgdGhlIGZv
cm0gPG5hbWU+PWNjYyAodGhlCisgICAgICAgIHByZXZpb3VzbHktc3VwcG9ydHMgZm9ybSBpcyBz
dGlsbCBzdXBwb3J0ZWQgYW5kIHdvcmtzIGFzIGl0IGRpZAorICAgICAgICBiZWZvcmUpLiBBcyBi
ZWZvcmUsIDxuYW1lPiBpcyB0aGUgbmFtZSBvZiBhIGNoYW5uZWwuIFRoZSBmaXJzdCAnYycKKyAg
ICAgICAgY29udHJvbHMgaG93IGRlZmF1bHQtdHlwZSBsb2dnaW5nIGlzIGZpbHRlcmVkLCB0aGUg
c2Vjb25kICdjJyBjb250cm9scworICAgICAgICBob3cgaW5mby10eXBlIGxvZ2dpbmcgaXMgZmls
dGVyZWQsIGFuZCB0aGUgdGhpcmQgJ2MnIGNvbnRyb2xzIGhvdworICAgICAgICBkZWJ1Zy10eXBl
IGxvZ2dpbmcgaXMgZmlsdGVyZWQgKGVycm9yLSBhbmQgZmF1bHQtdHlwZSBsb2dnaW5nIGFyZQor
ICAgICAgICBhbHdheXMgZW5hYmxlZCkuIEVhY2ggJ2MnIGNhbiBiZSAnLScgdG8gZGlzYWJsZSBs
b2dnaW5nLCAnKycgdG8gZW5hYmxlCisgICAgICAgIGxvZ2dpbmcsIGFuZCAnKicgdG8gcmV0YWlu
IHRoZSBjdXJyZW50bHktY29uZmlndXJlZCBsb2dnaW5nIGJlaGF2aW9yLgorICAgICAgICBBcyB3
aXRoIHRoZSB0cmFkaXRpb25hbCBtZWNoYW5pc20sIHRoZSBjaGFubmVsIG5hbWUgImFsbCIgY2Fu
IGJlCisgICAgICAgIHNwZWNpZmllZCB0byBjb25maWd1cmUgYWxsIGNoYW5uZWxzIGF0IG9uY2Uu
CisKKyAgICAgICAgU28sIGZvciBleGFtcGxlOgorCisgICAgICAgIGRlZmF1bHRzIHdyaXRlIC1n
IFdlYkNvcmVMb2dnaW5nIC1zdHJpbmcgJ2FsbD0tLS0sTmV0d29yaz0qKisnCisKKyAgICAgICAg
VGhpcyBmaXJzdCBkaXNhYmxlcyBsb2dnaW5nIGZvciBhbGwgY2hhbm5lbHMgYXQgYWxsIGxldmVs
cy4gSXQgdGhlbgorICAgICAgICBlbmFibGVzIG9ubHkgZGVidWctdHlwZSBsb2dnaW5nIGZvciB0
aGUgTmV0d29yayBjaGFubmVsLCBrZWVwaW5nIHRoZQorICAgICAgICBkZWZhdWx0LSBhbmQgaW5m
by10eXBlIGxvZ2dpbmcgY29uZmlndXJhdGlvbiB1bmNoYW5nZWQuCisKKyAgICAgICAgVGhpcyBj
b25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGNvbnRyb2xzIGxvZ2dpbmcgYXQgdGhlIFdURiBsZXZl
bCBhbmQKKyAgICAgICAgaXMgdGh1cyBjcm9zcy1wbGF0Zm9ybS4gSG93ZXZlciwgdGhlIHVuZGVy
bHlpbmcgb3NfbG9nIGZhY2lsaXR5IGFsc28KKyAgICAgICAgaGFzIG1lY2hhbmlzbXMgZm9yIHNw
ZWNpZnlpbmcgcG9saWN5IHRoYXQgY29udHJvbHMgd2hhdCBnZXRzIGxvZ2dlZC4KKyAgICAgICAg
QnkgZGVmYXVsdCwgZGVmYXVsdC0gYW5kIGluZm8tdHlwZSBsb2dnaW5nIGlzIGVuYWJsZWQgYW5k
IGRlYnVnLXR5cGUKKyAgICAgICAgbG9nZ2luZyBpcyBkaXNhYmxlZC4gSWYgeW91IHdhbnQgdG8g
dXNlIGRlYnVnLXR5cGUgbG9nZ2luZywgb3NfbG9nCisgICAgICAgIG5lZWRzIHRvIGJlIGNvbmZp
Z3VyZWQgdG8gYWxsb3cgaXQuIFRoaXMgY2FuIGJlIGRvbmUgd2l0aCB0aGUgYGxvZ2AKKyAgICAg
ICAgY29tbWFuZCBsaW5lIHRvb2w6CisKKyAgICAgICAgc3VkbyBsb2cgY29uZmlnIC0tc3Vic3lz
dGVtIGNvbS5hcHBsZS5XZWJLaXQgLS1tb2RlICJsZXZlbDogZGVidWciCisKKyAgICAgICAgSWYg
eW91IGFyZSB1c2luZyBDb25zb2xlIGFuZCB3YW50IHRvIGxvZyBhbmQgc2VlIGluZm8tIGFuZCBk
ZWJ1Zy10eXBlCisgICAgICAgIG1lc3NhZ2VzLCBiZSBzdXJlIHRvIGVuYWJsZSB0aGVpciBkaXNw
bGF5IGluIHRoZSBBY3Rpb24gbWVudS4KKworICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoK
KyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5oOgorICAgICAgICAqIHd0Zi9SZWZDb3VudGVkTGVh
a0NvdW50ZXIuY3BwOgorCiAyMDE2LTA4LTIyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEFjdHVhbGx5IGVuYWJsZSB0aGUgV0FTTSBidWlsZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhZTM4Njg0MTFhZmYyMGIwYzk5ZGE2ZjgxZDYwMzE1ZDAxOWI3MDcyLi44ZTY0
YTUxNGUwMGY5YmUzZTU4OWI0MmEyOTA5NTE1MGE2NGRkZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMTYtMDgtMjMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZvciBvc19sb2cgc28gaXQn
cyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC0gU3BlY2lmeSBhIGNoYW5uZWwgd2hlbiB1c2luZyBSRUxFQVNFX0xPRyBt
YWNyb3MKKyAgICAgICAgLSBBZGQgYSBuZXcgY2hhbm5lbCBzbyB0aGF0IHdlIGhhdmUgc29tZXRo
aW5nIHRvIHBhc3MgdG8gdGhlCisgICAgICAgICAgUkVMRUFTRV9MT0cgbWFjcm9zIChMYXllcnMp
LgorICAgICAgICAtIEVuYWJsZSBjaGFubmVsLXJlbGF0ZWQgZGF0YSBhbmQgZnVuY3Rpb25zIHdo
ZW4gdXNpbmcgUkVMRUFTRV9MT0cKKyAgICAgICAgICBtYWNyb3MuCisgICAgICAgIC0gVXNlIHRo
ZSBERUNMQVJFX0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsIGFuZAorICAgICAgICAg
IExPR19DSEFOTkVMX0FERFJFU1MgbWFjcm9zIHRoYXQgYXJlIG5vdyBkZWZpbmVkIGluIFdURi4K
KworICAgICAgICBObyBuZXcgdGVzdHMuIFdlIGRvbid0IGhhdmUgdGVzdHMgZm9yIGxvZ2dpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvZ0luaXRpYWxpemF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9nTWFjcm9zLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6bG9nTWVt
b3J5VXNhZ2VDaGFuZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05h
dGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL0xvZ2dpbmdNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vdW5peC9Mb2dn
aW5nVW5peC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vd2luL0xvZ2dpbmdXaW4uY3BwOgorICAg
ICAgICAqIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmVUZXN0U3VwcG9ydDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkpOgorCiAyMDE2
LTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEIHNob3VsZCBub3QgaGF2ZSBhIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQgcGFyZW50IGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGNjMDI0YWZmMmQ1NjNkMjVm
MzJiMGNmNWI2YjJkYzU2YjZmYzllMDAuLmRkYWQ0MDI5NGZlMzhiNzY2OTkyYzg4Yjc3NTE0YWYz
OTQ4YjhiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNi0wOC0yMyAg
S2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IHNob3Vs
ZCBzZXQgYSBzdWJzeXN0ZW0gZm9yIG9zX2xvZyBzbyBpdCdzIGVhc2llciB0byBmaWx0ZXIgZm9y
IFdlYktpdCBsb2cgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MDk2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjYwNjg3MzQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIGNo
YW5uZWwtcmVsYXRlZCBkYXRhIGFuZCBmdW5jdGlvbnMgd2hlbiB1c2luZyBSRUxFQVNFX0xPRwor
ICAgICAgICBtYWNyb3MuIFVzZSB0aGUgREVDTEFSRV9MT0dfQ0hBTk5FTCwgREVGSU5FX0xPR19D
SEFOTkVMLCBhbmQKKyAgICAgICAgTE9HX0NIQU5ORUxfQUREUkVTUyBtYWNyb3MgdGhhdCBhcmUg
bm93IGRlZmluZWQgaW4gV1RGLgorCisgICAgICAgICogTWlzYy9XZWJLaXRMb2dnaW5nLmg6Cisg
ICAgICAgICogTWlzYy9XZWJLaXRMb2dnaW5nLm06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5h
bWU6Z3JvdXBOYW1lOl0pOgorCiAyMDE2LTA4LTIyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIE9iamVjdGl2ZS1DIERPTSBiaW5kaW5ncyBmcm9tIFdlYkNv
cmUgdG8gbGVnYWN5IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDRiMWNmNmI1NjEyYTk3OTI2
Yzg1MDUyZmFkODM4Mzk1NGQwM2UwYmYuLjA1NWU5NTRmMjViYjFlNzZkNWZkNjJkMGU2YWZiN2Ux
ZmQ5M2NmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNi0wOC0yMyAg
S2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IHNob3Vs
ZCBzZXQgYSBzdWJzeXN0ZW0gZm9yIG9zX2xvZyBzbyBpdCdzIGVhc2llciB0byBmaWx0ZXIgZm9y
IFdlYktpdCBsb2cgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MDk2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjYwNjg3MzQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIGNo
YW5uZWwtcmVsYXRlZCBkYXRhIGFuZCBmdW5jdGlvbnMgd2hlbiB1c2luZyBSRUxFQVNFX0xPRwor
ICAgICAgICBtYWNyb3MuIFVzZSB0aGUgREVDTEFSRV9MT0dfQ0hBTk5FTCwgREVGSU5FX0xPR19D
SEFOTkVMLCBhbmQKKyAgICAgICAgTE9HX0NIQU5ORUxfQUREUkVTUyBtYWNyb3MgdGhhdCBhcmUg
bm93IGRlZmluZWQgaW4gV1RGLgorCisgICAgICAgICogV2ViS2l0TG9nZ2luZy5jcHA6CisgICAg
ICAgICogV2ViS2l0TG9nZ2luZy5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAo
V2ViVmlldzo6aW5pdFdpdGhGcmFtZSk6CisKIDIwMTYtMDgtMjEgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgRG9jdW1lbnQmIGluc3Rl
YWQgb2YgRG9jdW1lbnQqIHdoZW4gZ2V0dGluZyBjb29raWVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjVjMTYx
M2NlOTdjYjkwMzQ2NjQ2MWVjMWI5NTVjN2QyMjQ5MzkxNy4uMWYzYWJiOWQ3ZjNkZTI0MzA1NmFh
MGE3OWY4YjQwNTc0ODc2MDhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE2LTA4
LTIzICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQg
c2hvdWxkIHNldCBhIHN1YnN5c3RlbSBmb3Igb3NfbG9nIHNvIGl0J3MgZWFzaWVyIHRvIGZpbHRl
ciBmb3IgV2ViS2l0IGxvZyBtZXNzYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjA2ODcz
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIFNw
ZWNpZnkgYSBjaGFubmVsIHdoZW4gdXNpbmcgUkVMRUFTRV9MT0cgbWFjcm9zLgorICAgICAgICAt
IEFkZCBzb21lIG5ldyBjaGFubmVscyBzbyB0aGF0IHdlIGhhdmUgc29tZXRoaW5nIHRvIHBhc3Mg
dG8gdGhlCisgICAgICAgICAgUkVMRUFTRV9MT0cgbWFjcm9zIChQcm9jZXNzU3VzcGVuc2lvbiwg
SVBDLCBMYXllcnMpLgorICAgICAgICAtIEVuYWJsZSBjaGFubmVsLXJlbGF0ZWQgZGF0YSBhbmQg
ZnVuY3Rpb25zIHdoZW4gdXNpbmcgUkVMRUFTRV9MT0cKKyAgICAgICAgICBtYWNyb3MuCisgICAg
ICAgIC0gVXNlIHRoZSBERUNMQVJFX0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsIGFu
ZAorICAgICAgICAgIExPR19DSEFOTkVMX0FERFJFU1MgbWFjcm9zIHRoYXQgYXJlIG5vdyBkZWZp
bmVkIGluIFdURi4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp3YWl0
Rm9yU3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oOgor
ICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogUGxhdGZvcm0vTG9nZ2luZy5o
OgorICAgICAgICAqIFBsYXRmb3JtL2ZvdW5kYXRpb24vTG9nZ2luZ0ZvdW5kYXRpb24ubW06Cisg
ICAgICAgICogUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHA6CisgICAgICAgICogU2hhcmVk
L0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRpZENsb3NlT25Db25uZWN0aW9u
V29ya1F1ZXVlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRl
OjpyZWxlYXNlTmV0d29ya0FjdGl2aXR5VG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0
aW9uU3RhdGU6OmRpZENoYW5nZUlzTG9hZGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbk5vdyk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6bV9oaWRkZW5QYWdlVGhyb3R0bGluZ1RpbWVyKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF91cGRhdGVCYWNrZ3JvdW5kVGFza10pOgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjps
YXllclZvbGF0aWxpdHlUaW1lckZpcmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNw
ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1t
aW5lbnRseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6CisKIDIwMTYtMDgt
MjMgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtF
RkxdIFVSVEJGIGFmdGVyIHIyMDQ3NDMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCmluZGV4IDRmMzlmYjE1
YWZkNTRiMTY4MjZhMzBhMDIyNmJmZTZlMDY4MWM0N2QuLjY3NDg4YjMxZGVjMzYwYWNjOGY0OWNk
ZmRhNTllMmIxYzliM2U5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCkBAIC01NTUsNiArNTU1LDE4
IEBAIHN0YXRpYyB2b2lkIHNldFN0YXRlT2ZBbGxDaGFubmVscyhXVEZMb2dDaGFubmVsKiBjaGFu
bmVsc1tdLCBzaXplX3QgY2hhbm5lbENvdW50CiAKIHZvaWQgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxTdGF0ZXNGcm9tU3RyaW5nKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBjb3Vu
dCwgY29uc3QgY2hhciogbG9nTGV2ZWwpCiB7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIFdURkxvZ0No
YW5uZWwqIGNoYW5uZWwgPSBjaGFubmVsc1tpXTsKKyAgICAgICAgY2hhbm5lbC0+b3NMb2dDaGFu
bmVsID0gb3NfbG9nX2NyZWF0ZSgiY29tLmFwcGxlLldlYktpdCIsIGNoYW5uZWwtPm5hbWUpOwor
ICAgICAgICBjaGFubmVsLT5vc0xvZ0NoYW5uZWxTdGF0ZVtPU19MT0dfVFlQRV9ERUZBVUxUXSA9
IFdURkxvZ0NoYW5uZWxPbjsKKyAgICAgICAgY2hhbm5lbC0+b3NMb2dDaGFubmVsU3RhdGVbT1Nf
TE9HX1RZUEVfSU5GT10gPSBXVEZMb2dDaGFubmVsT247CisgICAgICAgIGNoYW5uZWwtPm9zTG9n
Q2hhbm5lbFN0YXRlW09TX0xPR19UWVBFX0RFQlVHXSA9IFdURkxvZ0NoYW5uZWxPZmY7CisgICAg
ICAgIGNoYW5uZWwtPm9zTG9nQ2hhbm5lbFN0YXRlW09TX0xPR19UWVBFX0VSUk9SXSA9IFdURkxv
Z0NoYW5uZWxPbjsKKyAgICAgICAgY2hhbm5lbC0+b3NMb2dDaGFubmVsU3RhdGVbT1NfTE9HX1RZ
UEVfRkFVTFRdID0gV1RGTG9nQ2hhbm5lbE9uOworICAgIH0KKyNlbmRpZgorCiAgICAgU3RyaW5n
IGxvZ0xldmVsU3RyaW5nID0gbG9nTGV2ZWw7CiAgICAgVmVjdG9yPFN0cmluZz4gY29tcG9uZW50
czsKICAgICBsb2dMZXZlbFN0cmluZy5zcGxpdCgnLCcsIGNvbXBvbmVudHMpOwpAQCAtNTYyLDYg
KzU3NCw1MyBAQCB2b2lkIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhX
VEZMb2dDaGFubmVsKiBjaGFubmVsc1tdLCBzaXplX3QgYwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY29tcG9uZW50cy5zaXplKCk7ICsraSkgewogICAgICAgICBTdHJpbmcgY29tcG9uZW50
ID0gY29tcG9uZW50c1tpXTsKIAorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICAgICBh
dXRvIGVxdWFsc1NpZ25Qb3NpdGlvbiA9IGNvbXBvbmVudC5maW5kKCc9Jyk7CisgICAgICAgIGlm
IChlcXVhbHNTaWduUG9zaXRpb24gIT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgIGF1dG8gb3B0
aW9ucyA9IGNvbXBvbmVudC5zdWJzdHJpbmcoZXF1YWxzU2lnblBvc2l0aW9uICsgMSk7CisgICAg
ICAgICAgICBjb21wb25lbnQgPSBjb21wb25lbnQuc3Vic3RyaW5nKDAsIGVxdWFsc1NpZ25Qb3Np
dGlvbik7CisKKyAgICAgICAgICAgIGF1dG8gcGFyc2VTdGF0ZUZvckxldmVsID0gWyZvcHRpb25z
XShzaXplX3QgaW5kZXgpIHsKKyAgICAgICAgICAgICAgICBXVEZMb2dDaGFubmVsU3RhdGUgcmVz
dWx0ID0gV1RGTG9nQ2hhbm5lbERvbnRDaGFuZ2U7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlv
bnMubGVuZ3RoKCkgPiBpbmRleCkgeworICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9uc1tp
bmRleF0gPT0gJy0nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gV1RGTG9nQ2hh
bm5lbE9mZjsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uc1tpbmRleF0gPT0g
JysnKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gV1RGTG9nQ2hhbm5lbE9uOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHRpb25zW2luZGV4XSA9PSAnPScpCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBXVEZMb2dDaGFubmVsT25XaXRoQWNjdW11bGF0
aW9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgYXV0byBzZXRTdGF0ZUZvckxldmVsID0gW10o
V1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgb3NfbG9nX3R5cGVfdCBsZXZlbCwgV1RGTG9nQ2hhbm5l
bFN0YXRlIHN0YXRlKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXRlICE9IFdURkxvZ0NoYW5u
ZWxEb250Q2hhbmdlKQorICAgICAgICAgICAgICAgICAgICBjaGFubmVsLT5vc0xvZ0NoYW5uZWxT
dGF0ZVtsZXZlbF0gPSBzdGF0ZTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGF1dG8g
ZGVmYXVsdFN0YXRlID0gcGFyc2VTdGF0ZUZvckxldmVsKDApOworICAgICAgICAgICAgYXV0byBp
bmZvU3RhdGUgPSBwYXJzZVN0YXRlRm9yTGV2ZWwoMSk7CisgICAgICAgICAgICBhdXRvIGRlYnVn
U3RhdGUgPSBwYXJzZVN0YXRlRm9yTGV2ZWwoMik7CisKKyAgICAgICAgICAgIGlmIChlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjb21wb25lbnQsICJhbGwiKSkgeworICAgICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAg
ICAgICBzZXRTdGF0ZUZvckxldmVsKGNoYW5uZWxzW2ldLCBPU19MT0dfVFlQRV9ERUZBVUxULCBk
ZWZhdWx0U3RhdGUpOworICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZUZvckxldmVsKGNoYW5u
ZWxzW2ldLCBPU19MT0dfVFlQRV9JTkZPLCBpbmZvU3RhdGUpOworICAgICAgICAgICAgICAgICAg
ICBzZXRTdGF0ZUZvckxldmVsKGNoYW5uZWxzW2ldLCBPU19MT0dfVFlQRV9ERUJVRywgZGVidWdT
dGF0ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCA9IFdU
RkxvZ0NoYW5uZWxCeU5hbWUoY2hhbm5lbHMsIGNvdW50LCBjb21wb25lbnQudXRmOCgpLmRhdGEo
KSkpIHsKKyAgICAgICAgICAgICAgICBzZXRTdGF0ZUZvckxldmVsKGNoYW5uZWwsIE9TX0xPR19U
WVBFX0RFRkFVTFQsIGRlZmF1bHRTdGF0ZSk7CisgICAgICAgICAgICAgICAgc2V0U3RhdGVGb3JM
ZXZlbChjaGFubmVsLCBPU19MT0dfVFlQRV9JTkZPLCBpbmZvU3RhdGUpOworICAgICAgICAgICAg
ICAgIHNldFN0YXRlRm9yTGV2ZWwoY2hhbm5lbCwgT1NfTE9HX1RZUEVfREVCVUcsIGRlYnVnU3Rh
dGUpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJV
bmtub3duIGxvZ2dpbmcgY2hhbm5lbDogJXMiLCBjb21wb25lbnQudXRmOCgpLmRhdGEoKSk7CisK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgV1RGTG9n
Q2hhbm5lbFN0YXRlIGxvZ0NoYW5uZWxTdGF0ZSA9IFdURkxvZ0NoYW5uZWxPbjsKICAgICAgICAg
aWYgKGNvbXBvbmVudC5zdGFydHNXaXRoKCctJykpIHsKICAgICAgICAgICAgIGxvZ0NoYW5uZWxT
dGF0ZSA9IFdURkxvZ0NoYW5uZWxPZmY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggODZjYjQyNWZmNmQz
N2U2ODM2MjhjYjFhYmRlNTA3NjE4ZWJjMDI1Yy4uMTM0NzhmNTBlY2Q4MDExMTNkOWZiY2Y2YTU2
YzQxNTNmYThlYzNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtMTMwLDEzICsxMzAsNDEgQEAgZXh0
ZXJuICJDIiB7CiAjZGVmaW5lIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gKICNlbmRpZgogCi10eXBl
ZGVmIGVudW0geyBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT24sIFdURkxvZ0NoYW5u
ZWxPbldpdGhBY2N1bXVsYXRpb24gfSBXVEZMb2dDaGFubmVsU3RhdGU7Cit0eXBlZGVmIGVudW0g
eyBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT24sIFdURkxvZ0NoYW5uZWxPbldpdGhB
Y2N1bXVsYXRpb24sIFdURkxvZ0NoYW5uZWxEb250Q2hhbmdlIH0gV1RGTG9nQ2hhbm5lbFN0YXRl
OwogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgV1RGTG9nQ2hhbm5lbFN0YXRlIHN0YXRlOwogICAg
IGNvbnN0IGNoYXIqIG5hbWU7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgX191bnNh
ZmVfdW5yZXRhaW5lZCBvc19sb2dfdCBvc0xvZ0NoYW5uZWw7CisgICAgV1RGTG9nQ2hhbm5lbFN0
YXRlIG9zTG9nQ2hhbm5lbFN0YXRlW09TX0xPR19UWVBFX0ZBVUxUICsgMV07CisjZW5kaWYKIH0g
V1RGTG9nQ2hhbm5lbDsKIAorI2RlZmluZSBMT0dfQ0hBTk5FTChuYW1lKSBKT0lOX0xPR19DSEFO
TkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSkKKyNkZWZpbmUgTE9HX0NI
QU5ORUxfQUREUkVTUyhuYW1lKSAmTE9HX0NIQU5ORUwobmFtZSksCisjZGVmaW5lIExPR19MRVZF
TF9FTkFCTEVEKGNoYW5uZWwsIGxldmVsKSAoTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFu
bmVsU3RhdGVbbGV2ZWxdID09IFdURkxvZ0NoYW5uZWxPbikKKyNkZWZpbmUgSk9JTl9MT0dfQ0hB
Tk5FTF9XSVRIX1BSRUZJWChwcmVmaXgsIGNoYW5uZWwpIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9Q
UkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwpCisjZGVmaW5lIEpPSU5fTE9HX0NIQU5ORUxf
V0lUSF9QUkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwpIHByZWZpeCAjIyBjaGFubmVsCisK
KyNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5FTChuYW1lKSBcCisgICAgZXh0ZXJuIFdURkxvZ0No
YW5uZWwgTE9HX0NIQU5ORUwobmFtZSk7CisKKyNpZiAhZGVmaW5lZChERUZJTkVfTE9HX0NIQU5O
RUwpCisjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVM
KG5hbWUpIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyBXVEZMb2dD
aGFubmVsT2ZmLCAjbmFtZSB9OworI2Vsc2UKKyNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5h
bWUpIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyBXVEZMb2dDaGFu
bmVsT2ZmLCAjbmFtZSwgT1NfTE9HX0RFRkFVTFQsIHtcCisgICAgICAgIFdURkxvZ0NoYW5uZWxP
ZmYsIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0NoYW5uZWxPZmYs
IFwKKyAgICAgICAgV1RGTG9nQ2hhbm5lbE9mZiwgV1RGTG9nQ2hhbm5lbE9mZiwgV1RGTG9nQ2hh
bm5lbE9mZiwgV1RGTG9nQ2hhbm5lbE9mZiwgXAorICAgICAgICBXVEZMb2dDaGFubmVsT2ZmLCBX
VEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT2ZmLCBcCisg
ICAgICAgIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0NoYW5uZWxP
ZmYsIFdURkxvZ0NoYW5uZWxPZmYsIFwKKyAgICAgICAgV1RGTG9nQ2hhbm5lbE9mZiwgV1RGTG9n
Q2hhbm5lbE9mZn0gfTsKKyNlbmRpZgorI2VuZGlmCisKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pOwogV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgV1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVyZVdpdGhNZXNzYWdlKGNvbnN0IGNo
YXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgY29uc3QgY2hhciogYXNz
ZXJ0aW9uLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RGX0FUVFJJQlVURV9QUklOVEYoNSwg
Nik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBXVEZSZXBvcnRBcmd1bWVudEFzc2VydGlvbkZh
aWx1cmUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBj
b25zdCBjaGFyKiBhcmdOYW1lLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pOwpAQCAtMzY3LDkgKzM5
NSw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgV1RG
Q3Jhc2hXaXRoU2VjdXJpdHlJbXBsaWNhdGlvbigpCiAjaWYgTE9HX0RJU0FCTEVECiAjZGVmaW5l
IExPRyhjaGFubmVsLCAuLi4pICgodm9pZCkwKQogI2Vsc2UKLSNkZWZpbmUgTE9HKGNoYW5uZWws
IC4uLikgV1RGTG9nKCZKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BS
RUZJWCwgY2hhbm5lbCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJ
VEhfUFJFRklYKHByZWZpeCwgY2hhbm5lbCkgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWF9M
RVZFTF8yKHByZWZpeCwgY2hhbm5lbCkKLSNkZWZpbmUgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BS
RUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkgcHJlZml4ICMjIGNoYW5uZWwKKyNkZWZpbmUg
TE9HKGNoYW5uZWwsIC4uLikgV1RGTG9nKCZMT0dfQ0hBTk5FTChjaGFubmVsKSwgX19WQV9BUkdT
X18pCiAjZW5kaWYKIAogLyogTE9HX1ZFUkJPU0UgKi8KQEAgLTM3NywyMiArNDAzLDYwIEBAIFdU
Rl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgV1RGQ3Jhc2hXaXRo
U2VjdXJpdHlJbXBsaWNhdGlvbigpCiAjaWYgTE9HX0RJU0FCTEVECiAjZGVmaW5lIExPR19WRVJC
T1NFKGNoYW5uZWwsIC4uLikgKCh2b2lkKTApCiAjZWxzZQotI2RlZmluZSBMT0dfVkVSQk9TRShj
aGFubmVsLCAuLi4pIFdURkxvZ1ZlcmJvc2UoX19GSUxFX18sIF9fTElORV9fLCBXVEZfUFJFVFRZ
X0ZVTkNUSU9OLCAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVG
SVgsIGNoYW5uZWwpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9HX1ZFUkJPU0UoY2hhbm5lbCwg
Li4uKSBXVEZMb2dWZXJib3NlKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BSRVRUWV9GVU5DVElP
TiwgJkxPR19DSEFOTkVMKGNoYW5uZWwpLCBfX1ZBX0FSR1NfXykKICNlbmRpZgogCi0vKiBSRUxF
QVNFX0xPRyAqLwotCi0jZGVmaW5lIFdURl9MT0dHSU5HX1BSRUZJWCAiI1dLOiAiCisvKiBSRUxF
QVNFX0xPRworICoKKyAqIFRoZSBSRUxFQVNFX0xPRyogbWFjcm9zIHNlbmQgdGhlaXIgb3V0cHV0
IHRvIGEgZmFjaWxpdHkgdGhhdCByZWNvcmRzCisgKiBsb2dnaW5nIG9uIHVzZXJzJyBzeXN0ZW1z
LiBUaGlzIGxvZ2dpbmcgY2FuIGJlIGNhcHR1cmVkIGFuZCByZXR1cm5lZCB0byB0aGUKKyAqIHZl
bmRvciBhcyBwYXJ0IG9mIGEgZGlhZ25vc3RpYyBwcm9jZXNzLgorICoKKyAqIFNldmVyYWwgbG9n
Z2luZyBsZXZlbHMgYXJlIHN1cHBvcnRlZDogZGVmYXVsdCwgaW5mbywgZGVidWcsIGVycm9yLCBh
bmQKKyAqIGZhdWx0LiBJbiBzaG9ydCwgdGhlIHJlY29tbWVuZGF0aW9uIGlzIHRvIHVzZSBkZWZh
dWx0LWxldmVsIGxvZ2dpbmcgbW9zdCBvZgorICogdGhlIHRpbWUsIGFuZCBlcnJvci1sZXZlbCBs
b2dnaW5nIGZvciBlcnJvcnMuIFN1cHBvcnQgZm9yIGluZm8tLCBkZWJ1Zy0sIGFuZAorICogZmF1
bHQtbGV2ZWwgbG9nZ2luZyBpcyBwcm92aWRlZCBmb3IgY29tcGxldGVuZXNzLgorICoKKyAqICAg
ZGVmYXVsdDogdXNlIGZvciBsb3ctZnJlcXVlbmN5LCBsb25nLXRlcm0gKHNldmVyYWwgZGF5cykg
bG9nZ2luZworICogICBpbmZvOiAgICB1c2UgZm9yIGhpZ2hlci1mcmVxdWVuY3ksIHNob3J0LXRl
cm0gKHNldmVyYWwgaG91cnMpIGxvZ2dpbmcKKyAqICAgZGVidWc6ICAgdXNlIGZvciBoaWdoLWZy
ZXF1ZW5jeSwgaW1tZWRpYXRlLXRlcm0gbG9nZ2luZy4gVmlzaWJsZSBvbmx5IGluCisgKiAgICAg
ICAgICAgIGxsZGIvWGNvZGUsIG9yIGlmIHNwZWNpYWxseSBlbmFibGVkCisgKiAgIGVycm9yOiAg
IHVzZSB0byBsb2cgYW4gZXJyb3IgYW5kIGZsdXNoIHRvIGRpc2sgbG9jYWwgbG9nZ2luZyBkYXRh
CisgKiAgIGZhdWx0OiAgIHVzZSB0byBsb2cgYW4gZXJyb3IgYW5kIGZsdXNoIHRvIGRpc2sgbG9n
Z2luZyBkYXRhIGluIGFsbCBwcm9jZXNzZXMKKyAqICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRo
IHRoZSBjdXJyZW50IGFjdGl2aXR5CisgKgorICogTG9nZ2luZyBjYW4gYmUgc3RvcmVkIG9uIGRp
c2sgb3IgaW4gbWVtb3J5LiBUaGUgZGlzcG9zaXRpb24gb2YgdGhlIGxvZ2dpbmcKKyAqIGNhbiBi
ZSBjaGFuZ2VkIHZpYSBhbiBpbnN0YWxsYWJsZSBjb25maWd1cmF0aW9uIGZpbGUsIGJ1dCBieSBk
ZWZhdWx0IHRoZQorICogZGVmYXVsdCBsb2dnaW5nIGlzIHN0b3JlZCBvbiBkaXNrLCB0aGUgaW5m
byBsb2dnaW5nIGlzIHN0b3JlZCBpbiBtZW1vcnksIGFuZAorICogZGVidWcgbG9nZ2luZyBpcyBu
b3Qgc3RvcmVkIGF0IGFsbC4gQSBzeXNkaWFnbm9zZSBvciBjYWxsIHRvIG9zX2xvZ19lcnJvciBv
cgorICogb3NfbG9nX2ZhdWx0IHdpbGwgd3JpdGUgdGhlIGluLW1lbW9yeSBkYXRhIHRvIGRpc2su
CisgKi8KICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAotI2RlZmluZSBSRUxFQVNFX0xPRyhmb3Jt
YXQsIC4uLikgICAgICAgKCh2b2lkKTApCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SKGZvcm1h
dCwgLi4uKSBXVEZSZXBvcnRFcnJvcihfX0ZJTEVfXywgX19MSU5FX18sIFdURl9QUkVUVFlfRlVO
Q1RJT04sIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0coICAgICAg
Y2hhbm5lbCwgZm9ybWF0LCAuLi4pICgodm9pZCkwKQorI2RlZmluZSBSRUxFQVNFX0xPR19JTkZP
KCBjaGFubmVsLCBmb3JtYXQsIC4uLikgKCh2b2lkKTApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0RF
QlVHKGNoYW5uZWwsIGZvcm1hdCwgLi4uKSAoKHZvaWQpMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0df
RVJST1IoY2hhbm5lbCwgZm9ybWF0LCAuLi4pIExPR19FUlJPUihmb3JtYXQsICMjX19WQV9BUkdT
X18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0ZBVUxUKGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBMT0df
RVJST1IoZm9ybWF0LCAjI19fVkFfQVJHU19fKQorCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGKCAg
ICAgIGlzQWxsb3dlZCwgY2hhbm5lbCwgZm9ybWF0LCAuLi4pICgodm9pZCkwKQorI2RlZmluZSBS
RUxFQVNFX0xPR19JTkZPX0lGKCBpc0FsbG93ZWQsIGNoYW5uZWwsIGZvcm1hdCwgLi4uKSAoKHZv
aWQpMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfREVCVUdfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBm
b3JtYXQsIC4uLikgKCh2b2lkKTApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWxs
b3dlZCwgY2hhbm5lbCwgZm9ybWF0LCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9M
T0dfRVJST1IoY2hhbm5lbCwgZm9ybWF0LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKKyNk
ZWZpbmUgUkVMRUFTRV9MT0dfRkFVTFRfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBmb3JtYXQsIC4u
LikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPR19GQVVMVChjaGFubmVsLCBmb3JtYXQs
ICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQogI2Vsc2UKLSNkZWZpbmUgV1RGX0xPR19ERUZB
VUxUIE9TX0xPR19ERUZBVUxUCi0jZGVmaW5lIFJFTEVBU0VfTE9HKGZvcm1hdCwgLi4uKSAgICAg
ICBvc19sb2coV1RGX0xPR19ERUZBVUxULCBXVEZfTE9HR0lOR19QUkVGSVggZm9ybWF0LCAjI19f
VkFfQVJHU19fKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihmb3JtYXQsIC4uLikgb3NfbG9n
X2Vycm9yKFdURl9MT0dfREVGQVVMVCwgV1RGX0xPR0dJTkdfUFJFRklYIGZvcm1hdCwgIyNfX1ZB
X0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0coICAgICAgY2hhbm5lbCwgZm9ybWF0LCAuLi4p
IGRvIHsgaWYgKExPR19MRVZFTF9FTkFCTEVEKGNoYW5uZWwsIE9TX0xPR19UWVBFX0RFRkFVTFQp
KSBvc19sb2coICAgICAgTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBmb3JtYXQs
ICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPKCBj
aGFubmVsLCBmb3JtYXQsIC4uLikgZG8geyBpZiAoTE9HX0xFVkVMX0VOQUJMRUQoY2hhbm5lbCwg
T1NfTE9HX1RZUEVfSU5GTykpICAgIG9zX2xvZ19pbmZvKCBMT0dfQ0hBTk5FTChjaGFubmVsKS5v
c0xvZ0NoYW5uZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCisjZGVmaW5l
IFJFTEVBU0VfTE9HX0RFQlVHKGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChMT0dfTEVW
RUxfRU5BQkxFRChjaGFubmVsLCBPU19MT0dfVFlQRV9ERUJVRykpICAgb3NfbG9nX2RlYnVnKExP
R19DSEFOTkVMKGNoYW5uZWwpLm9zTG9nQ2hhbm5lbCwgZm9ybWF0LCAjI19fVkFfQVJHU19fKTsg
fSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgZm9ybWF0LCAu
Li4pIGRvIHsgaWYgKExPR19MRVZFTF9FTkFCTEVEKGNoYW5uZWwsIE9TX0xPR19UWVBFX0VSUk9S
KSkgICBvc19sb2dfZXJyb3IoTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBmb3Jt
YXQsICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19GQVVM
VChjaGFubmVsLCBmb3JtYXQsIC4uLikgZG8geyBpZiAoTE9HX0xFVkVMX0VOQUJMRUQoY2hhbm5l
bCwgT1NfTE9HX1RZUEVfRkFVTFQpKSAgIG9zX2xvZ19mYXVsdChMT0dfQ0hBTk5FTChjaGFubmVs
KS5vc0xvZ0NoYW5uZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCisKKyNk
ZWZpbmUgUkVMRUFTRV9MT0dfSUYoICAgICAgaXNBbGxvd2VkLCBjaGFubmVsLCBmb3JtYXQsIC4u
LikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyggICAgICBjaGFubmVsLCBmb3JtYXQs
ICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19JTkZPX0lG
KCBpc0FsbG93ZWQsIGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJF
TEVBU0VfTE9HX0lORk8oIGNoYW5uZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUg
KDApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0RFQlVHX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgZm9y
bWF0LCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfREVCVUcoY2hhbm5lbCwg
Zm9ybWF0LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0df
RVJST1JfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBmb3JtYXQsIC4uLikgZG8geyBpZiAoaXNBbGxv
d2VkKSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBmb3JtYXQsICMjX19WQV9BUkdTX18pOyB9
IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19GQVVMVF9JRihpc0FsbG93ZWQsIGNoYW5u
ZWwsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0ZBVUxUKGNo
YW5uZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCiAjZW5kaWYKLSNkZWZp
bmUgUkVMRUFTRV9MT0dfSUYoaXNBbGxvd2VkLCBmb3JtYXQsIC4uLikgICAgICAgZG8geyBpZiAo
aXNBbGxvd2VkKSBSRUxFQVNFX0xPRyhmb3JtYXQsICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgw
KQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0FsbG93ZWQsIGZvcm1hdCwgLi4uKSBk
byB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VSUk9SKGZvcm1hdCwgIyNfX1ZBX0FSR1Nf
Xyk7IH0gd2hpbGUgKDApCisKIAogLyogUkVMRUFTRV9BU1NFUlQgKi8KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKaW5kZXggNzIxZmE5ZjQzOWEwZTYyZWM5MzEzNmE1
NjIyMDg1ZTMwNGExOWQ3Zi4uMWU1MWJmMmQ2ZjU5YjFmMDhhODJmNGZkZGQ5N2ZlN2IxMGE3MDQ5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCkBAIC0zOSw3ICsz
OSwxNiBAQCB2b2lkIFJlZkNvdW50ZWRMZWFrQ291bnRlcjo6ZGVjcmVtZW50KCkgeyB9CiAjZWxz
ZQogCiAjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKKyNpZiBSRUxFQVNFX0xPR19ESVNB
QkxFRAogc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBXVEZMb2dD
aGFubmVsT24sICJSZWZDb3VudGVkTGVha3MiIH07CisjZWxzZQorc3RhdGljIFdURkxvZ0NoYW5u
ZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBXVEZMb2dDaGFubmVsT24sICJSZWZDb3VudGVkTGVh
a3MiLCBPU19MT0dfREVGQVVMVCwgeworICAgIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0NoYW5u
ZWxPZmYsIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0NoYW5uZWxPZmYsCisgICAgV1RGTG9nQ2hh
bm5lbE9mZiwgV1RGTG9nQ2hhbm5lbE9mZiwgV1RGTG9nQ2hhbm5lbE9mZiwgV1RGTG9nQ2hhbm5l
bE9mZiwKKyAgICBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFu
bmVsT2ZmLCBXVEZMb2dDaGFubmVsT2ZmLAorICAgIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0No
YW5uZWxPZmYsIFdURkxvZ0NoYW5uZWxPZmYsIFdURkxvZ0NoYW5uZWxPZmYsCisgICAgV1RGTG9n
Q2hhbm5lbE9mZiwgV1RGTG9nQ2hhbm5lbE9mZn19OworI2VuZGlmCiAKIHR5cGVkZWYgSGFzaENv
dW50ZWRTZXQ8Y29uc3QgY2hhciosIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBSZWFzb25TZXQ7CiBz
dGF0aWMgUmVhc29uU2V0KiBsZWFrTWVzc2FnZVN1cHByZXNzaW9uUmVhc29uczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDFkNTg4MTQ3YjY3NWU3NGI5NTdjMGMyNGZh
YTBlNTI2NWJiNzk3MzAuLjZkZDllM2Y4OWQyZWQwNzc5NGFhMjBkZmY3MWFiYTU2N2YzYzRiMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBA
CiAjaW5jbHVkZSAiV0tDb250ZW50T2JzZXJ2YXRpb24uaCIKICNlbmRpZgogCi0jZGVmaW5lIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2lu
Z0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
Li4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywg
X19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmgKaW5kZXggM2Q4M2M4NTlkMmZiMDNiMjYzYmY1YzYy
ZDViNzQ0MjA4NjRjZGVkNC4uZmUzMzUyYjQ1OTc5Y2I3YTJlYTAxNDE4MTdiNDQ0NTk1ZTcyYjQx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCkBAIC0z
MCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFMT0dfRElTQUJMRUQK
KyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiBTdHJpbmcgbG9n
TGV2ZWxTdHJpbmcoKTsKIGJvb2wgaXNMb2dDaGFubmVsRW5hYmxlZChjb25zdCBTdHJpbmcmIG5h
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nTWFjcm9zLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dNYWNyb3MuaAppbmRleCA5ZjdlZmM5OTRiNmE4ODcw
MjAxNjhmOGU3MDM4ZTI1ZjQzZDdlZTM3Li45M2YxOTQzOGJmOGM4NDk5YmI4OTk0YzIzZjRhOGY0
MWVjYTBmM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dNYWNyb3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dNYWNyb3MuaApAQCAtMjcsNyArMjcs
NyBAQAogCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KIAotI2lmIExPR19ESVNBQkxFRAorI2lmIExP
R19ESVNBQkxFRCAmJiBSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjZGVmaW5lIExPR19SRVNVTFQo
Y2hhbm5lbCwgZnVuY3Rpb24pICgodm9pZCkwKQogI2RlZmluZSBMT0dfV0lUSF9TVFJFQU0oY2hh
bm5lbCwgY29tbWFuZHMpICgodm9pZCkwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcApp
bmRleCA3Njk1Y2U2ZWZmZTJiNDE4ZWVjY2ZjMTY1MzllZjM2MGY2MDQyNTc2Li42NjA1YmQ5ZTM3
OTc4ZWM3NjRkMjdlZTQ0NDg5ZjVjOTg5ZDVjY2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dn
aW5nLmNwcApAQCAtMzUsMjAgKzM1LDE3IEBACiAjaW5jbHVkZSA8bm90aWZ5Lmg+CiAjZW5kaWYK
IAotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNkZWZpbmUgREVGSU5FX0xPR19DSEFO
TkVMKG5hbWUpIFwKLSAgICBXVEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVG
SVgoTE9HX0NIQU5ORUxfUFJFRklYLCBuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUg
fTsKIFdFQkNPUkVfTE9HX0NIQU5ORUxTKERFRklORV9MT0dfQ0hBTk5FTCkKIAotI2RlZmluZSBM
T0dfQ0hBTk5FTF9BRERSRVNTKG5hbWUpICAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChM
T0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpLAotV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9
IHsKK3N0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFubmVsc1tdID0gewogICAgIFdFQkNPUkVf
TE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCiB9OwogCi1zaXplX3QgbG9nQ2hhbm5l
bENvdW50ID0gV1RGX0FSUkFZX0xFTkdUSChsb2dDaGFubmVscyk7CitzdGF0aWMgY29uc3Qgc2l6
ZV90IGxvZ0NoYW5uZWxDb3VudCA9IFdURl9BUlJBWV9MRU5HVEgobG9nQ2hhbm5lbHMpOwogCiBi
b29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKQogewpAQCAtMTAyLDQg
Kzk5LDQgQEAgdm9pZCBsb2dGdW5jdGlvblJlc3VsdChXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBz
dGQ6OmZ1bmN0aW9uPGNvbnN0IGNoYXIqKCk+IGZ1bmMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggODMz
YTc0MzQ1YWJjMDEzMjAyMjJkODIxOWVjNWVkZDQ1MWNlNThmZC4uNGZkNWU2YzhkMTZiNDBlZGU0
OGZkYjFmNWJmNzZkODEyZGU1ZmMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAt
MzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiAhTE9HX0RJU0FCTEVE
CisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2lmbmRlZiBM
T0dfQ0hBTk5FTF9QUkVGSVgKICNkZWZpbmUgTE9HX0NIQU5ORUxfUFJFRklYIExvZwpAQCAtNDYs
MTUgKzQ2LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKERPTVRpbWVycykgXAogICAg
IE0oRWRpdGluZykgXAogICAgIE0oRXZlbnRzKSBcCi0gICAgTShGVFApIFwKICAgICBNKEZpbGVB
UEkpIFwKICAgICBNKEZyYW1lcykgXAorICAgIE0oRlRQKSBcCiAgICAgTShGdWxsc2NyZWVuKSBc
CiAgICAgTShHYW1lcGFkKSBcCiAgICAgTShIaXN0b3J5KSBcCiAgICAgTShJY29uRGF0YWJhc2Up
IFwKICAgICBNKEltYWdlcykgXAogICAgIE0oSW5kZXhlZERCKSBcCisgICAgTShMYXllcnMpIFwK
ICAgICBNKExheW91dCkgXAogICAgIE0oTG9hZGluZykgXAogICAgIE0oTWVkaWEpIFwKQEAgLTcw
LDEyICs3MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShQcm9ncmVzcykgXAogICAg
IE0oUmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShSZXNvdXJjZUxvYWRpbmcpIFwKLSAgICBNKFNR
TERhdGFiYXNlKSBcCi0gICAgTShTVkcpIFwKLSAgICBNKFNlcnZpY2VzKSBcCisgICAgTShSZXNv
dXJjZUxvYWRPYnNlcnZlcikgXAogICAgIE0oU2Nyb2xsaW5nKSBcCisgICAgTShTZXJ2aWNlcykg
XAogICAgIE0oU3BlbGxpbmdBbmRHcmFtbWFyKSBcCisgICAgTShTUUxEYXRhYmFzZSkgXAogICAg
IE0oU3RvcmFnZUFQSSkgXAorICAgIE0oU1ZHKSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAog
ICAgIE0oVGhyZWFkaW5nKSBcCiAgICAgTShVUkxQYXJzZXIpIFwKQEAgLTgzLDggKzg1LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oV2ViR0wpIFwKICAgICBNKFdlYlJlcGxheSkgXAog
ICAgIE0oV2hlZWxFdmVudFRlc3RUcmlnZ2VycykgXAotICAgIE0oUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIpIFwKIAorI3VuZGVmIERFQ0xBUkVfTE9HX0NIQU5ORUwKICNkZWZpbmUgREVDTEFSRV9MT0df
Q0hBTk5FTChuYW1lKSBcCiAgICAgV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIFdURkxvZ0NoYW5uZWwg
Sk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpOwog
CkBAIC05Nyw2ICs5OSw2IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TG9nQ2hhbm5lbFRvQWNj
dW11bGF0ZShjb25zdCBTdHJpbmcmIG5hbWUpOwogdm9pZCByZWdpc3Rlck5vdGlmeUNhbGxiYWNr
KGNvbnN0IFN0cmluZyYgbm90aWZ5SUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjYWxsYmFjayk7
CiAjZW5kaWYKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApp
bmRleCA3YWJlYjRiNDc2ZmQ0MzA0ODJiOTA1ZTFhNmJmOGUwZmUxNjFiMTk2Li4xZGEzNTgzYTdh
ZjA0NmVmNDQzYTY4YTFjNzU3NWMxNWM4ZGM4M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBhZ2VDYWNoZS5oIgpAQCAtMjIwLDcgKzIyMSw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjpSZWxpZWZMb2dnZXI6OmxvZ01lbW9yeVVzYWdlQ2hhbmdlKCkKIHsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICNkZWZpbmUgU1RSSU5HX1NQRUNJRklDQVRJT04gIiV7cHVibGljfXMi
Ci0jZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4pIFJFTEVBU0VfTE9HKF9fVkFfQVJHU19f
KQorI2RlZmluZSBNRU1PUllQUkVTU1VSRV9MT0coLi4uKSBSRUxFQVNFX0xPRyhNZW1vcnlQcmVz
c3VyZSwgX19WQV9BUkdTX18pCiAjZWxzZQogI2RlZmluZSBTVFJJTkdfU1BFQ0lGSUNBVElPTiAi
JXMiCiAjZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4pIFdURkxvZ0Fsd2F5cyhfX1ZBX0FS
R1NfXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBjYzc0MzY1ZjMzZWNmNzRlMzBmYzc4ZmYxNjcw
NDAwNDk3MTY3NWI4Li40ZjRlNmIzYjIyNjY3MzM1OTUwZmNiNTE0YzVjYWNiZDAzZTBlMWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBj
b25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFM
T0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgZG91YmxlIHN0YXJ0VGlt
ZSA9IGN1cnJlbnRUaW1lKCk7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3Vi
SW1hZ2UoaW1hZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IGI1ZDVlOWIzMmVlN2IyZmMxZTgyNmVkOThkYjU0ZDJi
MWYxZGYyN2EuLjVjMGQ2MmQ4MzQwYTAxMmFlMTI0NTI0ZmJmZWU3MzQ2YzM3ZjcwODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIklPU3VyZmFjZVNQSS5oIgogI2ltcG9ydCAi
SW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkltYWdlQnVmZmVyRGF0YUNHLmgiCisjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJNYWNoU2VuZFJpZ2h0LmgiCiAjaW1wb3J0IDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTIxMSw3ICsyMTIsNyBAQCBX
ZWJDb3JlOjpJT1N1cmZhY2U6OklPU3VyZmFjZShJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4
dFNpemUsIENHQ29sb3JTcGFjZVJlZgogICAgIGlmIChzdWNjZXNzKQogICAgICAgICBtX3RvdGFs
Qnl0ZXMgPSBJT1N1cmZhY2VHZXRBbGxvY1NpemUobV9zdXJmYWNlLmdldCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJTdXJmYWNlIGNyZWF0aW9uIGZhaWxlZCBmb3Ig
c2l6ZTogKCVkICVkKSBhbmQgZm9ybWF0OiAoJWQpIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpLCBmb3JtYXQpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihMYXllcnMsICJTdXJmYWNl
IGNyZWF0aW9uIGZhaWxlZCBmb3Igc2l6ZTogKCVkICVkKSBhbmQgZm9ybWF0OiAoJWQpIiwgc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBmb3JtYXQpOwogfQogCiBXZWJDb3JlOjpJT1N1cmZh
Y2U6OklPU3VyZmFjZShJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9y
U3BhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9nZ2luZ01h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2dnaW5nTWFjLm1tCmluZGV4IDM5
Mjc2NjM3YzQ3NTI5MDNkNWVlNjZmYWE2ZTNhOTExZmZiOWE3MTYuLjI0MWM2NWE4ZDJjZDU4Mjc5
NjQ1MTZmZmIyOGNmNjJkMWQ0ZTE4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9Mb2dnaW5nTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9M
b2dnaW5nTWFjLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggNzJlYjEwYTYzZGZkYmI5NjQ1
ZTgzY2U1NzM0NTgxMjBhZjcwMDk5ZC4uYjJjYjI5MzEzNTBkNjE4NjljYjg1YjdkZTBhNjczOWIw
N2NjYjZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9Mb2dnaW5n
VW5peC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKIAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0xv
Z2dpbmdXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0xvZ2dpbmdXaW4uY3Bw
CmluZGV4IGYzNmExNDE2MDQzOWI5MGNmMzI4YWI3MDk4MjhlYmE0NTk4ZWRiMzguLjRjMmE1Y2Uz
NGM0ZGFkNjc1NjI2OTJkNTlhNTM4YWY5MmZhNzQ3ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vTG9nZ2luZ1dpbi5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxP
R19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggM2Y5ZDc1YmI2YTA5YzAzYmNl
ZWJhYTgwOTQ5MGUwMTVlMjdhOWE3Zi4uMWJiNTkyMzQxODRlOTZmNmU0YjRiNDg5YmRhZDE1MmM3
YmM2NzZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RT
dXBwb3J0LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgc2V0TG9nQ2hhbm5lbFRvQWNjdW11
bGF0ZShjb25zdCBTdHJpbmcmIG5hbWUpCiAKIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZO
ZWNlc3NhcnkoKQogewotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFdlYkNvcmU6OmluaXRpYWxpemVMb2dDaGFubmVsc0lm
TmVjZXNzYXJ5KCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViS2l0TG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRMb2dnaW5n
LmgKaW5kZXggNzk1NGE2NGY3ZjE4YmExNWU1YjMzNDc2YjY0YWNiZTRjNTc3MTY0Yy4uZjBkY2Nm
Zjg2ZTQ0Njg5YzZkODJlNTIxZmFlNTIzODAwYjI3NTk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJLaXRMb2dnaW5nLmgKQEAgLTM2LDcgKzM2LDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlm
CiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0df
RElTQUJMRUQKIAogI2RlZmluZSBXRUJLSVRfTE9HX0NIQU5ORUxTKE0pIFwKICAgICBNKEJhY2tG
b3J3YXJkKSBcCkBAIC02NCwxNSArNjQsMTIgQEAgZXh0ZXJuICJDIiB7CiAgICAgTShUaW1pbmcp
IFwKICAgICBNKFZpZXcpIFwKIAotI2RlZmluZSBERUNMQVJFX0xPR19DSEFOTkVMKG5hbWUpIFwK
LWV4dGVybiBXVEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NI
QU5ORUxfUFJFRklYLCBuYW1lKTsKLQogV0VCS0lUX0xPR19DSEFOTkVMUyhERUNMQVJFX0xPR19D
SEFOTkVMKQogCiAjdW5kZWYgREVDTEFSRV9MT0dfQ0hBTk5FTAogCiB2b2lkIFdlYktpdEluaXRp
YWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHZvaWQpOwotI2VuZGlmIC8vICFMT0dfRElTQUJM
RUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiB2
b2lkIFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9uKFNFTCBkZWxlZ2F0ZVNlbGVjdG9y
LCBpZCBleGNlcHRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YktpdExvZ2dpbmcubSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tCmlu
ZGV4IDE4MzMwYTU0NWMzY2IwMmU0M2Y3OWFkNjA5MDI3Y2VkNjg2MzBiNWMuLmVlYjAzYTcxMmY5
NWQ2NTA3YzAzMGIwMDkyNWRkYmJlMDVkY2ZhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
S2l0TG9nZ2luZy5tCkBAIC0yOCwxMyArMjgsMTAgQEAKIAogI2ltcG9ydCAiV2ViS2l0TG9nZ2lu
Zy5oIgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKLSNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUpIFwKLSAgICBX
VEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJF
RklYLCBuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUgfTsKIFdFQktJVF9MT0dfQ0hB
Tk5FTFMoREVGSU5FX0xPR19DSEFOTkVMKQogCi0jZGVmaW5lIExPR19DSEFOTkVMX0FERFJFU1Mo
bmFtZSkgICZKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwg
bmFtZSksCiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKICAgICBXRUJL
SVRfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCiB9OwpAQCAtNTgsNyArNTUsNyBA
QCB2b2lkIFdlYktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCkKICAgICBXVEZJ
bml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcobG9nQ2hhbm5lbHMsIGxvZ0NoYW5u
ZWxDb3VudCwgW2xvZ0xldmVsIFVURjhTdHJpbmddKTsKIH0KIAotI2VuZGlmIC8vICFMT0dfRElT
QUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
CiB2b2lkIFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9uKFNFTCBkZWxlZ2F0ZVNlbGVj
dG9yLCBpZCBleGNlcHRpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggOTYzYjBjZmQ5OGJhNzUxMmUzOWM0ZGM4N2ZhOTdkYWRiNzJlODdjYi4uNTE2NDFhNjljZTIw
M2Y2ZmM5MWJmOTA2OWZmMTlmZDEzMTRmODQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtOTYxLDcgKzk2MSw3IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9u
V2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAgICAg
c3RhdGljIGJvb2wgZGlkT25lVGltZUluaXRpYWxpemF0aW9uID0gZmFsc2U7CiAjZW5kaWYKICAg
ICBpZiAoIWRpZE9uZVRpbWVJbml0aWFsaXphdGlvbikgewotI2lmICFMT0dfRElTQUJMRUQKKyNp
ZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBXZWJLaXRJ
bml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogICAgICAgICBXZWJDb3JlOjppbml0
aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktp
dExvZ2dpbmcuY3BwCmluZGV4IGUyNDRjMDkyM2EwYmI3ZmQ5Y2VmMDQ4OWEyY2RkYmU5ZWRhNTBj
ODEuLmNkOGU5NGI2NjRjMDIzNWU1NjZmMDBjZjQ5YWZmNGNjOGViMDZiN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdExvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYktpdExvZ2dpbmcuY3BwCkBAIC0yNywxMyArMjcsMTAgQEAKICAqLwogI2luY2x1ZGUg
IldlYktpdExvZ2dpbmcuaCIKIAotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVE
IHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChu
YW1lKSBcCi0gICAgV1RGTG9nQ2hhbm5lbCBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExP
R19DSEFOTkVMX1BSRUZJWCwgbmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxPZmYsICNuYW1lIH07CiBX
RUJLSVRfTE9HX0NIQU5ORUxTKERFRklORV9MT0dfQ0hBTk5FTCkKIAotI2RlZmluZSBMT0dfQ0hB
Tk5FTF9BRERSRVNTKG5hbWUpICAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hB
Tk5FTF9QUkVGSVgsIG5hbWUpLAogc3RhdGljIFdURkxvZ0NoYW5uZWwqIGxvZ0NoYW5uZWxzW10g
PSB7CiAgICAgV0VCS0lUX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQogfTsKQEAg
LTUxLDQgKzQ4LDQgQEAgdm9pZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2Fy
eSgpCiAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKGxvZ0NoYW5u
ZWxzLCBsb2dDaGFubmVsQ291bnQsICIiKTsKIH0KIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQK
KyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0TG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC93
aW4vV2ViS2l0TG9nZ2luZy5oCmluZGV4IGM3Y2E1OThlN2M3YTNmNWYzMzE3NzFhZDU5MDdmYzg1
Nzc0YzU2MDQuLjU4OWVlYjk5ODc0ZWI5ZTU2ZTMzMTY5NjQ1Y2E2OWQ4MjRmZDg1OWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdExvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJLaXRMb2dnaW5nLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8
fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2lmbmRlZiBMT0dfQ0hBTk5FTF9QUkVGSVgKICNk
ZWZpbmUgTE9HX0NIQU5ORUxfUFJFRklYIFdlYktpdExvZwpAQCAtNjIsMTUgKzYyLDEyIEBACiAg
ICAgTShUaW1pbmcpIFwKICAgICBNKFZpZXcpIFwKIAotI2RlZmluZSBERUNMQVJFX0xPR19DSEFO
TkVMKG5hbWUpIFwKLWV4dGVybiBXVEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9Q
UkVGSVgoTE9HX0NIQU5ORUxfUFJFRklYLCBuYW1lKTsKLQogV0VCS0lUX0xPR19DSEFOTkVMUyhE
RUNMQVJFX0xPR19DSEFOTkVMKQogCiAjdW5kZWYgREVDTEFSRV9MT0dfQ0hBTk5FTAogCiB2b2lk
IFdlYktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHZvaWQpOwogCi0jZW5kaWYg
Ly8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBlYzhhMGU0M2VjOTg3
YzI0YWNhOTcxMzM0YjU1OGQ0YjAyYzMyMjI2Li4yMWY2YWM0ZjcxY2JjYjA2N2Q5ZmQwYjIyZmU1
NDQyMWMxNDg5YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMjkwNiw3ICsyOTA2LDcgQEAg
SFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFt
ZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KIAogICAgIHN0YXRpYyBib29sIGRpZE9uZVRpbWVJbml0
aWFsaXphdGlvbjsKICAgICBpZiAoIWRpZE9uZVRpbWVJbml0aWFsaXphdGlvbikgewotI2lmICFM
T0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgICAgICBpbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogI2VuZGlmIC8vICFM
T0dfRElTQUJMRUQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggNWQwZWQ4MjhhNzViNDFlNzA4MzA0NGE1NjNiYWE5
MTNiMWViM2U1MS4uMmYwZTE2NzEwYWJjNTE5ZTBhMTg5OTBiY2IxZGIyYmU5ZWVkNjliNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWQuY3BwCkBAIC0zMSwxNCArMzEsMTUgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jZGVmaW5l
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBS
RUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgX19WQV9B
UkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNF
X0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgX19WQV9B
UkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTg0NmRhNWY3OGYyMTM1MDY2MTRh
MGNiNjlhZGMyMzYwZDEyODJlZC4uMWViMmVmYTJlZTI0NDBkNTljYmRkZWEwZjkyN2JlNWJlODVj
NTkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtNjI0LDEwICs2MjQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vz
c1dpbGxTdXNwZW5kSW1taW5lbnRseShib29sJiBoYW5kbGVkKQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkKIHsKLSAgICBSRUxFQVNFX0xPRygiJXAgLSBOZXR3b3Jr
UHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCki
LCB0aGlzKTsKICAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCi0gICAgUkVM
RUFTRV9MT0coIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5n
IFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRoaXMpOworICAgIFJFTEVBU0Vf
TE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3Vz
cGVuZCgpIFNlbmRpbmcgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kIElQQyBtZXNzYWdlIiwgdGhpcyk7
CiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCksIDApOwogfQogCkBAIC02MzcsMTIg
KzYzNywxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkK
ICAgICAvLyB3ZSBkbyBub3QgYmVjYXVzZSBwcmVwYXJlVG9TdXNwZW5kKCkgYWxyZWFkeSByZXBs
aWVkIHdpdGggYSBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQKICAg
ICAvLyBtZXNzYWdlLiBBbmQgTmV0d29ya1Byb2Nlc3NQcm94eSBleHBlY3RzIHRvIHJlY2VpdmUg
ZWl0aGVyIGEgTmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kLQogICAg
IC8vIG9yIE5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uLSBt
ZXNzYWdlLCBidXQgbm90IGJvdGguCi0gICAgUkVMRUFTRV9MT0coIiVwIC0gTmV0d29ya1Byb2Nl
c3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3Vz
cGVuZCgpIiwgdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1
bWUoKQogewotICAgIFJFTEVBU0VfTE9HKCIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlk
UmVzdW1lKCkiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVw
IC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOwogfQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAKaW5kZXggNTg4ZTcxODgzMWY5ODYyZjFhMTJiZWExMmI1MTI2ODVhZDlmZjA3MS4u
NTljZDExNDc1ZjdjOGEwNjI1OTZiNTAzZWI3YmZlNGUzYjllMjg2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC00OSw4ICs0OSw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jZGVmaW5l
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBS
RUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgX19WQV9B
UkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNF
X0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgX19WQV9B
UkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggYWZhNmFjOGFlMGMzYmQ1MzkzMDYwNTdlZTJjYmI3MDBj
MGQ1NDBmYy4uNTYzZjllMjJjNTFiN2YxMGU5ODI1OTAwMjZhNGVhNDgwOGQ4YTcwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKIAorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTU2Myw3ICs1NjQsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSh1aW50NjRf
dCBzeW5jUmVxdWVzdElELCBzdAogICAgICAgICAvLyBJZiB0aGF0IGhhcHBlbnMsIHdlIG5lZWQg
dG8gc3RvcCB3YWl0aW5nLCBvciB3ZSdsbCBoYW5nIHNpbmNlIHdlIHdvbid0IGdldAogICAgICAg
ICAvLyBhbnkgbW9yZSBpbmNvbWluZyBtZXNzYWdlcy4KICAgICAgICAgaWYgKCFpc1ZhbGlkKCkp
IHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJDb25uZWN0aW9uOjp3YWl0Rm9yU3lu
Y1JlcGx5OiBDb25uZWN0aW9uIG5vIGxvbmdlciB2YWxpZCwgaWQgPSAlIiBQUkl1NjQsIHN5bmNS
ZXF1ZXN0SUQpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSVBDLCAiQ29ubmVjdGlv
bjo6d2FpdEZvclN5bmNSZXBseTogQ29ubmVjdGlvbiBubyBsb25nZXIgdmFsaWQsIGlkID0gJSIg
UFJJdTY0LCBzeW5jUmVxdWVzdElEKTsKICAgICAgICAgICAgIGRpZFJlY2VpdmVTeW5jUmVwbHko
c3luY1NlbmRGbGFncyk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQpA
QCAtNTc0LDcgKzU3NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjp3
YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0CiAgICAgICAgIHRpbWVk
T3V0ID0gIVN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLndhaXQoYWJzb2x1dGVUaW1lKTsK
ICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19FUlJPUigiQ29ubmVjdGlvbjo6d2FpdEZvclN5bmNS
ZXBseTogVGltZWQtb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHJlcGx5LCBpZCA9ICUiIFBSSXU2NCwg
c3luY1JlcXVlc3RJRCk7CisgICAgUkVMRUFTRV9MT0dfRVJST1IoSVBDLCAiQ29ubmVjdGlvbjo6
d2FpdEZvclN5bmNSZXBseTogVGltZWQtb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHJlcGx5LCBpZCA9
ICUiIFBSSXU2NCwgc3luY1JlcXVlc3RJRCk7CiAgICAgZGlkUmVjZWl2ZVN5bmNSZXBseShzeW5j
U2VuZEZsYWdzKTsKIAogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0xvZ0luaXRpYWxpemF0aW9uLmgKaW5kZXggZTMzYTc2MDg4MjNiNDAyZTI3NGFhMjIwYjM1
ZDY0ZjdiMjg5NzNjYi4uMDNhNzI3OWIzNDc5MGUwNjM5Nzk2Y2ViZGJmY2Y1Mjk1MzVlMTQyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCkBAIC0yNyw3
ICsyNyw3IEBACiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmICFMT0df
RElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
TG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcAppbmRleCA4
YzFlMDc4NzAyZjg4YWFmYjRiY2Y4NWQyNmRkMDA3NjI2NTQzOTQ4Li4zNzM1YzRjODdkZjVhMDYx
MWFmYzkxMjA0MmYxMTNkZTEzMDNmZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNw
cApAQCAtMzAsMjAgKzMwLDE3IEBACiAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
LSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIAotI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSkgXAotICAgIFdURkxvZ0No
YW5uZWwgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5h
bWUpID0geyBXVEZMb2dDaGFubmVsT2ZmLCAjbmFtZSB9OwogV0VCS0lUMl9MT0dfQ0hBTk5FTFMo
REVGSU5FX0xPR19DSEFOTkVMKQogCi0jZGVmaW5lIExPR19DSEFOTkVMX0FERFJFU1MobmFtZSkg
ICZKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSks
CiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKICAgICBXRUJLSVQyX0xP
R19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQogfTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLWNvbnN0IHNpemVfdCBsb2dDaGFubmVsQ291bnQgPSBXVEZfQVJSQVlfTEVOR1RIKGxvZ0No
YW5uZWxzKTsKK3N0YXRpYyBjb25zdCBzaXplX3QgbG9nQ2hhbm5lbENvdW50ID0gV1RGX0FSUkFZ
X0xFTkdUSChsb2dDaGFubmVscyk7CiAKIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNl
c3NhcnkoKQogewpAQCAtNjIsNCArNTksNCBAQCB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lm
TmVjZXNzYXJ5KCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzMzgyNDVkMjc4YzI5ZDg5ODkxNDg3OWNm
YWQ5NzI4YTRiNjc5MWY0Li5jYjljNmEyZDAzNWRmYzQ3OGE5ZGMwYjNhMTc5NDJmNTEzZWNhZTdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAot
I2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogCiAjaWZuZGVmIExPR19DSEFOTkVMX1BSRUZJWAogI2RlZmluZSBMT0dfQ0hBTk5FTF9Q
UkVGSVggV2ViS2l0MkxvZwpAQCAtNDQsMTkgKzQ0LDIyIEBAIGV4dGVybiAiQyIgewogI2RlZmlu
ZSBXRUJLSVQyX0xPR19DSEFOTkVMUyhNKSBcCiAgICAgTShDb250ZXh0TWVudSkgXAogICAgIE0o
R2FtZXBhZCkgXAotICAgIE0oSURCKSBcCiAgICAgTShJY29uRGF0YWJhc2UpIFwKKyAgICBNKElE
QikgXAogICAgIE0oSW5kZXhlZERCKSBcCiAgICAgTShJbnNwZWN0b3JTZXJ2ZXIpIFwKKyAgICBN
KElQQykgXAogICAgIE0oS2V5SGFuZGxpbmcpIFwKKyAgICBNKExheWVycykgXAogICAgIE0oTmV0
d29yaykgXAogICAgIE0oTmV0d29ya0NhY2hlKSBcCi0gICAgTShOZXR3b3JrQ2FjaGVTdG9yYWdl
KSBcCiAgICAgTShOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVByZWxvYWRpbmcpIFwKLSAgICBNKE5l
dHdvcmtTZXNzaW9uKSBcCisgICAgTShOZXR3b3JrQ2FjaGVTdG9yYWdlKSBcCiAgICAgTShOZXR3
b3JrU2NoZWR1bGluZykgXAorICAgIE0oTmV0d29ya1Nlc3Npb24pIFwKICAgICBNKFBsdWdpbnMp
IFwKICAgICBNKFByaW50aW5nKSBcCisgICAgTShQcm9jZXNzU3VzcGVuc2lvbikgXAogICAgIE0o
UmVtb3RlTGF5ZXJUcmVlKSBcCiAgICAgTShSZXNpemUpIFwKICAgICBNKFNlc3Npb25TdGF0ZSkg
XApAQCAtNjUsOSArNjgsNiBAQCBleHRlcm4gIkMiIHsKICAgICBNKFZpZXdHZXN0dXJlcykgXAog
ICAgIE0oVmlzaWJsZVJlY3RzKSBcCiAKLSNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5FTChuYW1l
KSBcCi0gICAgZXh0ZXJuIFdURkxvZ0NoYW5uZWwgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJ
WChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpOwotCiBXRUJLSVQyX0xPR19DSEFOTkVMUyhERUNM
QVJFX0xPR19DSEFOTkVMKQogCiAjdW5kZWYgREVDTEFSRV9MT0dfQ0hBTk5FTApAQCAtNzYsNiAr
NzYsNiBAQCBXRUJLSVQyX0xPR19DSEFOTkVMUyhERUNMQVJFX0xPR19DSEFOTkVMKQogfQogI2Vu
ZGlmCiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8
fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2VuZGlmIC8vIExvZ2dpbmdfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZm91bmRhdGlvbi9Mb2dnaW5nRm91bmRhdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2ZvdW5kYXRpb24vTG9nZ2luZ0ZvdW5kYXRpb24u
bW0KaW5kZXggYmNiNWZlMTRkODNlYzI5NDdjYjlmM2U4MjI3MGZlYTQxZjcyYmEzMi4uMjZmMzcz
MWE2MjhlMWZlMjZkYjZiMGViZjZhOWIxNzU3NmNkZjNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vZm91bmRhdGlvbi9Mb2dnaW5nRm91bmRhdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9mb3VuZGF0aW9uL0xvZ2dpbmdGb3VuZGF0aW9uLm1tCkBAIC0y
OSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgIUxPR19ESVNBQkxFRAor
I2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIHN0YXRpYyBOU1N0
cmluZyAqIGNvbnN0IGRlZmF1bHRzRG9tYWluID0gQCJXZWJLaXQyTG9nZ2luZyI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggNmE1NWQ0MDI0
Y2EwN2U5MzkzYTRiMjNlMjEwYWExNjFmNzJkNTE4Ni4uNzRiMmJjZTU4YTAwMWYyYmNiNDdkNWQw
YWM4ZDdjZTFmYWIzMzk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5p
eC9Mb2dnaW5nVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9Mb2dn
aW5nVW5peC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNp
ZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKIAogU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5jcHAKaW5kZXggN2IxYzM0YWNiMmRhMTZmYjcxMzM3YTE5M2I4MDhiYzViZjgwOWUy
My4uMTc1Nzg5ZmI5YWU3MTNmMTZlZWVkYmZhYmUwMGQ2ZjMzZTYzY2YyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKIAorI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSA8dW5pc3RkLmg+CiAKQEAgLTUzLDcgKzU0LDcgQEAgc3RhdGljIHZvaWQgZGlkQ2xvc2VPbkNv
bm5lY3Rpb25Xb3JrUXVldWUoSVBDOjpDb25uZWN0aW9uKikKICAgICAgICAgLy8gV2UgdXNlIF9l
eGl0IGhlcmUgc2luY2UgdGhlIHdhdGNoZG9nIGNhbGxiYWNrIGlzIGNhbGxlZCBmcm9tIGFub3Ro
ZXIgdGhyZWFkIGFuZCB3ZSBkb24ndCB3YW50CiAgICAgICAgIC8vIGdsb2JhbCBkZXN0cnVjdG9y
cyBvciBhdGV4aXQgaGFuZGxlcnMgdG8gYmUgY2FsbGVkIGZyb20gdGhpcyB0aHJlYWQgd2hpbGUg
dGhlIG1haW4gdGhyZWFkIGlzIGJ1c3kKICAgICAgICAgLy8gZG9pbmcgaXRzIHRoaW5nLgotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUigiRXhpdGluZyBwcm9jZXNzIGVhcmx5IGR1ZSB0byB1bmFj
a25vd2xlZGdlZCBjbG9zZWQtY29ubmVjdGlvbiIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihJUEMsICJFeGl0aW5nIHByb2Nlc3MgZWFybHkgZHVlIHRvIHVuYWNrbm93bGVkZ2VkIGNsb3Nl
ZC1jb25uZWN0aW9uIik7CiAgICAgICAgIF9leGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgfSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAppbmRleCA2ZTgx
ZDhhYTM2NzA3MjA0YTE1YzQyODJkMDdmOGZlNjhiMDdhMzBlLi43NjZhNzM3YmQ2YWVkMzFjMWE4
ZWE4ZTNhMzgwMTc0ODVjNDk4MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViS2l0MkluaXRpYWxpemUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQy
SW5pdGlhbGl6ZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0Migp
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwogICAgIFJ1bkxvb3A6OmluaXRpYWxp
emVNYWluUnVuTG9vcCgpOwogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQg
fHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxzSWZOZWNlc3NhcnkoKTsKICAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVj
ZXNzYXJ5KCk7CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggMWY0YmIzNDc3YWQxMGVm
MmQ3MzZiYjlhZTkyOWYwYWE0YWYyNzM3ZS4uMTgwNzc3ZjE1NzQzOThkNzA5ZmU5NjFjY2YwZWQ5
MjU5N2E5MmQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJBUElVUkwuaCIKICNp
bXBvcnQgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIgogI2ltcG9ydCAiQ29tcGxl
dGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAi
TmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGUuaCIKICNpbXBv
cnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKQEAgLTgyNSw3ICs4MjYsNyBAQCB2b2lk
IE5hdmlnYXRpb25TdGF0ZTo6d2lsbENoYW5nZUlzTG9hZGluZygpCiAjaWYgUExBVEZPUk0oSU9T
KQogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnJlbGVhc2VOZXR3b3JrQWN0aXZpdHlUb2tlbigpCiB7
Ci0gICAgUkVMRUFTRV9MT0dfSUYobV93ZWJWaWV3LT5fcGFnZS0+aXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksICIlcCBVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRp
b24gYmVjYXVzZSBhIHBhZ2UgbG9hZCBjb21wbGV0ZWQiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xP
R19JRihtX3dlYlZpZXctPl9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vz
c1N1c3BlbnNpb24sICIlcCBVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3Nl
cnRpb24gYmVjYXVzZSBhIHBhZ2UgbG9hZCBjb21wbGV0ZWQiLCB0aGlzKTsKICAgICBBU1NFUlQo
bV9hY3Rpdml0eVRva2VuKTsKICAgICBtX2FjdGl2aXR5VG9rZW4gPSBudWxscHRyOwogfQpAQCAt
ODM4LDcgKzgzOSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpkaWRDaGFuZ2VJc0xvYWRpbmco
KQogICAgICAgICBpZiAobV9yZWxlYXNlQWN0aXZpdHlUaW1lci5pc0FjdGl2ZSgpKQogICAgICAg
ICAgICAgbV9yZWxlYXNlQWN0aXZpdHlUaW1lci5zdG9wKCk7CiAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUYobV93ZWJWaWV3LT5fcGFnZS0+aXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCksICIlcCAtIFVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2Vy
dGlvbiBiZWNhdXNlIGEgcGFnZSBsb2FkIHN0YXJ0ZWQiLCB0aGlzKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91
bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSBwYWdlIGxvYWQgc3RhcnRlZCIsIHRoaXMpOwogICAgICAg
ICAgICAgQVNTRVJUKCFtX2FjdGl2aXR5VG9rZW4pOwogICAgICAgICAgICAgbV9hY3Rpdml0eVRv
a2VuID0gbV93ZWJWaWV3LT5fcGFnZS0+cHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91bmRB
Y3Rpdml0eVRva2VuKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNGVjNDZjMTEw
ZDc4YTJmODRjMTUyYjEzZWYwMTRlYWFiMGEyZmYxZS4uZjdlMDg5NjdjYjdlOTNlZWM4YTM3Zjg3
M2FjNGM4MTRjOWM5MjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
RGF0YWJhc2VQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgpAQCAtMTI1LDExICsxMjYsMTEgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXQKIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNh
bGxiYWNrSUQoKTsKICAgICBhdXRvIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2
aXR5VG9rZW4oKTsKLSAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGZldGNoaW5nIFdl
YnNpdGUgZGF0YSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9j
ZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0
d29yayBwcm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwogCiAgICAgbV9w
ZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgW3RoaXMsIHRv
a2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXShXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0
YSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHdlYnNpdGVEYXRhKSk7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBmZXRjaGluZyBXZWJz
aXRlIGRhdGEiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1By
b2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRo
ZSBOZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsK
ICAgICB9KTsKIAogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGZXRjaFdlYnNp
dGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBmZXRjaE9wdGlvbnMsIGNhbGxiYWNrSUQpLCAw
KTsKQEAgLTEzOSwxMSArMTQwLDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRl
V2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uCiB7CiAgICAg
YXV0byBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9
IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgUkVMRUFTRV9MT0df
SUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJv
Y2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5l
dHdvcmsgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICBSRUxF
QVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NT
dXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91
bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJz
aXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJh
Y2tzLmFkZChjYWxsYmFja0lELCBbdGhpcywgdG9rZW4sIGNvbXBsZXRpb25IYW5kbGVyLCBzZXNz
aW9uSURdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBOZXR3b3Jr
UHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ug
dGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMp
OworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHJl
bGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2Vz
cyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwogICAgIH0pOwogICAgIHNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YShzZXNzaW9uSUQs
IGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCksIDApOwogfQpAQCAtMTU0LDEx
ICsxNTUsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZv
ck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW8KIAogICAgIHVpbnQ2NF90IGNhbGxi
YWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAgICBhdXRvIHRva2VuID0gdGhyb3R0bGVy
KCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9u
SUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkg
aXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9j
ZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7
CisgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcg
YSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVs
ZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsKIAogICAgIG1f
cGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5hZGQoY2FsbGJhY2tJ
RCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXSB7CiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5p
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyBy
ZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nl
c3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRo
aXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlz
IHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJv
Y2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwg
dGhpcyk7CiAgICAgfSk7CiAKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5E
YXRhOwpAQCAtNDAxLDEyICs0MDIsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRT
ZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSkKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKIHsK
ICAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKCJV
SVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUg
TmV0d29yayBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOworICAg
ICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIlVJUHJvY2VzcyBpcyByZWxlYXNp
bmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMg
bm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CiAgICAgICAgIG1fdG9rZW5Gb3JIb2xk
aW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlm
ICghbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcykgewotICAgICAgICBSRUxFQVNFX0xPRygi
VUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5l
dHdvcmsgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOworICAgICAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIlVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5k
IGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQg
ZmlsZXMiKTsKICAgICAgICAgbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG1fdGhyb3R0
bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4IDU3YmZjNjI3MTA1ODBkY2Fl
MzJkY2FlMTA4YjJiNWJmM2Q2MjQ0NjMuLjc3YjBiOGM3MWY4OGY4YmMyMDQ5MDJiZjQ2YTI2YzM0
ODVhMzc1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyLmgiCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUHJv
Y2Vzc1Rocm90dGxlckNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3LDcgKzU4
LDcgQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3coKQogICAgIG1f
c3VzcGVuZFRpbWVyLnN0b3AoKTsKICAgICBpZiAobV9hc3NlcnRpb24pIHsKICAgICAgICAgaWYg
KG1fYXNzZXJ0aW9uLT5zdGF0ZSgpICE9IGFzc2VydGlvblN0YXRlKCkpCi0gICAgICAgICAgICBS
RUxFQVNFX0xPRygiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3coKSB1
cGRhdGluZyBwcm9jZXNzIGFzc2VydGlvbiBzdGF0ZSB0byAldSAoZm9yZWdyb3VuZEFjdGl2aXRp
ZXM6ICVsdSwgYmFja2dyb3VuZEFjdGl2aXRpZXM6ICVsdSkiLCB0aGlzLCBhc3NlcnRpb25TdGF0
ZSgpLCBtX2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCksIG1fYmFja2dyb3VuZENvdW50ZXIudmFs
dWUoKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0g
UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkgdXBkYXRpbmcgcHJvY2VzcyBh
c3NlcnRpb24gc3RhdGUgdG8gJXUgKGZvcmVncm91bmRBY3Rpdml0aWVzOiAlbHUsIGJhY2tncm91
bmRBY3Rpdml0aWVzOiAlbHUpIiwgdGhpcywgYXNzZXJ0aW9uU3RhdGUoKSwgbV9mb3JlZ3JvdW5k
Q291bnRlci52YWx1ZSgpLCBtX2JhY2tncm91bmRDb3VudGVyLnZhbHVlKCkpOwogICAgICAgICBt
X2Fzc2VydGlvbi0+c2V0U3RhdGUoYXNzZXJ0aW9uU3RhdGUoKSk7CiAgICAgICAgIG1fcHJvY2Vz
cy5kaWRTZXRBc3NlcnRpb25TdGF0ZShhc3NlcnRpb25TdGF0ZSgpKTsKICAgICB9CkBAIC03MCw3
ICs3MSw3IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkKICAgICAv
LyBpbiB0aGUgYmFja2dyb3VuZCBmb3IgdG9vIGxvbmcuCiAgICAgaWYgKG1fYXNzZXJ0aW9uICYm
IG1fYXNzZXJ0aW9uLT5zdGF0ZSgpICE9IEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQgJiYgIW1f
Zm9yZWdyb3VuZENvdW50ZXIudmFsdWUoKSAmJiAhbV9iYWNrZ3JvdW5kQ291bnRlci52YWx1ZSgp
KSB7CiAgICAgICAgICsrbV9zdXNwZW5kTWVzc2FnZUNvdW50OwotICAgICAgICBSRUxFQVNFX0xP
RygiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24oKSBzZW5kaW5nIFByZXBh
cmVUb1N1c3BlbmQgSVBDIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24oKSBzZW5kaW5n
IFByZXBhcmVUb1N1c3BlbmQgSVBDIiwgdGhpcyk7CiAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJl
cGFyZVRvU3VzcGVuZCgpOwogICAgICAgICBtX3N1c3BlbmRUaW1lci5zdGFydE9uZVNob3QocHJv
Y2Vzc1N1c3BlbnNpb25UaW1lb3V0KTsKICAgICAgICAgbV9hc3NlcnRpb24tPnNldFN0YXRlKEFz
c2VydGlvblN0YXRlOjpCYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggMDExZmU4NGZjZGZlYTcxNWJiMTJmNjA3NDRmYzI2ODhjNTY3MWNi
OC4uN2E5OGVjMWM2ODRhYzk3YjVmNzBkN2NmMTE2MjQ0NzNiOGRmMTAxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE3OSw3ICsxNzksNyBAQAogI2Rl
ZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlv
biwgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfVVJMKHVy
bCkgTUVTU0FHRV9DSEVDS19CQVNFKG1fcHJvY2Vzcy0+Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQ
cm9jZXNzKHVybCksIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpKQogCi0jZGVmaW5lIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBS
RUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNp
b24sIF9fVkFfQVJHU19fKQogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYTU5MjhlYzQ4NDhiNmRi
Zjg0ZjYwY2I0MDk2Zjk1ZGQ1NjZiYWY1My4uZTEwNzdmM2QxZmRiMjYxZDFhMzUyN2Y3ZjYyNTJl
ODhmNDhkZTllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQ
STo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogCiAgICAgYWRkTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzLCBsYW5ndWFnZUNoYW5nZWQpOwogCi0jaWYgIUxPR19E
SVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
V2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICAgICBXZWJLaXQ6
OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAjZW5kaWYgLy8gIUxPR19ESVNB
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCA1NzVjN2FiMmE4Nzg2NjllZjFlYjk3ZmEyYTIwYjRhOTNhZWRhNDBiLi4yZTJjODQzNWM0OWM4
ODM0MTIwMWNiODg3MzcxYmY1ODIzMWYyMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkN1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1hcC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJQbHVnaW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFu
YWdlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC03NTMsMTEgKzc1NCwxMSBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhdAogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVy
YXRlQ2FsbGJhY2tJRCgpOwogICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5k
QWN0aXZpdHlUb2tlbigpOwotICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tn
cm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGZldGNoaW5nIFdlYnNp
dGUgZGF0YSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94
eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2Vz
cyBpcyBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIG1fcGVuZGluZ0ZldGNo
V2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwgY29tcGxl
dGlvbkhhbmRsZXIsIHNlc3Npb25JRF0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwotICAgICAgICBSRUxF
QVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdl
YlByb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNl
IHRoZSBXZWIgcHJvY2VzcyBpcyBkb25lIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwor
ICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5n
IGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBm
ZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKIAogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIGNh
bGxiYWNrSUQpLCAwKTsKQEAgLTc2OSwxMSArNzcwLDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhCiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAg
ICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0g
ICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAi
JXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVj
YXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7Cisg
ICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tn
cm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNp
dGUgZGF0YSIsIHRoaXMpOwogCiAgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFj
a3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Np
b25JRF0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBSRUxFQVNFX0xP
R19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nl
c3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBX
ZWIgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAg
ICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFj
a2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGlu
ZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRT
aW5jZSwgY2FsbGJhY2tJRCksIDApOwogfQpAQCAtNzg0LDExICs3ODUsMTEgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lv
bklELCBPcHRpb25TZXQKIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxi
YWNrSUQoKTsKICAgICBhdXRvIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5
VG9rZW4oKTsKLSAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEg
Zm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25J
RC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdl
YlByb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRo
ZSBXZWIgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lu
cyIsIHRoaXMpOwogCiAgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2Fs
bGJhY2tzLmFkZChjYWxsYmFja0lELCBbdGhpcywgdG9rZW4sIGNvbXBsZXRpb25IYW5kbGVyLCBz
ZXNzaW9uSURdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgUkVMRUFT
RV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQ
cm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0
aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwg
b3JpZ2lucyIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNz
UHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2Vi
IHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lu
cyIsIHRoaXMpOwogICAgIH0pOwogCiAgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3Jp
Z2luRGF0YTsKQEAgLTk4OCw3ICs5ODksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0
QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUgc3RhdGUpCiAKICAgICBzd2l0Y2ggKHN0YXRl
KSB7CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkOgotICAgICAgICBSRUxFQVNF
X0xPRygiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKFN1c3BlbmRl
ZCkgcmVsZWFzZSBhbGwgYXNzZXJ0aW9ucyBmb3IgbmV0d29yayBwcm9jZXNzIiwgdGhpcyk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHk6OmRpZFNldEFzc2VydGlvblN0YXRlKFN1c3BlbmRlZCkgcmVsZWFzZSBhbGwgYXNzZXJ0aW9u
cyBmb3IgbmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2Vu
Rm9yTmV0d29ya1Byb2Nlc3MgPSBudWxscHRyOwogICAgICAgICBtX2JhY2tncm91bmRUb2tlbkZv
ck5ldHdvcmtQcm9jZXNzID0gbnVsbHB0cjsKICAgICAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9w
YWdlTWFwLnZhbHVlcygpKQpAQCAtOTk2LDEzICs5OTcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlIHN0YXRlKQogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkJhY2tncm91bmQ6Ci0gICAgICAgIFJF
TEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQmFj
a2dyb3VuZCkgdGFraW5nIGJhY2tncm91bmQgYXNzZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3Mi
LCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdl
YlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQmFja2dyb3VuZCkgdGFraW5nIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKICAgICAgICAg
bV9iYWNrZ3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwog
ICAgICAgICBtX2ZvcmVncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gbnVsbHB0cjsKICAg
ICAgICAgYnJlYWs7CiAgICAgCiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6Rm9yZWdyb3VuZDoK
LSAgICAgICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRp
b25TdGF0ZShGb3JlZ3JvdW5kKSB0YWtpbmcgZm9yZWdyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdv
cmsgcHJvY2VzcyIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShGb3JlZ3JvdW5k
KSB0YWtpbmcgZm9yZWdyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2VzcyIsIHRoaXMp
OwogICAgICAgICBtX2ZvcmVncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bv
b2woKS5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0
eVRva2VuKCk7CiAgICAgICAgIG1fYmFja2dyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3MgPSBu
dWxscHRyOwogICAgICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCkBA
IC0xMDE5LDEyICsxMDIwLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRp
b25TdGF0ZShBc3NlcnRpb25TdGF0ZSBzdGF0ZSkKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogewogICAgIGlm
ICghaXNIb2xkaW5nTG9ja2VkRmlsZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coIlVJUHJvY2Vz
cyBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MgaXMgbm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CisgICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBh
IGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBu
byBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKICAgICAgICAgbV90b2tlbkZvckhvbGRp
bmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYg
KCFtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKCJV
SVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CisgICAgICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91
bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xkaW5nIGxv
Y2tlZCBmaWxlcyIpOwogICAgICAgICBtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbV90
aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KaW5kZXgg
ODgyNDU1ZjM3Y2I1NjE2ZTc0MDU4M2NjMzAzMTk0Mzc0ZDhmY2JiOS4uNmIyMjQwMTcxZjAzMWFi
MDNjYzM3MTE5NGI2YmEzZGQ4NTM0ZDg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMjksNiArMjksNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKIAogI2ltcG9ydCAiQXNzZXJ0aW9uU2VydmljZXNTUEkuaCIKKyNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPFVJS2l0L1VJQXBwbGljYXRpb24uaD4KICNpbXBvcnQg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgpAQCAtMTA1LDcgKzEwNiw3
IEBAIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRUYXNrCiB7CiAgICAgaWYgKF9uZWVkc1RvUnVu
SW5CYWNrZ3JvdW5kQ291bnQgJiYgX2JhY2tncm91bmRUYXNrID09IFVJQmFja2dyb3VuZFRhc2tJ
bnZhbGlkKSB7CiAgICAgICAgIF9iYWNrZ3JvdW5kVGFzayA9IFtbVUlBcHBsaWNhdGlvbiBzaGFy
ZWRBcHBsaWNhdGlvbl0gYmVnaW5CYWNrZ3JvdW5kVGFza1dpdGhOYW1lOkAiY29tLmFwcGxlLldl
YktpdC5Qcm9jZXNzQXNzZXJ0aW9uIiBleHBpcmF0aW9uSGFuZGxlcjpeewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoIkJhY2tncm91bmQgdGFzayBleHBpcmVkIHdoaWxlIGhvbGRpbmcg
V2ViS2l0IFByb2Nlc3NBc3NlcnRpb24gKGlzTWFpblRocmVhZD8gJWQpLiIsIFJ1bkxvb3A6Omlz
TWFpbigpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9u
LCAiQmFja2dyb3VuZCB0YXNrIGV4cGlyZWQgd2hpbGUgaG9sZGluZyBXZWJLaXQgUHJvY2Vzc0Fz
c2VydGlvbiAoaXNNYWluVGhyZWFkPyAlZCkuIiwgUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAg
ICAgICAgLy8gVGhlIGV4cGlyYXRpb24gaGFuZGxlciBnZXRzIGNhbGxlZCBvbiBhIG5vbi1tYWlu
IHRocmVhZCB3aGVuIHRoZSB1bmRlcmx5aW5nIGFzc2VydGlvbiBjb3VsZCBub3QgYmUgdGFrZW4g
KHJkYXI6Ly9wcm9ibGVtLzI3Mjc4NDE5KS4KICAgICAgICAgICAgIGlmIChSdW5Mb29wOjppc01h
aW4oKSkKICAgICAgICAgICAgICAgICBbc2VsZiBfbm90aWZ5Q2xpZW50c09mSW1taW5lbnRTdXNw
ZW5zaW9uXTsKQEAgLTE2NSw3ICsxNjYsNyBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNz
ZXJ0aW9uKHBpZF90IHBpZCwgQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUsIEZ1bgogICAg
IGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CiAgICAgQktTUHJvY2Vzc0Fzc2VydGlv
bkFjcXVpc2l0aW9uSGFuZGxlciBoYW5kbGVyID0gXihCT09MIGFjcXVpcmVkKSB7CiAgICAgICAg
IGlmICghYWNxdWlyZWQpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJVbmFibGUg
dG8gYWNxdWlyZSBhc3NlcnRpb24gZm9yIHByb2Nlc3MgJWQiLCBwaWQpOworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJVbmFibGUgdG8gYWNxdWlyZSBh
c3NlcnRpb24gZm9yIHByb2Nlc3MgJWQiLCBwaWQpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmlu
ZGV4IGFmY2NkMWU0ZDcxMDA2NjI3MzMyYmY1MzhjYmQzNjQ0Mzg4OTFkYTMuLmE3Yzc4NzdlZjFm
NjBhNWE1Yjk4NjM2MmJmM2I2YWE5OGZmZmI3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNTcsOCAr
NTcsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2RlZmluZSBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGxvYWRQYXJh
bWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18p
CisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihsb2Fk
UGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmss
IF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKC4uLikg
UkVMRUFTRV9MT0dfRVJST1JfSUYobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklELmlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDljMDA5NDM4Y2E5NTMyMjMyODgyMzc4OTFhY2RmMjc3
NzMxZDdjNGUuLjdmY2EyZjkzZDU1ZWE3NTY1ZDRhNGRlYjgyNDZhNTU1ODk4MTljNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcApAQCAtNDIsNyArNDIsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCksIE5ldHdvcmssIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZjMTZiZTRj
ZWRmNzZjZDIzYmIzYWY5ZDg1YTY4NGQwOGU2NzU3MGUuLjM1ZWQxMjM3NmJmYTlmYTZjODkyYzk4
NDI2MzVlYjZhZGQwM2NlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTI1NSw4ICsyNTUsOCBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHBh
Z2VTY3JvbGxIeXN0ZXJlc2lzU2Vjb25kcyA9IDAuMzsKIHN0YXRpYyBjb25zdCBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzIGluaXRpYWxMYXllclZvbGF0aWxpdHlUaW1lckludGVydmFsIHsgMjAg
fTsKIHN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBtYXhpbXVtTGF5ZXJWb2xhdGls
aXR5VGltZXJJbnRlcnZhbCB7IDIgfTsKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJH
U19fKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9M
T0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2Rl
ZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIExheWVycywgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgTGF5ZXJzLCBfX1ZBX0FSR1NfXykKIAogY2xhc3MgU2VuZFN0b3BS
ZXNwb25zaXZlbmVzc1RpbWVyIHsKIHB1YmxpYzoKQEAgLTIwNjQsNyArMjA2NCw3IEBAIHZvaWQg
V2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpCiAgICAgYm9vbCBkaWRTdWNjZWVk
ID0gbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCk7CiAgICAgaWYgKGRp
ZFN1Y2NlZWQgfHwgbmV3SW50ZXJ2YWwgPiBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRl
cnZhbCkgewogICAgICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gQXR0ZW1wdGVkIHRvIG1hcmsg
c3VyZmFjZXMgYXMgdm9sYXRpbGUsIHN1Y2Nlc3M/ICVkIiwgdGhpcywgZGlkU3VjY2VlZCk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFnZSAtIEF0dGVtcHRlZCB0
byBtYXJrIGxheWVycyBhcyB2b2xhdGlsZSwgc3VjY2Vzcz8gJWQiLCB0aGlzLCBkaWRTdWNjZWVk
KTsKICAgICAgICAgY2FsbFZvbGF0aWxpdHlDb21wbGV0aW9uSGFuZGxlcnMoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDE0YjNhMTQ1NGM2NTk4ZDY0NzY1YjMwZDA1ZWE1YmViYTJmNDc3YmYuLmFkOTFkOWExNDVm
ODBkYzY3OTM5MTIyOWMzOTVmZjJkOGEwZGRmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMTI3NywxMCArMTI3NywxMCBAQCB2b2lkIFdlYlByb2Nlc3M6
OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3Bl
bmQgc2hvdQogICAgIHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbih0cnVlKTsKIAogICAgIG1h
cmtBbGxMYXllcnNWb2xhdGlsZShbdGhpcywgc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1
c3BlbmRdIHsKLSAgICAgICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExh
eWVyc1ZvbGF0aWxlKCkgU3VjY2Vzc2Z1bHkgbWFya2VkIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUi
LCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdl
YlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIFN1Y2Nlc3NmdWx5IG1hcmtlZCBhbGwg
bGF5ZXJzIGFzIHZvbGF0aWxlIiwgdGhpcyk7CiAKICAgICAgICAgaWYgKHNob3VsZEFja25vd2xl
ZGdlV2hlblJlYWR5VG9TdXNwZW5kID09IFNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNw
ZW5kOjpZZXMpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OmFj
dHVhbFByZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMg
bWVzc2FnZSIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICIlcCAtIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5nIFBy
b2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRoaXMpOwogICAgICAgICAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpQ
cm9jZXNzUmVhZHlUb1N1c3BlbmQoKSwgMCk7CiAgICAgICAgIH0KICAgICB9KTsKQEAgLTEyOTYs
NyArMTI5Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eShib29sJiBoYW5kbGVkKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUkVMRUFTRV9M
T0coIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSgpIiwgdGhp
cyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6
OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSIsIHRoaXMpOwogICAgIERhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlcigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVyeUJlaGF2aW9yOjpJ
bnRlcnJ1cHQpOwogICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VX
aGVuUmVhZHlUb1N1c3BlbmQ6Ok5vKTsKICAgICBoYW5kbGVkID0gdHJ1ZTsKQEAgLTEzMDQsMTMg
KzEzMDQsMTMgQEAgdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5
KGJvb2wmIGhhbmRsZWQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpCiB7
Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpIiwg
dGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwogICAgIGFjdHVhbFByZXBhcmVUb1N1c3Bl
bmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQ6Olllcyk7CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiB7Ci0gICAgUkVMRUFTRV9MT0co
IiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CisgICAg
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OmNhbmNlbFBy
ZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwogICAgIHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3pl
bihmYWxzZSk7CiAKICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZpbmlzaGVkIGNsZWFuaW5nIHVw
IGFuZCBzZW50IFByb2Nlc3NSZWFkeVRvU3VzcGVuZCwgd2UKQEAgLTEzMjAsMTMgKzEzMjAsMTMg
QEAgdm9pZCBXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKIAogICAgIGNhbmNl
bE1hcmtBbGxMYXllcnNWb2xhdGlsZSgpOwogCi0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJv
Y2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgRGlkQ2FuY2VsUHJvY2Vzc1N1
c3BlbnNpb24gSVBDIG1lc3NhZ2UiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRp
bmcgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24gSVBDIG1lc3NhZ2UiLCB0aGlzKTsKICAgICBw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCksIDApOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6
Om1hcmtBbGxMYXllcnNWb2xhdGlsZShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExheWVy
c1ZvbGF0aWxlKCkiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCkiLCB0aGlzKTsKICAgICBt
X3BhZ2VzTWFya2luZ0xheWVyc0FzVm9sYXRpbGUgPSBtX3BhZ2VNYXAuc2l6ZSgpOwogICAgIGlm
ICghbV9wYWdlc01hcmtpbmdMYXllcnNBc1ZvbGF0aWxlKSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CkBAIC0xMzU5LDcgKzEzNTksNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEFsbExh
eWVyVHJlZVN0YXRlc0Zyb3plbihib29sIGZyb3plbikKICAgICAKIHZvaWQgV2ViUHJvY2Vzczo6
cHJvY2Vzc0RpZFJlc3VtZSgpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6
cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOwogCiAg
ICAgY2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKCk7CiAgICAgc2V0QWxsTGF5ZXJUcmVlU3Rh
dGVzRnJvemVuKGZhbHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287048</attachid>
            <date>2016-08-25 17:14:01 -0700</date>
            <delta_ts>2016-08-25 21:35:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160969-20160825171158.patch</filename>
            <type>text/plain</type>
            <size>68064</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIxZDNiYjZmMjdlMGM4NWY1ZjkzMDhj
MDBmN2ZiMWYzOTBmMjUyZTguLjU3MDcwODJiMzQwNGQ2YWU0NWEwYzQxZGFhNDkxNmQ0M2QyM2U5
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZv
ciBvc19sb2cgc28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhdHRhY2hpbmcgYSBz
dWJzeXN0ZW0gYW5kIGNhdGVnb3J5IHdoZW4gbG9nZ2luZyB2aWEKKyAgICAgICAgdGhlIFJFTEVB
U0VfTE9HIG1hY3Jvcy4gVGhpcyBzdXBwb3J0IGlzIHByb3ZpZGVkIGJ5IGFkZGluZyBzdWJzeXN0
ZW0KKyAgICAgICAgYW5kIGNhdGVnb3J5IGluZm9ybWF0aW9uIHRvIFdURkxvZ0NoYW5uZWwuIEFu
IG9zX2xvZ190IG9iamVjdCBpcyB0aGVuCisgICAgICAgIGNyZWF0ZWQgdG8gZW5hY3BzdWxhdGUg
dGhhdCBpbmZvcm1hdGlvbi4gV2hlbiB1c2luZyBSRUxFQVNFX0xPRyB0byBsb2cKKyAgICAgICAg
dGhyb3VnaCB0aGF0IGNoYW5uZWwsIHRoZSBhc3NvY2lhdGVkIGxvZyBvYmplY3QgaXMgdXNlZCB3
aGVuIGNhbGxpbmcKKyAgICAgICAgb3NfbG9nLgorCisgICAgICAgIFRvIGhlbHAgc3VwcG9ydCB0
aGUgaW5jbHVzaW9uIG9mIHRoZSBzdWJzeXN0ZW0gYW5kIGNhdGVnb3J5CisgICAgICAgIGluZm9y
bWF0aW9uIGluIFdURkxvZ0NoYW5uZWwsIHRoZSBERUNMQVJFX0xPR19DSEFOTkVMLAorICAgICAg
ICBERUZJTkVfTE9HX0NIQU5ORUwsIGFuZCBMT0dfQ0hBTk5FTF9BRERSRVNTIG1hY3JvcyB0aGF0
IHdlcmUgZGVmaW5lZAorICAgICAgICBpbiB2YXJpb3VzIG1vZHVsZXMgYXJlIGNvbnNvbGlkYXRl
ZCBhbmQgbW92ZWQgdG8gQXNzZXJ0aW9ucy5oLgorICAgICAgICBERUZJTkVfTE9HX0NIQU5ORUwg
aXMgbm93IGRlZmluZWQgdG8gaW5pdGlhbGl6ZSB0aGUgc3Vic3lzdGVtIGFuZAorICAgICAgICBj
YXRlZ29yeS4KKworICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3dGYv
QXNzZXJ0aW9ucy5oOgorICAgICAgICAqIHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwOgor
CiAyMDE2LTA4LTIyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFjdHVhbGx5IGVuYWJsZSB0aGUgV0FTTSBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZTM4
Njg0MTFhZmYyMGIwYzk5ZGE2ZjgxZDYwMzE1ZDAxOWI3MDcyLi5iYWI5ZTg4OWZhYjE4MGIwZjM5
NzU3MzYzYWQ3ZjIwMDY2NGE1NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTYt
MDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktp
dCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZvciBvc19sb2cgc28gaXQncyBlYXNpZXIgdG8gZmls
dGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4
NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0g
U3BlY2lmeSBhIGNoYW5uZWwgd2hlbiB1c2luZyBSRUxFQVNFX0xPRyBtYWNyb3MKKyAgICAgICAg
LSBBZGQgYSBuZXcgY2hhbm5lbCBzbyB0aGF0IHdlIGhhdmUgc29tZXRoaW5nIHRvIHBhc3MgdG8g
dGhlCisgICAgICAgICAgUkVMRUFTRV9MT0cgbWFjcm9zIChMYXllcnMpLgorICAgICAgICAtIEVu
YWJsZSBzdWJzeXN0ZW0tIGFuZCBjaGFubmVsLXJlbGF0ZWQgZGF0YSBhbmQgZnVuY3Rpb25zIHdo
ZW4gdXNpbmcKKyAgICAgICAgICBSRUxFQVNFX0xPRyBtYWNyb3MuCisgICAgICAgIC0gVXNlIHRo
ZSBERUNMQVJFX0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsIGFuZAorICAgICAgICAg
IExPR19DSEFOTkVMX0FERFJFU1MgbWFjcm9zIHRoYXQgYXJlIG5vdyBkZWZpbmVkIGluIFdURi4K
KworICAgICAgICBObyBuZXcgdGVzdHMuIFRoZXJlIGFyZSBubyB0ZXN0cyBmb3IgbG9nZ2luZy4K
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
TG9nSW5pdGlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dNYWNyb3MuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5n
Lmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpsb2dNZW1v
cnlVc2FnZUNoYW5nZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0
aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vTG9nZ2luZ1dpbi5jcHA6CisgICAg
ICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZVRlc3RTdXBwb3J0Ojppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6CisKIDIwMTYt
MDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQgc2hvdWxkIG5vdCBoYXZlIGEgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCBwYXJlbnQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggY2MwMjRhZmYyZDU2M2QyNWYz
MmIwY2Y1YjZiMmRjNTZiNmZjOWUwMC4uOGUyZGZhMTZlYmZkOGY4MDc2MjNkYzQ5YWY2NjFmNGFl
YThhNmE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA4LTI1ICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxk
IHNldCBhIHN1YnN5c3RlbSBmb3Igb3NfbG9nIHNvIGl0J3MgZWFzaWVyIHRvIGZpbHRlciBmb3Ig
V2ViS2l0IGxvZyBtZXNzYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYwOTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjA2ODczND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgc3Vi
c3lzdGVtLSBhbmQgY2hhbm5lbC1yZWxhdGVkIGRhdGEgYW5kIGZ1bmN0aW9ucyB3aGVuIHVzaW5n
CisgICAgICAgIFJFTEVBU0VfTE9HIG1hY3Jvcy4gVXNlIHRoZSBERUNMQVJFX0xPR19DSEFOTkVM
LCBERUZJTkVfTE9HX0NIQU5ORUwsCisgICAgICAgIGFuZCBMT0dfQ0hBTk5FTF9BRERSRVNTIG1h
Y3JvcyB0aGF0IGFyZSBub3cgZGVmaW5lZCBpbiBXVEYuCisKKyAgICAgICAgKiBNaXNjL1dlYktp
dExvZ2dpbmcuaDoKKyAgICAgICAgKiBNaXNjL1dlYktpdExvZ2dpbmcubToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisKIDIwMTYtMDgtMjIgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgT2JqZWN0aXZlLUMgRE9NIGJpbmRp
bmdzIGZyb20gV2ViQ29yZSB0byBsZWdhY3kgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNGIx
Y2Y2YjU2MTJhOTc5MjZjODUwNTJmYWQ4MzgzOTU0ZDAzZTBiZi4uNTFkYmEyYjUzZmNkYjNlNTQx
NjNkZjI1YWU5NWJkMjEyMzllNjBiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDE2LTA4LTI1ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWJLaXQgc2hvdWxkIHNldCBhIHN1YnN5c3RlbSBmb3Igb3NfbG9nIHNvIGl0J3MgZWFzaWVy
IHRvIGZpbHRlciBmb3IgV2ViS2l0IGxvZyBtZXNzYWdlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yNjA2ODczND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFbmFibGUgc3Vic3lzdGVtLSBhbmQgY2hhbm5lbC1yZWxhdGVkIGRhdGEgYW5kIGZ1bmN0
aW9ucyB3aGVuIHVzaW5nCisgICAgICAgIFJFTEVBU0VfTE9HIG1hY3Jvcy4gVXNlIHRoZSBERUNM
QVJFX0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsCisgICAgICAgIGFuZCBMT0dfQ0hB
Tk5FTF9BRERSRVNTIG1hY3JvcyB0aGF0IGFyZSBub3cgZGVmaW5lZCBpbiBXVEYuCisKKyAgICAg
ICAgKiBXZWJLaXRMb2dnaW5nLmNwcDoKKyAgICAgICAgKiBXZWJLaXRMb2dnaW5nLmg6CisgICAg
ICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKwog
MjAxNi0wOC0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVzZSBEb2N1bWVudCYgaW5zdGVhZCBvZiBEb2N1bWVudCogd2hlbiBnZXR0aW5n
IGNvb2tpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiNWMxNjEzY2U5N2NiOTAzNDY2NDYxZWMxYjk1NWM3ZDIy
NDkzOTE3Li5jNzU5ZTEyMGMyOWNiNDRmNjc5YmM4MzUyYTBjNDFlYTM1MTkyYjhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZvciBv
c19sb2cgc28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gU3BlY2lmeSBhIGNoYW5uZWwgd2hlbiB1c2luZyBS
RUxFQVNFX0xPRyBtYWNyb3MuCisgICAgICAgIC0gQWRkIHNvbWUgbmV3IGNoYW5uZWxzIHNvIHRo
YXQgd2UgaGF2ZSBzb21ldGhpbmcgdG8gcGFzcyB0byB0aGUKKyAgICAgICAgICBSRUxFQVNFX0xP
RyBtYWNyb3MgKFByb2Nlc3NTdXNwZW5zaW9uLCBJUEMsIExheWVycykuCisgICAgICAgIC0gRW5h
YmxlIHN1YnN5c3RlbS0gYW5kIGNoYW5uZWwtcmVsYXRlZCBkYXRhIGFuZCBmdW5jdGlvbnMgd2hl
biB1c2luZworICAgICAgICAgIFJFTEVBU0VfTE9HIG1hY3Jvcy4KKyAgICAgICAgLSBVc2UgdGhl
IERFQ0xBUkVfTE9HX0NIQU5ORUwsIERFRklORV9MT0dfQ0hBTk5FTCwgYW5kCisgICAgICAgICAg
TE9HX0NIQU5ORUxfQUREUkVTUyBtYWNyb3MgdGhhdCBhcmUgbm93IGRlZmluZWQgaW4gV1RGLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkp
OgorICAgICAgICAqIFBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmg6CisgICAgICAgICogUGxh
dGZvcm0vTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVs
c0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICog
UGxhdGZvcm0vZm91bmRhdGlvbi9Mb2dnaW5nRm91bmRhdGlvbi5tbToKKyAgICAgICAgKiBQbGF0
Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OnJlbGVhc2VOZXR3
b3JrQWN0aXZpdHlUb2tlbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6ZGlk
Q2hhbmdlSXNMb2FkaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0
Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRl
bGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxl
cjo6dXBkYXRlQXNzZXJ0aW9uTm93KToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxl
cjo6dXBkYXRlQXNzZXJ0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2Vi
S2l0OjptX2hpZGRlblBhZ2VUaHJvdHRsaW5nVGltZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmZl
dGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRlbGV0
ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVX
ZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OmRpZFNldEFzc2VydGlvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3Jv
dW5kVGFza01hbmFnZXIgX3VwZGF0ZUJhY2tncm91bmRUYXNrXSk6CisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxheWVyVm9sYXRpbGl0
eVRpbWVyRmlyZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjptYXJrQWxsTGF5ZXJzVm9sYXRpbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKwogMjAxNi0wOC0yMyAgSHVuc2VvcCBK
ZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gVVJUQkYgYWZ0
ZXIgcjIwNDc0My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggNGYzOWZiMTVhZmQ1NGIxNjgyNmEz
MGEwMjI2YmZlNmUwNjgxYzQ3ZC4uODYxM2RmNWRlOGY0YWE3N2ZlNWE4NzhmMzI5NzBmMzYwNGNj
ZDYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTU1NSw2ICs1NTUsMTMgQEAgc3RhdGljIHZv
aWQgc2V0U3RhdGVPZkFsbENoYW5uZWxzKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWxzW10sIHNpemVf
dCBjaGFubmVsQ291bnQKIAogdm9pZCBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21T
dHJpbmcoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbHNbXSwgc2l6ZV90IGNvdW50LCBjb25zdCBjaGFy
KiBsb2dMZXZlbCkKIHsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgV1RGTG9nQ2hhbm5lbCogY2hhbm5l
bCA9IGNoYW5uZWxzW2ldOworICAgICAgICBjaGFubmVsLT5vc0xvZ0NoYW5uZWwgPSBvc19sb2df
Y3JlYXRlKGNoYW5uZWwtPnN1YnN5c3RlbSwgY2hhbm5lbC0+bmFtZSk7CisgICAgfQorI2VuZGlm
CisKICAgICBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcgPSBsb2dMZXZlbDsKICAgICBWZWN0b3I8U3Ry
aW5nPiBjb21wb25lbnRzOwogICAgIGxvZ0xldmVsU3RyaW5nLnNwbGl0KCcsJywgY29tcG9uZW50
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggODZjYjQyNWZmNmQzN2U2ODM2MjhjYjFhYmRlNTA3NjE4
ZWJjMDI1Yy4uMDMxNGY3NDIwYWViNjU3MzE2ZGNiY2RmMDRiNWIwZTU4ZThjYmZhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuaApAQCAtMTM1LDggKzEzNSwzMCBAQCB0eXBlZGVmIGVudW0geyBXVEZMb2dDaGFu
bmVsT2ZmLCBXVEZMb2dDaGFubmVsT24sIFdURkxvZ0NoYW5uZWxPbldpdGhBY2N1bXVsYXRpbwog
dHlwZWRlZiBzdHJ1Y3QgewogICAgIFdURkxvZ0NoYW5uZWxTdGF0ZSBzdGF0ZTsKICAgICBjb25z
dCBjaGFyKiBuYW1lOworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIGNvbnN0IGNoYXIq
IHN1YnN5c3RlbTsKKyAgICBfX3Vuc2FmZV91bnJldGFpbmVkIG9zX2xvZ190IG9zTG9nQ2hhbm5l
bDsKKyNlbmRpZgogfSBXVEZMb2dDaGFubmVsOwogCisjZGVmaW5lIExPR19DSEFOTkVMKG5hbWUp
IEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJFRklYLCBuYW1lKQor
I2RlZmluZSBMT0dfQ0hBTk5FTF9BRERSRVNTKG5hbWUpICZMT0dfQ0hBTk5FTChuYW1lKSwKKyNk
ZWZpbmUgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChwcmVmaXgsIGNoYW5uZWwpIEpPSU5f
TE9HX0NIQU5ORUxfV0lUSF9QUkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwpCisjZGVmaW5l
IEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVhfTEVWRUxfMihwcmVmaXgsIGNoYW5uZWwpIHBy
ZWZpeCAjIyBjaGFubmVsCisKKyNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5FTChuYW1lKSBcCisg
ICAgZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSk7CisKKyNpZiAhZGVmaW5l
ZChERUZJTkVfTE9HX0NIQU5ORUwpCisjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNkZWZpbmUg
REVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIHN1YnN5c3RlbSkgXAorICAgIFdURkxvZ0NoYW5uZWwg
TE9HX0NIQU5ORUwobmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxPZmYsICNuYW1lIH07CisjZWxzZQor
I2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBcCisgICAgV1RGTG9n
Q2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUsIHN1
YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKKyNlbmRpZgorI2VuZGlmCisKIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUoY29uc3QgY2hhciogZmlsZSwg
aW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pOwog
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVyZVdpdGhNZXNz
YWdlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgY29u
c3QgY2hhciogYXNzZXJ0aW9uLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RGX0FUVFJJQlVU
RV9QUklOVEYoNSwgNik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBXVEZSZXBvcnRBcmd1bWVu
dEFzc2VydGlvbkZhaWx1cmUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIq
IGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhcmdOYW1lLCBjb25zdCBjaGFyKiBhc3NlcnRpb24pOwpA
QCAtMzY3LDkgKzM4OSw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NS
QVNIIHZvaWQgV1RGQ3Jhc2hXaXRoU2VjdXJpdHlJbXBsaWNhdGlvbigpCiAjaWYgTE9HX0RJU0FC
TEVECiAjZGVmaW5lIExPRyhjaGFubmVsLCAuLi4pICgodm9pZCkwKQogI2Vsc2UKLSNkZWZpbmUg
TE9HKGNoYW5uZWwsIC4uLikgV1RGTG9nKCZKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExP
R19DSEFOTkVMX1BSRUZJWCwgY2hhbm5lbCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBKT0lOX0xP
R19DSEFOTkVMX1dJVEhfUFJFRklYKHByZWZpeCwgY2hhbm5lbCkgSk9JTl9MT0dfQ0hBTk5FTF9X
SVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkKLSNkZWZpbmUgSk9JTl9MT0dfQ0hB
Tk5FTF9XSVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkgcHJlZml4ICMjIGNoYW5u
ZWwKKyNkZWZpbmUgTE9HKGNoYW5uZWwsIC4uLikgV1RGTG9nKCZMT0dfQ0hBTk5FTChjaGFubmVs
KSwgX19WQV9BUkdTX18pCiAjZW5kaWYKIAogLyogTE9HX1ZFUkJPU0UgKi8KQEAgLTM3NywyMiAr
Mzk3LDI1IEBAIFdURl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQg
V1RGQ3Jhc2hXaXRoU2VjdXJpdHlJbXBsaWNhdGlvbigpCiAjaWYgTE9HX0RJU0FCTEVECiAjZGVm
aW5lIExPR19WRVJCT1NFKGNoYW5uZWwsIC4uLikgKCh2b2lkKTApCiAjZWxzZQotI2RlZmluZSBM
T0dfVkVSQk9TRShjaGFubmVsLCAuLi4pIFdURkxvZ1ZlcmJvc2UoX19GSUxFX18sIF9fTElORV9f
LCBXVEZfUFJFVFRZX0ZVTkNUSU9OLCAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0df
Q0hBTk5FTF9QUkVGSVgsIGNoYW5uZWwpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9HX1ZFUkJP
U0UoY2hhbm5lbCwgLi4uKSBXVEZMb2dWZXJib3NlKF9fRklMRV9fLCBfX0xJTkVfXywgV1RGX1BS
RVRUWV9GVU5DVElPTiwgJkxPR19DSEFOTkVMKGNoYW5uZWwpLCBfX1ZBX0FSR1NfXykKICNlbmRp
ZgogCiAvKiBSRUxFQVNFX0xPRyAqLwogCi0jZGVmaW5lIFdURl9MT0dHSU5HX1BSRUZJWCAiI1dL
OiAiCiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgUkVMRUFTRV9MT0coZm9ybWF0
LCAuLi4pICAgICAgICgodm9pZCkwKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihmb3JtYXQs
IC4uLikgV1RGUmVwb3J0RXJyb3IoX19GSUxFX18sIF9fTElORV9fLCBXVEZfUFJFVFRZX0ZVTkNU
SU9OLCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HKCAgICAgIGNo
YW5uZWwsIGZvcm1hdCwgLi4uKSAoKHZvaWQpMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1Io
Y2hhbm5lbCwgZm9ybWF0LCAuLi4pIExPR19FUlJPUihmb3JtYXQsICMjX19WQV9BUkdTX18pCisK
KyNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoICAgICAgaXNBbGxvd2VkLCBjaGFubmVsLCBmb3JtYXQs
IC4uLikgKCh2b2lkKTApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWxsb3dlZCwg
Y2hhbm5lbCwgZm9ybWF0LCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfRVJS
T1IoY2hhbm5lbCwgZm9ybWF0LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKICNlbHNlCi0j
ZGVmaW5lIFdURl9MT0dfREVGQVVMVCBPU19MT0dfREVGQVVMVAotI2RlZmluZSBSRUxFQVNFX0xP
Ryhmb3JtYXQsIC4uLikgICAgICAgb3NfbG9nKFdURl9MT0dfREVGQVVMVCwgV1RGX0xPR0dJTkdf
UFJFRklYIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1Io
Zm9ybWF0LCAuLi4pIG9zX2xvZ19lcnJvcihXVEZfTE9HX0RFRkFVTFQsIFdURl9MT0dHSU5HX1BS
RUZJWCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HKCAgICAgIGNo
YW5uZWwsIGZvcm1hdCwgLi4uKSBvc19sb2coICAgICAgTE9HX0NIQU5ORUwoY2hhbm5lbCkub3NM
b2dDaGFubmVsLCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VS
Uk9SKGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBvc19sb2dfZXJyb3IoTE9HX0NIQU5ORUwoY2hhbm5l
bCkub3NMb2dDaGFubmVsLCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisKKyNkZWZpbmUgUkVMRUFT
RV9MT0dfSUYoICAgICAgaXNBbGxvd2VkLCBjaGFubmVsLCBmb3JtYXQsIC4uLikgZG8geyBpZiAo
aXNBbGxvd2VkKSBSRUxFQVNFX0xPRyggICAgICBjaGFubmVsLCBmb3JtYXQsICMjX19WQV9BUkdT
X18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0FsbG93ZWQs
IGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VS
Uk9SKGNoYW5uZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCiAjZW5kaWYK
LSNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoaXNBbGxvd2VkLCBmb3JtYXQsIC4uLikgICAgICAgZG8g
eyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyhmb3JtYXQsICMjX19WQV9BUkdTX18pOyB9IHdo
aWxlICgwKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0FsbG93ZWQsIGZvcm1hdCwg
Li4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VSUk9SKGZvcm1hdCwgIyNfX1ZB
X0FSR1NfXyk7IH0gd2hpbGUgKDApCisKIAogLyogUkVMRUFTRV9BU1NFUlQgKi8KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKaW5kZXggNzIxZmE5ZjQzOWEwZTYyZWM5
MzEzNmE1NjIyMDg1ZTMwNGExOWQ3Zi4uZWVhY2RhYThiY2IwYWZiZjRhZTEyMmYyNWRkOTFhNDcx
YWI4OGFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVy
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCkBAIC0z
OSw3ICszOSwxMSBAQCB2b2lkIFJlZkNvdW50ZWRMZWFrQ291bnRlcjo6ZGVjcmVtZW50KCkgeyB9
CiAjZWxzZQogCiAjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKKyNpZiBSRUxFQVNFX0xP
R19ESVNBQkxFRAogc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBX
VEZMb2dDaGFubmVsT24sICJSZWZDb3VudGVkTGVha3MiIH07CisjZWxzZQorc3RhdGljIFdURkxv
Z0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBXVEZMb2dDaGFubmVsT24sICJSZWZDb3Vu
dGVkTGVha3MiLCAiY29tLmFwcGxlLldlYktpdCIsIE9TX0xPR19ERUZBVUxUIH07CisjZW5kaWYK
IAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKiwgUHRySGFzaDxjb25zdCBjaGFy
Kj4+IFJlYXNvblNldDsKIHN0YXRpYyBSZWFzb25TZXQqIGxlYWtNZXNzYWdlU3VwcHJlc3Npb25S
ZWFzb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMWQ1ODgxNDdi
Njc1ZTc0Yjk1N2MwYzI0ZmFhMGU1MjY1YmI3OTczMC4uNmRkOWUzZjg5ZDJlZDA3Nzk0YWEyMGRm
ZjcxYWJhNTY3ZjNjNGIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0xNDIsNyArMTQyLDcgQEAKICNpbmNsdWRlICJXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIgogI2Vu
ZGlmCiAKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lG
KGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAppbmRleCAzZDgzYzg1
OWQyZmIwM2IyNjNiZjVjNjJkNWI3NDQyMDg2NGNkZWQ0Li5kZWQyMzdmY2M3ZTc0YTFmODIwOWM3
OWRlM2M2ODA3YWRkZGE3Mzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2dJbml0aWFsaXphdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRp
YWxpemF0aW9uLmgKQEAgLTMwLDEzICszMCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIAogU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCk7CiBib29sIGlzTG9nQ2hhbm5lbEVuYWJs
ZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TG9nQ2hhbm5l
bFRvQWNjdW11bGF0ZShjb25zdCBTdHJpbmcmIG5hbWUpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBp
bml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogCi0jZW5kaWYgLy8gIUxPR19ESVNB
QkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ01hY3Jvcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nTWFjcm9zLmgKaW5k
ZXggOWY3ZWZjOTk0YjZhODg3MDIwMTY4ZjhlNzAzOGUyNWY0M2Q3ZWUzNy4uNDVmYzBiMGFhZjMz
ZjIzZWI2YjVmMTJjMDljZTdiMTc1MGNiNzk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nTWFjcm9zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nTWFj
cm9zLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAKLSNpZiBM
T0dfRElTQUJMRUQKKyNpZiBMT0dfRElTQUJMRUQgJiYgUkVMRUFTRV9MT0dfRElTQUJMRUQKIAog
I2RlZmluZSBMT0dfUkVTVUxUKGNoYW5uZWwsIGZ1bmN0aW9uKSAoKHZvaWQpMCkKICNkZWZpbmUg
TE9HX1dJVEhfU1RSRUFNKGNoYW5uZWwsIGNvbW1hbmRzKSAoKHZvaWQpMCkKQEAgLTQ3LDQgKzQ3
LDQgQEAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2dGdW5jdGlvblJlc3VsdChXVEZMb2dDaGFubmVs
Kiwgc3RkOjpmdW5jdGlvbjxjb25zdCBjaGFyKigKICAgICAgICAgcmV0dXJuIHN0cmVhbS5yZWxl
YXNlKCkudXRmOCgpLmRhdGEoKTsgXAogICAgIH0pOwogCi0jZW5kaWYgLy8gIUxPR19ESVNBQkxF
RAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCmluZGV4IDc2OTVjZTZlZmZlMmI0MThlZWNjZmMxNjUz
OWVmMzYwZjYwNDI1NzYuLjMyYzFhYjQ1YjVjNWEyYTAxMmNhYjYxYWExZDRjYWNjYmYxNTc0MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCkBAIC0zNSwyMCArMzUsMTggQEAKICNp
bmNsdWRlIDxub3RpZnkuaD4KICNlbmRpZgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSkgXAotICAgIFdURkxvZ0NoYW5uZWwg
Sk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpID0g
eyBXVEZMb2dDaGFubmVsT2ZmLCAjbmFtZSB9OwotV0VCQ09SRV9MT0dfQ0hBTk5FTFMoREVGSU5F
X0xPR19DSEFOTkVMKQorI2RlZmluZSBERUZJTkVfV0VCQ09SRV9MT0dfQ0hBTk5FTChuYW1lKSBE
RUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgImNvbS5hcHBsZS5XZWJLaXQiKQorV0VCQ09SRV9MT0df
Q0hBTk5FTFMoREVGSU5FX1dFQkNPUkVfTE9HX0NIQU5ORUwpCiAKLSNkZWZpbmUgTE9HX0NIQU5O
RUxfQUREUkVTUyhuYW1lKSAgJkpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5O
RUxfUFJFRklYLCBuYW1lKSwKLVdURkxvZ0NoYW5uZWwqIGxvZ0NoYW5uZWxzW10gPSB7CitzdGF0
aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKICAgICBXRUJDT1JFX0xPR19DSEFO
TkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQogfTsKIAotc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9
IFdURl9BUlJBWV9MRU5HVEgobG9nQ2hhbm5lbHMpOworc3RhdGljIGNvbnN0IHNpemVfdCBsb2dD
aGFubmVsQ291bnQgPSBXVEZfQVJSQVlfTEVOR1RIKGxvZ0NoYW5uZWxzKTsKIAogYm9vbCBpc0xv
Z0NoYW5uZWxFbmFibGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKQEAgLTEwMiw0ICsxMDAsNCBA
QCB2b2lkIGxvZ0Z1bmN0aW9uUmVzdWx0KFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIHN0ZDo6ZnVu
Y3Rpb248Y29uc3QgY2hhciooKT4gZnVuYwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA4MzNhNzQzNDVh
YmMwMTMyMDIyMmQ4MjE5ZWM1ZWRkNDUxY2U1OGZkLi40ZmQ1ZTZjOGQxNmI0MGVkZTQ4ZmRiMWY1
YmY3NmQ4MTJkZTVmYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dn
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0zMSw3ICsz
MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAh
TE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjaWZuZGVmIExPR19DSEFO
TkVMX1BSRUZJWAogI2RlZmluZSBMT0dfQ0hBTk5FTF9QUkVGSVggTG9nCkBAIC00NiwxNSArNDYs
MTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oRE9NVGltZXJzKSBcCiAgICAgTShFZGl0
aW5nKSBcCiAgICAgTShFdmVudHMpIFwKLSAgICBNKEZUUCkgXAogICAgIE0oRmlsZUFQSSkgXAog
ICAgIE0oRnJhbWVzKSBcCisgICAgTShGVFApIFwKICAgICBNKEZ1bGxzY3JlZW4pIFwKICAgICBN
KEdhbWVwYWQpIFwKICAgICBNKEhpc3RvcnkpIFwKICAgICBNKEljb25EYXRhYmFzZSkgXAogICAg
IE0oSW1hZ2VzKSBcCiAgICAgTShJbmRleGVkREIpIFwKKyAgICBNKExheWVycykgXAogICAgIE0o
TGF5b3V0KSBcCiAgICAgTShMb2FkaW5nKSBcCiAgICAgTShNZWRpYSkgXApAQCAtNzAsMTIgKzcx
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1v
dGVJbnNwZWN0b3IpIFwKICAgICBNKFJlc291cmNlTG9hZGluZykgXAotICAgIE0oU1FMRGF0YWJh
c2UpIFwKLSAgICBNKFNWRykgXAotICAgIE0oU2VydmljZXMpIFwKKyAgICBNKFJlc291cmNlTG9h
ZE9ic2VydmVyKSBcCiAgICAgTShTY3JvbGxpbmcpIFwKKyAgICBNKFNlcnZpY2VzKSBcCiAgICAg
TShTcGVsbGluZ0FuZEdyYW1tYXIpIFwKKyAgICBNKFNRTERhdGFiYXNlKSBcCiAgICAgTShTdG9y
YWdlQVBJKSBcCisgICAgTShTVkcpIFwKICAgICBNKFRleHRBdXRvc2l6aW5nKSBcCiAgICAgTShU
aHJlYWRpbmcpIFwKICAgICBNKFVSTFBhcnNlcikgXApAQCAtODMsOCArODUsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgTShXZWJHTCkgXAogICAgIE0oV2ViUmVwbGF5KSBcCiAgICAgTShX
aGVlbEV2ZW50VGVzdFRyaWdnZXJzKSBcCi0gICAgTShSZXNvdXJjZUxvYWRPYnNlcnZlcikgXAog
CisjdW5kZWYgREVDTEFSRV9MT0dfQ0hBTk5FTAogI2RlZmluZSBERUNMQVJFX0xPR19DSEFOTkVM
KG5hbWUpIFwKICAgICBXRUJDT1JFX0VYUE9SVCBleHRlcm4gV1RGTG9nQ2hhbm5lbCBKT0lOX0xP
R19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSk7CiAKQEAgLTk3
LDYgKzk5LDYgQEAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRl
KGNvbnN0IFN0cmluZyYgbmFtZSk7CiB2b2lkIHJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soY29uc3Qg
U3RyaW5nJiBub3RpZnlJRCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNhbGxiYWNrKTsKICNlbmRp
ZgogCi0jZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4IDdh
YmViNGI0NzZmZDQzMDQ4MmI5MDVlMWE2YmY4ZTBmZTE2MWIxOTYuLjFkYTM1ODNhN2FmMDQ2ZWY0
NDNhNjhhMWM3NTc1YzE1YzhkYzgzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IkdDQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNh
Y2hlLmgiCkBAIC0yMjAsNyArMjIxLDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJl
bGllZkxvZ2dlcjo6bG9nTWVtb3J5VXNhZ2VDaGFuZ2UoKQogewogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogI2RlZmluZSBTVFJJTkdfU1BFQ0lGSUNBVElPTiAiJXtwdWJsaWN9cyIKLSNkZWZp
bmUgTUVNT1JZUFJFU1NVUkVfTE9HKC4uLikgUkVMRUFTRV9MT0coX19WQV9BUkdTX18pCisjZGVm
aW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4pIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCBf
X1ZBX0FSR1NfXykKICNlbHNlCiAjZGVmaW5lIFNUUklOR19TUEVDSUZJQ0FUSU9OICIlcyIKICNk
ZWZpbmUgTUVNT1JZUFJFU1NVUkVfTE9HKC4uLikgV1RGTG9nQWx3YXlzKF9fVkFfQVJHU19fKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwCmluZGV4IGNjNzQzNjVmMzNlY2Y3NGUzMGZjNzhmZjE2NzA0MDA0OTcx
Njc1YjguLjRmNGU2YjNiMjI2NjczMzU5NTBmY2I1MTRjNWNhY2JkMDNlMGUxYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5jcHAKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNB
QkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBkb3VibGUgc3RhcnRUaW1lID0gY3Vy
cmVudFRpbWUoKTsKICNlbmRpZgogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBzdWJJbWFnZShp
bWFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9J
T1N1cmZhY2UubW0KaW5kZXggYjVkNWU5YjMyZWU3YjJmYzFlODI2ZWQ5OGRiNTRkMmIxZjFkZjI3
YS4uNWMwZDYyZDgzNDBhMDEyYWUxMjQ1MjRmYmZlZTczNDZjMzdmNzA4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAt
MzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSU9TdXJmYWNlU1BJLmgiCiAjaW1wb3J0ICJJbWFnZUJ1
ZmZlci5oIgogI2ltcG9ydCAiSW1hZ2VCdWZmZXJEYXRhQ0cuaCIKKyNpbXBvcnQgIkxvZ2dpbmcu
aCIKICNpbXBvcnQgIk1hY2hTZW5kUmlnaHQuaCIKICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMjExLDcgKzIxMiw3IEBAIFdlYkNvcmU6
OklPU3VyZmFjZTo6SU9TdXJmYWNlKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwg
Q0dDb2xvclNwYWNlUmVmCiAgICAgaWYgKHN1Y2Nlc3MpCiAgICAgICAgIG1fdG90YWxCeXRlcyA9
IElPU3VyZmFjZUdldEFsbG9jU2l6ZShtX3N1cmZhY2UuZ2V0KCkpOwogICAgIGVsc2UKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoIlN1cmZhY2UgY3JlYXRpb24gZmFpbGVkIGZvciBzaXplOiAo
JWQgJWQpIGFuZCBmb3JtYXQ6ICglZCkiLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIGZv
cm1hdCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKExheWVycywgIlN1cmZhY2UgY3JlYXRp
b24gZmFpbGVkIGZvciBzaXplOiAoJWQgJWQpIGFuZCBmb3JtYXQ6ICglZCkiLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCksIGZvcm1hdCk7CiB9CiAKIFdlYkNvcmU6OklPU3VyZmFjZTo6SU9T
dXJmYWNlKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2dnaW5nTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvZ2dpbmdNYWMubW0KaW5kZXggMzkyNzY2Mzdj
NDc1MjkwM2Q1ZWU2NmZhYTZlM2E5MTFmZmI5YTcxNi4uYjIwOGJiZTE4MDUzYmEwODIxYzQzYWEx
ZmM1ZWE5NGMyOThlMzhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0xvZ2dpbmdNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvZ2dpbmdN
YWMubW0KQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsNCArNDEsNCBAQCBTdHJp
bmcgbG9nTGV2ZWxTdHJpbmcoKQogCiB9CiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5k
aWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKaW5kZXggNzJlYjEwYTYzZGZkYmI5
NjQ1ZTgzY2U1NzM0NTgxMjBhZjcwMDk5ZC4uYzRkNTc2ZmQxMTFhMzY3NmJhYzBmNGM1ODdmYjA1
MjcyY2JkZjkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9Mb2dn
aW5nVW5peC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5p
eC5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKIAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtNDYsNCArNDYsNCBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmco
KQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisj
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcAppbmRleCBmMzZhMTQxNjA0MzliOTBj
ZjMyOGFiNzA5ODI4ZWJhNDU5OGVkYjM4Li5hOWVlNGVkNTJlZTk0ZDEzOGVmZDlmM2I2MTViN2Ri
MmVhNTEzODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTG9nZ2lu
Z1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0xvZ2dpbmdXaW4uY3Bw
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgpAQCAtNTIsNCArNTIsNCBAQCBTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYg
Ly8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAzZjlkNzViYjZh
MDljMDNiY2VlYmFhODA5NDkwZTAxNWUyN2E5YTdmLi4xYmI1OTIzNDE4NGU5NmY2ZTRiNGI0ODli
ZGFkMTUyYzdiYzY3NmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dl
YkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBzZXRMb2dDaGFubmVs
VG9BY2N1bXVsYXRlKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogdm9pZCBpbml0aWFsaXplTG9nQ2hh
bm5lbHNJZk5lY2Vzc2FyeSgpCiB7Ci0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0No
YW5uZWxzSWZOZWNlc3NhcnkoKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktp
dExvZ2dpbmcuaAppbmRleCA3OTU0YTY0ZjdmMThiYTE1ZTViMzM0NzZiNjRhY2JlNGM1NzcxNjRj
Li5mMGRjY2ZmODZlNDQ2ODljNmQ4MmU1MjFmYWU1MjM4MDBiMjc1OTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdExvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYktpdExvZ2dpbmcuaApAQCAtMzYsNyArMzYsNyBAQAogZXh0ZXJuICJDIiB7
CiAjZW5kaWYKIAotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogCiAjZGVmaW5lIFdFQktJVF9MT0dfQ0hBTk5FTFMoTSkgXAogICAg
IE0oQmFja0ZvcndhcmQpIFwKQEAgLTY0LDE1ICs2NCwxMiBAQCBleHRlcm4gIkMiIHsKICAgICBN
KFRpbWluZykgXAogICAgIE0oVmlldykgXAogCi0jZGVmaW5lIERFQ0xBUkVfTE9HX0NIQU5ORUwo
bmFtZSkgXAotZXh0ZXJuIFdURkxvZ0NoYW5uZWwgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJ
WChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpOwotCiBXRUJLSVRfTE9HX0NIQU5ORUxTKERFQ0xB
UkVfTE9HX0NIQU5ORUwpCiAKICN1bmRlZiBERUNMQVJFX0xPR19DSEFOTkVMCiAKIHZvaWQgV2Vi
S2l0SW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnkodm9pZCk7Ci0jZW5kaWYgLy8gIUxP
R19ESVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAKIHZvaWQgUmVwb3J0RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRpb24oU0VMIGRlbGVnYXRl
U2VsZWN0b3IsIGlkIGV4Y2VwdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViS2l0TG9nZ2luZy5tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRMb2dn
aW5nLm0KaW5kZXggMTgzMzBhNTQ1YzNjYjAyZTQzZjc5YWQ2MDkwMjdjZWQ2ODYzMGI1Yy4uZTQy
NDIwODZlMGFmZDg0MmU5ZWYxNTg3MzU3ODUzOGRmMWY2ZmE4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLm0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
TWlzYy9XZWJLaXRMb2dnaW5nLm0KQEAgLTI4LDEzICsyOCwxMSBAQAogCiAjaW1wb3J0ICJXZWJL
aXRMb2dnaW5nLmgiCiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKIAotI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSkg
XAotICAgIFdURkxvZ0NoYW5uZWwgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hB
Tk5FTF9QUkVGSVgsIG5hbWUpID0geyBXVEZMb2dDaGFubmVsT2ZmLCAjbmFtZSB9OwotV0VCS0lU
X0xPR19DSEFOTkVMUyhERUZJTkVfTE9HX0NIQU5ORUwpCisjZGVmaW5lIERFRklORV9XRUJLSVRf
TE9HX0NIQU5ORUwobmFtZSkgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsICJjb20uYXBwbGUuV2Vi
S2l0IikKK1dFQktJVF9MT0dfQ0hBTk5FTFMoREVGSU5FX1dFQktJVF9MT0dfQ0hBTk5FTCkKIAot
I2RlZmluZSBMT0dfQ0hBTk5FTF9BRERSRVNTKG5hbWUpICAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRI
X1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpLAogc3RhdGljIFdURkxvZ0NoYW5uZWwq
IGxvZ0NoYW5uZWxzW10gPSB7CiAgICAgV0VCS0lUX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9B
RERSRVNTKQogfTsKQEAgLTU4LDcgKzU2LDcgQEAgdm9pZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hh
bm5lbHNJZk5lY2Vzc2FyeSgpCiAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9t
U3RyaW5nKGxvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIFtsb2dMZXZlbCBVVEY4U3RyaW5n
XSk7CiB9CiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxF
RCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogdm9pZCBSZXBvcnREaXNjYXJkZWREZWxlZ2F0
ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVTZWxlY3RvciwgaWQgZXhjZXB0aW9uKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDk2M2IwY2ZkOThiYTc1MTJlMzljNGRjODdm
YTk3ZGFkYjcyZTg3Y2IuLjUxNjQxYTY5Y2UyMDNmNmZjOTFiZjkwNjlmZjE5ZmQxMzE0Zjg0NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTk2MSw3ICs5NjEsNyBAQCAt
ICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJh
bWVOYW1lIGdyb3VwTmFtZTooTlNTdAogICAgIHN0YXRpYyBib29sIGRpZE9uZVRpbWVJbml0aWFs
aXphdGlvbiA9IGZhbHNlOwogI2VuZGlmCiAgICAgaWYgKCFkaWRPbmVUaW1lSW5pdGlhbGl6YXRp
b24pIHsKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICAgICAgV2ViS2l0SW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoKTsKICAgICAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nhcnko
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0TG9nZ2luZy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmNwcAppbmRleCBlMjQ0YzA5MjNh
MGJiN2ZkOWNlZjA0ODlhMmNkZGJlOWVkYTUwYzgxLi40YjUwNGNiMjU5N2EwYjQyNTUzMzIxMDRm
NGM1MjgzZTAyMjQ2OWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dn
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmNwcApAQCAtMjcs
MTMgKzI3LDExIEBACiAgKi8KICNpbmNsdWRlICJXZWJLaXRMb2dnaW5nLmgiCiAKLSNpZiAhTE9H
X0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAot
I2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSkgXAotICAgIFdURkxvZ0NoYW5uZWwgSk9J
Tl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpID0geyBX
VEZMb2dDaGFubmVsT2ZmLCAjbmFtZSB9OwotV0VCS0lUX0xPR19DSEFOTkVMUyhERUZJTkVfTE9H
X0NIQU5ORUwpCisjZGVmaW5lIERFRklORV9XRUJLSVRfTE9HX0NIQU5ORUwobmFtZSkgREVGSU5F
X0xPR19DSEFOTkVMKG5hbWUsICJjb20uYXBwbGUuV2ViS2l0IikKK1dFQktJVF9MT0dfQ0hBTk5F
TFMoREVGSU5FX1dFQktJVF9MT0dfQ0hBTk5FTCkKIAotI2RlZmluZSBMT0dfQ0hBTk5FTF9BRERS
RVNTKG5hbWUpICAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVG
SVgsIG5hbWUpLAogc3RhdGljIFdURkxvZ0NoYW5uZWwqIGxvZ0NoYW5uZWxzW10gPSB7CiAgICAg
V0VCS0lUX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQogfTsKQEAgLTUxLDQgKzQ5
LDQgQEAgdm9pZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpCiAgICAg
V1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKGxvZ0NoYW5uZWxzLCBsb2dD
aGFubmVsQ291bnQsICIiKTsKIH0KIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAv
LyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vV2ViS2l0TG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0
TG9nZ2luZy5oCmluZGV4IGM3Y2E1OThlN2M3YTNmNWYzMzE3NzFhZDU5MDdmYzg1Nzc0YzU2MDQu
LjU4OWVlYjk5ODc0ZWI5ZTU2ZTMzMTY5NjQ1Y2E2OWQ4MjRmZDg1OWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYktpdExvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJLaXRMb2dnaW5nLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKIAogI2lmbmRlZiBMT0dfQ0hBTk5FTF9QUkVGSVgKICNkZWZpbmUgTE9H
X0NIQU5ORUxfUFJFRklYIFdlYktpdExvZwpAQCAtNjIsMTUgKzYyLDEyIEBACiAgICAgTShUaW1p
bmcpIFwKICAgICBNKFZpZXcpIFwKIAotI2RlZmluZSBERUNMQVJFX0xPR19DSEFOTkVMKG5hbWUp
IFwKLWV4dGVybiBXVEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9H
X0NIQU5ORUxfUFJFRklYLCBuYW1lKTsKLQogV0VCS0lUX0xPR19DSEFOTkVMUyhERUNMQVJFX0xP
R19DSEFOTkVMKQogCiAjdW5kZWYgREVDTEFSRV9MT0dfQ0hBTk5FTAogCiB2b2lkIFdlYktpdElu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KHZvaWQpOwogCi0jZW5kaWYgLy8gIUxPR19E
SVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBlYzhhMGU0M2VjOTg3YzI0YWNhOTcx
MzM0YjU1OGQ0YjAyYzMyMjI2Li5hNDY0NmM1MmE4M2MwMDhlYzIwMmMwOWVkMDRkOTM4OTM2NWIy
M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMjkwNiw5ICsyOTA2LDkgQEAgSFJFU1VMVCBX
ZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9J
bl8gQlNUUiBncm91cE4KIAogICAgIHN0YXRpYyBib29sIGRpZE9uZVRpbWVJbml0aWFsaXphdGlv
bjsKICAgICBpZiAoIWRpZE9uZVRpbWVJbml0aWFsaXphdGlvbikgewotI2lmICFMT0dfRElTQUJM
RUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBp
bml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotI2VuZGlmIC8vICFMT0dfRElTQUJM
RUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAg
ICAgICAgIC8vIEluaXRpYWxpemUgb3VyIHBsYXRmb3JtIHN0cmF0ZWdpZXMgZmlyc3QgYmVmb3Jl
IGludm9raW5nIHRoZSByZXN0CiAgICAgICAgIC8vIG9mIHRoZSBpbml0aWFsaXphdGlvbiBjb2Rl
IHdoaWNoIG1heSBkZXBlbmQgb24gdGhlIHN0cmF0ZWdpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAppbmRleCA1ZDBlZDgy
OGE3NWI0MWU3MDgzMDQ0YTU2M2JhYTkxM2IxZWIzZTUxLi4yZjBlMTY3MTBhYmM1MTllMGExODk5
MGJjYjFkYjJiZTllZWQ2OWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKQEAgLTMxLDE0ICszMSwxNSBAQAogI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNs
dWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVB
U0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKLSNkZWZp
bmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRl
eCAxODQ2ZGE1Zjc4ZjIxMzUwNjYxNGEwY2I2OWFkYzIzNjBkMTI4MmVkLi4xZWIyZWZhMmVlMjQ0
MGQ1OWNiZGRlYTBmOTI3YmU1YmU4NWM1OTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC02MjQsMTAgKzYyNCwxMCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRs
ZWQpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKQogewotICAgIFJF
TEVBU0VfTE9HKCIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlz
KTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3Jp
dGljYWw6Olllcyk7CiAKLSAgICBSRUxFQVNFX0xPRygiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kIElQQyBtZXNzYWdl
IiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdv
cmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkgU2VuZGluZyBQcm9jZXNzUmVhZHlUb1N1c3Bl
bmQgSVBDIG1lc3NhZ2UiLCB0aGlzKTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQo
KSwgMCk7CiB9CiAKQEAgLTYzNywxMiArNjM3LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNh
bmNlbFByZXBhcmVUb1N1c3BlbmQoKQogICAgIC8vIHdlIGRvIG5vdCBiZWNhdXNlIHByZXBhcmVU
b1N1c3BlbmQoKSBhbHJlYWR5IHJlcGxpZWQgd2l0aCBhIE5ldHdvcmtQcm9jZXNzUHJveHk6OlBy
b2Nlc3NSZWFkeVRvU3VzcGVuZAogICAgIC8vIG1lc3NhZ2UuIEFuZCBOZXR3b3JrUHJvY2Vzc1By
b3h5IGV4cGVjdHMgdG8gcmVjZWl2ZSBlaXRoZXIgYSBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpQcm9j
ZXNzUmVhZHlUb1N1c3BlbmQtCiAgICAgLy8gb3IgTmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkQ2Fu
Y2VsUHJvY2Vzc1N1c3BlbnNpb24tIG1lc3NhZ2UsIGJ1dCBub3QgYm90aC4KLSAgICBSRUxFQVNF
X0xPRygiJXAgLSBOZXR3b3JrUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhp
cyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9j
ZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3Vt
ZSgpIiwgdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0
IFN0cmluZyYgaG9zdG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA1ODhlNzE4ODMxZjk4NjJmMWEx
MmJlYTEyYjUxMjY4NWFkOWZmMDcxLi41OWNkMTE0NzVmN2M4YTA2MjU5NmI1MDNlYjdiZmU0ZTNi
OWUyODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ5LDggKzQ5LDggQEAKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVB
U0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKLSNkZWZp
bmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCBhZmE2YWM4YWUw
YzNiZDUzOTMwNjA1N2VlMmNiYjcwMGMwZDU0MGZjLi41NjNmOWUyMmM1MWI3ZjEwZTk4MjU5MDAy
NmE0ZWE0ODA4ZDhhNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPG1lbW9yeT4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpA
QCAtNTYzLDcgKzU2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjp3
YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0CiAgICAgICAgIC8vIElm
IHRoYXQgaGFwcGVucywgd2UgbmVlZCB0byBzdG9wIHdhaXRpbmcsIG9yIHdlJ2xsIGhhbmcgc2lu
Y2Ugd2Ugd29uJ3QgZ2V0CiAgICAgICAgIC8vIGFueSBtb3JlIGluY29taW5nIG1lc3NhZ2VzLgog
ICAgICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
IkNvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHk6IENvbm5lY3Rpb24gbm8gbG9uZ2VyIHZhbGlk
LCBpZCA9ICUiIFBSSXU2NCwgc3luY1JlcXVlc3RJRCk7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihJUEMsICJDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBDb25uZWN0aW9uIG5v
IGxvbmdlciB2YWxpZCwgaWQgPSAlIiBQUkl1NjQsIHN5bmNSZXF1ZXN0SUQpOwogICAgICAgICAg
ICAgZGlkUmVjZWl2ZVN5bmNSZXBseShzeW5jU2VuZEZsYWdzKTsKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICB9CkBAIC01NzQsNyArNTc1LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1JlcXVl
c3RJRCwgc3QKICAgICAgICAgdGltZWRPdXQgPSAhU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9u
KCkud2FpdChhYnNvbHV0ZVRpbWUpOwogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJD
b25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBUaW1lZC1vdXQgd2hpbGUgd2FpdGluZyBmb3Ig
cmVwbHksIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVzdElEKTsKKyAgICBSRUxFQVNFX0xPR19F
UlJPUihJUEMsICJDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBUaW1lZC1vdXQgd2hpbGUg
d2FpdGluZyBmb3IgcmVwbHksIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVzdElEKTsKICAgICBk
aWRSZWNlaXZlU3luY1JlcGx5KHN5bmNTZW5kRmxhZ3MpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAppbmRleCBlMzNh
NzYwODgyM2I0MDJlMjc0YWEyMjBiMzVkNjRmN2IyODk3M2NiLi5jNTViNmNhZTFhZTAyMDg2Y2Rj
YWQzZjY4MDY5MGI4N2I4ODFlZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Mb2dJbml0aWFsaXphdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ0lu
aXRpYWxpemF0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0zNiw0ICszNiw0
IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAot
I2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9n
Z2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcAppbmRleCA4YzFl
MDc4NzAyZjg4YWFmYjRiY2Y4NWQyNmRkMDA3NjI2NTQzOTQ4Li5kOGY2ZWIyZTIzZTNiY2U3OGQ2
YmViYzM4MmUyMDM0YWVjNWRlM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcApA
QCAtMzAsMjAgKzMwLDE4IEBACiAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNp
ZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKIAotI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSkgXAotICAgIFdURkxvZ0NoYW5u
ZWwgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUp
ID0geyBXVEZMb2dDaGFubmVsT2ZmLCAjbmFtZSB9OwotV0VCS0lUMl9MT0dfQ0hBTk5FTFMoREVG
SU5FX0xPR19DSEFOTkVMKQorI2RlZmluZSBERUZJTkVfV0VCS0lUMl9MT0dfQ0hBTk5FTChuYW1l
KSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgImNvbS5hcHBsZS5XZWJLaXQiKQorV0VCS0lUMl9M
T0dfQ0hBTk5FTFMoREVGSU5FX1dFQktJVDJfTE9HX0NIQU5ORUwpCiAKLSNkZWZpbmUgTE9HX0NI
QU5ORUxfQUREUkVTUyhuYW1lKSAgJkpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NI
QU5ORUxfUFJFRklYLCBuYW1lKSwKIHN0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFubmVsc1td
ID0gewogICAgIFdFQktJVDJfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCiB9Owog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9IFdU
Rl9BUlJBWV9MRU5HVEgobG9nQ2hhbm5lbHMpOworc3RhdGljIGNvbnN0IHNpemVfdCBsb2dDaGFu
bmVsQ291bnQgPSBXVEZfQVJSQVlfTEVOR1RIKGxvZ0NoYW5uZWxzKTsKIAogdm9pZCBpbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpCiB7CkBAIC02Miw0ICs2MCw0IEBAIHZvaWQgaW5p
dGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFS
RUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
TG9nZ2luZy5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDMzODI0
NWQyNzhjMjlkODk4OTE0ODc5Y2ZhZDk3MjhhNGI2NzkxZjQuLmNiOWM2YTJkMDM1ZGZjNDc4YTlk
YzBiM2ExNzk0MmY1MTNlY2FlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQg
fHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTE9HX0NIQU5ORUxfUFJFRklYCiAj
ZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBXZWJLaXQyTG9nCkBAIC00NCwxOSArNDQsMjIgQEAg
ZXh0ZXJuICJDIiB7CiAjZGVmaW5lIFdFQktJVDJfTE9HX0NIQU5ORUxTKE0pIFwKICAgICBNKENv
bnRleHRNZW51KSBcCiAgICAgTShHYW1lcGFkKSBcCi0gICAgTShJREIpIFwKICAgICBNKEljb25E
YXRhYmFzZSkgXAorICAgIE0oSURCKSBcCiAgICAgTShJbmRleGVkREIpIFwKICAgICBNKEluc3Bl
Y3RvclNlcnZlcikgXAorICAgIE0oSVBDKSBcCiAgICAgTShLZXlIYW5kbGluZykgXAorICAgIE0o
TGF5ZXJzKSBcCiAgICAgTShOZXR3b3JrKSBcCiAgICAgTShOZXR3b3JrQ2FjaGUpIFwKLSAgICBN
KE5ldHdvcmtDYWNoZVN0b3JhZ2UpIFwKICAgICBNKE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUHJl
bG9hZGluZykgXAotICAgIE0oTmV0d29ya1Nlc3Npb24pIFwKKyAgICBNKE5ldHdvcmtDYWNoZVN0
b3JhZ2UpIFwKICAgICBNKE5ldHdvcmtTY2hlZHVsaW5nKSBcCisgICAgTShOZXR3b3JrU2Vzc2lv
bikgXAogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUHJpbnRpbmcpIFwKKyAgICBNKFByb2Nlc3NT
dXNwZW5zaW9uKSBcCiAgICAgTShSZW1vdGVMYXllclRyZWUpIFwKICAgICBNKFJlc2l6ZSkgXAog
ICAgIE0oU2Vzc2lvblN0YXRlKSBcCkBAIC02NSw5ICs2OCw2IEBAIGV4dGVybiAiQyIgewogICAg
IE0oVmlld0dlc3R1cmVzKSBcCiAgICAgTShWaXNpYmxlUmVjdHMpIFwKIAotI2RlZmluZSBERUNM
QVJFX0xPR19DSEFOTkVMKG5hbWUpIFwKLSAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBKT0lOX0xP
R19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSk7Ci0KIFdFQktJ
VDJfTE9HX0NIQU5ORUxTKERFQ0xBUkVfTE9HX0NIQU5ORUwpCiAKICN1bmRlZiBERUNMQVJFX0xP
R19DSEFOTkVMCkBAIC03Niw2ICs3Niw2IEBAIFdFQktJVDJfTE9HX0NIQU5ORUxTKERFQ0xBUkVf
TE9HX0NIQU5ORUwpCiB9CiAjZW5kaWYKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRp
ZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjZW5kaWYgLy8g
TG9nZ2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9mb3VuZGF0aW9u
L0xvZ2dpbmdGb3VuZGF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZm91bmRhdGlv
bi9Mb2dnaW5nRm91bmRhdGlvbi5tbQppbmRleCBiY2I1ZmUxNGQ4M2VjMjk0N2NiOWYzZTgyMjcw
ZmVhNDFmNzJiYTMyLi4yNmYzNzMxYTYyOGUxZmUyNmRiNmIwZWJmNmE5YjE3NTc2Y2RmM2U2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9mb3VuZGF0aW9uL0xvZ2dpbmdGb3Vu
ZGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2ZvdW5kYXRpb24vTG9nZ2lu
Z0ZvdW5kYXRpb24ubW0KQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgZGVmYXVsdHNEb21haW4gPSBAIldlYktp
dDJMb2dnaW5nIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9M
b2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4
LmNwcAppbmRleCA2YTU1ZDQwMjRjYTA3ZTkzOTNhNGIyM2UyMTBhYTE2MWY3MmQ1MTg2Li44MDE0
YTVkY2ZhOGQwYWRkNmFmZDZjMTQ4MjAwOGNmMGYyMjZiYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMjksMTMgKzI5LDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQg
fHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiB7CiAg
ICAgcmV0dXJuIGdldGVudigiV0VCS0lUX0RFQlVHIik7CiB9CiAKLSNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCA3YjFjMzRhY2Iy
ZGExNmZiNzEzMzdhMTkzYjgwOGJjNWJmODA5ZTIzLi4xNzU3ODlmYjlhZTcxM2YxNmVlZWRiZmFi
ZTAwZDZmMzNlNjNjZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNoaWxkUHJv
Y2Vzcy5oIgogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNhbmRib3hJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDx1bmlzdGQuaD4KIApAQCAtNTMsNyArNTQs
NyBAQCBzdGF0aWMgdm9pZCBkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5l
Y3Rpb24qKQogICAgICAgICAvLyBXZSB1c2UgX2V4aXQgaGVyZSBzaW5jZSB0aGUgd2F0Y2hkb2cg
Y2FsbGJhY2sgaXMgY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQgYW5kIHdlIGRvbid0IHdhbnQK
ICAgICAgICAgLy8gZ2xvYmFsIGRlc3RydWN0b3JzIG9yIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBj
YWxsZWQgZnJvbSB0aGlzIHRocmVhZCB3aGlsZSB0aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQogICAg
ICAgICAvLyBkb2luZyBpdHMgdGhpbmcuCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJFeGl0
aW5nIHByb2Nlc3MgZWFybHkgZHVlIHRvIHVuYWNrbm93bGVkZ2VkIGNsb3NlZC1jb25uZWN0aW9u
Iik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElQQywgIkV4aXRpbmcgcHJvY2VzcyBlYXJs
eSBkdWUgdG8gdW5hY2tub3dsZWRnZWQgY2xvc2VkLWNvbm5lY3Rpb24iKTsKICAgICAgICAgX2V4
aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
S2l0MkluaXRpYWxpemUuY3BwCmluZGV4IDZlODFkOGFhMzY3MDcyMDRhMTVjNDI4MmQwN2Y4ZmU2
OGIwN2EzMGUuLjc1YjI0ZWM4NTgxNTRlNGQ4ZWFiMTYyZDg1NGJiNGNiNTE3MjBkOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcApAQCAtNTQsMTAgKzU0
LDEwIEBAIHZvaWQgSW5pdGlhbGl6ZVdlYktpdDIoKQogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAotI2lmICFM
T0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIFdlYkNvcmU6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAgICAgV2Vi
S2l0Ojppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotI2VuZGlmIC8vICFMT0df
RElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IDFmNGJiMzQ3N2FkMTBlZjJkNzM2
YmI5YWU5MjlmMGFhNGFmMjczN2UuLjE4MDc3N2YxNTc0Mzk4ZDcwOWZlOTYxY2NmMGVkOTI1OTdh
OTJkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiQVBJVVJMLmgiCiAjaW1wb3J0
ICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXIuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdmln
YXRpb25BY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJQYWdlTG9hZFN0YXRlLmgiCiAjaW1wb3J0ICJX
S0JhY2tGb3J3YXJkTGlzdEludGVybmFsLmgiCkBAIC04MjUsNyArODI2LDcgQEAgdm9pZCBOYXZp
Z2F0aW9uU3RhdGU6OndpbGxDaGFuZ2VJc0xvYWRpbmcoKQogI2lmIFBMQVRGT1JNKElPUykKIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpyZWxlYXNlTmV0d29ya0FjdGl2aXR5VG9rZW4oKQogewotICAg
IFJFTEVBU0VfTE9HX0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCAiJXAgVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgYSBwYWdlIGxvYWQgY29tcGxldGVkIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYo
bV93ZWJWaWV3LT5fcGFnZS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9u
IGJlY2F1c2UgYSBwYWdlIGxvYWQgY29tcGxldGVkIiwgdGhpcyk7CiAgICAgQVNTRVJUKG1fYWN0
aXZpdHlUb2tlbik7CiAgICAgbV9hY3Rpdml0eVRva2VuID0gbnVsbHB0cjsKIH0KQEAgLTgzOCw3
ICs4MzksNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6ZGlkQ2hhbmdlSXNMb2FkaW5nKCkKICAg
ICAgICAgaWYgKG1fcmVsZWFzZUFjdGl2aXR5VGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgICAg
IG1fcmVsZWFzZUFjdGl2aXR5VGltZXIuc3RvcCgpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCAiJXAgLSBVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSBhIHBhZ2UgbG9hZCBzdGFydGVkIiwgdGhpcyk7CisgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRihtX3dlYlZpZXctPl9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIFVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIGEgcGFnZSBsb2FkIHN0YXJ0ZWQiLCB0aGlzKTsKICAgICAgICAgICAg
IEFTU0VSVCghbV9hY3Rpdml0eVRva2VuKTsKICAgICAgICAgICAgIG1fYWN0aXZpdHlUb2tlbiA9
IG1fd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbigpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDRlYzQ2YzExMGQ3OGEy
Zjg0YzE1MmIxM2VmMDE0ZWFhYjBhMmZmMWUuLmY3ZTA4OTY3Y2I3ZTkzZWVjOGEzN2Y4NzNhYzRj
ODE0YzljOTI3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFi
YXNlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKQEAgLTEyNSwxMSArMTI2LDExIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2Vic2l0CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFj
a0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRv
a2VuKCk7Ci0gICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBmZXRjaGluZyBXZWJzaXRl
IGRhdGEiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1By
b3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsg
cHJvY2VzcyBpcyBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIG1fcGVuZGlu
Z0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwg
Y29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwotICAgICAg
ICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIl
cCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRp
b24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0ZSBk
YXRhIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNz
UHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0
d29yayBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CiAgICAg
fSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RmV0Y2hXZWJzaXRlRGF0
YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgZmV0Y2hPcHRpb25zLCBjYWxsYmFja0lEKSwgMCk7CkBA
IC0xMzksMTEgKzE0MCwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvbgogewogICAgIGF1dG8g
Y2FsbGJhY2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwogICAgIGF1dG8gdG9rZW4gPSB0aHJv
dHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwotICAgIFJFTEVBU0VfTE9HX0lGKHNl
c3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQ
cm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3Jr
IHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CisgICAgUkVMRUFTRV9M
T0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBk
YXRhIiwgdGhpcyk7CiAKICAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5h
ZGQoY2FsbGJhY2tJRCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklE
XSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
KHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nl
c3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBO
ZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxlYXNp
bmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMg
ZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKICAgICBzZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRh
VHlwZXMsIG1vZGlmaWVkU2luY2UsIGNhbGxiYWNrSUQpLCAwKTsKIH0KQEAgLTE1NCwxMSArMTU1
LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJh
Y2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRh
a2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBp
cyBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOworICAg
IFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFj
a2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRlbGV0aW5n
IFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CiAKICAgICBtX3BlbmRp
bmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0
aGlzLCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0gewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwotICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgcmVsZWFz
aW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlz
IGRvbmUgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxl
YXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3Mg
aXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMp
OwogICAgIH0pOwogCiAgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsK
QEAgLTQwMSwxMiArNDAyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNz
ZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUpCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiB7CiAgICAg
aWYgKCFpc0hvbGRpbmdMb2NrZWRGaWxlcykgewotICAgICAgICBSRUxFQVNFX0xPRygiVUlQcm9j
ZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdv
cmsgcHJvY2VzcyBpcyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKKyAgICAgICAg
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEg
YmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIG5vIGxv
bmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwogICAgICAgICBtX3Rva2VuRm9ySG9sZGluZ0xv
Y2tlZEZpbGVzID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoIW1f
dG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coIlVJUHJv
Y2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3Jr
IHByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKKyAgICAgICAgUkVMRUFTRV9MT0co
UHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3Nl
cnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVz
Iik7CiAgICAgICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBtX3Rocm90dGxlci5i
YWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCA1N2JmYzYyNzEwNTgwZGNhZTMyZGNh
ZTEwOGIyYjViZjNkNjI0NDYzLi43N2IwYjhjNzFmODhmOGJjMjA0OTAyYmY0NmEyNmMzNDg1YTM3
NTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJvY2Vz
c1Rocm90dGxlci5oIgogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlByb2Nlc3NU
aHJvdHRsZXJDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01Nyw3ICs1OCw3IEBA
IHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkKICAgICBtX3N1c3Bl
bmRUaW1lci5zdG9wKCk7CiAgICAgaWYgKG1fYXNzZXJ0aW9uKSB7CiAgICAgICAgIGlmIChtX2Fz
c2VydGlvbi0+c3RhdGUoKSAhPSBhc3NlcnRpb25TdGF0ZSgpKQotICAgICAgICAgICAgUkVMRUFT
RV9MT0coIiVwIC0gUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkgdXBkYXRp
bmcgcHJvY2VzcyBhc3NlcnRpb24gc3RhdGUgdG8gJXUgKGZvcmVncm91bmRBY3Rpdml0aWVzOiAl
bHUsIGJhY2tncm91bmRBY3Rpdml0aWVzOiAlbHUpIiwgdGhpcywgYXNzZXJ0aW9uU3RhdGUoKSwg
bV9mb3JlZ3JvdW5kQ291bnRlci52YWx1ZSgpLCBtX2JhY2tncm91bmRDb3VudGVyLnZhbHVlKCkp
OworICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nl
c3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbk5vdygpIHVwZGF0aW5nIHByb2Nlc3MgYXNzZXJ0
aW9uIHN0YXRlIHRvICV1IChmb3JlZ3JvdW5kQWN0aXZpdGllczogJWx1LCBiYWNrZ3JvdW5kQWN0
aXZpdGllczogJWx1KSIsIHRoaXMsIGFzc2VydGlvblN0YXRlKCksIG1fZm9yZWdyb3VuZENvdW50
ZXIudmFsdWUoKSwgbV9iYWNrZ3JvdW5kQ291bnRlci52YWx1ZSgpKTsKICAgICAgICAgbV9hc3Nl
cnRpb24tPnNldFN0YXRlKGFzc2VydGlvblN0YXRlKCkpOwogICAgICAgICBtX3Byb2Nlc3MuZGlk
U2V0QXNzZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUoKSk7CiAgICAgfQpAQCAtNzAsNyArNzEs
NyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbigpCiAgICAgLy8gaW4g
dGhlIGJhY2tncm91bmQgZm9yIHRvbyBsb25nLgogICAgIGlmIChtX2Fzc2VydGlvbiAmJiBtX2Fz
c2VydGlvbi0+c3RhdGUoKSAhPSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkICYmICFtX2ZvcmVn
cm91bmRDb3VudGVyLnZhbHVlKCkgJiYgIW1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKSkgewog
ICAgICAgICArK21fc3VzcGVuZE1lc3NhZ2VDb3VudDsKLSAgICAgICAgUkVMRUFTRV9MT0coIiVw
IC0gUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkgc2VuZGluZyBQcmVwYXJlVG9T
dXNwZW5kIElQQyIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkgc2VuZGluZyBQcmVw
YXJlVG9TdXNwZW5kIElQQyIsIHRoaXMpOwogICAgICAgICBtX3Byb2Nlc3Muc2VuZFByZXBhcmVU
b1N1c3BlbmQoKTsKICAgICAgICAgbV9zdXNwZW5kVGltZXIuc3RhcnRPbmVTaG90KHByb2Nlc3NT
dXNwZW5zaW9uVGltZW91dCk7CiAgICAgICAgIG1fYXNzZXJ0aW9uLT5zZXRTdGF0ZShBc3NlcnRp
b25TdGF0ZTo6QmFja2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDAxMWZlODRmY2RmZWE3MTViYjEyZjYwNzQ0ZmMyNjg4YzU2NzFjYjguLjdh
OThlYzFjNjg0YWM5N2I1ZjcwZDdjZjExNjI0NDczYjhkZjEwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAKICNkZWZpbmUg
TUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1f
cHJvY2Vzcy0+Y29ubmVjdGlvbigpKQogI2RlZmluZSBNRVNTQUdFX0NIRUNLX1VSTCh1cmwpIE1F
U1NBR0VfQ0hFQ0tfQkFTRShtX3Byb2Nlc3MtPmNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vz
cyh1cmwpLCBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSkKIAotI2RlZmluZSBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFT
RV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCBf
X1ZBX0FSR1NfXykKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGE1OTI4ZWM0ODQ4YjZkYmY4NGY2
MGNiNDA5NmY5NWRkNTY2YmFmNTMuLmIwNzlkMWM0NWYxMTc4MmE1YzA1YjYzMDcyODM4YzFjNDQ4
MDBlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtMjA3LDEwICsyMDcsMTAgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogCiAgICAgYWRkTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlcih0aGlzLCBsYW5ndWFnZUNoYW5nZWQpOwogCi0jaWYgIUxPR19ESVNB
QkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2Vi
Q29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICAgICBXZWJLaXQ6Omlu
aXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0jZW5kaWYgLy8gIUxPR19ESVNBQkxF
RAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNp
Zm5kZWYgTkRFQlVHCiAgICAgcHJvY2Vzc1Bvb2xDb3VudGVyLmluY3JlbWVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA1NzVjN2FiMmE4
Nzg2NjllZjFlYjk3ZmEyYTIwYjRhOTNhZWRhNDBiLi4yZTJjODQzNWM0OWM4ODM0MTIwMWNiODg3
MzcxYmY1ODIzMWYyMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiRG93bmxvYWRQcm94eU1hcC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQ
bHVnaW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC03NTMsMTEgKzc1NCwxMSBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdAogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJ
RCgpOwogICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tl
bigpOwotICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0
aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRo
aXMpOworICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcg
YSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBmZXRjaGlu
ZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFD
YWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIs
IHNlc3Npb25JRF0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRihz
ZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94
eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJv
Y2VzcyBpcyBkb25lIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAgICBSRUxF
QVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NT
dXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3Vu
ZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBmZXRjaGluZyBXZWJz
aXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OkZldGNoV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIGNhbGxiYWNrSUQpLCAw
KTsKQEAgLTc2OSwxMSArNzcwLDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJz
aXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhCiAKICAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tl
biA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgUkVMRUFTRV9M
T0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9j
ZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2Vi
IHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CisgICAgUkVMRUFTRV9M
T0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0
aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRo
aXMpOwogCiAgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxi
YWNrSUQsIFt0aGlzLCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0gewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9u
SUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyBy
ZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBp
cyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xP
R19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5z
aW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3Nl
cnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRh
dGEiLCB0aGlzKTsKICAgICB9KTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZWxl
dGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJh
Y2tJRCksIDApOwogfQpAQCAtNzg0LDExICs3ODUsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25T
ZXQKIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAg
ICBhdXRvIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAg
ICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIl
cCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNh
dXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwg
b3JpZ2lucyIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94
eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2Vz
cyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOwog
CiAgICAgbV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmFkZChj
YWxsYmFja0lELCBbdGhpcywgdG9rZW4sIGNvbXBsZXRpb25IYW5kbGVyLCBzZXNzaW9uSURdIHsK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vz
c2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkg
aXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nl
c3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRo
aXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVs
ZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMg
ZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOwog
ICAgIH0pOwogCiAgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKQEAg
LTk4OCw3ICs5ODksNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3Rh
dGUoQXNzZXJ0aW9uU3RhdGUgc3RhdGUpCiAKICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgY2Fz
ZSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkOgotICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBX
ZWJQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKFN1c3BlbmRlZCkgcmVsZWFzZSBh
bGwgYXNzZXJ0aW9ucyBmb3IgbmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CisgICAgICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFz
c2VydGlvblN0YXRlKFN1c3BlbmRlZCkgcmVsZWFzZSBhbGwgYXNzZXJ0aW9ucyBmb3IgbmV0d29y
ayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0d29ya1By
b2Nlc3MgPSBudWxscHRyOwogICAgICAgICBtX2JhY2tncm91bmRUb2tlbkZvck5ldHdvcmtQcm9j
ZXNzID0gbnVsbHB0cjsKICAgICAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVl
cygpKQpAQCAtOTk2LDEzICs5OTcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFz
c2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlIHN0YXRlKQogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkJhY2tncm91bmQ6Ci0gICAgICAgIFJFTEVBU0VfTE9HKCIl
cCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQmFja2dyb3VuZCkgdGFr
aW5nIGJhY2tncm91bmQgYXNzZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94
eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQmFja2dyb3VuZCkgdGFraW5nIGJhY2tncm91bmQgYXNz
ZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKICAgICAgICAgbV9iYWNrZ3JvdW5k
VG9rZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwogICAgICAgICBtX2Zv
cmVncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gbnVsbHB0cjsKICAgICAgICAgYnJlYWs7
CiAgICAgCiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6Rm9yZWdyb3VuZDoKLSAgICAgICAgUkVM
RUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShGb3Jl
Z3JvdW5kKSB0YWtpbmcgZm9yZWdyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2VzcyIs
IHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2Vi
UHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShGb3JlZ3JvdW5kKSB0YWtpbmcgZm9y
ZWdyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2VzcyIsIHRoaXMpOwogICAgICAgICBt
X2ZvcmVncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bvb2woKS5lbnN1cmVO
ZXR3b3JrUHJvY2VzcygpLnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0eVRva2VuKCk7CiAg
ICAgICAgIG1fYmFja2dyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3MgPSBudWxscHRyOwogICAg
ICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCkBAIC0xMDE5LDEyICsx
MDIwLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShBc3Nl
cnRpb25TdGF0ZSBzdGF0ZSkKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2Nr
ZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogewogICAgIGlmICghaXNIb2xkaW5n
TG9ja2VkRmlsZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coIlVJUHJvY2VzcyBpcyByZWxlYXNp
bmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mg
aXMgbm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CisgICAgICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBubyBsb25nZXIgaG9s
ZGluZyBsb2NrZWQgZmlsZXMiKTsKICAgICAgICAgbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxl
cyA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCFtX3Rva2VuRm9y
SG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKCJVSVByb2Nlc3MgaXMg
dGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nl
c3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9u
IGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIp
OwogICAgICAgICBtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbV90aHJvdHRsZXIuYmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KaW5kZXggODgyNDU1ZjM3Y2I1
NjE2ZTc0MDU4M2NjMzAzMTk0Mzc0ZDhmY2JiOS4uNmIyMjQwMTcxZjAzMWFiMDNjYzM3MTE5NGI2
YmEzZGQ4NTM0ZDg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKElP
UykKIAogI2ltcG9ydCAiQXNzZXJ0aW9uU2VydmljZXNTUEkuaCIKKyNpbXBvcnQgIkxvZ2dpbmcu
aCIKICNpbXBvcnQgPFVJS2l0L1VJQXBwbGljYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgpAQCAtMTA1LDcgKzEwNiw3IEBAIC0gKHZvaWQp
X3VwZGF0ZUJhY2tncm91bmRUYXNrCiB7CiAgICAgaWYgKF9uZWVkc1RvUnVuSW5CYWNrZ3JvdW5k
Q291bnQgJiYgX2JhY2tncm91bmRUYXNrID09IFVJQmFja2dyb3VuZFRhc2tJbnZhbGlkKSB7CiAg
ICAgICAgIF9iYWNrZ3JvdW5kVGFzayA9IFtbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlv
bl0gYmVnaW5CYWNrZ3JvdW5kVGFza1dpdGhOYW1lOkAiY29tLmFwcGxlLldlYktpdC5Qcm9jZXNz
QXNzZXJ0aW9uIiBleHBpcmF0aW9uSGFuZGxlcjpeewotICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoIkJhY2tncm91bmQgdGFzayBleHBpcmVkIHdoaWxlIGhvbGRpbmcgV2ViS2l0IFByb2Nl
c3NBc3NlcnRpb24gKGlzTWFpblRocmVhZD8gJWQpLiIsIFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiQmFja2dyb3Vu
ZCB0YXNrIGV4cGlyZWQgd2hpbGUgaG9sZGluZyBXZWJLaXQgUHJvY2Vzc0Fzc2VydGlvbiAoaXNN
YWluVGhyZWFkPyAlZCkuIiwgUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgLy8gVGhl
IGV4cGlyYXRpb24gaGFuZGxlciBnZXRzIGNhbGxlZCBvbiBhIG5vbi1tYWluIHRocmVhZCB3aGVu
IHRoZSB1bmRlcmx5aW5nIGFzc2VydGlvbiBjb3VsZCBub3QgYmUgdGFrZW4gKHJkYXI6Ly9wcm9i
bGVtLzI3Mjc4NDE5KS4KICAgICAgICAgICAgIGlmIChSdW5Mb29wOjppc01haW4oKSkKICAgICAg
ICAgICAgICAgICBbc2VsZiBfbm90aWZ5Q2xpZW50c09mSW1taW5lbnRTdXNwZW5zaW9uXTsKQEAg
LTE2NSw3ICsxNjYsNyBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90
IHBpZCwgQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUsIEZ1bgogICAgIGF1dG8gd2Vha1Ro
aXMgPSBjcmVhdGVXZWFrUHRyKCk7CiAgICAgQktTUHJvY2Vzc0Fzc2VydGlvbkFjcXVpc2l0aW9u
SGFuZGxlciBoYW5kbGVyID0gXihCT09MIGFjcXVpcmVkKSB7CiAgICAgICAgIGlmICghYWNxdWly
ZWQpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJVbmFibGUgdG8gYWNxdWlyZSBh
c3NlcnRpb24gZm9yIHByb2Nlc3MgJWQiLCBwaWQpOworICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJVbmFibGUgdG8gYWNxdWlyZSBhc3NlcnRpb24gZm9y
IHByb2Nlc3MgJWQiLCBwaWQpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewog
ICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGFmY2NkMWU0
ZDcxMDA2NjI3MzMyYmY1MzhjYmQzNjQ0Mzg4OTFkYTMuLmE3Yzc4NzdlZjFmNjBhNWE1Yjk4NjM2
MmJmM2I2YWE5OGZmZmI3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNTcsOCArNTcsOCBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KC4uLikgUkVMRUFTRV9MT0dfSUYobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklELmlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGxvYWRQYXJhbWV0ZXJzLnNlc3Np
b25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihsb2FkUGFyYW1ldGVycy5z
ZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssIF9fVkFfQVJHU19f
KQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0df
RVJST1JfSUYobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDljMDA5NDM4Y2E5NTMyMjMyODgyMzc4OTFhY2RmMjc3NzMxZDdjNGUuLjdm
Y2EyZjkzZDU1ZWE3NTY1ZDRhNGRlYjgyNDZhNTU1ODk4MTljNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApA
QCAtNDIsNyArNDIsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2RlZmluZSBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmss
IF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZjMTZiZTRjZWRmNzZjZDIzYmIz
YWY5ZDg1YTY4NGQwOGU2NzU3MGUuLjM1ZWQxMjM3NmJmYTlmYTZjODkyYzk4NDI2MzVlYjZhZGQw
M2NlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTI1NSw4ICsyNTUsOCBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHBhZ2VTY3JvbGxIeXN0
ZXJlc2lzU2Vjb25kcyA9IDAuMzsKIHN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzIGluaXRpYWxMYXllclZvbGF0aWxpdHlUaW1lckludGVydmFsIHsgMjAgfTsKIHN0YXRpYyBj
b25zdCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRl
cnZhbCB7IDIgfTsKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFT
RV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQotI2RlZmlu
ZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIExheWVycywgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgTGF5ZXJzLCBfX1ZBX0FSR1NfXykKIAogY2xhc3MgU2VuZFN0b3BSZXNwb25zaXZlbmVz
c1RpbWVyIHsKIHB1YmxpYzoKQEAgLTIwNjQsNyArMjA2NCw3IEBAIHZvaWQgV2ViUGFnZTo6bGF5
ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpCiAgICAgYm9vbCBkaWRTdWNjZWVkID0gbWFya0xheWVy
c1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCk7CiAgICAgaWYgKGRpZFN1Y2NlZWQgfHwg
bmV3SW50ZXJ2YWwgPiBtYXhpbXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCkgewogICAg
ICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0b3AoKTsKLSAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gQXR0ZW1wdGVkIHRvIG1hcmsgc3VyZmFjZXMgYXMg
dm9sYXRpbGUsIHN1Y2Nlc3M/ICVkIiwgdGhpcywgZGlkU3VjY2VlZCk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFnZSAtIEF0dGVtcHRlZCB0byBtYXJrIGxheWVy
cyBhcyB2b2xhdGlsZSwgc3VjY2Vzcz8gJWQiLCB0aGlzLCBkaWRTdWNjZWVkKTsKICAgICAgICAg
Y2FsbFZvbGF0aWxpdHlDb21wbGV0aW9uSGFuZGxlcnMoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDE0YjNhMTQ1
NGM2NTk4ZDY0NzY1YjMwZDA1ZWE1YmViYTJmNDc3YmYuLmFkOTFkOWExNDVmODBkYzY3OTM5MTIy
OWMzOTVmZjJkOGEwZGRmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtMTI3NywxMCArMTI3NywxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBh
cmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQgc2hvdQogICAg
IHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbih0cnVlKTsKIAogICAgIG1hcmtBbGxMYXllcnNW
b2xhdGlsZShbdGhpcywgc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmRdIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxl
KCkgU3VjY2Vzc2Z1bHkgbWFya2VkIGFsbCBsYXllcnMgYXMgdm9sYXRpbGUiLCB0aGlzKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6Om1h
cmtBbGxMYXllcnNWb2xhdGlsZSgpIFN1Y2Nlc3NmdWx5IG1hcmtlZCBhbGwgbGF5ZXJzIGFzIHZv
bGF0aWxlIiwgdGhpcyk7CiAKICAgICAgICAgaWYgKHNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5
VG9TdXNwZW5kID09IFNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kOjpZZXMpIHsK
LSAgICAgICAgICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVU
b1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRo
aXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdl
YlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFkeVRv
U3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRoaXMpOwogICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlU
b1N1c3BlbmQoKSwgMCk7CiAgICAgICAgIH0KICAgICB9KTsKQEAgLTEyOTYsNyArMTI5Niw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShib29sJiBoYW5k
bGVkKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2Vi
UHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSgpIiwgdGhpcyk7CisgICAgUkVM
RUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NXaWxs
U3VzcGVuZEltbWluZW50bHkoKSIsIHRoaXMpOwogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVyeUJlaGF2aW9yOjpJbnRlcnJ1cHQpOwog
ICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1
c3BlbmQ6Ok5vKTsKICAgICBoYW5kbGVkID0gdHJ1ZTsKQEAgLTEzMDQsMTMgKzEzMDQsMTMgQEAg
dm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRs
ZWQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpCiB7Ci0gICAgUkVMRUFT
RV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CisgICAg
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoKSIsIHRoaXMpOwogICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNr
bm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQ6Olllcyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6
Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJv
Y2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0co
UHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3Bl
bmQoKSIsIHRoaXMpOwogICAgIHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbihmYWxzZSk7CiAK
ICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZpbmlzaGVkIGNsZWFuaW5nIHVwIGFuZCBzZW50IFBy
b2Nlc3NSZWFkeVRvU3VzcGVuZCwgd2UKQEAgLTEzMjAsMTMgKzEzMjAsMTMgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKIAogICAgIGNhbmNlbE1hcmtBbGxMYXll
cnNWb2xhdGlsZSgpOwogCi0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2Vs
UHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24gSVBD
IG1lc3NhZ2UiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVw
IC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgRGlkQ2FuY2Vs
UHJvY2Vzc1N1c3BlbnNpb24gSVBDIG1lc3NhZ2UiLCB0aGlzKTsKICAgICBwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZENhbmNlbFBy
b2Nlc3NTdXNwZW5zaW9uKCksIDApOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXll
cnNWb2xhdGlsZShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCki
LCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJv
Y2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCkiLCB0aGlzKTsKICAgICBtX3BhZ2VzTWFya2lu
Z0xheWVyc0FzVm9sYXRpbGUgPSBtX3BhZ2VNYXAuc2l6ZSgpOwogICAgIGlmICghbV9wYWdlc01h
cmtpbmdMYXllcnNBc1ZvbGF0aWxlKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBA
IC0xMzU5LDcgKzEzNTksNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldEFsbExheWVyVHJlZVN0YXRl
c0Zyb3plbihib29sIGZyb3plbikKICAgICAKIHZvaWQgV2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJl
c3VtZSgpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJl
c3VtZSgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAt
IFdlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOwogCiAgICAgY2FuY2VsTWFy
a0FsbExheWVyc1ZvbGF0aWxlKCk7CiAgICAgc2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKGZh
bHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287073</attachid>
            <date>2016-08-25 21:35:20 -0700</date>
            <delta_ts>2016-08-31 16:43:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160969-20160825213318.patch</filename>
            <type>text/plain</type>
            <size>68110</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg3ZGVhZGJkMzNhMjUwOTUyZGFlZTAy
NzdjMzBhYzUyOGExMDI1MjEuLjhkNzBlMjM1YmE2NzUxYjhkZGRiZjI4NmFmNGRiOTcwYTA5YjBm
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZv
ciBvc19sb2cgc28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhdHRhY2hpbmcgYSBz
dWJzeXN0ZW0gYW5kIGNhdGVnb3J5IHdoZW4gbG9nZ2luZyB2aWEKKyAgICAgICAgdGhlIFJFTEVB
U0VfTE9HIG1hY3Jvcy4gVGhpcyBzdXBwb3J0IGlzIHByb3ZpZGVkIGJ5IGFkZGluZyBzdWJzeXN0
ZW0KKyAgICAgICAgYW5kIGNhdGVnb3J5IGluZm9ybWF0aW9uIHRvIFdURkxvZ0NoYW5uZWwuIEFu
IG9zX2xvZ190IG9iamVjdCBpcyB0aGVuCisgICAgICAgIGNyZWF0ZWQgdG8gZW5hY3BzdWxhdGUg
dGhhdCBpbmZvcm1hdGlvbi4gV2hlbiB1c2luZyBSRUxFQVNFX0xPRyB0byBsb2cKKyAgICAgICAg
dGhyb3VnaCB0aGF0IGNoYW5uZWwsIHRoZSBhc3NvY2lhdGVkIGxvZyBvYmplY3QgaXMgdXNlZCB3
aGVuIGNhbGxpbmcKKyAgICAgICAgb3NfbG9nLgorCisgICAgICAgIFRvIGhlbHAgc3VwcG9ydCB0
aGUgaW5jbHVzaW9uIG9mIHRoZSBzdWJzeXN0ZW0gYW5kIGNhdGVnb3J5CisgICAgICAgIGluZm9y
bWF0aW9uIGluIFdURkxvZ0NoYW5uZWwsIHRoZSBERUNMQVJFX0xPR19DSEFOTkVMLAorICAgICAg
ICBERUZJTkVfTE9HX0NIQU5ORUwsIGFuZCBMT0dfQ0hBTk5FTF9BRERSRVNTIG1hY3JvcyB0aGF0
IHdlcmUgZGVmaW5lZAorICAgICAgICBpbiB2YXJpb3VzIG1vZHVsZXMgYXJlIGNvbnNvbGlkYXRl
ZCBhbmQgbW92ZWQgdG8gQXNzZXJ0aW9ucy5oLgorICAgICAgICBERUZJTkVfTE9HX0NIQU5ORUwg
aXMgbm93IGRlZmluZWQgdG8gaW5pdGlhbGl6ZSB0aGUgc3Vic3lzdGVtIGFuZAorICAgICAgICBj
YXRlZ29yeS4KKworICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3dGYv
QXNzZXJ0aW9ucy5oOgorICAgICAgICAqIHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwOgor
CiAyMDE2LTA4LTI1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAg
ICAgICAgIFtERkddW0ZUTF0gSW1wbGVtZW50IEVTNiBHZW5lcmF0b3JzIGluIERGRyAvIEZUTApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDcxNzgyM2NjZTI3MDNhZWE3MWUzOWRkOGE1OWQ0ZjkwZGFhYTZjYmEuLmIz
MGQ3NWU5MDVkNWZjZmJkZTg4MDc5OTEwNTQwMTlhYmVlNDBjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxNi0wOC0yNSAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBzZXQgYSBzdWJzeXN0ZW0gZm9yIG9zX2xvZyBzbyBp
dCdzIGVhc2llciB0byBmaWx0ZXIgZm9yIFdlYktpdCBsb2cgbWVzc2FnZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDk2OQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjYwNjg3MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgLSBTcGVjaWZ5IGEgY2hhbm5lbCB3aGVuIHVzaW5nIFJFTEVBU0VfTE9H
IG1hY3JvcworICAgICAgICAtIEFkZCBhIG5ldyBjaGFubmVsIHNvIHRoYXQgd2UgaGF2ZSBzb21l
dGhpbmcgdG8gcGFzcyB0byB0aGUKKyAgICAgICAgICBSRUxFQVNFX0xPRyBtYWNyb3MgKExheWVy
cykuCisgICAgICAgIC0gRW5hYmxlIHN1YnN5c3RlbS0gYW5kIGNoYW5uZWwtcmVsYXRlZCBkYXRh
IGFuZCBmdW5jdGlvbnMgd2hlbiB1c2luZworICAgICAgICAgIFJFTEVBU0VfTE9HIG1hY3Jvcy4K
KyAgICAgICAgLSBVc2UgdGhlIERFQ0xBUkVfTE9HX0NIQU5ORUwsIERFRklORV9MT0dfQ0hBTk5F
TCwgYW5kCisgICAgICAgICAgTE9HX0NIQU5ORUxfQUREUkVTUyBtYWNyb3MgdGhhdCBhcmUgbm93
IGRlZmluZWQgaW4gV1RGLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhlcmUgYXJlIG5vIHRl
c3RzIGZvciBsb2dnaW5nLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvZ01hY3Jvcy5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxp
ZWZMb2dnZXI6OmxvZ01lbW9yeVVzYWdlQ2hhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZh
Y2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2dnaW5nTWFjLm1tOgorICAgICAgICAqIHBs
YXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Mb2dn
aW5nV2luLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6
CisgICAgICAgIChXZWJDb3JlVGVzdFN1cHBvcnQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVj
ZXNzYXJ5KToKKwogMjAxNi0wOC0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBEcmFnZ2luZyBhZ2FpbnN0IHRoZSBlbmQgb2YgdGhlIGlubGluZSBt
ZWRpYSBzY3J1YmJlciBjYXVzZXMgdGhlIG1lZGlhIHNjcnViYmVyIHRvIGhpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwppbmRleCA0MDA1Njk1MDY1ODA1ZmEzZGYyOWVlNTNhMTI0OGNkZGE3NTE2ZDBkLi5hYTc0
MWI0YzYwYTliM2UxNjcxZDQxNzU3MWRiODYyYjc1Y2VkMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZvciBvc19sb2cg
c28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVuYWJsZSBzdWJzeXN0ZW0tIGFuZCBjaGFubmVsLXJlbGF0ZWQg
ZGF0YSBhbmQgZnVuY3Rpb25zIHdoZW4gdXNpbmcKKyAgICAgICAgUkVMRUFTRV9MT0cgbWFjcm9z
LiBVc2UgdGhlIERFQ0xBUkVfTE9HX0NIQU5ORUwsIERFRklORV9MT0dfQ0hBTk5FTCwKKyAgICAg
ICAgYW5kIExPR19DSEFOTkVMX0FERFJFU1MgbWFjcm9zIHRoYXQgYXJlIG5vdyBkZWZpbmVkIGlu
IFdURi4KKworICAgICAgICAqIE1pc2MvV2ViS2l0TG9nZ2luZy5oOgorICAgICAgICAqIE1pc2Mv
V2ViS2l0TG9nZ2luZy5tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpd
KToKKwogMjAxNi0wOC0yNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlLWV4cG9ydCBET01FeGNlcHRpb24gTlNTdHJpbmdzIGFmdGVyIHIyMDQ3MTcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCA0YjFjZjZiNTYxMmE5NzkyNmM4NTA1MmZhZDgzODM5NTRkMDNl
MGJmLi41MWRiYTJiNTNmY2RiM2U1NDE2M2RmMjVhZTk1YmQyMTIzOWU2MGJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZv
ciBvc19sb2cgc28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBzdWJzeXN0ZW0tIGFuZCBjaGFubmVs
LXJlbGF0ZWQgZGF0YSBhbmQgZnVuY3Rpb25zIHdoZW4gdXNpbmcKKyAgICAgICAgUkVMRUFTRV9M
T0cgbWFjcm9zLiBVc2UgdGhlIERFQ0xBUkVfTE9HX0NIQU5ORUwsIERFRklORV9MT0dfQ0hBTk5F
TCwKKyAgICAgICAgYW5kIExPR19DSEFOTkVMX0FERFJFU1MgbWFjcm9zIHRoYXQgYXJlIG5vdyBk
ZWZpbmVkIGluIFdURi4KKworICAgICAgICAqIFdlYktpdExvZ2dpbmcuY3BwOgorICAgICAgICAq
IFdlYktpdExvZ2dpbmcuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZp
ZXc6OmluaXRXaXRoRnJhbWUpOgorCiAyMDE2LTA4LTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIERvY3VtZW50JiBpbnN0ZWFkIG9m
IERvY3VtZW50KiB3aGVuIGdldHRpbmcgY29va2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDNjMWJkZjc3ZTVi
YWNlZWYzZjE3ZDBjODc4MTE4OTY5NzQ3NWZkMzAuLjg0NzJjMDI4YWZjZTNjODBhMjY3MWMzYjI2
NGI1Y2I0ZDVkMGFjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxNi0wOC0yNSAg
S2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IHNob3Vs
ZCBzZXQgYSBzdWJzeXN0ZW0gZm9yIG9zX2xvZyBzbyBpdCdzIGVhc2llciB0byBmaWx0ZXIgZm9y
IFdlYktpdCBsb2cgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MDk2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjYwNjg3MzQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBTcGVjaWZ5
IGEgY2hhbm5lbCB3aGVuIHVzaW5nIFJFTEVBU0VfTE9HIG1hY3Jvcy4KKyAgICAgICAgLSBBZGQg
c29tZSBuZXcgY2hhbm5lbHMgc28gdGhhdCB3ZSBoYXZlIHNvbWV0aGluZyB0byBwYXNzIHRvIHRo
ZQorICAgICAgICAgIFJFTEVBU0VfTE9HIG1hY3JvcyAoUHJvY2Vzc1N1c3BlbnNpb24sIElQQywg
TGF5ZXJzKS4KKyAgICAgICAgLSBFbmFibGUgc3Vic3lzdGVtLSBhbmQgY2hhbm5lbC1yZWxhdGVk
IGRhdGEgYW5kIGZ1bmN0aW9ucyB3aGVuIHVzaW5nCisgICAgICAgICAgUkVMRUFTRV9MT0cgbWFj
cm9zLgorICAgICAgICAtIFVzZSB0aGUgREVDTEFSRV9MT0dfQ0hBTk5FTCwgREVGSU5FX0xPR19D
SEFOTkVMLCBhbmQKKyAgICAgICAgICBMT0dfQ0hBTk5FTF9BRERSRVNTIG1hY3JvcyB0aGF0IGFy
ZSBub3cgZGVmaW5lZCBpbiBXVEYuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVu
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6d2FpdEZvclN5bmNSZXBseSk6CisgICAgICAgICogUGxhdGZvcm0vTG9nSW5pdGlhbGl6
YXRpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFBsYXRmb3Jt
L0xvZ2dpbmcuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9mb3VuZGF0aW9uL0xvZ2dpbmdGb3VuZGF0
aW9uLm1tOgorICAgICAgICAqIFBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwOgorICAgICAg
ICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpkaWRDbG9zZU9u
Q29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogU2hhcmVkL1dlYktpdDJJbml0aWFsaXpl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6cmVsZWFzZU5ldHdvcmtBY3Rpdml0eVRva2VuKToKKyAgICAgICAgKFdlYktp
dDo6TmF2aWdhdGlvblN0YXRlOjpkaWRDaGFuZ2VJc0xvYWRpbmcpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxl
cyk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3cpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1faGlkZGVuUGFnZVRocm90dGxpbmdUaW1lcik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dL
UHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRh
c2tdKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJl
cGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByb2Nlc3NXaWxs
U3VzcGVuZEltbWluZW50bHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRv
U3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xh
dGlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgor
CiAyMDE2LTA4LTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVwbGFjZSBhbGwgSVBDIG1lc3NhZ2Ugc2VuZCBmbGFncyB3aXRoIE9wdGlvblNldApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9Bc3NlcnRpb25zLmNwcAppbmRleCA0ZjM5ZmIxNWFmZDU0YjE2ODI2YTMwYTAyMjZiZmU2ZTA2
ODFjNDdkLi44NjEzZGY1ZGU4ZjRhYTc3ZmU1YTg3OGYzMjk3MGYzNjA0Y2NkNjBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9B
c3NlcnRpb25zLmNwcApAQCAtNTU1LDYgKzU1NSwxMyBAQCBzdGF0aWMgdm9pZCBzZXRTdGF0ZU9m
QWxsQ2hhbm5lbHMoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbHNbXSwgc2l6ZV90IGNoYW5uZWxDb3Vu
dAogCiB2b2lkIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhXVEZMb2dD
aGFubmVsKiBjaGFubmVsc1tdLCBzaXplX3QgY291bnQsIGNvbnN0IGNoYXIqIGxvZ0xldmVsKQog
eworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y291bnQ7ICsraSkgeworICAgICAgICBXVEZMb2dDaGFubmVsKiBjaGFubmVsID0gY2hhbm5lbHNb
aV07CisgICAgICAgIGNoYW5uZWwtPm9zTG9nQ2hhbm5lbCA9IG9zX2xvZ19jcmVhdGUoY2hhbm5l
bC0+c3Vic3lzdGVtLCBjaGFubmVsLT5uYW1lKTsKKyAgICB9CisjZW5kaWYKKwogICAgIFN0cmlu
ZyBsb2dMZXZlbFN0cmluZyA9IGxvZ0xldmVsOwogICAgIFZlY3RvcjxTdHJpbmc+IGNvbXBvbmVu
dHM7CiAgICAgbG9nTGV2ZWxTdHJpbmcuc3BsaXQoJywnLCBjb21wb25lbnRzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuaAppbmRleCA4NmNiNDI1ZmY2ZDM3ZTY4MzYyOGNiMWFiZGU1MDc2MThlYmMwMjVjLi4wMzE0
Zjc0MjBhZWI2NTczMTZkY2JjZGYwNGI1YjBlNThlOGNiZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCkBA
IC0xMzUsOCArMTM1LDMwIEBAIHR5cGVkZWYgZW51bSB7IFdURkxvZ0NoYW5uZWxPZmYsIFdURkxv
Z0NoYW5uZWxPbiwgV1RGTG9nQ2hhbm5lbE9uV2l0aEFjY3VtdWxhdGlvCiB0eXBlZGVmIHN0cnVj
dCB7CiAgICAgV1RGTG9nQ2hhbm5lbFN0YXRlIHN0YXRlOwogICAgIGNvbnN0IGNoYXIqIG5hbWU7
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgY2hhciogc3Vic3lzdGVtOwor
ICAgIF9fdW5zYWZlX3VucmV0YWluZWQgb3NfbG9nX3Qgb3NMb2dDaGFubmVsOworI2VuZGlmCiB9
IFdURkxvZ0NoYW5uZWw7CiAKKyNkZWZpbmUgTE9HX0NIQU5ORUwobmFtZSkgSk9JTl9MT0dfQ0hB
Tk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpCisjZGVmaW5lIExPR19D
SEFOTkVMX0FERFJFU1MobmFtZSkgJkxPR19DSEFOTkVMKG5hbWUpLAorI2RlZmluZSBKT0lOX0xP
R19DSEFOTkVMX1dJVEhfUFJFRklYKHByZWZpeCwgY2hhbm5lbCkgSk9JTl9MT0dfQ0hBTk5FTF9X
SVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkKKyNkZWZpbmUgSk9JTl9MT0dfQ0hB
Tk5FTF9XSVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkgcHJlZml4ICMjIGNoYW5u
ZWwKKworI2RlZmluZSBERUNMQVJFX0xPR19DSEFOTkVMKG5hbWUpIFwKKyAgICBleHRlcm4gV1RG
TG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKTsKKworI2lmICFkZWZpbmVkKERFRklORV9MT0df
Q0hBTk5FTCkKKyNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAorI2RlZmluZSBERUZJTkVfTE9HX0NI
QU5ORUwobmFtZSwgc3Vic3lzdGVtKSBcCisgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChu
YW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUgfTsKKyNlbHNlCisjZGVmaW5lIERFRklO
RV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwKKyAgICBXVEZMb2dDaGFubmVsIExPR19D
SEFOTkVMKG5hbWUpID0geyBXVEZMb2dDaGFubmVsT2ZmLCAjbmFtZSwgc3Vic3lzdGVtLCBPU19M
T0dfREVGQVVMVCB9OworI2VuZGlmCisjZW5kaWYKKwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
V1RGUmVwb3J0QXNzZXJ0aW9uRmFpbHVyZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29u
c3QgY2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGFzc2VydGlvbik7CiBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBXVEZSZXBvcnRBc3NlcnRpb25GYWlsdXJlV2l0aE1lc3NhZ2UoY29uc3QgY2hh
ciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhc3Nl
cnRpb24sIGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKSBXVEZfQVRUUklCVVRFX1BSSU5URig1LCA2
KTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURlJlcG9ydEFyZ3VtZW50QXNzZXJ0aW9uRmFp
bHVyZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNv
bnN0IGNoYXIqIGFyZ05hbWUsIGNvbnN0IGNoYXIqIGFzc2VydGlvbik7CkBAIC0zNjcsOSArMzg5
LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBXVEZD
cmFzaFdpdGhTZWN1cml0eUltcGxpY2F0aW9uKCkKICNpZiBMT0dfRElTQUJMRUQKICNkZWZpbmUg
TE9HKGNoYW5uZWwsIC4uLikgKCh2b2lkKTApCiAjZWxzZQotI2RlZmluZSBMT0coY2hhbm5lbCwg
Li4uKSBXVEZMb2coJkpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJF
RklYLCBjaGFubmVsKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIEpPSU5fTE9HX0NIQU5ORUxfV0lU
SF9QUkVGSVgocHJlZml4LCBjaGFubmVsKSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYX0xF
VkVMXzIocHJlZml4LCBjaGFubmVsKQotI2RlZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJF
RklYX0xFVkVMXzIocHJlZml4LCBjaGFubmVsKSBwcmVmaXggIyMgY2hhbm5lbAorI2RlZmluZSBM
T0coY2hhbm5lbCwgLi4uKSBXVEZMb2coJkxPR19DSEFOTkVMKGNoYW5uZWwpLCBfX1ZBX0FSR1Nf
XykKICNlbmRpZgogCiAvKiBMT0dfVkVSQk9TRSAqLwpAQCAtMzc3LDIyICszOTcsMjUgQEAgV1RG
X0VYUE9SVF9QUklWQVRFIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBXVEZDcmFzaFdpdGhT
ZWN1cml0eUltcGxpY2F0aW9uKCkKICNpZiBMT0dfRElTQUJMRUQKICNkZWZpbmUgTE9HX1ZFUkJP
U0UoY2hhbm5lbCwgLi4uKSAoKHZvaWQpMCkKICNlbHNlCi0jZGVmaW5lIExPR19WRVJCT1NFKGNo
YW5uZWwsIC4uLikgV1RGTG9nVmVyYm9zZShfX0ZJTEVfXywgX19MSU5FX18sIFdURl9QUkVUVFlf
RlVOQ1RJT04sICZKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJ
WCwgY2hhbm5lbCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBMT0dfVkVSQk9TRShjaGFubmVsLCAu
Li4pIFdURkxvZ1ZlcmJvc2UoX19GSUxFX18sIF9fTElORV9fLCBXVEZfUFJFVFRZX0ZVTkNUSU9O
LCAmTE9HX0NIQU5ORUwoY2hhbm5lbCksIF9fVkFfQVJHU19fKQogI2VuZGlmCiAKIC8qIFJFTEVB
U0VfTE9HICovCiAKLSNkZWZpbmUgV1RGX0xPR0dJTkdfUFJFRklYICIjV0s6ICIKICNpZiBSRUxF
QVNFX0xPR19ESVNBQkxFRAotI2RlZmluZSBSRUxFQVNFX0xPRyhmb3JtYXQsIC4uLikgICAgICAg
KCh2b2lkKTApCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SKGZvcm1hdCwgLi4uKSBXVEZSZXBv
cnRFcnJvcihfX0ZJTEVfXywgX19MSU5FX18sIFdURl9QUkVUVFlfRlVOQ1RJT04sIGZvcm1hdCwg
IyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0coICAgICAgY2hhbm5lbCwgZm9ybWF0
LCAuLi4pICgodm9pZCkwKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBmb3Jt
YXQsIC4uLikgTE9HX0VSUk9SKGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKKworI2RlZmluZSBSRUxF
QVNFX0xPR19JRiggICAgICBpc0FsbG93ZWQsIGNoYW5uZWwsIGZvcm1hdCwgLi4uKSAoKHZvaWQp
MCkKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbGxvd2VkLCBjaGFubmVsLCBmb3Jt
YXQsIC4uLikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBm
b3JtYXQsICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQogI2Vsc2UKLSNkZWZpbmUgV1RGX0xP
R19ERUZBVUxUIE9TX0xPR19ERUZBVUxUCi0jZGVmaW5lIFJFTEVBU0VfTE9HKGZvcm1hdCwgLi4u
KSAgICAgICBvc19sb2coV1RGX0xPR19ERUZBVUxULCBXVEZfTE9HR0lOR19QUkVGSVggZm9ybWF0
LCAjI19fVkFfQVJHU19fKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihmb3JtYXQsIC4uLikg
b3NfbG9nX2Vycm9yKFdURl9MT0dfREVGQVVMVCwgV1RGX0xPR0dJTkdfUFJFRklYIGZvcm1hdCwg
IyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0coICAgICAgY2hhbm5lbCwgZm9ybWF0
LCAuLi4pIG9zX2xvZyggICAgICBMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIGZv
cm1hdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwg
Zm9ybWF0LCAuLi4pIG9zX2xvZ19lcnJvcihMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5u
ZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKKworI2RlZmluZSBSRUxFQVNFX0xPR19JRiggICAg
ICBpc0FsbG93ZWQsIGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJF
TEVBU0VfTE9HKCAgICAgIGNoYW5uZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUg
KDApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWxsb3dlZCwgY2hhbm5lbCwgZm9y
bWF0LCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwg
Zm9ybWF0LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAoMCkKICNlbmRpZgotI2RlZmluZSBSRUxF
QVNFX0xPR19JRihpc0FsbG93ZWQsIGZvcm1hdCwgLi4uKSAgICAgICBkbyB7IGlmIChpc0FsbG93
ZWQpIFJFTEVBU0VfTE9HKGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCi0jZGVm
aW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWxsb3dlZCwgZm9ybWF0LCAuLi4pIGRvIHsgaWYg
KGlzQWxsb3dlZCkgUkVMRUFTRV9MT0dfRVJST1IoZm9ybWF0LCAjI19fVkFfQVJHU19fKTsgfSB3
aGlsZSAoMCkKKwogCiAvKiBSRUxFQVNFX0FTU0VSVCAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwIGIvU291cmNlL1dURi93dGYvUmVmQ291
bnRlZExlYWtDb3VudGVyLmNwcAppbmRleCA3MjFmYTlmNDM5YTBlNjJlYzkzMTM2YTU2MjIwODVl
MzA0YTE5ZDdmLi5lZWFjZGFhOGJjYjBhZmJmNGFlMTIyZjI1ZGQ5MWE0NzFhYjg4YWJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKQEAgLTM5LDcgKzM5LDExIEBA
IHZvaWQgUmVmQ291bnRlZExlYWtDb3VudGVyOjpkZWNyZW1lbnQoKSB7IH0KICNlbHNlCiAKICNk
ZWZpbmUgTE9HX0NIQU5ORUxfUFJFRklYIExvZworI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiBz
dGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxP
biwgIlJlZkNvdW50ZWRMZWFrcyIgfTsKKyNlbHNlCitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dS
ZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxPbiwgIlJlZkNvdW50ZWRMZWFrcyIsICJj
b20uYXBwbGUuV2ViS2l0IiwgT1NfTE9HX0RFRkFVTFQgfTsKKyNlbmRpZgogCiB0eXBlZGVmIEhh
c2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqLCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gUmVhc29uU2V0
Owogc3RhdGljIFJlYXNvblNldCogbGVha01lc3NhZ2VTdXBwcmVzc2lvblJlYXNvbnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxZDU4ODE0N2I2NzVlNzRiOTU3YzBj
MjRmYWEwZTUyNjViYjc5NzMwLi42ZGQ5ZTNmODlkMmVkMDc3OTRhYTIwZGZmNzFhYmE1NjdmM2M0
YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE0Miw3ICsxNDIs
NyBAQAogI2luY2x1ZGUgIldLQ29udGVudE9ic2VydmF0aW9uLmgiCiAjZW5kaWYKIAotI2RlZmlu
ZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdv
cmssIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCmluZGV4IDNkODNjODU5ZDJmYjAzYjI2M2Jm
NWM2MmQ1Yjc0NDIwODY0Y2RlZDQuLmRlZDIzN2ZjYzdlNzRhMWY4MjA5Yzc5ZGUzYzY4MDdhZGRk
YTczODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaApA
QCAtMzAsMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFMT0dfRElT
QUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiBTdHJp
bmcgbG9nTGV2ZWxTdHJpbmcoKTsKIGJvb2wgaXNMb2dDaGFubmVsRW5hYmxlZChjb25zdCBTdHJp
bmcmIG5hbWUpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRl
KGNvbnN0IFN0cmluZyYgbmFtZSk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGluaXRpYWxpemVMb2dD
aGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYg
Ly8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nTWFjcm9z
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dNYWNyb3MuaAppbmRleCA5ZjdlZmM5OTRi
NmE4ODcwMjAxNjhmOGU3MDM4ZTI1ZjQzZDdlZTM3Li40NWZjMGIwYWFmMzNmMjNlYjZiNWYxMmMw
OWNlN2IxNzUwY2I3OTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dN
YWNyb3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dNYWNyb3MuaApAQCAtMjcs
NyArMjcsNyBAQAogCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KIAotI2lmIExPR19ESVNBQkxFRAor
I2lmIExPR19ESVNBQkxFRCAmJiBSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjZGVmaW5lIExPR19S
RVNVTFQoY2hhbm5lbCwgZnVuY3Rpb24pICgodm9pZCkwKQogI2RlZmluZSBMT0dfV0lUSF9TVFJF
QU0oY2hhbm5lbCwgY29tbWFuZHMpICgodm9pZCkwKQpAQCAtNDcsNCArNDcsNCBAQCBXRUJDT1JF
X0VYUE9SVCB2b2lkIGxvZ0Z1bmN0aW9uUmVzdWx0KFdURkxvZ0NoYW5uZWwqLCBzdGQ6OmZ1bmN0
aW9uPGNvbnN0IGNoYXIqKAogICAgICAgICByZXR1cm4gc3RyZWFtLnJlbGVhc2UoKS51dGY4KCku
ZGF0YSgpOyBcCiAgICAgfSk7CiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8g
IUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9nZ2luZy5jcHAKaW5kZXggNzY5NWNlNmVmZmUyYjQxOGVlY2NmYzE2NTM5ZWYzNjBmNjA0MjU3
Ni4uMzJjMWFiNDViNWM1YTJhMDEyY2FiNjFhYTFkNGNhY2NiZjE1NzQwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nZ2luZy5jcHAKQEAgLTM1LDIwICszNSwxOCBAQAogI2luY2x1ZGUgPG5vdGlm
eS5oPgogI2VuZGlmCiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jZGVmaW5lIERF
RklORV9MT0dfQ0hBTk5FTChuYW1lKSBcCi0gICAgV1RGTG9nQ2hhbm5lbCBKT0lOX0xPR19DSEFO
TkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSkgPSB7IFdURkxvZ0NoYW5u
ZWxPZmYsICNuYW1lIH07Ci1XRUJDT1JFX0xPR19DSEFOTkVMUyhERUZJTkVfTE9HX0NIQU5ORUwp
CisjZGVmaW5lIERFRklORV9XRUJDT1JFX0xPR19DSEFOTkVMKG5hbWUpIERFRklORV9MT0dfQ0hB
Tk5FTChuYW1lLCAiY29tLmFwcGxlLldlYktpdCIpCitXRUJDT1JFX0xPR19DSEFOTkVMUyhERUZJ
TkVfV0VCQ09SRV9MT0dfQ0hBTk5FTCkKIAotI2RlZmluZSBMT0dfQ0hBTk5FTF9BRERSRVNTKG5h
bWUpICAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5h
bWUpLAotV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKK3N0YXRpYyBXVEZMb2dDaGFu
bmVsKiBsb2dDaGFubmVsc1tdID0gewogICAgIFdFQkNPUkVfTE9HX0NIQU5ORUxTKExPR19DSEFO
TkVMX0FERFJFU1MpCiB9OwogCi1zaXplX3QgbG9nQ2hhbm5lbENvdW50ID0gV1RGX0FSUkFZX0xF
TkdUSChsb2dDaGFubmVscyk7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9
IFdURl9BUlJBWV9MRU5HVEgobG9nQ2hhbm5lbHMpOwogCiBib29sIGlzTG9nQ2hhbm5lbEVuYWJs
ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQogewpAQCAtMTAyLDQgKzEwMCw0IEBAIHZvaWQgbG9nRnVu
Y3Rpb25SZXN1bHQoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgc3RkOjpmdW5jdGlvbjxjb25zdCBj
aGFyKigpPiBmdW5jCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vICFMT0df
RElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDgzM2E3NDM0NWFiYzAxMzIwMjIyZDgy
MTllYzVlZGQ0NTFjZTU4ZmQuLjRmZDVlNmM4ZDE2YjQwZWRlNDhmZGIxZjViZjc2ZDgxMmRlNWZj
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQg
fHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTE9HX0NIQU5ORUxfUFJFRklYCiAj
ZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKQEAgLTQ2LDE1ICs0NiwxNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgTShET01UaW1lcnMpIFwKICAgICBNKEVkaXRpbmcpIFwKICAgICBN
KEV2ZW50cykgXAotICAgIE0oRlRQKSBcCiAgICAgTShGaWxlQVBJKSBcCiAgICAgTShGcmFtZXMp
IFwKKyAgICBNKEZUUCkgXAogICAgIE0oRnVsbHNjcmVlbikgXAogICAgIE0oR2FtZXBhZCkgXAog
ICAgIE0oSGlzdG9yeSkgXAogICAgIE0oSWNvbkRhdGFiYXNlKSBcCiAgICAgTShJbWFnZXMpIFwK
ICAgICBNKEluZGV4ZWREQikgXAorICAgIE0oTGF5ZXJzKSBcCiAgICAgTShMYXlvdXQpIFwKICAg
ICBNKExvYWRpbmcpIFwKICAgICBNKE1lZGlhKSBcCkBAIC03MCwxMiArNzEsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIE0oUHJvZ3Jlc3MpIFwKICAgICBNKFJlbW90ZUluc3BlY3Rvcikg
XAogICAgIE0oUmVzb3VyY2VMb2FkaW5nKSBcCi0gICAgTShTUUxEYXRhYmFzZSkgXAotICAgIE0o
U1ZHKSBcCi0gICAgTShTZXJ2aWNlcykgXAorICAgIE0oUmVzb3VyY2VMb2FkT2JzZXJ2ZXIpIFwK
ICAgICBNKFNjcm9sbGluZykgXAorICAgIE0oU2VydmljZXMpIFwKICAgICBNKFNwZWxsaW5nQW5k
R3JhbW1hcikgXAorICAgIE0oU1FMRGF0YWJhc2UpIFwKICAgICBNKFN0b3JhZ2VBUEkpIFwKKyAg
ICBNKFNWRykgXAogICAgIE0oVGV4dEF1dG9zaXppbmcpIFwKICAgICBNKFRocmVhZGluZykgXAog
ICAgIE0oVVJMUGFyc2VyKSBcCkBAIC04Myw4ICs4NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBNKFdlYkdMKSBcCiAgICAgTShXZWJSZXBsYXkpIFwKICAgICBNKFdoZWVsRXZlbnRUZXN0
VHJpZ2dlcnMpIFwKLSAgICBNKFJlc291cmNlTG9hZE9ic2VydmVyKSBcCiAKKyN1bmRlZiBERUNM
QVJFX0xPR19DSEFOTkVMCiAjZGVmaW5lIERFQ0xBUkVfTE9HX0NIQU5ORUwobmFtZSkgXAogICAg
IFdFQkNPUkVfRVhQT1JUIGV4dGVybiBXVEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lU
SF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJFRklYLCBuYW1lKTsKIApAQCAtOTcsNiArOTksNiBAQCBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5n
JiBuYW1lKTsKIHZvaWQgcmVnaXN0ZXJOb3RpZnlDYWxsYmFjayhjb25zdCBTdHJpbmcmIG5vdGlm
eUlELCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2spOwogI2VuZGlmCiAKLSNlbmRpZiAv
LyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0df
RElTQUJMRUQKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggN2FiZWI0YjQ3NmZkNDMw
NDgyYjkwNWUxYTZiZjhlMGZlMTYxYjE5Ni4uMWRhMzU4M2E3YWYwNDZlZjQ0M2E2OGExYzc1NzVj
MTVjOGRjODNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiR0NDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlD
YWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKQEAgLTIy
MCw3ICsyMjEsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjps
b2dNZW1vcnlVc2FnZUNoYW5nZSgpCiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAjZGVm
aW5lIFNUUklOR19TUEVDSUZJQ0FUSU9OICIle3B1YmxpY31zIgotI2RlZmluZSBNRU1PUllQUkVT
U1VSRV9MT0coLi4uKSBSRUxFQVNFX0xPRyhfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTUVNT1JZUFJF
U1NVUkVfTE9HKC4uLikgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsIF9fVkFfQVJHU19fKQog
I2Vsc2UKICNkZWZpbmUgU1RSSU5HX1NQRUNJRklDQVRJT04gIiVzIgogI2RlZmluZSBNRU1PUllQ
UkVTU1VSRV9MT0coLi4uKSBXVEZMb2dBbHdheXMoX19WQV9BUkdTX18pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAKaW5kZXggY2M3NDM2NWYzM2VjZjc0ZTMwZmM3OGZmMTY3MDQwMDQ5NzE2NzViOC4uNGY0ZTZi
M2IyMjY2NzMzNTk1MGZjYjUxNGM1Y2FjYmQwM2UwZTFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApA
QCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwgY29uc3QKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIGRvdWJsZSBzdGFydFRpbWUgPSBjdXJyZW50VGltZSgpOwog
I2VuZGlmCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHN1YkltYWdlKGltYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpp
bmRleCBiNWQ1ZTliMzJlZTdiMmZjMWU4MjZlZDk4ZGI1NGQyYjFmMWRmMjdhLi41YzBkNjJkODM0
MGEwMTJhZTEyNDUyNGZiZmVlNzM0NmMzN2Y3MDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW1wb3J0ICJJT1N1cmZhY2VTUEkuaCIKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1w
b3J0ICJJbWFnZUJ1ZmZlckRhdGFDRy5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAi
TWFjaFNlbmRSaWdodC5oIgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0
Zi9NYXRoRXh0cmFzLmg+CkBAIC0yMTEsNyArMjEyLDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpJ
T1N1cmZhY2UoSW50U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VS
ZWYKICAgICBpZiAoc3VjY2VzcykKICAgICAgICAgbV90b3RhbEJ5dGVzID0gSU9TdXJmYWNlR2V0
QWxsb2NTaXplKG1fc3VyZmFjZS5nZXQoKSk7CiAgICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUigiU3VyZmFjZSBjcmVhdGlvbiBmYWlsZWQgZm9yIHNpemU6ICglZCAlZCkgYW5kIGZv
cm1hdDogKCVkKSIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZm9ybWF0KTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTGF5ZXJzLCAiU3VyZmFjZSBjcmVhdGlvbiBmYWlsZWQgZm9y
IHNpemU6ICglZCAlZCkgYW5kIGZvcm1hdDogKCVkKSIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSwgZm9ybWF0KTsKIH0KIAogV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSU9TdXJm
YWNlUmVmIHN1cmZhY2UsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvZ2dpbmdNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5tbQppbmRleCAzOTI3NjYzN2M0NzUyOTAzZDVlZTY2
ZmFhNmUzYTkxMWZmYjlhNzE2Li5iMjA4YmJlMTgwNTNiYTA4MjFjNDNhYTFmYzVlYTk0YzI5OGUz
OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5tbQpAQCAtMjgs
NyArMjgsNyBAQAogCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiAhTE9H
X0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw0ICs0MSw0IEBAIFN0cmluZyBsb2dMZXZlbFN0
cmluZygpCiAKIH0KIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA3MmViMTBhNjNkZmRiYjk2NDVlODNjZTU3MzQ1
ODEyMGFmNzAwOTlkLi5jNGQ1NzZmZDExMWEzNjc2YmFjMGY0YzU4N2ZiMDUyNzJjYmRmOTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMjIs
NyArMjIsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAot
I2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC00Niw0ICs0Niw0IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9H
X0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0xvZ2dpbmdXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0xvZ2dpbmdXaW4uY3BwCmluZGV4IGYzNmExNDE2MDQzOWI5MGNmMzI4YWI3MDk4Mjhl
YmE0NTk4ZWRiMzguLmE5ZWU0ZWQ1MmVlOTRkMTM4ZWZkOWYzYjYxNWI3ZGIyZWE1MTM4M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vTG9nZ2luZ1dpbi5jcHAKQEAgLTI2LDcgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKLSNpZiAh
TE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
IAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBA
IC01Miw0ICs1Miw0IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4IDY1YmI1Y2ZmY2EzNTE3MDg2ZTkzMTE2
ODExNTlmMmM1MDdjNzlmMjIuLjE4YmM2NDgyZGE4YWMzNDE4NzgxMDNmOWEyYzMxZjcxMDQzYzdh
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9y
dC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUo
Y29uc3QgU3RyaW5nJiBuYW1lKQogCiB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KCkKIHsKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vz
c2FyeSgpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YktpdExvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5oCmlu
ZGV4IDc5NTRhNjRmN2YxOGJhMTVlNWIzMzQ3NmI2NGFjYmU0YzU3NzE2NGMuLmYwZGNjZmY4NmU0
NDY4OWM2ZDgyZTUyMWZhZTUyMzgwMGIyNzU5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViS2l0TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
S2l0TG9nZ2luZy5oCkBAIC0zNiw3ICszNiw3IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0j
aWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAKICNkZWZpbmUgV0VCS0lUX0xPR19DSEFOTkVMUyhNKSBcCiAgICAgTShCYWNrRm9yd2Fy
ZCkgXApAQCAtNjQsMTUgKzY0LDEyIEBAIGV4dGVybiAiQyIgewogICAgIE0oVGltaW5nKSBcCiAg
ICAgTShWaWV3KSBcCiAKLSNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5FTChuYW1lKSBcCi1leHRl
cm4gV1RGTG9nQ2hhbm5lbCBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVM
X1BSRUZJWCwgbmFtZSk7Ci0KIFdFQktJVF9MT0dfQ0hBTk5FTFMoREVDTEFSRV9MT0dfQ0hBTk5F
TCkKIAogI3VuZGVmIERFQ0xBUkVfTE9HX0NIQU5ORUwKIAogdm9pZCBXZWJLaXRJbml0aWFsaXpl
TG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSh2b2lkKTsKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisj
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogdm9pZCBS
ZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVTZWxlY3RvciwgaWQg
ZXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRM
b2dnaW5nLm0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdExvZ2dpbmcubQppbmRleCAx
ODMzMGE1NDVjM2NiMDJlNDNmNzlhZDYwOTAyN2NlZDY4NjMwYjVjLi5lNDI0MjA4NmUwYWZkODQy
ZTllZjE1ODczNTc4NTM4ZGYxZjZmYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYktpdExvZ2dpbmcubQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdExv
Z2dpbmcubQpAQCAtMjgsMTMgKzI4LDExIEBACiAKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIK
IAotI2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogCi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lKSBcCi0gICAgV1RGTG9n
Q2hhbm5lbCBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwg
bmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxPZmYsICNuYW1lIH07Ci1XRUJLSVRfTE9HX0NIQU5ORUxT
KERFRklORV9MT0dfQ0hBTk5FTCkKKyNkZWZpbmUgREVGSU5FX1dFQktJVF9MT0dfQ0hBTk5FTChu
YW1lKSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgImNvbS5hcHBsZS5XZWJLaXQiKQorV0VCS0lU
X0xPR19DSEFOTkVMUyhERUZJTkVfV0VCS0lUX0xPR19DSEFOTkVMKQogCi0jZGVmaW5lIExPR19D
SEFOTkVMX0FERFJFU1MobmFtZSkgICZKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19D
SEFOTkVMX1BSRUZJWCwgbmFtZSksCiBzdGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNb
XSA9IHsKICAgICBXRUJLSVRfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCiB9OwpA
QCAtNTgsNyArNTYsNyBAQCB2b2lkIFdlYktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KCkKICAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcobG9nQ2hh
bm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgW2xvZ0xldmVsIFVURjhTdHJpbmddKTsKIH0KIAotI2Vu
ZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogCiB2b2lkIFJlcG9ydERpc2NhcmRlZERlbGVnYXRlRXhjZXB0aW9uKFNF
TCBkZWxlZ2F0ZVNlbGVjdG9yLCBpZCBleGNlcHRpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggOTYzYjBjZmQ5OGJhNzUxMmUzOWM0ZGM4N2ZhOTdkYWRiNzJlODdj
Yi4uNTE2NDFhNjljZTIwM2Y2ZmM5MWJmOTA2OWZmMTlmZDEzMTRmODQ0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtOTYxLDcgKzk2MSw3IEBAIC0gKHZvaWQpX2NvbW1v
bkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBO
YW1lOihOU1N0CiAgICAgc3RhdGljIGJvb2wgZGlkT25lVGltZUluaXRpYWxpemF0aW9uID0gZmFs
c2U7CiAjZW5kaWYKICAgICBpZiAoIWRpZE9uZVRpbWVJbml0aWFsaXphdGlvbikgewotI2lmICFM
T0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgICAgICBXZWJLaXRJbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogICAgICAg
ICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYktpdExvZ2dpbmcuY3BwCmluZGV4IGUyNDRjMDkyM2EwYmI3ZmQ5Y2VmMDQ4
OWEyY2RkYmU5ZWRhNTBjODEuLjRiNTA0Y2IyNTk3YTBiNDI1NTMzMjEwNGY0YzUyODNlMDIyNDY5
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdExvZ2dpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdExvZ2dpbmcuY3BwCkBAIC0yNywxMyArMjcsMTEgQEAK
ICAqLwogI2luY2x1ZGUgIldlYktpdExvZ2dpbmcuaCIKIAotI2lmICFMT0dfRElTQUJMRUQKKyNp
ZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCi0jZGVmaW5lIERFRklO
RV9MT0dfQ0hBTk5FTChuYW1lKSBcCi0gICAgV1RGTG9nQ2hhbm5lbCBKT0lOX0xPR19DSEFOTkVM
X1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxP
ZmYsICNuYW1lIH07Ci1XRUJLSVRfTE9HX0NIQU5ORUxTKERFRklORV9MT0dfQ0hBTk5FTCkKKyNk
ZWZpbmUgREVGSU5FX1dFQktJVF9MT0dfQ0hBTk5FTChuYW1lKSBERUZJTkVfTE9HX0NIQU5ORUwo
bmFtZSwgImNvbS5hcHBsZS5XZWJLaXQiKQorV0VCS0lUX0xPR19DSEFOTkVMUyhERUZJTkVfV0VC
S0lUX0xPR19DSEFOTkVMKQogCi0jZGVmaW5lIExPR19DSEFOTkVMX0FERFJFU1MobmFtZSkgICZK
T0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSksCiBz
dGF0aWMgV1RGTG9nQ2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKICAgICBXRUJLSVRfTE9HX0NI
QU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCiB9OwpAQCAtNTEsNCArNDksNCBAQCB2b2lkIFdl
YktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCkKICAgICBXVEZJbml0aWFsaXpl
TG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwg
IiIpOwogfQogCi0jZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJLaXRMb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmgKaW5k
ZXggYzdjYTU5OGU3YzdhM2Y1ZjMzMTc3MWFkNTkwN2ZjODU3NzRjNTYwNC4uNTg5ZWViOTk4NzRl
YjllNTZlMzMxNjk2NDVjYTY5ZDgyNGZkODU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViS2l0TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdExvZ2dpbmcu
aApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAotI2lm
ICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogCiAjaWZuZGVmIExPR19DSEFOTkVMX1BSRUZJWAogI2RlZmluZSBMT0dfQ0hBTk5FTF9QUkVG
SVggV2ViS2l0TG9nCkBAIC02MiwxNSArNjIsMTIgQEAKICAgICBNKFRpbWluZykgXAogICAgIE0o
VmlldykgXAogCi0jZGVmaW5lIERFQ0xBUkVfTE9HX0NIQU5ORUwobmFtZSkgXAotZXh0ZXJuIFdU
RkxvZ0NoYW5uZWwgSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVG
SVgsIG5hbWUpOwotCiBXRUJLSVRfTE9HX0NIQU5ORUxTKERFQ0xBUkVfTE9HX0NIQU5ORUwpCiAK
ICN1bmRlZiBERUNMQVJFX0xPR19DSEFOTkVMCiAKIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUxvZ0No
YW5uZWxzSWZOZWNlc3Nhcnkodm9pZCk7CiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5k
aWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCmluZGV4IGVjOGEwZTQzZWM5ODdjMjRhY2E5NzEzMzRiNTU4ZDRiMDJj
MzIyMjYuLmE0NjQ2YzUyYTgzYzAwOGVjMjAyYzA5ZWQwNGQ5Mzg5MzY1YjIzZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCkBAIC0yOTA2LDkgKzI5MDYsOSBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3Vw
TgogCiAgICAgc3RhdGljIGJvb2wgZGlkT25lVGltZUluaXRpYWxpemF0aW9uOwogICAgIGlmICgh
ZGlkT25lVGltZUluaXRpYWxpemF0aW9uKSB7Ci0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIGluaXRpYWxpemVMb2dD
aGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0jZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8v
ICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICAgICAgICAgLy8gSW5p
dGlhbGl6ZSBvdXIgcGxhdGZvcm0gc3RyYXRlZ2llcyBmaXJzdCBiZWZvcmUgaW52b2tpbmcgdGhl
IHJlc3QKICAgICAgICAgLy8gb2YgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgd2hpY2ggbWF5IGRl
cGVuZCBvbiB0aGUgc3RyYXRlZ2llcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IDVkMGVkODI4YTc1YjQxZTcwODMw
NDRhNTYzYmFhOTEzYjFlYjNlNTEuLjJmMGUxNjcxMGFiYzUxOWUwYTE4OTkwYmNiMWRiMmJlOWVl
ZDY5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmNwcApAQCAtMzEsMTQgKzMxLDE1IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVy
ZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIkRvd25sb2Fk
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTYW5kYm94
RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdv
cmssIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKC4u
LikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdv
cmssIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDE4NDZkYTVmNzhm
MjEzNTA2NjE0YTBjYjY5YWRjMjM2MGQxMjgyZWQuLjFlYjJlZmEyZWUyNDQwZDU5Y2JkZGVhMGY5
MjdiZTViZTg1YzU5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTYyNCwxMCArNjI0LDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoYm9vbCYgaGFuZGxlZCkKIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVw
IC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOworICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRv
U3VzcGVuZCgpIiwgdGhpcyk7CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsK
IAotICAgIFJFTEVBU0VfTE9HKCIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5k
KCkgU2VuZGluZyBQcm9jZXNzUmVhZHlUb1N1c3BlbmQgSVBDIG1lc3NhZ2UiLCB0aGlzKTsKKyAg
ICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnBy
ZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2Fn
ZSIsIHRoaXMpOwogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpLCAwKTsKIH0KIApA
QCAtNjM3LDEyICs2MzcsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRv
U3VzcGVuZCgpCiAgICAgLy8gd2UgZG8gbm90IGJlY2F1c2UgcHJlcGFyZVRvU3VzcGVuZCgpIGFs
cmVhZHkgcmVwbGllZCB3aXRoIGEgTmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9T
dXNwZW5kCiAgICAgLy8gbWVzc2FnZS4gQW5kIE5ldHdvcmtQcm9jZXNzUHJveHkgZXhwZWN0cyB0
byByZWNlaXZlIGVpdGhlciBhIE5ldHdvcmtQcm9jZXNzUHJveHk6OlByb2Nlc3NSZWFkeVRvU3Vz
cGVuZC0KICAgICAvLyBvciBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRDYW5jZWxQcm9jZXNzU3Vz
cGVuc2lvbi0gbWVzc2FnZSwgYnV0IG5vdCBib3RoLgotICAgIFJFTEVBU0VfTE9HKCIlcCAtIE5l
dHdvcmtQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKKyAgICBSRUxF
QVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OmNhbmNlbFBy
ZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9j
ZXNzRGlkUmVzdW1lKCkKIHsKLSAgICBSRUxFQVNFX0xPRygiJXAgLSBOZXR3b3JrUHJvY2Vzczo6
cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0
bmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGU1OThlOGIzZmY4ZTM3YzRhNGQ0MzkzMjdmMThhNmRi
MjgzOGM5ZDUuLjM3MmIyZjFmODU5OTMzNzRkMWNhNGRkNmNhMTBkZTY4YmE2N2JiYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcApAQCAtNDksOCArNDksOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdv
cmssIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKC4u
LikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdv
cmssIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDQ0NDBhMjgxMjUzNzllMGIxYzFjYWY1
ZTU5ODRmNTc0NTlmNThlMTkuLmQzNzhiYWJiNjgyMDg5NDQ3MjRiZTIyYzM0YmQ0YzM4MTEyZjM4
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC01NjQsNyArNTY1
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVw
bHkodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgc3QKICAgICAgICAgLy8gSWYgdGhhdCBoYXBwZW5z
LCB3ZSBuZWVkIHRvIHN0b3Agd2FpdGluZywgb3Igd2UnbGwgaGFuZyBzaW5jZSB3ZSB3b24ndCBn
ZXQKICAgICAgICAgLy8gYW55IG1vcmUgaW5jb21pbmcgbWVzc2FnZXMuCiAgICAgICAgIGlmICgh
aXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUigiQ29ubmVjdGlvbjo6
d2FpdEZvclN5bmNSZXBseTogQ29ubmVjdGlvbiBubyBsb25nZXIgdmFsaWQsIGlkID0gJSIgUFJJ
dTY0LCBzeW5jUmVxdWVzdElEKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElQQywg
IkNvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHk6IENvbm5lY3Rpb24gbm8gbG9uZ2VyIHZhbGlk
LCBpZCA9ICUiIFBSSXU2NCwgc3luY1JlcXVlc3RJRCk7CiAgICAgICAgICAgICBkaWRSZWNlaXZl
U3luY1JlcGx5KHNlbmRTeW5jT3B0aW9ucyk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgfQpAQCAtNTc1LDcgKzU3Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBD
b25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5bmNSZXF1ZXN0SUQsIHN0CiAg
ICAgICAgIHRpbWVkT3V0ID0gIVN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLndhaXQoYWJz
b2x1dGVUaW1lKTsKICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19FUlJPUigiQ29ubmVjdGlvbjo6
d2FpdEZvclN5bmNSZXBseTogVGltZWQtb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHJlcGx5LCBpZCA9
ICUiIFBSSXU2NCwgc3luY1JlcXVlc3RJRCk7CisgICAgUkVMRUFTRV9MT0dfRVJST1IoSVBDLCAi
Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseTogVGltZWQtb3V0IHdoaWxlIHdhaXRpbmcgZm9y
IHJlcGx5LCBpZCA9ICUiIFBSSXU2NCwgc3luY1JlcXVlc3RJRCk7CiAgICAgZGlkUmVjZWl2ZVN5
bmNSZXBseShzZW5kU3luY09wdGlvbnMpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAppbmRleCBlMzNhNzYwODgyM2I0
MDJlMjc0YWEyMjBiMzVkNjRmN2IyODk3M2NiLi5jNTViNmNhZTFhZTAyMDg2Y2RjYWQzZjY4MDY5
MGI4N2I4ODFlZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dJbml0
aWFsaXphdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0
aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0zNiw0ICszNiw0IEBAIFN0cmlu
ZyBsb2dMZXZlbFN0cmluZygpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8v
ICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19E
SVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcAppbmRleCA4YzFlMDc4NzAyZjg4
YWFmYjRiY2Y4NWQyNmRkMDA3NjI2NTQzOTQ4Li5kOGY2ZWIyZTIzZTNiY2U3OGQ2YmViYzM4MmUy
MDM0YWVjNWRlM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcApAQCAtMzAsMjAg
KzMwLDE4IEBACiAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpZiAhTE9HX0RJ
U0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAotI2Rl
ZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSkgXAotICAgIFdURkxvZ0NoYW5uZWwgSk9JTl9M
T0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpID0geyBXVEZM
b2dDaGFubmVsT2ZmLCAjbmFtZSB9OwotV0VCS0lUMl9MT0dfQ0hBTk5FTFMoREVGSU5FX0xPR19D
SEFOTkVMKQorI2RlZmluZSBERUZJTkVfV0VCS0lUMl9MT0dfQ0hBTk5FTChuYW1lKSBERUZJTkVf
TE9HX0NIQU5ORUwobmFtZSwgImNvbS5hcHBsZS5XZWJLaXQiKQorV0VCS0lUMl9MT0dfQ0hBTk5F
TFMoREVGSU5FX1dFQktJVDJfTE9HX0NIQU5ORUwpCiAKLSNkZWZpbmUgTE9HX0NIQU5ORUxfQURE
UkVTUyhuYW1lKSAgJkpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJF
RklYLCBuYW1lKSwKIHN0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFubmVsc1tdID0gewogICAg
IFdFQktJVDJfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1MpCiB9OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9IFdURl9BUlJBWV9M
RU5HVEgobG9nQ2hhbm5lbHMpOworc3RhdGljIGNvbnN0IHNpemVfdCBsb2dDaGFubmVsQ291bnQg
PSBXVEZfQVJSQVlfTEVOR1RIKGxvZ0NoYW5uZWxzKTsKIAogdm9pZCBpbml0aWFsaXplTG9nQ2hh
bm5lbHNJZk5lY2Vzc2FyeSgpCiB7CkBAIC02Miw0ICs2MCw0IEBAIHZvaWQgaW5pdGlhbGl6ZUxv
Z0NoYW5uZWxzSWZOZWNlc3NhcnkoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlm
IC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xP
R19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDg5MGZmMjIwZGYyZTc3
OTYxMDBiNTc3MmU1MjNmNDZmODk3ODQ5OWYuLmIyYzExYTJhYmMyMGM4YjQ0ODkxYzlmZjRiYjcy
ZGU1NjkwNTRjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTMxLDcgKzMxLDcg
QEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTE9HX0NIQU5ORUxfUFJFRklYCiAjZGVmaW5lIExP
R19DSEFOTkVMX1BSRUZJWCBXZWJLaXQyTG9nCkBAIC00NCwxOSArNDQsMjIgQEAgZXh0ZXJuICJD
IiB7CiAjZGVmaW5lIFdFQktJVDJfTE9HX0NIQU5ORUxTKE0pIFwKICAgICBNKENvbnRleHRNZW51
KSBcCiAgICAgTShHYW1lcGFkKSBcCi0gICAgTShJREIpIFwKICAgICBNKEljb25EYXRhYmFzZSkg
XAorICAgIE0oSURCKSBcCiAgICAgTShJbmRleGVkREIpIFwKICAgICBNKEluc3BlY3RvclNlcnZl
cikgXAorICAgIE0oSVBDKSBcCiAgICAgTShLZXlIYW5kbGluZykgXAorICAgIE0oTGF5ZXJzKSBc
CiAgICAgTShOZXR3b3JrKSBcCiAgICAgTShOZXR3b3JrQ2FjaGUpIFwKLSAgICBNKE5ldHdvcmtD
YWNoZVN0b3JhZ2UpIFwKICAgICBNKE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUHJlbG9hZGluZykg
XAotICAgIE0oTmV0d29ya1Nlc3Npb24pIFwKKyAgICBNKE5ldHdvcmtDYWNoZVN0b3JhZ2UpIFwK
ICAgICBNKE5ldHdvcmtTY2hlZHVsaW5nKSBcCisgICAgTShOZXR3b3JrU2Vzc2lvbikgXAogICAg
IE0oUGx1Z2lucykgXAogICAgIE0oUHJpbnRpbmcpIFwKKyAgICBNKFByb2Nlc3NTdXNwZW5zaW9u
KSBcCiAgICAgTShSZW1vdGVMYXllclRyZWUpIFwKICAgICBNKFJlc2l6ZSkgXAogICAgIE0oU2Vs
ZWN0aW9uKSBcCkBAIC02Niw5ICs2OSw2IEBAIGV4dGVybiAiQyIgewogICAgIE0oVmlld0dlc3R1
cmVzKSBcCiAgICAgTShWaXNpYmxlUmVjdHMpIFwKIAotI2RlZmluZSBERUNMQVJFX0xPR19DSEFO
TkVMKG5hbWUpIFwKLSAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBKT0lOX0xPR19DSEFOTkVMX1dJ
VEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSk7Ci0KIFdFQktJVDJfTE9HX0NIQU5O
RUxTKERFQ0xBUkVfTE9HX0NIQU5ORUwpCiAKICN1bmRlZiBERUNMQVJFX0xPR19DSEFOTkVMCkBA
IC03Nyw2ICs3Nyw2IEBAIFdFQktJVDJfTE9HX0NIQU5ORUxTKERFQ0xBUkVfTE9HX0NIQU5ORUwp
CiB9CiAjZW5kaWYKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJ
U0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjZW5kaWYgLy8gTG9nZ2luZ19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9mb3VuZGF0aW9uL0xvZ2dpbmdGb3Vu
ZGF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZm91bmRhdGlvbi9Mb2dnaW5nRm91
bmRhdGlvbi5tbQppbmRleCBiY2I1ZmUxNGQ4M2VjMjk0N2NiOWYzZTgyMjcwZmVhNDFmNzJiYTMy
Li4yNmYzNzMxYTYyOGUxZmUyNmRiNmIwZWJmNmE5YjE3NTc2Y2RmM2U2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9mb3VuZGF0aW9uL0xvZ2dpbmdGb3VuZGF0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2ZvdW5kYXRpb24vTG9nZ2luZ0ZvdW5kYXRpb24u
bW0KQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSNpZiAhTE9HX0RJ
U0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogc3Rh
dGljIE5TU3RyaW5nICogY29uc3QgZGVmYXVsdHNEb21haW4gPSBAIldlYktpdDJMb2dnaW5nIjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAppbmRleCA2
YTU1ZDQwMjRjYTA3ZTkzOTNhNGIyM2UyMTBhYTE2MWY3MmQ1MTg2Li44MDE0YTVkY2ZhOGQwYWRk
NmFmZDZjMTQ4MjAwOGNmMGYyMjZiYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91
bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMjksMTMgKzI5LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiB7CiAgICAgcmV0dXJuIGdl
dGVudigiV0VCS0lUX0RFQlVHIik7CiB9CiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5k
aWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCA3YjFjMzRhY2IyZGExNmZiNzEzMzdh
MTkzYjgwOGJjNWJmODA5ZTIzLi4xNzU3ODlmYjlhZTcxM2YxNmVlZWRiZmFiZTAwZDZmMzNlNjNj
ZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgogCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlIDx1bmlzdGQuaD4KIApAQCAtNTMsNyArNTQsNyBAQCBzdGF0aWMg
dm9pZCBkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5lY3Rpb24qKQogICAg
ICAgICAvLyBXZSB1c2UgX2V4aXQgaGVyZSBzaW5jZSB0aGUgd2F0Y2hkb2cgY2FsbGJhY2sgaXMg
Y2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQgYW5kIHdlIGRvbid0IHdhbnQKICAgICAgICAgLy8g
Z2xvYmFsIGRlc3RydWN0b3JzIG9yIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBjYWxsZWQgZnJvbSB0
aGlzIHRocmVhZCB3aGlsZSB0aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQogICAgICAgICAvLyBkb2lu
ZyBpdHMgdGhpbmcuCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJFeGl0aW5nIHByb2Nlc3Mg
ZWFybHkgZHVlIHRvIHVuYWNrbm93bGVkZ2VkIGNsb3NlZC1jb25uZWN0aW9uIik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKElQQywgIkV4aXRpbmcgcHJvY2VzcyBlYXJseSBkdWUgdG8gdW5h
Y2tub3dsZWRnZWQgY2xvc2VkLWNvbm5lY3Rpb24iKTsKICAgICAgICAgX2V4aXQoRVhJVF9GQUlM
VVJFKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJL
aXQySW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2l0MkluaXRpYWxp
emUuY3BwCmluZGV4IDZlODFkOGFhMzY3MDcyMDRhMTVjNDI4MmQwN2Y4ZmU2OGIwN2EzMGUuLjc1
YjI0ZWM4NTgxNTRlNGQ4ZWFiMTYyZDg1NGJiNGNiNTE3MjBkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcApAQCAtNTQsMTAgKzU0LDEwIEBAIHZvaWQg
SW5pdGlhbGl6ZVdlYktpdDIoKQogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKICAg
ICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAotI2lmICFMT0dfRElTQUJMRUQK
KyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFdlYkNvcmU6
OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CiAgICAgV2ViS2l0Ojppbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNl
bmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IDFmNGJiMzQ3N2FkMTBlZjJkNzM2YmI5YWU5MjlmMGFh
NGFmMjczN2UuLjE4MDc3N2YxNTc0Mzk4ZDcwOWZlOTYxY2NmMGVkOTI1OTdhOTJkNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpA
QCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiQVBJVVJMLmgiCiAjaW1wb3J0ICJBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENo
ZWNrZXIuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25BY3Rpb25E
YXRhLmgiCiAjaW1wb3J0ICJQYWdlTG9hZFN0YXRlLmgiCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJk
TGlzdEludGVybmFsLmgiCkBAIC04MjUsNyArODI2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6
OndpbGxDaGFuZ2VJc0xvYWRpbmcoKQogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgTmF2aWdhdGlv
blN0YXRlOjpyZWxlYXNlTmV0d29ya0FjdGl2aXR5VG9rZW4oKQogewotICAgIFJFTEVBU0VfTE9H
X0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgVUlQ
cm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSBwYWdl
IGxvYWQgY29tcGxldGVkIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYobV93ZWJWaWV3LT5f
cGFnZS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
VUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSBw
YWdlIGxvYWQgY29tcGxldGVkIiwgdGhpcyk7CiAgICAgQVNTRVJUKG1fYWN0aXZpdHlUb2tlbik7
CiAgICAgbV9hY3Rpdml0eVRva2VuID0gbnVsbHB0cjsKIH0KQEAgLTgzOCw3ICs4MzksNyBAQCB2
b2lkIE5hdmlnYXRpb25TdGF0ZTo6ZGlkQ2hhbmdlSXNMb2FkaW5nKCkKICAgICAgICAgaWYgKG1f
cmVsZWFzZUFjdGl2aXR5VGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIG1fcmVsZWFzZUFj
dGl2aXR5VGltZXIuc3RvcCgpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAg
LSBVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBhIHBh
Z2UgbG9hZCBzdGFydGVkIiwgdGhpcyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRihtX3dl
YlZpZXctPl9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNp
b24sICIlcCAtIFVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNh
dXNlIGEgcGFnZSBsb2FkIHN0YXJ0ZWQiLCB0aGlzKTsKICAgICAgICAgICAgIEFTU0VSVCghbV9h
Y3Rpdml0eVRva2VuKTsKICAgICAgICAgICAgIG1fYWN0aXZpdHlUb2tlbiA9IG1fd2ViVmlldy0+
X3BhZ2UtPnByb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGNiMzA0YzQ0OTljMTkwOGQ1MWM0NWI1MDJi
OWNjMjQzYzFmZTQ3ZWQuLjJlNWQ3YmM0ZjBiODJmNzg5NDdjMDI3NTgwYjI1NDMwMTVjOTcyZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKQEAgLTEyNSwxMSArMTI2LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAg
YXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAg
UkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlz
KTsKKyAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2lu
ZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBm
ZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIG1fcGVuZGluZ0ZldGNoV2Vic2l0
ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwgY29tcGxldGlvbkhh
bmRsZXIsIHNlc3Npb25JRF0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZSh3ZWJzaXRlRGF0YSkpOwotICAgICAgICBSRUxFQVNFX0xP
R19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQ
cm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0
aGUgTmV0d29yayBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgcmVs
ZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNz
IGlzIGRvbmUgZmV0Y2hpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CiAgICAgfSk7CiAKICAgICBz
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RmV0Y2hXZWJzaXRlRGF0YShzZXNzaW9uSUQs
IGRhdGFUeXBlcywgZmV0Y2hPcHRpb25zLCBjYWxsYmFja0lEKSwgMCk7CkBAIC0xMzksMTEgKzE0
MCwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNv
cmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvbgogewogICAgIGF1dG8gY2FsbGJhY2tJRCA9
IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwogICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNr
Z3JvdW5kQWN0aXZpdHlUb2tlbigpOwotICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtp
bmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMg
ZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lv
bklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0g
TmV0d29ya1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNh
dXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7
CiAKICAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJ
RCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklEXSB7CiAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5p
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyBy
ZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nl
c3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3Jv
dW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBkZWxldGlu
ZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6RGVsZXRlV2Vic2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlm
aWVkU2luY2UsIGNhbGxiYWNrSUQpLCAwKTsKIH0KQEAgLTE1NCwxMSArMTU1LDExIEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvCiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVD
YWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rp
dml0eVRva2VuKCk7Ci0gICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tn
cm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkZWxldGluZyBX
ZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9H
X0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNp
b24sICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3Nl
cnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0
YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CiAKICAgICBtX3BlbmRpbmdEZWxldGVXZWJz
aXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwg
Y29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwotICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRvbmUgZGVsZXRp
bmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdpbnMiLCB0aGlzKTsKKyAgICAgICAgUkVM
RUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNr
Z3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBkZWxl
dGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOwogICAgIH0pOwog
CiAgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKQEAgLTQwMSwxMiAr
NDAyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUo
QXNzZXJ0aW9uU3RhdGUpCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xv
Y2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiB7CiAgICAgaWYgKCFpc0hvbGRp
bmdMb2NrZWRGaWxlcykgewotICAgICAgICBSRUxFQVNFX0xPRygiVUlQcm9jZXNzIGlzIHJlbGVh
c2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBp
cyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKKyAgICAgICAgUkVMRUFTRV9MT0co
UHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBh
c3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xkaW5n
IGxvY2tlZCBmaWxlcyIpOwogICAgICAgICBtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzID0g
bnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoIW1fdG9rZW5Gb3JIb2xk
aW5nTG9ja2VkRmlsZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coIlVJUHJvY2VzcyBpcyB0YWtp
bmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMg
aG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVz
ZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7CiAgICAgICAg
IG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbigpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9j
ZXNzVGhyb3R0bGVyLmNwcAppbmRleCA1N2JmYzYyNzEwNTgwZGNhZTMyZGNhZTEwOGIyYjViZjNk
NjI0NDYzLi43N2IwYjhjNzFmODhmOGJjMjA0OTAyYmY0NmEyNmMzNDg1YTM3NTFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5o
IgogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXJDbGll
bnQuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01Nyw3ICs1OCw3IEBAIHZvaWQgUHJvY2Vz
c1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkKICAgICBtX3N1c3BlbmRUaW1lci5zdG9w
KCk7CiAgICAgaWYgKG1fYXNzZXJ0aW9uKSB7CiAgICAgICAgIGlmIChtX2Fzc2VydGlvbi0+c3Rh
dGUoKSAhPSBhc3NlcnRpb25TdGF0ZSgpKQotICAgICAgICAgICAgUkVMRUFTRV9MT0coIiVwIC0g
UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkgdXBkYXRpbmcgcHJvY2VzcyBh
c3NlcnRpb24gc3RhdGUgdG8gJXUgKGZvcmVncm91bmRBY3Rpdml0aWVzOiAlbHUsIGJhY2tncm91
bmRBY3Rpdml0aWVzOiAlbHUpIiwgdGhpcywgYXNzZXJ0aW9uU3RhdGUoKSwgbV9mb3JlZ3JvdW5k
Q291bnRlci52YWx1ZSgpLCBtX2JhY2tncm91bmRDb3VudGVyLnZhbHVlKCkpOworICAgICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NUaHJvdHRsZXI6
OnVwZGF0ZUFzc2VydGlvbk5vdygpIHVwZGF0aW5nIHByb2Nlc3MgYXNzZXJ0aW9uIHN0YXRlIHRv
ICV1IChmb3JlZ3JvdW5kQWN0aXZpdGllczogJWx1LCBiYWNrZ3JvdW5kQWN0aXZpdGllczogJWx1
KSIsIHRoaXMsIGFzc2VydGlvblN0YXRlKCksIG1fZm9yZWdyb3VuZENvdW50ZXIudmFsdWUoKSwg
bV9iYWNrZ3JvdW5kQ291bnRlci52YWx1ZSgpKTsKICAgICAgICAgbV9hc3NlcnRpb24tPnNldFN0
YXRlKGFzc2VydGlvblN0YXRlKCkpOwogICAgICAgICBtX3Byb2Nlc3MuZGlkU2V0QXNzZXJ0aW9u
U3RhdGUoYXNzZXJ0aW9uU3RhdGUoKSk7CiAgICAgfQpAQCAtNzAsNyArNzEsNyBAQCB2b2lkIFBy
b2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbigpCiAgICAgLy8gaW4gdGhlIGJhY2tncm91
bmQgZm9yIHRvbyBsb25nLgogICAgIGlmIChtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+c3Rh
dGUoKSAhPSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkICYmICFtX2ZvcmVncm91bmRDb3VudGVy
LnZhbHVlKCkgJiYgIW1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKSkgewogICAgICAgICArK21f
c3VzcGVuZE1lc3NhZ2VDb3VudDsKLSAgICAgICAgUkVMRUFTRV9MT0coIiVwIC0gUHJvY2Vzc1Ro
cm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkgc2VuZGluZyBQcmVwYXJlVG9TdXNwZW5kIElQQyIs
IHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJv
Y2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkgc2VuZGluZyBQcmVwYXJlVG9TdXNwZW5k
IElQQyIsIHRoaXMpOwogICAgICAgICBtX3Byb2Nlc3Muc2VuZFByZXBhcmVUb1N1c3BlbmQoKTsK
ICAgICAgICAgbV9zdXNwZW5kVGltZXIuc3RhcnRPbmVTaG90KHByb2Nlc3NTdXNwZW5zaW9uVGlt
ZW91dCk7CiAgICAgICAgIG1fYXNzZXJ0aW9uLT5zZXRTdGF0ZShBc3NlcnRpb25TdGF0ZTo6QmFj
a2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDZkYWNiOTVlMjczMTQxYjI4ZmQwZDFkMDRmNWZjYTBhZjM3M2QxOTIuLjQxMTFhZmQzNDdmMDA4
NDBlZTQ3MjkxYTVjYmE3Mzc4NTQ2ZWZhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAKICNkZWZpbmUgTUVTU0FHRV9DSEVD
Syhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1fcHJvY2Vzcy0+Y29u
bmVjdGlvbigpKQogI2RlZmluZSBNRVNTQUdFX0NIRUNLX1VSTCh1cmwpIE1FU1NBR0VfQ0hFQ0tf
QkFTRShtX3Byb2Nlc3MtPmNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyh1cmwpLCBtX3By
b2Nlc3MtPmNvbm5lY3Rpb24oKSkKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4u
LikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19f
KQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCBfX1ZBX0FSR1NfXykK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGU1NmNmMWVmZWQ3OTg1MzZiZDhhZmY1OTZmNTQ2OGM0
ZjhkOWY0YTQuLjc0NzZhMDM3ZmJiMDAzNTg2NDZjYTFmMWQ5ZTAzODhjMjhiNTI4MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjA3LDEwICsy
MDcsMTAgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogCiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNl
cnZlcih0aGlzLCBsYW5ndWFnZUNoYW5nZWQpOwogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFM
T0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViQ29yZTo6aW5pdGlh
bGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dD
aGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0jZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8v
ICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgcHJvY2Vzc1Bvb2xDb3VudGVyLmluY3JlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxNmVjMjhlZWJhOGQ5MGY5NGI1MWRj
OGU0MGU4YmM1ZmIzNzExZmYzLi41YmE5ZThmY2Q3ZmIzZTYxYzE4NDFjMjNmYzlkNjAzOGY0ZjJm
ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQ
cm94eU1hcC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvU3Rv
cmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlRleHRD
aGVja2VyLmgiCkBAIC03NTMsMTEgKzc1NCwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0
Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdAog
CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlQ2FsbGJhY2tJRCgpOwogICAgIGF1
dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwotICAgIFJF
TEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0g
V2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ug
dGhlIFdlYiBwcm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgIFJF
TEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vz
c1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5k
IGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBmZXRjaGluZyBXZWJzaXRlIGRh
dGEiLCB0aGlzKTsKIAogICAgIG1fcGVuZGluZ0ZldGNoV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRk
KGNhbGxiYWNrSUQsIFt0aGlzLCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0o
V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZSh3ZWJzaXRlRGF0YSkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyByZWxlYXNp
bmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkb25l
IGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihz
ZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0
aGlzKTsKICAgICB9KTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkZldGNoV2Vi
c2l0ZURhdGEoc2Vzc2lvbklELCBkYXRhVHlwZXMsIGNhbGxiYWNrSUQpLCAwKTsKQEAgLTc2OSwx
MSArNzcwLDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhCiAKICAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gZ2VuZXJhdGVDYWxsYmFja0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRocm90dGxl
cigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0gICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lv
bklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMg
dGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMg
ZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lv
bklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0g
V2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ug
dGhlIFdlYiBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOwogCiAgICAg
bV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFDYWxsYmFja3MuYWRkKGNhbGxiYWNrSUQsIFt0aGlz
LCB0b2tlbiwgY29tcGxldGlvbkhhbmRsZXIsIHNlc3Npb25JRF0gewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBi
YWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkb25lIGRlbGV0
aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9u
SUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBX
ZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVz
ZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsK
ICAgICB9KTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0
YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJhY2tJRCksIDApOwog
fQpAQCAtNzg0LDExICs3ODUsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQKIAogICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAgICBhdXRvIHRva2Vu
ID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAgICBSRUxFQVNFX0xP
R19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFdlYlByb2Nl
c3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIg
cHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRo
aXMpOworICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eSBpcyB0YWtpbmcg
YSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBpcyBkZWxldGlu
ZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOwogCiAgICAgbV9wZW5k
aW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lELCBb
dGhpcywgdG9rZW4sIGNvbXBsZXRpb25IYW5kbGVyLCBzZXNzaW9uSURdIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5n
IGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBk
ZWxldGluZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOworICAgICAg
ICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFj
a2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGlu
ZyBXZWJzaXRlIGRhdGEgZm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOwogICAgIH0pOwogCiAg
ICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKQEAgLTk5MSw3ICs5OTIs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9u
U3RhdGUgc3RhdGUpCiAKICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgY2FzZSBBc3NlcnRpb25T
dGF0ZTo6U3VzcGVuZGVkOgotICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBXZWJQcm9jZXNzUHJv
eHk6OmRpZFNldEFzc2VydGlvblN0YXRlKFN1c3BlbmRlZCkgcmVsZWFzZSBhbGwgYXNzZXJ0aW9u
cyBmb3IgbmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nl
c3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRl
KFN1c3BlbmRlZCkgcmVsZWFzZSBhbGwgYXNzZXJ0aW9ucyBmb3IgbmV0d29yayBwcm9jZXNzIiwg
dGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3MgPSBudWxs
cHRyOwogICAgICAgICBtX2JhY2tncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gbnVsbHB0
cjsKICAgICAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQpAQCAtOTk5
LDEzICsxMDAwLDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0
ZShBc3NlcnRpb25TdGF0ZSBzdGF0ZSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFzc2Vy
dGlvblN0YXRlOjpCYWNrZ3JvdW5kOgotICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBXZWJQcm9j
ZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEJhY2tncm91bmQpIHRha2luZyBiYWNrZ3Jv
dW5kIGFzc2VydGlvbiBmb3IgbmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CisgICAgICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFz
c2VydGlvblN0YXRlKEJhY2tncm91bmQpIHRha2luZyBiYWNrZ3JvdW5kIGFzc2VydGlvbiBmb3Ig
bmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fYmFja2dyb3VuZFRva2VuRm9yTmV0
d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbCgpLmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGhyb3R0
bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICAgICAgbV9mb3JlZ3JvdW5kVG9r
ZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFrOwogICAgIAogICAg
IGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQ6Ci0gICAgICAgIFJFTEVBU0VfTE9HKCIl
cCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoRm9yZWdyb3VuZCkgdGFr
aW5nIGZvcmVncm91bmQgYXNzZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94
eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoRm9yZWdyb3VuZCkgdGFraW5nIGZvcmVncm91bmQgYXNz
ZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKICAgICAgICAgbV9mb3JlZ3JvdW5k
VG9rZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3MoKS50aHJvdHRsZXIoKS5mb3JlZ3JvdW5kQWN0aXZpdHlUb2tlbigpOwogICAgICAgICBtX2Jh
Y2tncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gbnVsbHB0cjsKICAgICAgICAgZm9yIChh
dXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQpAQCAtMTAyMiwxMiArMTAyMywxMiBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUg
c3RhdGUpCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9v
bCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKIHsKICAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVz
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKCJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIG5vIGxvbmdl
ciBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIlVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBi
ZWNhdXNlIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgbm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2Vk
IGZpbGVzIik7CiAgICAgICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRy
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICghbV90b2tlbkZvckhvbGRpbmdMb2Nr
ZWRGaWxlcykgewotICAgICAgICBSRUxFQVNFX0xPRygiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xk
aW5nIGxvY2tlZCBmaWxlcyIpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIlVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRo
ZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKICAgICAgICAg
bV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rp
dml0eVRva2VuKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IDg4MjQ1NWYzN2NiNTYxNmU3NDA1ODNj
YzMwMzE5NDM3NGQ4ZmNiYjkuLjZiMjI0MDE3MWYwMzFhYjAzY2MzNzExOTRiNmJhM2RkODUzNGQ4
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2Vy
dGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3Nl
cnRpb25JT1MubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBv
cnQgIkFzc2VydGlvblNlcnZpY2VzU1BJLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KQEAgLTEwNSw3ICsxMDYsNyBAQCAtICh2b2lkKV91cGRhdGVCYWNr
Z3JvdW5kVGFzawogewogICAgIGlmIChfbmVlZHNUb1J1bkluQmFja2dyb3VuZENvdW50ICYmIF9i
YWNrZ3JvdW5kVGFzayA9PSBVSUJhY2tncm91bmRUYXNrSW52YWxpZCkgewogICAgICAgICBfYmFj
a2dyb3VuZFRhc2sgPSBbW1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGJlZ2luQmFj
a2dyb3VuZFRhc2tXaXRoTmFtZTpAImNvbS5hcHBsZS5XZWJLaXQuUHJvY2Vzc0Fzc2VydGlvbiIg
ZXhwaXJhdGlvbkhhbmRsZXI6XnsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJCYWNr
Z3JvdW5kIHRhc2sgZXhwaXJlZCB3aGlsZSBob2xkaW5nIFdlYktpdCBQcm9jZXNzQXNzZXJ0aW9u
IChpc01haW5UaHJlYWQ/ICVkKS4iLCBSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIkJhY2tncm91bmQgdGFzayBleHBp
cmVkIHdoaWxlIGhvbGRpbmcgV2ViS2l0IFByb2Nlc3NBc3NlcnRpb24gKGlzTWFpblRocmVhZD8g
JWQpLiIsIFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIC8vIFRoZSBleHBpcmF0aW9u
IGhhbmRsZXIgZ2V0cyBjYWxsZWQgb24gYSBub24tbWFpbiB0aHJlYWQgd2hlbiB0aGUgdW5kZXJs
eWluZyBhc3NlcnRpb24gY291bGQgbm90IGJlIHRha2VuIChyZGFyOi8vcHJvYmxlbS8yNzI3ODQx
OSkuCiAgICAgICAgICAgICBpZiAoUnVuTG9vcDo6aXNNYWluKCkpCiAgICAgICAgICAgICAgICAg
W3NlbGYgX25vdGlmeUNsaWVudHNPZkltbWluZW50U3VzcGVuc2lvbl07CkBAIC0xNjUsNyArMTY2
LDcgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIEFzc2Vy
dGlvblN0YXRlIGFzc2VydGlvblN0YXRlLCBGdW4KICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpOwogICAgIEJLU1Byb2Nlc3NBc3NlcnRpb25BY3F1aXNpdGlvbkhhbmRsZXIgaGFu
ZGxlciA9IF4oQk9PTCBhY3F1aXJlZCkgewogICAgICAgICBpZiAoIWFjcXVpcmVkKSB7Ci0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUigiVW5hYmxlIHRvIGFjcXVpcmUgYXNzZXJ0aW9uIGZv
ciBwcm9jZXNzICVkIiwgcGlkKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nl
c3NTdXNwZW5zaW9uLCAiVW5hYmxlIHRvIGFjcXVpcmUgYXNzZXJ0aW9uIGZvciBwcm9jZXNzICVk
IiwgcGlkKTsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAg
ZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKICAgICAgICAgICAg
ICAgICBpZiAod2Vha1RoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBhZmNjZDFlNGQ3MTAwNjYyNzMz
MmJmNTM4Y2JkMzY0NDM4ODkxZGEzLi5hN2M3ODc3ZWYxZjYwYTVhNWI5ODYzNjJiZjNiNmFhOThm
ZmZiNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTU3LDggKzU3LDggQEAKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVB
U0VfTE9HX0lGKGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
Li4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYobG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGxv
YWRQYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29y
aywgX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCA5YzAwOTQzOGNhOTUzMjIzMjg4MjM3ODkxYWNkZjI3NzczMWQ3YzRlLi43ZmNhMmY5M2Q1NWVh
NzU2NWQ0YTRkZWI4MjQ2YTU1NTg5ODE5YzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQyLDcgKzQy
LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVB
U0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1Nf
XykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyMmI4MDc4MGVjOTBhMjg1YzkyMmYyZGU1MGEzOGFm
N2QzMGQ4NDA2Li5mNjg3NGQzMGM4YjFhOTQ5NDg2MTcwOGY1ODgzYmQzNjZkZDc4ZTQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yNTUs
OCArMjU1LDggQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBwYWdlU2Nyb2xsSHlzdGVyZXNpc1NlY29u
ZHMgPSAwLjM7CiBzdGF0aWMgY29uc3Qgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbml0aWFs
TGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCB7IDIwIH07CiBzdGF0aWMgY29uc3Qgc3RkOjpj
aHJvbm86OnNlY29uZHMgbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwgeyAyIH07
CiAKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKGlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBMYXll
cnMsIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKC4u
LikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIExheWVy
cywgX19WQV9BUkdTX18pCiAKIGNsYXNzIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciB7CiBw
dWJsaWM6CkBAIC0yMDY0LDcgKzIwNjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmxheWVyVm9sYXRpbGl0
eVRpbWVyRmlyZWQoKQogICAgIGJvb2wgZGlkU3VjY2VlZCA9IG1hcmtMYXllcnNWb2xhdGlsZUlt
bWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwogICAgIGlmIChkaWRTdWNjZWVkIHx8IG5ld0ludGVydmFs
ID4gbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwpIHsKICAgICAgICAgbV9sYXll
clZvbGF0aWxpdHlUaW1lci5zdG9wKCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
IiVwIC0gV2ViUGFnZSAtIEF0dGVtcHRlZCB0byBtYXJrIHN1cmZhY2VzIGFzIHZvbGF0aWxlLCBz
dWNjZXNzPyAlZCIsIHRoaXMsIGRpZFN1Y2NlZWQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCIlcCAtIFdlYlBhZ2UgLSBBdHRlbXB0ZWQgdG8gbWFyayBsYXllcnMgYXMgdm9sYXRp
bGUsIHN1Y2Nlc3M/ICVkIiwgdGhpcywgZGlkU3VjY2VlZCk7CiAgICAgICAgIGNhbGxWb2xhdGls
aXR5Q29tcGxldGlvbkhhbmRsZXJzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAxNGIzYTE0NTRjNjU5OGQ2NDc2
NWIzMGQwNWVhNWJlYmEyZjQ3N2JmLi5hZDkxZDlhMTQ1ZjgwZGM2NzkzOTEyMjljMzk1ZmYyZDhh
MGRkZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTEy
NzcsMTAgKzEyNzcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5k
KFNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kIHNob3UKICAgICBzZXRBbGxMYXll
clRyZWVTdGF0ZXNGcm96ZW4odHJ1ZSk7CiAKICAgICBtYXJrQWxsTGF5ZXJzVm9sYXRpbGUoW3Ro
aXMsIHNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kXSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIFN1Y2Nlc3Nm
dWx5IG1hcmtlZCBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlIiwgdGhpcyk7CisgICAgICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjptYXJrQWxsTGF5ZXJz
Vm9sYXRpbGUoKSBTdWNjZXNzZnVseSBtYXJrZWQgYWxsIGxheWVycyBhcyB2b2xhdGlsZSIsIHRo
aXMpOwogCiAgICAgICAgIGlmIChzaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCA9
PSBTaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZDo6WWVzKSB7Ci0gICAgICAgICAg
ICBSRUxFQVNFX0xPRygiJXAgLSBXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKCkg
U2VuZGluZyBQcm9jZXNzUmVhZHlUb1N1c3BlbmQgSVBDIG1lc3NhZ2UiLCB0aGlzKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjph
Y3R1YWxQcmVwYXJlVG9TdXNwZW5kKCkgU2VuZGluZyBQcm9jZXNzUmVhZHlUb1N1c3BlbmQgSVBD
IG1lc3NhZ2UiLCB0aGlzKTsKICAgICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCks
IDApOwogICAgICAgICB9CiAgICAgfSk7CkBAIC0xMjk2LDcgKzEyOTYsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoYm9vbCYgaGFuZGxlZCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OnBy
b2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1p
bmVudGx5KCkiLCB0aGlzKTsKICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5jbG9zZUFs
bERhdGFiYXNlcyhDdXJyZW50UXVlcnlCZWhhdmlvcjo6SW50ZXJydXB0KTsKICAgICBhY3R1YWxQ
cmVwYXJlVG9TdXNwZW5kKFNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kOjpObyk7
CiAgICAgaGFuZGxlZCA9IHRydWU7CkBAIC0xMzA0LDEzICsxMzA0LDEzIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShib29sJiBoYW5kbGVkKQogCiB2b2lk
IFdlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKQogewotICAgIFJFTEVBU0VfTE9HKCIlcCAt
IFdlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCki
LCB0aGlzKTsKICAgICBhY3R1YWxQcmVwYXJlVG9TdXNwZW5kKFNob3VsZEFja25vd2xlZGdlV2hl
blJlYWR5VG9TdXNwZW5kOjpZZXMpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBh
cmVUb1N1c3BlbmQoKQogewotICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OmNhbmNl
bFByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlz
KTsKICAgICBzZXRBbGxMYXllclRyZWVTdGF0ZXNGcm96ZW4oZmFsc2UpOwogCiAgICAgLy8gSWYg
d2UndmUgYWxyZWFkeSBmaW5pc2hlZCBjbGVhbmluZyB1cCBhbmQgc2VudCBQcm9jZXNzUmVhZHlU
b1N1c3BlbmQsIHdlCkBAIC0xMzIwLDEzICsxMzIwLDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2Fu
Y2VsUHJlcGFyZVRvU3VzcGVuZCgpCiAKICAgICBjYW5jZWxNYXJrQWxsTGF5ZXJzVm9sYXRpbGUo
KTsKIAotICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1
c3BlbmQoKSBTZW5kaW5nIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uIElQQyBtZXNzYWdlIiwg
dGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nl
c3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5nIERpZENhbmNlbFByb2Nlc3NTdXNw
ZW5zaW9uIElQQyBtZXNzYWdlIiwgdGhpcyk7CiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRDYW5jZWxQcm9jZXNzU3VzcGVu
c2lvbigpLCAwKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjptYXJrQWxsTGF5ZXJzVm9sYXRpbGUo
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVBU0Vf
TE9HKCIlcCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIiwgdGhpcyk7Cisg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6Om1hcmtB
bGxMYXllcnNWb2xhdGlsZSgpIiwgdGhpcyk7CiAgICAgbV9wYWdlc01hcmtpbmdMYXllcnNBc1Zv
bGF0aWxlID0gbV9wYWdlTWFwLnNpemUoKTsKICAgICBpZiAoIW1fcGFnZXNNYXJraW5nTGF5ZXJz
QXNWb2xhdGlsZSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMTM1OSw3ICsx
MzU5LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRBbGxMYXllclRyZWVTdGF0ZXNGcm96ZW4oYm9v
bCBmcm96ZW4pCiAgICAgCiB2b2lkIFdlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQogewot
ICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRo
aXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNz
Ojpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsKIAogICAgIGNhbmNlbE1hcmtBbGxMYXllcnNW
b2xhdGlsZSgpOwogICAgIHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbihmYWxzZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287565</attachid>
            <date>2016-08-31 16:43:57 -0700</date>
            <delta_ts>2016-08-31 18:35:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160969-20160831164145.patch</filename>
            <type>text/plain</type>
            <size>68490</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlOTAwMWM4YzBmYWMxYjIwYTk4MGVl
OTM0NTk3OGYwZGRiOGE1OGUuLmUwMjEwYWYzOGIwZjc5MDE2MGYyYWMwYTVhZDljNDQzNWY0Zjg4
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZv
ciBvc19sb2cgc28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYXR0YWNoaW5nIGEgc3Vi
c3lzdGVtIGFuZCBjYXRlZ29yeSB3aGVuIGxvZ2dpbmcgdmlhCisgICAgICAgIHRoZSBSRUxFQVNF
X0xPRyBtYWNyb3MuIFRoaXMgc3VwcG9ydCBpcyBwcm92aWRlZCBieSBhZGRpbmcgc3Vic3lzdGVt
CisgICAgICAgIGFuZCBjYXRlZ29yeSBpbmZvcm1hdGlvbiB0byBXVEZMb2dDaGFubmVsLiBBbiBv
c19sb2dfdCBvYmplY3QgaXMgdGhlbgorICAgICAgICBjcmVhdGVkIHRvIGVuYWNwc3VsYXRlIHRo
YXQgaW5mb3JtYXRpb24uIFdoZW4gdXNpbmcgUkVMRUFTRV9MT0cgdG8gbG9nCisgICAgICAgIHRo
cm91Z2ggdGhhdCBjaGFubmVsLCB0aGUgYXNzb2NpYXRlZCBsb2cgb2JqZWN0IGlzIHVzZWQgd2hl
biBjYWxsaW5nCisgICAgICAgIG9zX2xvZy4KKworICAgICAgICBUbyBoZWxwIHN1cHBvcnQgdGhl
IGluY2x1c2lvbiBvZiB0aGUgc3Vic3lzdGVtIGFuZCBjYXRlZ29yeQorICAgICAgICBpbmZvcm1h
dGlvbiBpbiBXVEZMb2dDaGFubmVsLCB0aGUgREVDTEFSRV9MT0dfQ0hBTk5FTCwKKyAgICAgICAg
REVGSU5FX0xPR19DSEFOTkVMLCBhbmQgTE9HX0NIQU5ORUxfQUREUkVTUyBtYWNyb3MgdGhhdCB3
ZXJlIGRlZmluZWQKKyAgICAgICAgaW4gdmFyaW91cyBtb2R1bGVzIGFyZSBjb25zb2xpZGF0ZWQg
YW5kIG1vdmVkIHRvIEFzc2VydGlvbnMuaC4KKyAgICAgICAgREVGSU5FX0xPR19DSEFOTkVMIGlz
IG5vdyBkZWZpbmVkIHRvIGluaXRpYWxpemUgdGhlIHN1YnN5c3RlbSBhbmQKKyAgICAgICAgY2F0
ZWdvcnkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fz
c2VydGlvbnMuaDoKKyAgICAgICAgKiB3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNwcDoKKwog
MjAxNi0wOC0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
R2FtZUNvbnRyb2xsZXIuZnJhbWV3b3JrIGJhY2tlbmQgZm9yIGdhbWVwYWQgQVBJLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDkyYjQ0NDEzNWEyZWZiYjc3MjMwMzMxYmVlZDA5Y2JkYmFkYjM3N2UuLmQxYTRkZWI4
YTlmNjViNTBlZjI2NmFkNGM2MTc5NzQ3MDI4MzcxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
OCBAQAorMjAxNi0wOC0yNSAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViS2l0IHNob3VsZCBzZXQgYSBzdWJzeXN0ZW0gZm9yIG9zX2xvZyBzbyBpdCdzIGVh
c2llciB0byBmaWx0ZXIgZm9yIFdlYktpdCBsb2cgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDk2OQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjYwNjg3MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgIC0gU3BlY2lmeSBhIGNoYW5uZWwgd2hlbiB1c2luZyBSRUxFQVNFX0xPRyBtYWNyb3MK
KyAgICAgICAgLSBBZGQgYSBuZXcgY2hhbm5lbCBzbyB0aGF0IHdlIGhhdmUgc29tZXRoaW5nIHRv
IHBhc3MgdG8gdGhlCisgICAgICAgICAgUkVMRUFTRV9MT0cgbWFjcm9zIChMYXllcnMpLgorICAg
ICAgICAtIEVuYWJsZSBzdWJzeXN0ZW0tIGFuZCBjaGFubmVsLXJlbGF0ZWQgZGF0YSBhbmQgZnVu
Y3Rpb25zIHdoZW4gdXNpbmcKKyAgICAgICAgICBSRUxFQVNFX0xPRyBtYWNyb3MuCisgICAgICAg
IC0gVXNlIHRoZSBERUNMQVJFX0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsIGFuZAor
ICAgICAgICAgIExPR19DSEFOTkVMX0FERFJFU1MgbWFjcm9zIHRoYXQgYXJlIG5vdyBkZWZpbmVk
IGluIFdURi4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoZXJlIGFyZSBubyB0ZXN0cyBmb3Ig
bG9nZ2luZy4KKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dNYWNy
b3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2dnaW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2Vy
Ojpsb2dNZW1vcnlVc2FnZUNoYW5nZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OklPU3VyZmFjZTo6SU9TdXJmYWNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS91
bml4L0xvZ2dpbmdVbml4LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vTG9nZ2luZ1dpbi5j
cHA6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZVRlc3RTdXBwb3J0Ojppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6
CisKIDIwMTYtMDgtMzEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBBZGQgcnVudGltZSBmbGFnIGZvciB1c2luZyBVUkxQYXJzZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCAzMWE5ZWE1MzMyYWQ3Y2Q2N2MzMWVhNGZlOGZmZWE1MjM5NWMyMjk0Li5i
OGYwNTgzZTkxMjNhMDU4MDliN2M0NzM2OGQ2ODUxNjFhYjExMGMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZvciBvc19s
b2cgc28gaXQncyBlYXNpZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBFbmFibGUgc3Vic3lzdGVtLSBhbmQgY2hhbm5lbC1yZWxhdGVk
IGRhdGEgYW5kIGZ1bmN0aW9ucyB3aGVuIHVzaW5nCisgICAgICAgIFJFTEVBU0VfTE9HIG1hY3Jv
cy4gVXNlIHRoZSBERUNMQVJFX0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsCisgICAg
ICAgIGFuZCBMT0dfQ0hBTk5FTF9BRERSRVNTIG1hY3JvcyB0aGF0IGFyZSBub3cgZGVmaW5lZCBp
biBXVEYuCisKKyAgICAgICAgKiBNaXNjL1dlYktpdExvZ2dpbmcuaDoKKyAgICAgICAgKiBNaXNj
L1dlYktpdExvZ2dpbmcubToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6
XSk6CisKIDIwMTYtMDgtMzEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdLMiBHYW1lcGFkIHByb3ZpZGVyIG9uIGlPUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA5
NzhiNGViYTAwODIyNGQzMzJkNTVlOGQ0MWIyZjFjMjE3MGZkMzMwLi40M2ZmN2U2NmQwMzQ2YTE3
MDZkMzRjNTc0ODQyMzk5ZTNmMzg0ODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTYtMDgtMjUgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYktpdCBzaG91bGQgc2V0IGEgc3Vic3lzdGVtIGZvciBvc19sb2cgc28gaXQncyBlYXNp
ZXIgdG8gZmlsdGVyIGZvciBXZWJLaXQgbG9nIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI2MDY4NzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAg
ICAgICBFbmFibGUgc3Vic3lzdGVtLSBhbmQgY2hhbm5lbC1yZWxhdGVkIGRhdGEgYW5kIGZ1bmN0
aW9ucyB3aGVuIHVzaW5nCisgICAgICAgIFJFTEVBU0VfTE9HIG1hY3Jvcy4gVXNlIHRoZSBERUNM
QVJFX0xPR19DSEFOTkVMLCBERUZJTkVfTE9HX0NIQU5ORUwsCisgICAgICAgIGFuZCBMT0dfQ0hB
Tk5FTF9BRERSRVNTIG1hY3JvcyB0aGF0IGFyZSBub3cgZGVmaW5lZCBpbiBXVEYuCisKKyAgICAg
ICAgKiBXZWJLaXRMb2dnaW5nLmNwcDoKKyAgICAgICAgKiBXZWJLaXRMb2dnaW5nLmg6CisgICAg
ICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKwog
MjAxNi0wOC0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgZG9lcyBub3Qgd29yayBpbiBX
YXlsYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2VhYzIwMzhlZmUyY2FlMzZiOTI0MjE4YzI0M2EzYmZlZTEx
ZTg4OC4uMDNhMTk5ZGRkZjkwYmFiNWYyMmU5NjAxNGNhOWZhY2RkOGNkNTg1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDcyIEBACisyMDE2LTA4LTI1ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHNldCBhIHN1YnN5c3RlbSBmb3Igb3Nf
bG9nIHNvIGl0J3MgZWFzaWVyIHRvIGZpbHRlciBmb3IgV2ViS2l0IGxvZyBtZXNzYWdlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTY5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8yNjA2ODczND4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgLSBTcGVjaWZ5IGEgY2hhbm5lbCB3aGVuIHVzaW5nIFJFTEVB
U0VfTE9HIG1hY3Jvcy4KKyAgICAgICAgLSBBZGQgc29tZSBuZXcgY2hhbm5lbHMgc28gdGhhdCB3
ZSBoYXZlIHNvbWV0aGluZyB0byBwYXNzIHRvIHRoZQorICAgICAgICAgIFJFTEVBU0VfTE9HIG1h
Y3JvcyAoUHJvY2Vzc1N1c3BlbnNpb24sIElQQywgTGF5ZXJzKS4KKyAgICAgICAgLSBFbmFibGUg
c3Vic3lzdGVtLSBhbmQgY2hhbm5lbC1yZWxhdGVkIGRhdGEgYW5kIGZ1bmN0aW9ucyB3aGVuIHVz
aW5nCisgICAgICAgICAgUkVMRUFTRV9MT0cgbWFjcm9zLgorICAgICAgICAtIFVzZSB0aGUgREVD
TEFSRV9MT0dfQ0hBTk5FTCwgREVGSU5FX0xPR19DSEFOTkVMLCBhbmQKKyAgICAgICAgICBMT0df
Q0hBTk5FTF9BRERSRVNTIG1hY3JvcyB0aGF0IGFyZSBub3cgZGVmaW5lZCBpbiBXVEYuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSk6Cisg
ICAgICAgICogUGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZO
ZWNlc3NhcnkpOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBQbGF0
Zm9ybS9mb3VuZGF0aW9uL0xvZ2dpbmdGb3VuZGF0aW9uLm1tOgorICAgICAgICAqIFBsYXRmb3Jt
L3VuaXgvTG9nZ2luZ1VuaXguY3BwOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5p
dGlhbGl6ZVdlYktpdDIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6cmVsZWFzZU5ldHdvcmtB
Y3Rpdml0eVRva2VuKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpkaWRDaGFu
Z2VJc0xvYWRpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdl
YnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRl
V2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyk6CisgICAgICAgICogVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1
cGRhdGVBc3NlcnRpb25Ob3cpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1
cGRhdGVBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Om1faGlkZGVuUGFnZVRocm90dGxpbmdUaW1lcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZmV0Y2hX
ZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vi
c2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNp
dGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlk
U2V0QXNzZXJ0aW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNl
dElzSG9sZGluZ0xvY2tlZEZpbGVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NB
c3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRU
YXNrTWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKFdlYktpdDo6UHJv
Y2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGlt
ZXJGaXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorCiAyMDE2LTA4LTMxICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHJ1bnRpbWUgZmxh
ZyBmb3IgdXNpbmcgVVJMUGFyc2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRp
b25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCmluZGV4IDRmMzlmYjE1YWZk
NTRiMTY4MjZhMzBhMDIyNmJmZTZlMDY4MWM0N2QuLjg2MTNkZjVkZThmNGFhNzdmZTVhODc4ZjMy
OTcwZjM2MDRjY2Q2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCkBAIC01NTUsNiArNTU1LDEzIEBA
IHN0YXRpYyB2b2lkIHNldFN0YXRlT2ZBbGxDaGFubmVscyhXVEZMb2dDaGFubmVsKiBjaGFubmVs
c1tdLCBzaXplX3QgY2hhbm5lbENvdW50CiAKIHZvaWQgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxT
dGF0ZXNGcm9tU3RyaW5nKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWxzW10sIHNpemVfdCBjb3VudCwg
Y29uc3QgY2hhciogbG9nTGV2ZWwpCiB7CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIFdURkxvZ0NoYW5u
ZWwqIGNoYW5uZWwgPSBjaGFubmVsc1tpXTsKKyAgICAgICAgY2hhbm5lbC0+b3NMb2dDaGFubmVs
ID0gb3NfbG9nX2NyZWF0ZShjaGFubmVsLT5zdWJzeXN0ZW0sIGNoYW5uZWwtPm5hbWUpOworICAg
IH0KKyNlbmRpZgorCiAgICAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nID0gbG9nTGV2ZWw7CiAgICAg
VmVjdG9yPFN0cmluZz4gY29tcG9uZW50czsKICAgICBsb2dMZXZlbFN0cmluZy5zcGxpdCgnLCcs
IGNvbXBvbmVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCmluZGV4IDg2Y2I0MjVmZjZkMzdlNjgzNjI4Y2Ix
YWJkZTUwNzYxOGViYzAyNWMuLmY4Njc1OTk0NDBlNjBkZTZlMTVlZDgzZjVhN2Y5NTgxNWI3YjZh
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmgKQEAgLTEzNSw4ICsxMzUsMzIgQEAgdHlwZWRlZiBlbnVtIHsg
V1RGTG9nQ2hhbm5lbE9mZiwgV1RGTG9nQ2hhbm5lbE9uLCBXVEZMb2dDaGFubmVsT25XaXRoQWNj
dW11bGF0aW8KIHR5cGVkZWYgc3RydWN0IHsKICAgICBXVEZMb2dDaGFubmVsU3RhdGUgc3RhdGU7
CiAgICAgY29uc3QgY2hhciogbmFtZTsKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBj
b25zdCBjaGFyKiBzdWJzeXN0ZW07CisgICAgX191bnNhZmVfdW5yZXRhaW5lZCBvc19sb2dfdCBv
c0xvZ0NoYW5uZWw7CisjZW5kaWYKIH0gV1RGTG9nQ2hhbm5lbDsKIAorI2RlZmluZSBMT0dfQ0hB
Tk5FTChuYW1lKSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJ
WCwgbmFtZSkKKyNkZWZpbmUgTE9HX0NIQU5ORUxfQUREUkVTUyhuYW1lKSAmTE9HX0NIQU5ORUwo
bmFtZSksCisjZGVmaW5lIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgocHJlZml4LCBjaGFu
bmVsKSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYX0xFVkVMXzIocHJlZml4LCBjaGFubmVs
KQorI2RlZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYX0xFVkVMXzIocHJlZml4LCBj
aGFubmVsKSBwcmVmaXggIyMgY2hhbm5lbAorCisjZGVmaW5lIExPR19DSEFOTkVMX1dFQktJVF9T
VUJTWVNURU0gImNvbS5hcHBsZS5XZWJLaXQiCisKKyNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5F
TChuYW1lKSBcCisgICAgZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSk7CisK
KyNpZiAhZGVmaW5lZChERUZJTkVfTE9HX0NIQU5ORUwpCisjaWYgUkVMRUFTRV9MT0dfRElTQUJM
RUQKKyNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIHN1YnN5c3RlbSkgXAorICAgIFdU
RkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxPZmYsICNuYW1l
IH07CisjZWxzZQorI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBc
CisgICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9m
ZiwgI25hbWUsIHN1YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKKyNlbmRpZgorI2VuZGlmCisK
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURlJlcG9ydEFzc2VydGlvbkZhaWx1cmUoY29uc3Qg
Y2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBh
c3NlcnRpb24pOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGUmVwb3J0QXNzZXJ0aW9uRmFp
bHVyZVdpdGhNZXNzYWdlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBm
dW5jdGlvbiwgY29uc3QgY2hhciogYXNzZXJ0aW9uLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikg
V1RGX0FUVFJJQlVURV9QUklOVEYoNSwgNik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBXVEZS
ZXBvcnRBcmd1bWVudEFzc2VydGlvbkZhaWx1cmUoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUs
IGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBhcmdOYW1lLCBjb25zdCBjaGFyKiBh
c3NlcnRpb24pOwpAQCAtMzY3LDkgKzM5MSw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSBOT19SRVRV
Uk5fRFVFX1RPX0NSQVNIIHZvaWQgV1RGQ3Jhc2hXaXRoU2VjdXJpdHlJbXBsaWNhdGlvbigpCiAj
aWYgTE9HX0RJU0FCTEVECiAjZGVmaW5lIExPRyhjaGFubmVsLCAuLi4pICgodm9pZCkwKQogI2Vs
c2UKLSNkZWZpbmUgTE9HKGNoYW5uZWwsIC4uLikgV1RGTG9nKCZKT0lOX0xPR19DSEFOTkVMX1dJ
VEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgY2hhbm5lbCksIF9fVkFfQVJHU19fKQotI2Rl
ZmluZSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKHByZWZpeCwgY2hhbm5lbCkgSk9JTl9M
T0dfQ0hBTk5FTF9XSVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkKLSNkZWZpbmUg
Sk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWF9MRVZFTF8yKHByZWZpeCwgY2hhbm5lbCkgcHJl
Zml4ICMjIGNoYW5uZWwKKyNkZWZpbmUgTE9HKGNoYW5uZWwsIC4uLikgV1RGTG9nKCZMT0dfQ0hB
Tk5FTChjaGFubmVsKSwgX19WQV9BUkdTX18pCiAjZW5kaWYKIAogLyogTE9HX1ZFUkJPU0UgKi8K
QEAgLTM3NywyMiArMzk5LDI1IEBAIFdURl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RP
X0NSQVNIIHZvaWQgV1RGQ3Jhc2hXaXRoU2VjdXJpdHlJbXBsaWNhdGlvbigpCiAjaWYgTE9HX0RJ
U0FCTEVECiAjZGVmaW5lIExPR19WRVJCT1NFKGNoYW5uZWwsIC4uLikgKCh2b2lkKTApCiAjZWxz
ZQotI2RlZmluZSBMT0dfVkVSQk9TRShjaGFubmVsLCAuLi4pIFdURkxvZ1ZlcmJvc2UoX19GSUxF
X18sIF9fTElORV9fLCBXVEZfUFJFVFRZX0ZVTkNUSU9OLCAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRI
X1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIGNoYW5uZWwpLCBfX1ZBX0FSR1NfXykKKyNkZWZp
bmUgTE9HX1ZFUkJPU0UoY2hhbm5lbCwgLi4uKSBXVEZMb2dWZXJib3NlKF9fRklMRV9fLCBfX0xJ
TkVfXywgV1RGX1BSRVRUWV9GVU5DVElPTiwgJkxPR19DSEFOTkVMKGNoYW5uZWwpLCBfX1ZBX0FS
R1NfXykKICNlbmRpZgogCiAvKiBSRUxFQVNFX0xPRyAqLwogCi0jZGVmaW5lIFdURl9MT0dHSU5H
X1BSRUZJWCAiI1dLOiAiCiAjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgUkVMRUFT
RV9MT0coZm9ybWF0LCAuLi4pICAgICAgICgodm9pZCkwKQotI2RlZmluZSBSRUxFQVNFX0xPR19F
UlJPUihmb3JtYXQsIC4uLikgV1RGUmVwb3J0RXJyb3IoX19GSUxFX18sIF9fTElORV9fLCBXVEZf
UFJFVFRZX0ZVTkNUSU9OLCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0Vf
TE9HKCAgICAgIGNoYW5uZWwsIGZvcm1hdCwgLi4uKSAoKHZvaWQpMCkKKyNkZWZpbmUgUkVMRUFT
RV9MT0dfRVJST1IoY2hhbm5lbCwgZm9ybWF0LCAuLi4pIExPR19FUlJPUihmb3JtYXQsICMjX19W
QV9BUkdTX18pCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoICAgICAgaXNBbGxvd2VkLCBjaGFu
bmVsLCBmb3JtYXQsIC4uLikgKCh2b2lkKTApCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lG
KGlzQWxsb3dlZCwgY2hhbm5lbCwgZm9ybWF0LCAuLi4pIGRvIHsgaWYgKGlzQWxsb3dlZCkgUkVM
RUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgZm9ybWF0LCAjI19fVkFfQVJHU19fKTsgfSB3aGlsZSAo
MCkKICNlbHNlCi0jZGVmaW5lIFdURl9MT0dfREVGQVVMVCBPU19MT0dfREVGQVVMVAotI2RlZmlu
ZSBSRUxFQVNFX0xPRyhmb3JtYXQsIC4uLikgICAgICAgb3NfbG9nKFdURl9MT0dfREVGQVVMVCwg
V1RGX0xPR0dJTkdfUFJFRklYIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFT
RV9MT0dfRVJST1IoZm9ybWF0LCAuLi4pIG9zX2xvZ19lcnJvcihXVEZfTE9HX0RFRkFVTFQsIFdU
Rl9MT0dHSU5HX1BSRUZJWCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0Vf
TE9HKCAgICAgIGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBvc19sb2coICAgICAgTE9HX0NIQU5ORUwo
Y2hhbm5lbCkub3NMb2dDaGFubmVsLCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJF
TEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBvc19sb2dfZXJyb3IoTE9HX0NI
QU5ORUwoY2hhbm5lbCkub3NMb2dDaGFubmVsLCBmb3JtYXQsICMjX19WQV9BUkdTX18pCisKKyNk
ZWZpbmUgUkVMRUFTRV9MT0dfSUYoICAgICAgaXNBbGxvd2VkLCBjaGFubmVsLCBmb3JtYXQsIC4u
LikgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyggICAgICBjaGFubmVsLCBmb3JtYXQs
ICMjX19WQV9BUkdTX18pOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9J
Rihpc0FsbG93ZWQsIGNoYW5uZWwsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJF
TEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIGZvcm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUg
KDApCiAjZW5kaWYKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUYoaXNBbGxvd2VkLCBmb3JtYXQsIC4u
LikgICAgICAgZG8geyBpZiAoaXNBbGxvd2VkKSBSRUxFQVNFX0xPRyhmb3JtYXQsICMjX19WQV9B
UkdTX18pOyB9IHdoaWxlICgwKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0FsbG93
ZWQsIGZvcm1hdCwgLi4uKSBkbyB7IGlmIChpc0FsbG93ZWQpIFJFTEVBU0VfTE9HX0VSUk9SKGZv
cm1hdCwgIyNfX1ZBX0FSR1NfXyk7IH0gd2hpbGUgKDApCisKIAogLyogUkVMRUFTRV9BU1NFUlQg
Ki8KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAKaW5kZXggNzIxZmE5
ZjQzOWEwZTYyZWM5MzEzNmE1NjIyMDg1ZTMwNGExOWQ3Zi4uYmU4NzI2NjM4OWJkMTY2M2UwMzUw
ZDMyNTMwMTA0ZGUyYjAzZmE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVmQ291bnRl
ZExlYWtDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVha0NvdW50
ZXIuY3BwCkBAIC0zOSw3ICszOSwxMSBAQCB2b2lkIFJlZkNvdW50ZWRMZWFrQ291bnRlcjo6ZGVj
cmVtZW50KCkgeyB9CiAjZWxzZQogCiAjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKKyNp
ZiBSRUxFQVNFX0xPR19ESVNBQkxFRAogc3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRl
ZExlYWtzID0geyBXVEZMb2dDaGFubmVsT24sICJSZWZDb3VudGVkTGVha3MiIH07CisjZWxzZQor
c3RhdGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBXVEZMb2dDaGFubmVs
T24sICJSZWZDb3VudGVkTGVha3MiLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19M
T0dfREVGQVVMVCB9OworI2VuZGlmCiAKIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8Y29uc3QgY2hh
ciosIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBSZWFzb25TZXQ7CiBzdGF0aWMgUmVhc29uU2V0KiBs
ZWFrTWVzc2FnZVN1cHByZXNzaW9uUmVhc29uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCmluZGV4IGJkODM0MDZjZjFhMjhiYmNiZmQ3ZmJlNDlmODJjODhhY2I1YjU0NTIuLmQ3
ODYyMGI0YTMzYzAzY2MxNjMyODIwMWJkYzBkZGVhMWM3ODk2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBACiAjaW5jbHVkZSAiV0tDb250
ZW50T2JzZXJ2YXRpb24uaCIKICNlbmRpZgogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9B
UkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19J
Rihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgX19WQV9BUkdTX18pCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9nSW5pdGlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxp
emF0aW9uLmgKaW5kZXggM2Q4M2M4NTlkMmZiMDNiMjYzYmY1YzYyZDViNzQ0MjA4NjRjZGVkNC4u
ZGVkMjM3ZmNjN2U3NGExZjgyMDljNzlkZTNjNjgwN2FkZGRhNzM4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCkBAIC0zMCwxMyArMzAsMTMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIFN0cmluZyBsb2dMZXZlbFN0cmluZygpOwog
Ym9vbCBpc0xvZ0NoYW5uZWxFbmFibGVkKGNvbnN0IFN0cmluZyYgbmFtZSk7CiBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5nJiBuYW1lKTsK
IFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsK
IAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dNYWNyb3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ01hY3Jvcy5oCmluZGV4IDlmN2VmYzk5NGI2YTg4NzAyMDE2OGY4ZTcwMzhlMjVm
NDNkN2VlMzcuLjQ1ZmMwYjBhYWYzM2YyM2ViNmI1ZjEyYzA5Y2U3YjE3NTBjYjc5ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ01hY3Jvcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvZ01hY3Jvcy5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRl
IDxmdW5jdGlvbmFsPgogCi0jaWYgTE9HX0RJU0FCTEVECisjaWYgTE9HX0RJU0FCTEVEICYmIFJF
TEVBU0VfTE9HX0RJU0FCTEVECiAKICNkZWZpbmUgTE9HX1JFU1VMVChjaGFubmVsLCBmdW5jdGlv
bikgKCh2b2lkKTApCiAjZGVmaW5lIExPR19XSVRIX1NUUkVBTShjaGFubmVsLCBjb21tYW5kcykg
KCh2b2lkKTApCkBAIC00Nyw0ICs0Nyw0IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgbG9nRnVuY3Rp
b25SZXN1bHQoV1RGTG9nQ2hhbm5lbCosIHN0ZDo6ZnVuY3Rpb248Y29uc3QgY2hhciooCiAgICAg
ICAgIHJldHVybiBzdHJlYW0ucmVsZWFzZSgpLnV0ZjgoKS5kYXRhKCk7IFwKICAgICB9KTsKIAot
I2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcAppbmRleCA3Njk1
Y2U2ZWZmZTJiNDE4ZWVjY2ZjMTY1MzllZjM2MGY2MDQyNTc2Li5mZTRjYzg1ZWU3OTBhNjViOGFm
ZmVmYmM3YjExMDljMDlhZDk5YWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcApA
QCAtMzUsMjAgKzM1LDE4IEBACiAjaW5jbHVkZSA8bm90aWZ5Lmg+CiAjZW5kaWYKIAotI2lmICFM
T0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUp
IFwKLSAgICBXVEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NI
QU5ORUxfUFJFRklYLCBuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUgfTsKLVdFQkNP
UkVfTE9HX0NIQU5ORUxTKERFRklORV9MT0dfQ0hBTk5FTCkKKyNkZWZpbmUgREVGSU5FX1dFQkNP
UkVfTE9HX0NIQU5ORUwobmFtZSkgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIExPR19DSEFOTkVM
X1dFQktJVF9TVUJTWVNURU0pCitXRUJDT1JFX0xPR19DSEFOTkVMUyhERUZJTkVfV0VCQ09SRV9M
T0dfQ0hBTk5FTCkKIAotI2RlZmluZSBMT0dfQ0hBTk5FTF9BRERSRVNTKG5hbWUpICAmSk9JTl9M
T0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpLAotV1RGTG9n
Q2hhbm5lbCogbG9nQ2hhbm5lbHNbXSA9IHsKK3N0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFu
bmVsc1tdID0gewogICAgIFdFQkNPUkVfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJFU1Mp
CiB9OwogCi1zaXplX3QgbG9nQ2hhbm5lbENvdW50ID0gV1RGX0FSUkFZX0xFTkdUSChsb2dDaGFu
bmVscyk7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9IFdURl9BUlJBWV9M
RU5HVEgobG9nQ2hhbm5lbHMpOwogCiBib29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3Ry
aW5nJiBuYW1lKQogewpAQCAtMTAyLDQgKzEwMCw0IEBAIHZvaWQgbG9nRnVuY3Rpb25SZXN1bHQo
V1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgc3RkOjpmdW5jdGlvbjxjb25zdCBjaGFyKigpPiBmdW5j
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNl
bmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nZ2luZy5oCmluZGV4IDgzM2E3NDM0NWFiYzAxMzIwMjIyZDgyMTllYzVlZGQ0NTFj
ZTU4ZmQuLjRmZDVlNmM4ZDE2YjQwZWRlNDhmZGIxZjViZjc2ZDgxMmRlNWZjMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTE9HX0NIQU5ORUxfUFJFRklYCiAjZGVmaW5lIExPR19D
SEFOTkVMX1BSRUZJWCBMb2cKQEAgLTQ2LDE1ICs0NiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgTShET01UaW1lcnMpIFwKICAgICBNKEVkaXRpbmcpIFwKICAgICBNKEV2ZW50cykgXAot
ICAgIE0oRlRQKSBcCiAgICAgTShGaWxlQVBJKSBcCiAgICAgTShGcmFtZXMpIFwKKyAgICBNKEZU
UCkgXAogICAgIE0oRnVsbHNjcmVlbikgXAogICAgIE0oR2FtZXBhZCkgXAogICAgIE0oSGlzdG9y
eSkgXAogICAgIE0oSWNvbkRhdGFiYXNlKSBcCiAgICAgTShJbWFnZXMpIFwKICAgICBNKEluZGV4
ZWREQikgXAorICAgIE0oTGF5ZXJzKSBcCiAgICAgTShMYXlvdXQpIFwKICAgICBNKExvYWRpbmcp
IFwKICAgICBNKE1lZGlhKSBcCkBAIC03MCwxMiArNzEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIE0oUHJvZ3Jlc3MpIFwKICAgICBNKFJlbW90ZUluc3BlY3RvcikgXAogICAgIE0oUmVz
b3VyY2VMb2FkaW5nKSBcCi0gICAgTShTUUxEYXRhYmFzZSkgXAotICAgIE0oU1ZHKSBcCi0gICAg
TShTZXJ2aWNlcykgXAorICAgIE0oUmVzb3VyY2VMb2FkT2JzZXJ2ZXIpIFwKICAgICBNKFNjcm9s
bGluZykgXAorICAgIE0oU2VydmljZXMpIFwKICAgICBNKFNwZWxsaW5nQW5kR3JhbW1hcikgXAor
ICAgIE0oU1FMRGF0YWJhc2UpIFwKICAgICBNKFN0b3JhZ2VBUEkpIFwKKyAgICBNKFNWRykgXAog
ICAgIE0oVGV4dEF1dG9zaXppbmcpIFwKICAgICBNKFRocmVhZGluZykgXAogICAgIE0oVVJMUGFy
c2VyKSBcCkBAIC04Myw4ICs4NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFdlYkdM
KSBcCiAgICAgTShXZWJSZXBsYXkpIFwKICAgICBNKFdoZWVsRXZlbnRUZXN0VHJpZ2dlcnMpIFwK
LSAgICBNKFJlc291cmNlTG9hZE9ic2VydmVyKSBcCiAKKyN1bmRlZiBERUNMQVJFX0xPR19DSEFO
TkVMCiAjZGVmaW5lIERFQ0xBUkVfTE9HX0NIQU5ORUwobmFtZSkgXAogICAgIFdFQkNPUkVfRVhQ
T1JUIGV4dGVybiBXVEZMb2dDaGFubmVsIEpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9H
X0NIQU5ORUxfUFJFRklYLCBuYW1lKTsKIApAQCAtOTcsNiArOTksNiBAQCBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5nJiBuYW1lKTsKIHZv
aWQgcmVnaXN0ZXJOb3RpZnlDYWxsYmFjayhjb25zdCBTdHJpbmcmIG5vdGlmeUlELCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2spOwogI2VuZGlmCiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
bW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggN2FiZWI0YjQ3NmZkNDMwNDgyYjkwNWUxYTZi
ZjhlMGZlMTYxYjE5Ni4uMWRhMzU4M2E3YWYwNDZlZjQ0M2E2OGExYzc1NzVjMTVjOGRjODNlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiR0NDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKQEAgLTIyMCw3ICsyMjEsNyBA
QCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpsb2dNZW1vcnlVc2Fn
ZUNoYW5nZSgpCiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAjZGVmaW5lIFNUUklOR19T
UEVDSUZJQ0FUSU9OICIle3B1YmxpY31zIgotI2RlZmluZSBNRU1PUllQUkVTU1VSRV9MT0coLi4u
KSBSRUxFQVNFX0xPRyhfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTUVNT1JZUFJFU1NVUkVfTE9HKC4u
LikgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1cmUsIF9fVkFfQVJHU19fKQogI2Vsc2UKICNkZWZp
bmUgU1RSSU5HX1NQRUNJRklDQVRJT04gIiVzIgogI2RlZmluZSBNRU1PUllQUkVTU1VSRV9MT0co
Li4uKSBXVEZMb2dBbHdheXMoX19WQV9BUkdTX18pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggY2M3
NDM2NWYzM2VjZjc0ZTMwZmM3OGZmMTY3MDQwMDQ5NzE2NzViOC4uNGY0ZTZiM2IyMjY2NzMzNTk1
MGZjYjUxNGM1Y2FjYmQwM2UwZTFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMTc1LDcgKzE3
NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWlu
UHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
I2lmICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogICAgIGRvdWJsZSBzdGFydFRpbWUgPSBjdXJyZW50VGltZSgpOwogI2VuZGlmCiAgICAg
UmV0YWluUHRyPENHSW1hZ2VSZWY+IHN1YkltYWdlKGltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCBiNWQ1ZTli
MzJlZTdiMmZjMWU4MjZlZDk4ZGI1NGQyYjFmMWRmMjdhLi41YzBkNjJkODM0MGEwMTJhZTEyNDUy
NGZiZmVlNzM0NmMzN2Y3MDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJJ
T1N1cmZhY2VTUEkuaCIKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJJbWFnZUJ1
ZmZlckRhdGFDRy5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWFjaFNlbmRSaWdo
dC5oIgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFz
Lmg+CkBAIC0yMTEsNyArMjEyLDcgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50
U2l6ZSBzaXplLCBJbnRTaXplIGNvbnRleHRTaXplLCBDR0NvbG9yU3BhY2VSZWYKICAgICBpZiAo
c3VjY2VzcykKICAgICAgICAgbV90b3RhbEJ5dGVzID0gSU9TdXJmYWNlR2V0QWxsb2NTaXplKG1f
c3VyZmFjZS5nZXQoKSk7CiAgICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUigiU3Vy
ZmFjZSBjcmVhdGlvbiBmYWlsZWQgZm9yIHNpemU6ICglZCAlZCkgYW5kIGZvcm1hdDogKCVkKSIs
IHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZm9ybWF0KTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTGF5ZXJzLCAiU3VyZmFjZSBjcmVhdGlvbiBmYWlsZWQgZm9yIHNpemU6ICglZCAl
ZCkgYW5kIGZvcm1hdDogKCVkKSIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZm9ybWF0
KTsKIH0KIAogV2ViQ29yZTo6SU9TdXJmYWNlOjpJT1N1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZh
Y2UsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0xvZ2dpbmdNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9nZ2luZ01hYy5tbQppbmRleCAzOTI3NjYzN2M0NzUyOTAzZDVlZTY2ZmFhNmUzYTkxMWZm
YjlhNzE2Li5iMjA4YmJlMTgwNTNiYTA4MjFjNDNhYTFmYzVlYTk0YzI5OGUzOGFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9nZ2luZ01hYy5tbQpAQCAtMjgsNyArMjgsNyBAQAog
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiAhTE9HX0RJU0FCTEVECisj
aWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00MSw0ICs0MSw0IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAKIH0K
IAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFS
RUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAppbmRleCA3MmViMTBhNjNkZmRiYjk2NDVlODNjZTU3MzQ1ODEyMGFmNzAwOTlk
Li5jNGQ1NzZmZDExMWEzNjc2YmFjMGY0YzU4N2ZiMDUyNzJjYmRmOTBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMjIsNyArMjIsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAotI2lmICFMT0dfRElT
QUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00Niw0
ICs0Niw0IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8
ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0xvZ2dpbmdXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0xvZ2dp
bmdXaW4uY3BwCmluZGV4IGYzNmExNDE2MDQzOWI5MGNmMzI4YWI3MDk4MjhlYmE0NTk4ZWRiMzgu
LmE5ZWU0ZWQ1MmVlOTRkMTM4ZWZkOWYzYjYxNWI3ZGIyZWE1MTM4M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Mb2dnaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vTG9nZ2luZ1dpbi5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKLSNpZiAhTE9HX0RJU0FCTEVE
CisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2luY2x1ZGUg
PHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC01Miw0ICs1Miw0
IEBAIFN0cmluZyBsb2dMZXZlbFN0cmluZygpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxF
QVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwCmluZGV4IDY1YmI1Y2ZmY2EzNTE3MDg2ZTkzMTE2ODExNTlmMmM1MDdj
NzlmMjIuLjE4YmM2NDgyZGE4YWMzNDE4NzgxMDNmOWEyYzMxZjcxMDQzYzdhNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTEx
MCw3ICsxMTAsNyBAQCB2b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyaW5n
JiBuYW1lKQogCiB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KCkKIHsKLSNp
ZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdExvZ2dpbmcu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5oCmluZGV4IDc5NTRhNjRm
N2YxOGJhMTVlNWIzMzQ3NmI2NGFjYmU0YzU3NzE2NGMuLmYwZGNjZmY4NmU0NDY4OWM2ZDgyZTUy
MWZhZTUyMzgwMGIyNzU5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
S2l0TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5o
CkBAIC0zNiw3ICszNiw3IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0jaWYgIUxPR19ESVNB
QkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNkZWZp
bmUgV0VCS0lUX0xPR19DSEFOTkVMUyhNKSBcCiAgICAgTShCYWNrRm9yd2FyZCkgXApAQCAtNjQs
MTUgKzY0LDEyIEBAIGV4dGVybiAiQyIgewogICAgIE0oVGltaW5nKSBcCiAgICAgTShWaWV3KSBc
CiAKLSNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5FTChuYW1lKSBcCi1leHRlcm4gV1RGTG9nQ2hh
bm5lbCBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFt
ZSk7Ci0KIFdFQktJVF9MT0dfQ0hBTk5FTFMoREVDTEFSRV9MT0dfQ0hBTk5FTCkKIAogI3VuZGVm
IERFQ0xBUkVfTE9HX0NIQU5ORUwKIAogdm9pZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hhbm5lbHNJ
Zk5lY2Vzc2FyeSh2b2lkKTsKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxP
R19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogdm9pZCBSZXBvcnREaXNjYXJk
ZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVTZWxlY3RvciwgaWQgZXhjZXB0aW9uKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJLaXRMb2dnaW5nLm0gYi9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdExvZ2dpbmcubQppbmRleCAxODMzMGE1NDVjM2Ni
MDJlNDNmNzlhZDYwOTAyN2NlZDY4NjMwYjVjLi45ZjJiZGI4YTc4MTBkM2E3MDE3M2QwYWE0NWQ2
ZDUxMTExM2U5ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdExv
Z2dpbmcubQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYktpdExvZ2dpbmcubQpAQCAt
MjgsMTMgKzI4LDExIEBACiAKICNpbXBvcnQgIldlYktpdExvZ2dpbmcuaCIKIAotI2lmICFMT0df
RElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCi0j
ZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lKSBcCi0gICAgV1RGTG9nQ2hhbm5lbCBKT0lO
X0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSkgPSB7IFdU
RkxvZ0NoYW5uZWxPZmYsICNuYW1lIH07Ci1XRUJLSVRfTE9HX0NIQU5ORUxTKERFRklORV9MT0df
Q0hBTk5FTCkKKyNkZWZpbmUgREVGSU5FX1dFQktJVF9MT0dfQ0hBTk5FTChuYW1lKSBERUZJTkVf
TE9HX0NIQU5ORUwobmFtZSwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSkKK1dFQktJVF9M
T0dfQ0hBTk5FTFMoREVGSU5FX1dFQktJVF9MT0dfQ0hBTk5FTCkKIAotI2RlZmluZSBMT0dfQ0hB
Tk5FTF9BRERSRVNTKG5hbWUpICAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hB
Tk5FTF9QUkVGSVgsIG5hbWUpLAogc3RhdGljIFdURkxvZ0NoYW5uZWwqIGxvZ0NoYW5uZWxzW10g
PSB7CiAgICAgV0VCS0lUX0xPR19DSEFOTkVMUyhMT0dfQ0hBTk5FTF9BRERSRVNTKQogfTsKQEAg
LTU4LDcgKzU2LDcgQEAgdm9pZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2Fy
eSgpCiAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKGxvZ0NoYW5u
ZWxzLCBsb2dDaGFubmVsQ291bnQsIFtsb2dMZXZlbCBVVEY4U3RyaW5nXSk7CiB9CiAKLSNlbmRp
ZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKIAogdm9pZCBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwg
ZGVsZWdhdGVTZWxlY3RvciwgaWQgZXhjZXB0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDE2ZGMzNjE0OTgwMDJhODcxMjM5ODA5OTVjY2YyOGU5OTE0NWJlMTEu
LjdiOTA4M2E1MTQ2ODc4Njc2ZTViZWRjMDBkMmE2MTc3OWQ2YTNiODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTk2Nyw3ICs5NjcsNyBAQCAtICh2b2lkKV9jb21tb25J
bml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFt
ZTooTlNTdAogICAgIHN0YXRpYyBib29sIGRpZE9uZVRpbWVJbml0aWFsaXphdGlvbiA9IGZhbHNl
OwogI2VuZGlmCiAgICAgaWYgKCFkaWRPbmVUaW1lSW5pdGlhbGl6YXRpb24pIHsKLSNpZiAhTE9H
X0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICAgICAgV2ViS2l0SW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICAgICAgICAg
V2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0TG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJLaXRMb2dnaW5nLmNwcAppbmRleCBlMjQ0YzA5MjNhMGJiN2ZkOWNlZjA0ODlh
MmNkZGJlOWVkYTUwYzgxLi43NGRjZTdhOTAxYWZmOTI0MjY1M2MxOTc2YzZkZjU4NGUyYjRhOTlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmNwcApAQCAtMjcsMTMgKzI3LDExIEBACiAg
Ki8KICNpbmNsdWRlICJXZWJLaXRMb2dnaW5nLmgiCiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYg
IUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAotI2RlZmluZSBERUZJTkVf
TE9HX0NIQU5ORUwobmFtZSkgXAotICAgIFdURkxvZ0NoYW5uZWwgSk9JTl9MT0dfQ0hBTk5FTF9X
SVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpID0geyBXVEZMb2dDaGFubmVsT2Zm
LCAjbmFtZSB9OwotV0VCS0lUX0xPR19DSEFOTkVMUyhERUZJTkVfTE9HX0NIQU5ORUwpCisjZGVm
aW5lIERFRklORV9XRUJLSVRfTE9HX0NIQU5ORUwobmFtZSkgREVGSU5FX0xPR19DSEFOTkVMKG5h
bWUsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0pCitXRUJLSVRfTE9HX0NIQU5ORUxTKERF
RklORV9XRUJLSVRfTE9HX0NIQU5ORUwpCiAKLSNkZWZpbmUgTE9HX0NIQU5ORUxfQUREUkVTUyhu
YW1lKSAgJkpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVGSVgoTE9HX0NIQU5ORUxfUFJFRklYLCBu
YW1lKSwKIHN0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFubmVsc1tdID0gewogICAgIFdFQktJ
VF9MT0dfQ0hBTk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKIH07CkBAIC01MSw0ICs0OSw0IEBA
IHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKQogICAgIFdURklu
aXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhsb2dDaGFubmVscywgbG9nQ2hhbm5l
bENvdW50LCAiIik7CiB9CiAKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxP
R19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYktpdExvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdExvZ2dp
bmcuaAppbmRleCBjN2NhNTk4ZTdjN2EzZjVmMzMxNzcxYWQ1OTA3ZmM4NTc3NGM1NjA0Li41ODll
ZWI5OTg3NGViOWU1NmUzMzE2OTY0NWNhNjlkODI0ZmQ4NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJLaXRMb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0
TG9nZ2luZy5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAKICNpZm5kZWYgTE9HX0NIQU5ORUxfUFJFRklYCiAjZGVmaW5lIExPR19DSEFO
TkVMX1BSRUZJWCBXZWJLaXRMb2cKQEAgLTYyLDE1ICs2MiwxMiBAQAogICAgIE0oVGltaW5nKSBc
CiAgICAgTShWaWV3KSBcCiAKLSNkZWZpbmUgREVDTEFSRV9MT0dfQ0hBTk5FTChuYW1lKSBcCi1l
eHRlcm4gV1RGTG9nQ2hhbm5lbCBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFO
TkVMX1BSRUZJWCwgbmFtZSk7Ci0KIFdFQktJVF9MT0dfQ0hBTk5FTFMoREVDTEFSRV9MT0dfQ0hB
Tk5FTCkKIAogI3VuZGVmIERFQ0xBUkVfTE9HX0NIQU5ORUwKIAogdm9pZCBXZWJLaXRJbml0aWFs
aXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSh2b2lkKTsKIAotI2VuZGlmIC8vICFMT0dfRElTQUJM
RUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggZWM4YTBlNDNlYzk4N2MyNGFjYTk3MTMzNGI1
NThkNGIwMmMzMjIyNi4uYTQ2NDZjNTJhODNjMDA4ZWMyMDJjMDllZDA0ZDkzODkzNjViMjNlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTI5MDYsOSArMjkwNiw5IEBAIEhSRVNVTFQgV2ViVmll
dzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJT
VFIgZ3JvdXBOCiAKICAgICBzdGF0aWMgYm9vbCBkaWRPbmVUaW1lSW5pdGlhbGl6YXRpb247CiAg
ICAgaWYgKCFkaWRPbmVUaW1lSW5pdGlhbGl6YXRpb24pIHsKLSNpZiAhTE9HX0RJU0FCTEVECisj
aWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgaW5pdGlh
bGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisj
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogICAgICAg
ICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVzIGZpcnN0IGJlZm9yZSBpbnZv
a2luZyB0aGUgcmVzdAogICAgICAgICAvLyBvZiB0aGUgaW5pdGlhbGl6YXRpb24gY29kZSB3aGlj
aCBtYXkgZGVwZW5kIG9uIHRoZSBzdHJhdGVnaWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggNWQwZWQ4MjhhNzVi
NDFlNzA4MzA0NGE1NjNiYWE5MTNiMWViM2U1MS4uMmYwZTE2NzEwYWJjNTE5ZTBhMTg5OTBiY2Ix
ZGIyYmU5ZWVkNjliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC0zMSwxNCArMzEsMTUgQEAKICNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
RG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xP
R19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgTmV0d29yaywgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgTmV0d29yaywgX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggY2Zl
MDVmNDU2OTFlYzU3YzRiMzc1NTA5MTQwNWFjMTM4MDkwOGY3MC4uMzE5ZTQyZmE1ZWNiOWRiM2Yz
NzQ3YjBlOGNkNDFkYjRlNzQ4OTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNjIzLDEwICs2MjMsMTAgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShib29sJiBoYW5kbGVkKQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkKIHsKLSAgICBSRUxFQVNF
X0xPRygiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7Cisg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKICAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2Fs
OjpZZXMpOwogCi0gICAgUkVMRUFTRV9MT0coIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRo
aXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJv
Y2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kIElQ
QyBtZXNzYWdlIiwgdGhpcyk7CiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCksIDAp
OwogfQogCkBAIC02MzYsMTIgKzYzNiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjYW5jZWxQ
cmVwYXJlVG9TdXNwZW5kKCkKICAgICAvLyB3ZSBkbyBub3QgYmVjYXVzZSBwcmVwYXJlVG9TdXNw
ZW5kKCkgYWxyZWFkeSByZXBsaWVkIHdpdGggYSBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpQcm9jZXNz
UmVhZHlUb1N1c3BlbmQKICAgICAvLyBtZXNzYWdlLiBBbmQgTmV0d29ya1Byb2Nlc3NQcm94eSBl
eHBlY3RzIHRvIHJlY2VpdmUgZWl0aGVyIGEgTmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1Jl
YWR5VG9TdXNwZW5kLQogICAgIC8vIG9yIE5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZENhbmNlbFBy
b2Nlc3NTdXNwZW5zaW9uLSBtZXNzYWdlLCBidXQgbm90IGJvdGguCi0gICAgUkVMRUFTRV9MT0co
IiVwIC0gTmV0d29ya1Byb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwor
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6
Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnByb2Nlc3NEaWRSZXN1bWUoKQogewotICAgIFJFTEVBU0VfTE9HKCIlcCAtIE5ldHdvcmtQ
cm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIs
IHRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJp
bmcmIGhvc3RuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMGU2M2Y4Y2IxZjg0NGIzN2ViZWRmY2Qy
NWVlNTgwOTYwY2YxY2VkYS4uOGJlZWY5MzA0MDgxYTk4ZmYxY2JiYTc0YTY4N2ZjNjFmZjM3Y2Rl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00OSw4ICs0OSw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xP
R19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCi0jZGVmaW5lIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgTmV0d29yaywgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgTmV0d29yaywgX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggMTRhMzAyNTQ4NDY2NWVi
MDgwNjgzYjY3Mjg3Yzk0NmQ1NzA2NWJmNy4uYTE2NzJmZjJjMGRkMzVkODhmMzI2OWUzYTNmMWI5
ZDFlNjdmYjRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKIAorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTU3
Myw3ICs1NzQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2FpdEZv
clN5bmNSZXBseSh1aW50NjRfdCBzeW5jUmVxdWVzdElELCBzdAogICAgICAgICAvLyBJZiB0aGF0
IGhhcHBlbnMsIHdlIG5lZWQgdG8gc3RvcCB3YWl0aW5nLCBvciB3ZSdsbCBoYW5nIHNpbmNlIHdl
IHdvbid0IGdldAogICAgICAgICAvLyBhbnkgbW9yZSBpbmNvbWluZyBtZXNzYWdlcy4KICAgICAg
ICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJDb25u
ZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBDb25uZWN0aW9uIG5vIGxvbmdlciB2YWxpZCwgaWQg
PSAlIiBQUkl1NjQsIHN5bmNSZXF1ZXN0SUQpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoSVBDLCAiQ29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseTogQ29ubmVjdGlvbiBubyBsb25n
ZXIgdmFsaWQsIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVzdElEKTsKICAgICAgICAgICAgIGRp
ZFJlY2VpdmVTeW5jUmVwbHkoc2VuZFN5bmNPcHRpb25zKTsKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICB9CkBAIC01ODQsNyArNTg1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERl
Y29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qgc3luY1JlcXVlc3RJ
RCwgc3QKICAgICAgICAgdGltZWRPdXQgPSAhU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCku
d2FpdChhYnNvbHV0ZVRpbWUpOwogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0VSUk9SKCJDb25u
ZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBUaW1lZC1vdXQgd2hpbGUgd2FpdGluZyBmb3IgcmVw
bHksIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVzdElEKTsKKyAgICBSRUxFQVNFX0xPR19FUlJP
UihJUEMsICJDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5OiBUaW1lZC1vdXQgd2hpbGUgd2Fp
dGluZyBmb3IgcmVwbHksIGlkID0gJSIgUFJJdTY0LCBzeW5jUmVxdWVzdElEKTsKICAgICBkaWRS
ZWNlaXZlU3luY1JlcGx5KHNlbmRTeW5jT3B0aW9ucyk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5oCmluZGV4IGUzM2E3
NjA4ODIzYjQwMmUyNzRhYTIyMGIzNWQ2NGY3YjI4OTczY2IuLmM1NWI2Y2FlMWFlMDIwODZjZGNh
ZDNmNjgwNjkwYjg3Yjg4MWVmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0xvZ0luaXRpYWxpemF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nSW5p
dGlhbGl6YXRpb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM2LDQgKzM2LDQg
QEAgU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0j
ZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dn
aW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuY3BwCmluZGV4IDhjMWUw
Nzg3MDJmODhhYWZiNGJjZjg1ZDI2ZGQwMDc2MjY1NDM5NDguLjllMDYzOGViMGE1Y2YwNzllYjE2
ZTkxMjFjODFmMDQ2NzUxMzJmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuY3BwCkBA
IC0zMCwyMCArMzAsMTggQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lm
ICFMT0dfRElTQUJMRUQKKyNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogCi0jZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lKSBcCi0gICAgV1RGTG9nQ2hhbm5l
bCBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSkg
PSB7IFdURkxvZ0NoYW5uZWxPZmYsICNuYW1lIH07Ci1XRUJLSVQyX0xPR19DSEFOTkVMUyhERUZJ
TkVfTE9HX0NIQU5ORUwpCisjZGVmaW5lIERFRklORV9XRUJLSVQyX0xPR19DSEFOTkVMKG5hbWUp
IERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNKQor
V0VCS0lUMl9MT0dfQ0hBTk5FTFMoREVGSU5FX1dFQktJVDJfTE9HX0NIQU5ORUwpCiAKLSNkZWZp
bmUgTE9HX0NIQU5ORUxfQUREUkVTUyhuYW1lKSAgJkpPSU5fTE9HX0NIQU5ORUxfV0lUSF9QUkVG
SVgoTE9HX0NIQU5ORUxfUFJFRklYLCBuYW1lKSwKIHN0YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dD
aGFubmVsc1tdID0gewogICAgIFdFQktJVDJfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJF
U1MpCiB9OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxD
b3VudCA9IFdURl9BUlJBWV9MRU5HVEgobG9nQ2hhbm5lbHMpOworc3RhdGljIGNvbnN0IHNpemVf
dCBsb2dDaGFubmVsQ291bnQgPSBXVEZfQVJSQVlfTEVOR1RIKGxvZ0NoYW5uZWxzKTsKIAogdm9p
ZCBpbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpCiB7CkBAIC02Miw0ICs2MCw0IEBA
IHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKyNlbmRpZiAvLyAhTE9HX0RJU0FC
TEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nZ2luZy5oCmlu
ZGV4IDg5MGZmMjIwZGYyZTc3OTYxMDBiNTc3MmU1MjNmNDZmODk3ODQ5OWYuLmIyYzExYTJhYmMy
MGM4YjQ0ODkxYzlmZjRiYjcyZGU1NjkwNTRjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5n
LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0df
RElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKICNpZm5kZWYgTE9HX0NIQU5ORUxf
UFJFRklYCiAjZGVmaW5lIExPR19DSEFOTkVMX1BSRUZJWCBXZWJLaXQyTG9nCkBAIC00NCwxOSAr
NDQsMjIgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIFdFQktJVDJfTE9HX0NIQU5ORUxTKE0pIFwK
ICAgICBNKENvbnRleHRNZW51KSBcCiAgICAgTShHYW1lcGFkKSBcCi0gICAgTShJREIpIFwKICAg
ICBNKEljb25EYXRhYmFzZSkgXAorICAgIE0oSURCKSBcCiAgICAgTShJbmRleGVkREIpIFwKICAg
ICBNKEluc3BlY3RvclNlcnZlcikgXAorICAgIE0oSVBDKSBcCiAgICAgTShLZXlIYW5kbGluZykg
XAorICAgIE0oTGF5ZXJzKSBcCiAgICAgTShOZXR3b3JrKSBcCiAgICAgTShOZXR3b3JrQ2FjaGUp
IFwKLSAgICBNKE5ldHdvcmtDYWNoZVN0b3JhZ2UpIFwKICAgICBNKE5ldHdvcmtDYWNoZVNwZWN1
bGF0aXZlUHJlbG9hZGluZykgXAotICAgIE0oTmV0d29ya1Nlc3Npb24pIFwKKyAgICBNKE5ldHdv
cmtDYWNoZVN0b3JhZ2UpIFwKICAgICBNKE5ldHdvcmtTY2hlZHVsaW5nKSBcCisgICAgTShOZXR3
b3JrU2Vzc2lvbikgXAogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUHJpbnRpbmcpIFwKKyAgICBN
KFByb2Nlc3NTdXNwZW5zaW9uKSBcCiAgICAgTShSZW1vdGVMYXllclRyZWUpIFwKICAgICBNKFJl
c2l6ZSkgXAogICAgIE0oU2VsZWN0aW9uKSBcCkBAIC02Niw5ICs2OSw2IEBAIGV4dGVybiAiQyIg
ewogICAgIE0oVmlld0dlc3R1cmVzKSBcCiAgICAgTShWaXNpYmxlUmVjdHMpIFwKIAotI2RlZmlu
ZSBERUNMQVJFX0xPR19DSEFOTkVMKG5hbWUpIFwKLSAgICBleHRlcm4gV1RGTG9nQ2hhbm5lbCBK
T0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSk7Ci0K
IFdFQktJVDJfTE9HX0NIQU5ORUxTKERFQ0xBUkVfTE9HX0NIQU5ORUwpCiAKICN1bmRlZiBERUNM
QVJFX0xPR19DSEFOTkVMCkBAIC03Nyw2ICs3Nyw2IEBAIFdFQktJVDJfTE9HX0NIQU5ORUxTKERF
Q0xBUkVfTE9HX0NIQU5ORUwpCiB9CiAjZW5kaWYKIAotI2VuZGlmIC8vICFMT0dfRElTQUJMRUQK
KyNlbmRpZiAvLyAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogCiAjZW5k
aWYgLy8gTG9nZ2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9mb3Vu
ZGF0aW9uL0xvZ2dpbmdGb3VuZGF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZm91
bmRhdGlvbi9Mb2dnaW5nRm91bmRhdGlvbi5tbQppbmRleCBiY2I1ZmUxNGQ4M2VjMjk0N2NiOWYz
ZTgyMjcwZmVhNDFmNzJiYTMyLi4yNmYzNzMxYTYyOGUxZmUyNmRiNmIwZWJmNmE5YjE3NTc2Y2Rm
M2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9mb3VuZGF0aW9uL0xvZ2dp
bmdGb3VuZGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2ZvdW5kYXRpb24v
TG9nZ2luZ0ZvdW5kYXRpb24ubW0KQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgZGVmYXVsdHNEb21haW4gPSBA
IldlYktpdDJMb2dnaW5nIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
dW5peC9Mb2dnaW5nVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0xvZ2dp
bmdVbml4LmNwcAppbmRleCA2YTU1ZDQwMjRjYTA3ZTkzOTNhNGIyM2UyMTBhYTE2MWY3MmQ1MTg2
Li44MDE0YTVkY2ZhOGQwYWRkNmFmZDZjMTQ4MjAwOGNmMGYyMjZiYTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcApAQCAtMjksMTMgKzI5LDEzIEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElT
QUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAKIFN0cmluZyBsb2dMZXZlbFN0cmluZygp
CiB7CiAgICAgcmV0dXJuIGdldGVudigiV0VCS0lUX0RFQlVHIik7CiB9CiAKLSNlbmRpZiAvLyAh
TE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCA3YjFj
MzRhY2IyZGExNmZiNzEzMzdhMTkzYjgwOGJjNWJmODA5ZTIzLi4xNzU3ODlmYjlhZTcxM2YxNmVl
ZWRiZmFiZTAwZDZmMzNlNjNjZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNz
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNo
aWxkUHJvY2Vzcy5oIgogCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDx1bmlzdGQuaD4KIApAQCAtNTMs
NyArNTQsNyBAQCBzdGF0aWMgdm9pZCBkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShJUEM6
OkNvbm5lY3Rpb24qKQogICAgICAgICAvLyBXZSB1c2UgX2V4aXQgaGVyZSBzaW5jZSB0aGUgd2F0
Y2hkb2cgY2FsbGJhY2sgaXMgY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQgYW5kIHdlIGRvbid0
IHdhbnQKICAgICAgICAgLy8gZ2xvYmFsIGRlc3RydWN0b3JzIG9yIGF0ZXhpdCBoYW5kbGVycyB0
byBiZSBjYWxsZWQgZnJvbSB0aGlzIHRocmVhZCB3aGlsZSB0aGUgbWFpbiB0aHJlYWQgaXMgYnVz
eQogICAgICAgICAvLyBkb2luZyBpdHMgdGhpbmcuCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KCJFeGl0aW5nIHByb2Nlc3MgZWFybHkgZHVlIHRvIHVuYWNrbm93bGVkZ2VkIGNsb3NlZC1jb25u
ZWN0aW9uIik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElQQywgIkV4aXRpbmcgcHJvY2Vz
cyBlYXJseSBkdWUgdG8gdW5hY2tub3dsZWRnZWQgY2xvc2VkLWNvbm5lY3Rpb24iKTsKICAgICAg
ICAgX2V4aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwCmluZGV4IDQ3ZGZjOWY2MWJjZGI3N2JlMGQyZjA5ZDVj
MDYwZTM5ZDBkNzZkMTkuLjU4MTQ1ZWRlODU1YWFjYTRlZGIwZDJjN2U5NDZlNmMwMzNmMDE0MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLaXQySW5pdGlhbGl6ZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcApAQCAtNTYs
MTAgKzU2LDEwIEBAIHZvaWQgSW5pdGlhbGl6ZVdlYktpdDIoUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5
cGUpCiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwogICAgIFJ1bkxvb3A6OmluaXRp
YWxpemVNYWluUnVuTG9vcCgpOwogCi0jaWYgIUxPR19ESVNBQkxFRAorI2lmICFMT0dfRElTQUJM
RUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ0No
YW5uZWxzSWZOZWNlc3NhcnkoKTsKICAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lm
TmVjZXNzYXJ5KCk7Ci0jZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorI2VuZGlmIC8vICFMT0dfRElT
QUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KaW5kZXggMWY0YmIzNDc3YWQxMGVmMmQ3MzZiYjlhZTkyOWYwYWE0YWYyNzM3ZS4uMTgwNzc3
ZjE1NzQzOThkNzA5ZmU5NjFjY2YwZWQ5MjU5N2E5MmQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW1wb3J0ICJBUElVUkwuaCIKICNpbXBvcnQgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lci5oIgogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIgorI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKICNpbXBvcnQg
IlBhZ2VMb2FkU3RhdGUuaCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIK
QEAgLTgyNSw3ICs4MjYsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6d2lsbENoYW5nZUlzTG9h
ZGluZygpCiAjaWYgUExBVEZPUk0oSU9TKQogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnJlbGVhc2VO
ZXR3b3JrQWN0aXZpdHlUb2tlbigpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUYobV93ZWJWaWV3LT5f
cGFnZS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCBVSVByb2Nlc3MgaXMgcmVsZWFz
aW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBhIHBhZ2UgbG9hZCBjb21wbGV0ZWQi
LCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRihtX3dlYlZpZXctPl9wYWdlLT5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCBVSVByb2Nlc3MgaXMgcmVs
ZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBhIHBhZ2UgbG9hZCBjb21wbGV0
ZWQiLCB0aGlzKTsKICAgICBBU1NFUlQobV9hY3Rpdml0eVRva2VuKTsKICAgICBtX2FjdGl2aXR5
VG9rZW4gPSBudWxscHRyOwogfQpAQCAtODM4LDcgKzgzOSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpkaWRDaGFuZ2VJc0xvYWRpbmcoKQogICAgICAgICBpZiAobV9yZWxlYXNlQWN0aXZpdHlU
aW1lci5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgbV9yZWxlYXNlQWN0aXZpdHlUaW1lci5zdG9w
KCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYobV93ZWJWaWV3
LT5fcGFnZS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIFVJUHJvY2VzcyBpcyB0
YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIGEgcGFnZSBsb2FkIHN0YXJ0ZWQi
LCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKG1fd2ViVmlldy0+X3BhZ2UtPmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gVUlQcm9j
ZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSBwYWdlIGxvYWQg
c3RhcnRlZCIsIHRoaXMpOwogICAgICAgICAgICAgQVNTRVJUKCFtX2FjdGl2aXR5VG9rZW4pOwog
ICAgICAgICAgICAgbV9hY3Rpdml0eVRva2VuID0gbV93ZWJWaWV3LT5fcGFnZS0+cHJvY2Vzcygp
LnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKaW5kZXggY2IzMDRjNDQ5OWMxOTA4ZDUxYzQ1YjUwMmI5Y2MyNDNjMWZlNDdlZC4u
MmU1ZDdiYzRmMGI4MmY3ODk0N2MwMjc1ODBiMjU0MzAxNWM5NzJlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgpAQCAt
MTI1LDExICsxMjYsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVE
YXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXQKIAogICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAgICBhdXRvIHRva2VuID0gdGhy
b3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAgICBSRUxFQVNFX0xPR19JRihz
ZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIlcCAtIE5ldHdvcmtQcm9jZXNz
UHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29y
ayBwcm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgIFJFTEVBU0Vf
TE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBh
c3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUg
ZGF0YSIsIHRoaXMpOwogCiAgICAgbV9wZW5kaW5nRmV0Y2hXZWJzaXRlRGF0YUNhbGxiYWNrcy5h
ZGQoY2FsbGJhY2tJRCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxlciwgc2Vzc2lvbklE
XShXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKHdlYnNpdGVEYXRhKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5p
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyBy
ZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nl
c3MgaXMgZG9uZSBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3Jv
dW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBmZXRjaGlu
ZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKICAgICB9KTsKIAogICAgIHNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpGZXRjaFdlYnNpdGVEYXRhKHNlc3Npb25JRCwgZGF0YVR5cGVzLCBmZXRj
aE9wdGlvbnMsIGNhbGxiYWNrSUQpLCAwKTsKQEAgLTEzOSwxMSArMTQwLDExIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgT3B0aW9uCiB7CiAgICAgYXV0byBjYWxsYmFja0lEID0gZ2VuZXJhdGVDYWxsYmFj
a0lEKCk7CiAgICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRv
a2VuKCk7Ci0gICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRl
IGRhdGEiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1By
b3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsg
cHJvY2VzcyBpcyBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIG1fcGVuZGlu
Z0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lELCBbdGhpcywgdG9rZW4s
IGNvbXBsZXRpb25IYW5kbGVyLCBzZXNzaW9uSURdIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tn
cm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGRlbGV0
aW5nIFdlYnNpdGUgZGF0YSIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNzaW9u
SUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBO
ZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSIs
IHRoaXMpOwogICAgIH0pOwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEZWxl
dGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgY2FsbGJh
Y2tJRCksIDApOwogfQpAQCAtMTU0LDExICsxNTUsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0
aW8KIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZUNhbGxiYWNrSUQoKTsKICAg
ICBhdXRvIHRva2VuID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKLSAg
ICBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksICIl
cCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Ig
c2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29y
a1Byb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRo
ZSBOZXR3b3JrIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9y
aWdpbnMiLCB0aGlzKTsKIAogICAgIG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
c0NhbGxiYWNrcy5hZGQoY2FsbGJhY2tJRCwgW3RoaXMsIHRva2VuLCBjb21wbGV0aW9uSGFuZGxl
ciwgc2Vzc2lvbklEXSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0g
TmV0d29ya1Byb2Nlc3NQcm94eSBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBi
ZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEg
Zm9yIHNldmVyYWwgb3JpZ2lucyIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNz
aW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9u
IGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBkb25lIGRlbGV0aW5nIFdlYnNpdGUgZGF0
YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CiAgICAgfSk7CiAKICAgICBWZWN0b3I8U2Vj
dXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5EYXRhOwpAQCAtNDAxLDEyICs0MDIsMTIgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSkK
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBp
c0hvbGRpbmdMb2NrZWRGaWxlcykKIHsKICAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HKCJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3Vu
ZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xk
aW5nIGxvY2tlZCBmaWxlcyIpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIlVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNl
IHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgbm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7
CiAgICAgICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGlmICghbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcykg
ewotICAgICAgICBSRUxFQVNFX0xPRygiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBm
aWxlcyIpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIlVJUHJvY2Vz
cyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHBy
b2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKICAgICAgICAgbV90b2tlbkZvckhvbGRp
bmdMb2NrZWRGaWxlcyA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJv
dHRsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
CmluZGV4IDU3YmZjNjI3MTA1ODBkY2FlMzJkY2FlMTA4YjJiNWJmM2Q2MjQ0NjMuLjc3YjBiOGM3
MWY4OGY4YmMyMDQ5MDJiZjQ2YTI2YzM0ODVhMzc1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTU3LDcgKzU4LDcgQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRh
dGVBc3NlcnRpb25Ob3coKQogICAgIG1fc3VzcGVuZFRpbWVyLnN0b3AoKTsKICAgICBpZiAobV9h
c3NlcnRpb24pIHsKICAgICAgICAgaWYgKG1fYXNzZXJ0aW9uLT5zdGF0ZSgpICE9IGFzc2VydGlv
blN0YXRlKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBQcm9jZXNzVGhyb3R0bGVy
Ojp1cGRhdGVBc3NlcnRpb25Ob3coKSB1cGRhdGluZyBwcm9jZXNzIGFzc2VydGlvbiBzdGF0ZSB0
byAldSAoZm9yZWdyb3VuZEFjdGl2aXRpZXM6ICVsdSwgYmFja2dyb3VuZEFjdGl2aXRpZXM6ICVs
dSkiLCB0aGlzLCBhc3NlcnRpb25TdGF0ZSgpLCBtX2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCks
IG1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9u
Tm93KCkgdXBkYXRpbmcgcHJvY2VzcyBhc3NlcnRpb24gc3RhdGUgdG8gJXUgKGZvcmVncm91bmRB
Y3Rpdml0aWVzOiAlbHUsIGJhY2tncm91bmRBY3Rpdml0aWVzOiAlbHUpIiwgdGhpcywgYXNzZXJ0
aW9uU3RhdGUoKSwgbV9mb3JlZ3JvdW5kQ291bnRlci52YWx1ZSgpLCBtX2JhY2tncm91bmRDb3Vu
dGVyLnZhbHVlKCkpOwogICAgICAgICBtX2Fzc2VydGlvbi0+c2V0U3RhdGUoYXNzZXJ0aW9uU3Rh
dGUoKSk7CiAgICAgICAgIG1fcHJvY2Vzcy5kaWRTZXRBc3NlcnRpb25TdGF0ZShhc3NlcnRpb25T
dGF0ZSgpKTsKICAgICB9CkBAIC03MCw3ICs3MSw3IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6
dXBkYXRlQXNzZXJ0aW9uKCkKICAgICAvLyBpbiB0aGUgYmFja2dyb3VuZCBmb3IgdG9vIGxvbmcu
CiAgICAgaWYgKG1fYXNzZXJ0aW9uICYmIG1fYXNzZXJ0aW9uLT5zdGF0ZSgpICE9IEFzc2VydGlv
blN0YXRlOjpTdXNwZW5kZWQgJiYgIW1fZm9yZWdyb3VuZENvdW50ZXIudmFsdWUoKSAmJiAhbV9i
YWNrZ3JvdW5kQ291bnRlci52YWx1ZSgpKSB7CiAgICAgICAgICsrbV9zdXNwZW5kTWVzc2FnZUNv
dW50OwotICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVB
c3NlcnRpb24oKSBzZW5kaW5nIFByZXBhcmVUb1N1c3BlbmQgSVBDIiwgdGhpcyk7CisgICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzVGhyb3R0bGVyOjp1
cGRhdGVBc3NlcnRpb24oKSBzZW5kaW5nIFByZXBhcmVUb1N1c3BlbmQgSVBDIiwgdGhpcyk7CiAg
ICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJlcGFyZVRvU3VzcGVuZCgpOwogICAgICAgICBtX3N1c3Bl
bmRUaW1lci5zdGFydE9uZVNob3QocHJvY2Vzc1N1c3BlbnNpb25UaW1lb3V0KTsKICAgICAgICAg
bV9hc3NlcnRpb24tPnNldFN0YXRlKEFzc2VydGlvblN0YXRlOjpCYWNrZ3JvdW5kKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjJlZmYyMjcyYzc4NzZh
YmQ2ZjMxMTU0YzNhZmE5NzBlZjRjYTljYS4uYjM0ZGQzOGFiZWRjNDQyMTAxZTRhYThmY2IwN2Qy
YTdhODM1MzU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTE3OSw3ICsxNzksNyBAQAogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVT
U0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCkpCiAjZGVm
aW5lIE1FU1NBR0VfQ0hFQ0tfVVJMKHVybCkgTUVTU0FHRV9DSEVDS19CQVNFKG1fcHJvY2Vzcy0+
Y2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKHVybCksIG1fcHJvY2Vzcy0+Y29ubmVjdGlv
bigpKQogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19J
Rihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sIF9fVkFfQVJHU19fKQogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggMDEzYjdkNTVhOTkyYWU3YzQ1OGU2NGZjMmViZWVlOTJjMTY1YzJlZS4uOTFkYWM3
YWE3MTliMTk0YzdmNzYwMDhhMjI4NjE2OTY5ZjAxN2YwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yMTMsMTAgKzIxMywxMCBAQCBXZWJQcm9j
ZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpb24pCiAKICAgICBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMsIGxhbmd1
YWdlQ2hhbmdlZCk7CiAKLSNpZiAhTE9HX0RJU0FCTEVECisjaWYgIUxPR19ESVNBQkxFRCB8fCAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBXZWJDb3JlOjppbml0aWFsaXplTG9nQ2hhbm5lbHNJ
Zk5lY2Vzc2FyeSgpOwogICAgIFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoKTsKLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8
fCAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogI2lmbmRlZiBOREVCVUcKICAgICBwcm9jZXNzUG9v
bENvdW50ZXIuaW5jcmVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDAxOGNlNjZjNzdhN2E1ZTkyMjg3ZjU2ZWEzODcyMjIxYWYwMjg4
YTYuLmViMWI4YjdiODg5OGQ1MjMyYTI5NWU2NGEyZDg0NWE2Y2I0NTdmMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWFwLmgiCisjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKQEAgLTcw
OSw3ICs3MTAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNz
aW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdAogICAgIEFTU0VSVChjYW5TZW5k
TWVzc2FnZSgpKTsKIAogICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbigpOwotICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91
bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGZldGNoaW5nIFdlYnNpdGUg
ZGF0YSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eSBp
cyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWIgcHJvY2VzcyBp
cyBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKIAogICAgIGNvbm5lY3Rpb24oKS0+c2Vu
ZFdpdGhSZXBseShNZXNzYWdlczo6V2ViUHJvY2Vzczo6RmV0Y2hXZWJzaXRlRGF0YShzZXNzaW9u
SUQsIGRhdGFUeXBlcyksIDAsIFJ1bkxvb3A6Om1haW4oKSwgW3RoaXMsIHRva2VuLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSURdKGF1dG8g
cmVwbHkpIHsKICAgICAgICAgaWYgKCFyZXBseSkgewpAQCAtNzE4LDcgKzcxOSw3IEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0CiAgICAgICAgIH0KIAogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHN0ZDo6Z2V0PDA+KCpyZXBseSkpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYo
c2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgV2ViIHBy
b2Nlc3MgaXMgZG9uZSBmZXRjaGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICAgICAgUkVM
RUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91
bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRvbmUgZmV0Y2hpbmcgV2Vi
c2l0ZSBkYXRhIiwgdGhpcyk7CiAgICAgfSk7CiB9CiAKQEAgLTcyNywxMSArNzI4LDExIEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2Vic2l0ZURhCiAgICAgQVNTRVJUKGNhblNlbmRNZXNzYWdlKCkpOwogCiAg
ICAgYXV0byB0b2tlbiA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Ci0g
ICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAi
JXAgLSBXZWJQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVj
YXVzZSB0aGUgV2ViIHByb2Nlc3MgaXMgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7Cisg
ICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tn
cm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNp
dGUgZGF0YSIsIHRoaXMpOwogCiAgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aFJlcGx5KE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YShzZXNzaW9uSUQsIGRhdGFUeXBlcywg
bW9kaWZpZWRTaW5jZSksIDAsIFJ1bkxvb3A6Om1haW4oKSwgW3RoaXMsIHRva2VuLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSURdKGF1dG8g
cmVwbHkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCAiJXAgLSBXZWJQcm9j
ZXNzUHJveHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUg
V2ViIHByb2Nlc3MgaXMgZG9uZSBkZWxldGluZyBXZWJzaXRlIGRhdGEiLCB0aGlzKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRvbmUgZGVsZXRp
bmcgV2Vic2l0ZSBkYXRhIiwgdGhpcyk7CiAgICAgfSk7CiB9CiAKQEAgLTc0MCw3ICs3NDEsNyBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldAogICAgIEFTU0VSVChjYW5TZW5kTWVzc2FnZSgpKTsK
IAogICAgIGF1dG8gdG9rZW4gPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigp
OwotICAgIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9u
IGJlY2F1c2UgdGhlIFdlYiBwcm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2
ZXJhbCBvcmlnaW5zIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vz
c1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYiBw
cm9jZXNzIGlzIGRlbGV0aW5nIFdlYnNpdGUgZGF0YSBmb3Igc2V2ZXJhbCBvcmlnaW5zIiwgdGhp
cyk7CiAKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5EYXRhOwogICAgIGZv
ciAoYXV0byYgb3JpZ2luIDogb3JpZ2lucykKQEAgLTc0OCw3ICs3NDksNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldAogCiAgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aFJlcGx5KE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoc2Vzc2lvbklELCBkYXRh
VHlwZXMsIG9yaWdpbkRhdGEpLCAwLCBSdW5Mb29wOjptYWluKCksIFt0aGlzLCB0b2tlbiwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklEXShh
dXRvIHJlcGx5KSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lGKHNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgIiVwIC0gV2Vi
UHJvY2Vzc1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ug
dGhlIFdlYiBwcm9jZXNzIGlzIGRvbmUgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFs
IG9yaWdpbnMiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vz
c1Byb3h5IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdl
YiBwcm9jZXNzIGlzIGRvbmUgZGVsZXRpbmcgV2Vic2l0ZSBkYXRhIGZvciBzZXZlcmFsIG9yaWdp
bnMiLCB0aGlzKTsKICAgICB9KTsKIH0KIApAQCAtOTQ1LDcgKzk0Niw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSBzdGF0ZSkKIAog
ICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQ6
Ci0gICAgICAgIFJFTEVBU0VfTE9HKCIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUoU3VzcGVuZGVkKSByZWxlYXNlIGFsbCBhc3NlcnRpb25zIGZvciBuZXR3b3JrIHBy
b2Nlc3MiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoU3VzcGVuZGVkKSByZWxl
YXNlIGFsbCBhc3NlcnRpb25zIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKICAgICAgICAg
bV9mb3JlZ3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiAgICAgICAgIG1f
YmFja2dyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3MgPSBudWxscHRyOwogICAgICAgICBmb3Ig
KGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCkBAIC05NTMsMTMgKzk1NCwxMyBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUg
c3RhdGUpCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6QmFja2dy
b3VuZDoKLSAgICAgICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRB
c3NlcnRpb25TdGF0ZShCYWNrZ3JvdW5kKSB0YWtpbmcgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9y
IG5ldHdvcmsgcHJvY2VzcyIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShCYWNr
Z3JvdW5kKSB0YWtpbmcgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2VzcyIs
IHRoaXMpOwogICAgICAgICBtX2JhY2tncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gcHJv
Y2Vzc1Bvb2woKS5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91bmRB
Y3Rpdml0eVRva2VuKCk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nl
c3MgPSBudWxscHRyOwogICAgICAgICBicmVhazsKICAgICAKICAgICBjYXNlIEFzc2VydGlvblN0
YXRlOjpGb3JlZ3JvdW5kOgotICAgICAgICBSRUxFQVNFX0xPRygiJXAgLSBXZWJQcm9jZXNzUHJv
eHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEZvcmVncm91bmQpIHRha2luZyBmb3JlZ3JvdW5kIGFz
c2VydGlvbiBmb3IgbmV0d29yayBwcm9jZXNzIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlv
blN0YXRlKEZvcmVncm91bmQpIHRha2luZyBmb3JlZ3JvdW5kIGFzc2VydGlvbiBmb3IgbmV0d29y
ayBwcm9jZXNzIiwgdGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0d29ya1By
b2Nlc3MgPSBwcm9jZXNzUG9vbCgpLmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGhyb3R0bGVyKCku
Zm9yZWdyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICAgICAgbV9iYWNrZ3JvdW5kVG9rZW5Gb3JO
ZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiAgICAgICAgIGZvciAoYXV0byYgcGFnZSA6IG1fcGFn
ZU1hcC52YWx1ZXMoKSkKQEAgLTk3NiwxMiArOTc3LDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSBzdGF0ZSkKIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZp
bGVzKQogewogICAgIGlmICghaXNIb2xkaW5nTG9ja2VkRmlsZXMpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0coIlVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNh
dXNlIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgaXMgbm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2VkIGZp
bGVzIik7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNz
IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRl
bnQgcHJvY2VzcyBpcyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKICAgICAgICAg
bV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKCFtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HKCJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24g
YmVjYXVzZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7
CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRh
a2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2Vz
cyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwogICAgICAgICBtX3Rva2VuRm9ySG9sZGluZ0xv
Y2tlZEZpbGVzID0gbV90aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3Nl
cnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRp
b25JT1MubW0KaW5kZXggODgyNDU1ZjM3Y2I1NjE2ZTc0MDU4M2NjMzAzMTk0Mzc0ZDhmY2JiOS4u
NmIyMjQwMTcxZjAzMWFiMDNjYzM3MTE5NGI2YmEzZGQ4NTM0ZDg4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMjks
NiArMjksNyBAQAogI2lmIFBMQVRGT1JNKElPUykKIAogI2ltcG9ydCAiQXNzZXJ0aW9uU2Vydmlj
ZXNTUEkuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgPFVJS2l0L1VJQXBwbGljYXRp
b24uaD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgpA
QCAtMTA1LDcgKzEwNiw3IEBAIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRUYXNrCiB7CiAgICAg
aWYgKF9uZWVkc1RvUnVuSW5CYWNrZ3JvdW5kQ291bnQgJiYgX2JhY2tncm91bmRUYXNrID09IFVJ
QmFja2dyb3VuZFRhc2tJbnZhbGlkKSB7CiAgICAgICAgIF9iYWNrZ3JvdW5kVGFzayA9IFtbVUlB
cHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gYmVnaW5CYWNrZ3JvdW5kVGFza1dpdGhOYW1l
OkAiY29tLmFwcGxlLldlYktpdC5Qcm9jZXNzQXNzZXJ0aW9uIiBleHBpcmF0aW9uSGFuZGxlcjpe
ewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoIkJhY2tncm91bmQgdGFzayBleHBpcmVk
IHdoaWxlIGhvbGRpbmcgV2ViS2l0IFByb2Nlc3NBc3NlcnRpb24gKGlzTWFpblRocmVhZD8gJWQp
LiIsIFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiQmFja2dyb3VuZCB0YXNrIGV4cGlyZWQgd2hpbGUgaG9sZGluZyBX
ZWJLaXQgUHJvY2Vzc0Fzc2VydGlvbiAoaXNNYWluVGhyZWFkPyAlZCkuIiwgUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICAgICAgLy8gVGhlIGV4cGlyYXRpb24gaGFuZGxlciBnZXRzIGNhbGxl
ZCBvbiBhIG5vbi1tYWluIHRocmVhZCB3aGVuIHRoZSB1bmRlcmx5aW5nIGFzc2VydGlvbiBjb3Vs
ZCBub3QgYmUgdGFrZW4gKHJkYXI6Ly9wcm9ibGVtLzI3Mjc4NDE5KS4KICAgICAgICAgICAgIGlm
IChSdW5Mb29wOjppc01haW4oKSkKICAgICAgICAgICAgICAgICBbc2VsZiBfbm90aWZ5Q2xpZW50
c09mSW1taW5lbnRTdXNwZW5zaW9uXTsKQEAgLTE2NSw3ICsxNjYsNyBAQCBQcm9jZXNzQXNzZXJ0
aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9u
U3RhdGUsIEZ1bgogICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CiAgICAgQktT
UHJvY2Vzc0Fzc2VydGlvbkFjcXVpc2l0aW9uSGFuZGxlciBoYW5kbGVyID0gXihCT09MIGFjcXVp
cmVkKSB7CiAgICAgICAgIGlmICghYWNxdWlyZWQpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKCJVbmFibGUgdG8gYWNxdWlyZSBhc3NlcnRpb24gZm9yIHByb2Nlc3MgJWQiLCBwaWQp
OworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJVbmFi
bGUgdG8gYWNxdWlyZSBhc3NlcnRpb24gZm9yIHByb2Nlc3MgJWQiLCBwaWQpOwogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCmluZGV4IGFmY2NkMWU0ZDcxMDA2NjI3MzMyYmY1MzhjYmQzNjQ0Mzg4OTFk
YTMuLmE3Yzc4NzdlZjFmNjBhNWE1Yjk4NjM2MmJmM2I2YWE5OGZmZmI3ODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmNwcApAQCAtNTcsOCArNTcsOCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotI2Rl
ZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYobG9hZFBhcmFt
ZXRlcnMuc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBfX1ZBX0FSR1NfXykK
LSNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGKGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxF
QVNFX0xPR19JRihsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIE5ldHdvcmssIF9fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYobG9hZFBhcmFtZXRlcnMuc2Vzc2lv
bklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCBfX1ZBX0FSR1NfXykKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDljMDA5NDM4Y2E5NTMyMjMy
ODgyMzc4OTFhY2RmMjc3NzMxZDdjNGUuLjdmY2EyZjkzZDU1ZWE3NTY1ZDRhNGRlYjgyNDZhNTU1
ODk4MTljNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNDIsNyArNDIsNyBAQAogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVM
RUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2Rl
ZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssIF9fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDIyYjgwNzgwZWM5MGEyODVjOTIyZjJkZTUwYTM4YWY3ZDMwZDg0MDYuLmY2ODc0ZDMw
YzhiMWE5NDk0ODYxNzA4ZjU4ODNiZDM2NmRkNzhlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI1NSw4ICsyNTUsOCBAQCBzdGF0aWMg
Y29uc3QgZG91YmxlIHBhZ2VTY3JvbGxIeXN0ZXJlc2lzU2Vjb25kcyA9IDAuMzsKIHN0YXRpYyBj
b25zdCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGluaXRpYWxMYXllclZvbGF0aWxpdHlUaW1l
ckludGVydmFsIHsgMjAgfTsKIHN0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBtYXhp
bXVtTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCB7IDIgfTsKIAotI2RlZmluZSBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIF9fVkFfQVJHU19fKQotI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9f
VkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9M
T0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIExheWVycywgX19WQV9BUkdTX18pCisj
ZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19FUlJP
Ul9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTGF5ZXJzLCBfX1ZBX0FSR1NfXykKIAog
Y2xhc3MgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHsKIHB1YmxpYzoKQEAgLTIwNjQsNyAr
MjA2NCw3IEBAIHZvaWQgV2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCgpCiAgICAg
Ym9vbCBkaWRTdWNjZWVkID0gbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxl
KCk7CiAgICAgaWYgKGRpZFN1Y2NlZWQgfHwgbmV3SW50ZXJ2YWwgPiBtYXhpbXVtTGF5ZXJWb2xh
dGlsaXR5VGltZXJJbnRlcnZhbCkgewogICAgICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0
b3AoKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBXZWJQYWdlIC0gQXR0
ZW1wdGVkIHRvIG1hcmsgc3VyZmFjZXMgYXMgdm9sYXRpbGUsIHN1Y2Nlc3M/ICVkIiwgdGhpcywg
ZGlkU3VjY2VlZCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gV2ViUGFn
ZSAtIEF0dGVtcHRlZCB0byBtYXJrIGxheWVycyBhcyB2b2xhdGlsZSwgc3VjY2Vzcz8gJWQiLCB0
aGlzLCBkaWRTdWNjZWVkKTsKICAgICAgICAgY2FsbFZvbGF0aWxpdHlDb21wbGV0aW9uSGFuZGxl
cnMoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IDg0NTdmZDdkMGQ3MDBhM2YzOWQwODVjODRjYzA0NjhmMmQzOTgy
Y2IuLmIzYWM3YWE3M2M2ZjI5NmEyMzVlZTcxOTc0ZTExM2ZhNTIzNTA3YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTI3MiwxMCArMTI3MiwxMCBAQCB2
b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VX
aGVuUmVhZHlUb1N1c3BlbmQgc2hvdQogICAgIHNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbih0
cnVlKTsKIAogICAgIG1hcmtBbGxMYXllcnNWb2xhdGlsZShbdGhpcywgc2hvdWxkQWNrbm93bGVk
Z2VXaGVuUmVhZHlUb1N1c3BlbmRdIHsKLSAgICAgICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJv
Y2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCkgU3VjY2Vzc2Z1bHkgbWFya2VkIGFsbCBsYXll
cnMgYXMgdm9sYXRpbGUiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZSgpIFN1Y2Nlc3Nm
dWx5IG1hcmtlZCBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlIiwgdGhpcyk7CiAKICAgICAgICAgaWYg
KHNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kID09IFNob3VsZEFja25vd2xlZGdl
V2hlblJlYWR5VG9TdXNwZW5kOjpZZXMpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKCIlcCAt
IFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFk
eVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0co
UHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3Bl
bmQoKSBTZW5kaW5nIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCBJUEMgbWVzc2FnZSIsIHRoaXMpOwog
ICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKSwgMCk7CiAgICAgICAgIH0KICAg
ICB9KTsKQEAgLTEyOTEsNyArMTI5MSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxT
dXNwZW5kSW1taW5lbnRseShib29sJiBoYW5kbGVkKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1t
aW5lbnRseSgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoKSIsIHRoaXMpOwog
ICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRR
dWVyeUJlaGF2aW9yOjpJbnRlcnJ1cHQpOwogICAgIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hv
dWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQ6Ok5vKTsKICAgICBoYW5kbGVkID0gdHJ1
ZTsKQEAgLTEyOTksMTMgKzEyOTksMTMgQEAgdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzV2lsbFN1
c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRsZWQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6cHJlcGFy
ZVRvU3VzcGVuZCgpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6cHJlcGFy
ZVRvU3VzcGVuZCgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtIFdlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwogICAgIGFjdHVh
bFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQ6Olll
cyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiB7Ci0g
ICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgp
IiwgdGhpcyk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlBy
b2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKSIsIHRoaXMpOwogICAgIHNldEFsbExheWVy
VHJlZVN0YXRlc0Zyb3plbihmYWxzZSk7CiAKICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZpbmlz
aGVkIGNsZWFuaW5nIHVwIGFuZCBzZW50IFByb2Nlc3NSZWFkeVRvU3VzcGVuZCwgd2UKQEAgLTEz
MTUsMTMgKzEzMTUsMTMgQEAgdm9pZCBXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5k
KCkKIAogICAgIGNhbmNlbE1hcmtBbGxMYXllcnNWb2xhdGlsZSgpOwogCi0gICAgUkVMRUFTRV9M
T0coIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIFNlbmRpbmcgRGlk
Q2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24gSVBDIG1lc3NhZ2UiLCB0aGlzKTsKKyAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRv
U3VzcGVuZCgpIFNlbmRpbmcgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24gSVBDIG1lc3NhZ2Ui
LCB0aGlzKTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCksIDApOwogfQogCiB2
b2lkIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZShzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4gY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVwIC0gV2ViUHJvY2Vz
czo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCkiLCB0aGlzKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6bWFya0FsbExheWVyc1ZvbGF0aWxlKCki
LCB0aGlzKTsKICAgICBtX3BhZ2VzTWFya2luZ0xheWVyc0FzVm9sYXRpbGUgPSBtX3BhZ2VNYXAu
c2l6ZSgpOwogICAgIGlmICghbV9wYWdlc01hcmtpbmdMYXllcnNBc1ZvbGF0aWxlKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC0xMzU0LDcgKzEzNTQsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnNldEFsbExheWVyVHJlZVN0YXRlc0Zyb3plbihib29sIGZyb3plbikKICAgICAKIHZv
aWQgV2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCiB7Ci0gICAgUkVMRUFTRV9MT0coIiVw
IC0gV2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgUkVMRUFTRV9M
T0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUo
KSIsIHRoaXMpOwogCiAgICAgY2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKCk7CiAgICAgc2V0
QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKGZhbHNlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>