<?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>157101</bug_id>
          
          <creation_ts>2016-04-27 14:08:42 -0700</creation_ts>
          <short_desc>All Books quirks are flakily not applied in modern WebKit (Add a preference to allow clients to turn on the &quot;const&quot; JS quirk)</short_desc>
          <delta_ts>2021-04-23 15:42:34 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=157006</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=215978</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>mjs</cc>
    
    <cc>saam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187949</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-04-27 14:08:42 -0700</bug_when>
    <thetext>Add a preference to allow clients to turn on the &quot;const&quot; JS quirk

rdar://problem/25965028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187951</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-04-27 14:09:48 -0700</bug_when>
    <thetext>This should be coupled with removing the iBooks bundle check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742709</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 01:41:57 -0700</bug_when>
    <thetext>*** Bug 223628 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742713</commentid>
    <comment_count>3</comment_count>
      <attachid>423996</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 01:43:14 -0700</bug_when>
    <thetext>Created attachment 423996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742847</commentid>
    <comment_count>4</comment_count>
      <attachid>423996</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-23 09:30:24 -0700</bug_when>
    <thetext>Comment on attachment 423996
Patch

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

&gt; Source/WebCore/platform/RuntimeApplicationChecks.h:50
&gt; +bool isInAuxiliaryProcess();

I don&apos;t know what &quot;auxiliary&quot; means in this context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742887</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 10:13:19 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 423996 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423996&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/RuntimeApplicationChecks.h:50
&gt; &gt; +bool isInAuxiliaryProcess();
&gt; 
&gt; I don&apos;t know what &quot;auxiliary&quot; means in this context.

Well, it’s the name used throughout WebKit2 and even in this code already :) “WebKit subprocess”

Looks like the GPUP needs to get the hosting app plumbed to it, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742988</commentid>
    <comment_count>6</comment_count>
      <attachid>424058</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 13:46:30 -0700</bug_when>
    <thetext>Created attachment 424058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742999</commentid>
    <comment_count>7</comment_count>
      <attachid>424058</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 14:01:48 -0700</bug_when>
    <thetext>Comment on attachment 424058
Patch

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

&gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:88
&gt; +    if (!ok)

return ok; :)

&gt; Source/WebKit/WebProcess/WebProcess.cpp:488
&gt; +    commonVM().setGlobalConstRedeclarationShouldThrow(parameters.shouldThrowExceptionForGlobalConstantRedeclaration);

Why don&apos;t we do the bundle check here? What&apos;s the benefit of having a configuration flag set specifically by that app and wire it all the way down to the WebProcess? The previous code seemed simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743002</commentid>
    <comment_count>8</comment_count>
      <attachid>424058</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-23 14:09:51 -0700</bug_when>
    <thetext>Comment on attachment 424058
Patch

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

&gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:82
&gt; +    String clientIdentifierString = xpc_dictionary_get_string(m_initializerMessage, &quot;client-sdk-version&quot;);

It’s not necessary to put a string into a WTF::String just to use WTF’s parsing. The charactersToUIntStrict has the same algorithm as String::toUIntStrict, but you can pass it 8-bit characters. Also, it handles null pointers. So this can be:

    auto string = xpc_dictionary_get_string(m_initializerMessage, &quot;client-sdk-version&quot;);
    bool ok;
    clientSDKVersion = charactersToUIntStrict(string, string ? std::strlen(string) : 0, &amp;ok);
    return ok;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743003</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-23 14:10:20 -0700</bug_when>
    <thetext>Might need a reinterpret_cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743017</commentid>
    <comment_count>10</comment_count>
      <attachid>424068</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 14:46:34 -0700</bug_when>
    <thetext>Created attachment 424068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743020</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 14:50:46 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; Comment on attachment 424058 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424058&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:88
&gt; &gt; +    if (!ok)
&gt; 
&gt; return ok; :)

Good point, I stole this from the method below that needs to do one more thing :)

&gt; &gt; Source/WebKit/WebProcess/WebProcess.cpp:488
&gt; &gt; +    commonVM().setGlobalConstRedeclarationShouldThrow(parameters.shouldThrowExceptionForGlobalConstantRedeclaration);
&gt; 
&gt; Why don&apos;t we do the bundle check here? What&apos;s the benefit of having a
&gt; configuration flag set specifically by that app and wire it all the way down
&gt; to the WebProcess? The previous code seemed simpler.

My understanding is that it&apos;s generally considered incorrect to do a bundle check where SPI would do the trick (read: for apps that build alongside WebKit)

(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 424058 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424058&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:82
&gt; &gt; +    String clientIdentifierString = xpc_dictionary_get_string(m_initializerMessage, &quot;client-sdk-version&quot;);
&gt; 
&gt; It’s not necessary to put a string into a WTF::String just to use WTF’s
&gt; parsing. The charactersToUIntStrict has the same algorithm as
&gt; String::toUIntStrict, but you can pass it 8-bit characters. Also, it handles
&gt; null pointers. So this can be:
&gt; 
&gt;     auto string = xpc_dictionary_get_string(m_initializerMessage,
&gt; &quot;client-sdk-version&quot;);
&gt;     bool ok;
&gt;     clientSDKVersion = charactersToUIntStrict(string, string ?
&gt; std::strlen(string) : 0, &amp;ok);
&gt;     return ok;

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743028</commentid>
    <comment_count>12</comment_count>
      <attachid>424073</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 15:13:47 -0700</bug_when>
    <thetext>Created attachment 424073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743032</commentid>
    <comment_count>13</comment_count>
      <attachid>424073</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-23 15:22:03 -0700</bug_when>
    <thetext>Comment on attachment 424073
Patch

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

&gt; Source/WebKit/ChangeLog:28
&gt; +        Add an assertion, and move the quirk to live as a setting on the process
&gt; +        pool configuration, to be set via SPI by Books, instead of as a bundle check.

I know we have long wanted to use SPI or API for this quirk rather than a bundle ID check. I would slightly prefer API over SPI. Is this OK for iBooks? Do we need a bundle ID check to smooth over a transition period? If so, can we make one that works?

&gt; Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm:212
&gt; +    xpc_dictionary_set_string(bootstrapMessage.get(), &quot;client-sdk-version&quot;, String::number(applicationSDKVersion()).utf8().data());
&gt;      xpc_dictionary_set_string(bootstrapMessage.get(), &quot;process-identifier&quot;, String::number(m_launchOptions.processIdentifier.toUInt64()).utf8().data());

Seems like we ought to make a CString::number function for cases like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743041</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-23 15:36:53 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #13)
&gt; Comment on attachment 424073 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424073&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:28
&gt; &gt; +        Add an assertion, and move the quirk to live as a setting on the process
&gt; &gt; +        pool configuration, to be set via SPI by Books, instead of as a bundle check.
&gt; 
&gt; I know we have long wanted to use SPI or API for this quirk rather than a
&gt; bundle ID check.

At some point, I&apos;d like to get rid of all of the com.apple.* bundle checks, but this one takes precedence because it&apos;s breaking things :)

&gt; I would slightly prefer API over SPI.

I&apos;m pretty sure there is zero precedent for making a nitpicky JavaScript behavior configuration like this API. If we want to change course for the project as a whole, that would need a larger conversation.

&gt; Is this OK for iBooks? Do we need a bundle ID check to smooth over a transition period? If
&gt; so, can we make one that works?

We do not need a temporary check, because the current check is already not working :) I checked with Books folks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743045</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-23 15:43:32 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #14)
&gt; &gt; I would slightly prefer API over SPI.
&gt;
&gt; I&apos;m pretty sure there is zero precedent for making a nitpicky JavaScript
&gt; behavior configuration like this API. If we want to change course for the
&gt; project as a whole, that would need a larger conversation.

Ideally long term the burden of argument goes the other way for future WebKit. I’d like us to think in terms of API, not SPI, whenever there’s a real requirement. Even a small one. Minimizing SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743154</commentid>
    <comment_count>16</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-03-23 22:49:38 -0700</bug_when>
    <thetext>An SPI is certainly an upgrade to a bundle check.

If the &quot;const&quot; quirk is for compatibility with some existing books, then other EPUB readers using WebKit might want the same quirk. If it&apos;s for something truly specific to only the iBooks app (like script they inject that they didn&apos;t want to rewrite it), then maybe not.

In any case, it seems reasonable to land this without having resolved the question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743241</commentid>
    <comment_count>17</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 02:27:40 -0700</bug_when>
    <thetext>I have been entirely unable to reproduce the debug bot&apos;s Webauthn failures (even with a macOS debug WK2 build on Big Sur, exactly like the bot), but they really do seem unique to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743245</commentid>
    <comment_count>18</comment_count>
      <attachid>424115</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 02:45:37 -0700</bug_when>
    <thetext>Created attachment 424115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743381</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-24 10:22:56 -0700</bug_when>
    <thetext>(In reply to Maciej Stachowiak from comment #16)
&gt; In any case, it seems reasonable to land this without having resolved the
&gt; question.

Absolutely.

I said &quot;long term&quot; to try to make it clear that I wasn’t talking about &quot;in this patch&quot;, but maybe that wasn’t obvious enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743465</commentid>
    <comment_count>20</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 12:21:52 -0700</bug_when>
    <thetext>I&apos;m about ready to blow past the bot, even if only to have it fail on the post-commit bots and collect more information about the failing configuration, since I am coming up empty with ideas or repro. But let me post one patch to try to catch it first...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743550</commentid>
    <comment_count>21</comment_count>
      <attachid>424184</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 14:30:50 -0700</bug_when>
    <thetext>Created attachment 424184
not for landing, just debugging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743553</commentid>
    <comment_count>22</comment_count>
      <attachid>424185</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 14:37:31 -0700</bug_when>
    <thetext>Created attachment 424185
not for landing, just debugging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743650</commentid>
    <comment_count>23</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 19:49:50 -0700</bug_when>
    <thetext>OK, I think the latest test results reveal the problem; in WKTR, we&apos;re getting the bundle identifier &quot;WebKitTestRunner&quot; instead of &quot;com.apple.WebKit.WebKitTestRunner&quot; for WKTR

Because _NSGetProgName (which feeds client-identifier, which is what I used in this patch) ≠ [[NSBundle mainBundle] bundleIdentifier] (which is what we used to use) in this case.

(I don&apos;t understand why it works locally, but this makes sense).

In the interests of not going crazy I&apos;m going to do one of two things, whichever works:

1) Use XPC API to get the bundle identifier of the UI process instead of shipping it across.

or

2) Send [[NSBundle mainBundle] bundleIdentifier] separately in the bootstrap message.

I don&apos;t think it&apos;s a good idea to change client-identifier, since it seems to be used for a few things downstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743653</commentid>
    <comment_count>24</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 20:02:44 -0700</bug_when>
    <thetext>Nope, still wrong. clientIdentifier comes from [[NSBundle mainBundle] bundleIdentifier]; only falls back to _NSGetProgname() if it&apos;s empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743656</commentid>
    <comment_count>25</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 20:08:53 -0700</bug_when>
    <thetext>OK, we need to plumb it in parallel, and read *from* WebCore::applicationBundleIdentifier(), because of the WebCore::setApplicationBundleIdentifierOverride() that WKTR uses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743682</commentid>
    <comment_count>26</comment_count>
      <attachid>424219</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-25 00:13:25 -0700</bug_when>
    <thetext>Created attachment 424219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743705</commentid>
    <comment_count>27</comment_count>
      <attachid>424219</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-25 02:45:59 -0700</bug_when>
    <thetext>Comment on attachment 424219
Patch

Phew! The remaining failures on the debug bot are intermittently happening for other people&apos;s patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743713</commentid>
    <comment_count>28</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-25 03:14:49 -0700</bug_when>
    <thetext>Committed r275013: &lt;https://commits.webkit.org/r275013&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424219.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753765</commentid>
    <comment_count>29</comment_count>
      <attachid>424219</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-23 15:42:34 -0700</bug_when>
    <thetext>Comment on attachment 424219
Patch

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

&gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:120
&gt; +    if (!delegate.getClientBundleIdentifier(parameters.clientBundleIdentifier))
&gt; +        exit(EXIT_FAILURE);

This makes apps with the empty string as the bundle identifier unable to launch a WKWebView.  I accidentally made such an app and it looked like the web process was in a crash loop.  Might be a compatibility issue, might not.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423996</attachid>
            <date>2021-03-23 01:43:14 -0700</date>
            <delta_ts>2021-03-23 13:46:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157101-20210323014314.patch</filename>
            <type>text/plain</type>
            <size>16639</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjZGZjNjM5ZDg3OTE2
ZGM2NTQ1NDBiMDQ4ZWVmOTk4YjA4NThkOS4uMWRhMzMwNzM0MjE4ZWIyN2IxYmM1ZmY0ZDkyNGNh
NWFiZjFlNGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTIzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbCBCb29rcyBx
dWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTAxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IEkgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byB3
cml0ZSBhIHRlc3QgdGhhdCBkb2Vzbid0IGludm9sdmUKKyAgICAgICAgYWRkaW5nIGEgbmV3IHBh
cmFtZXRlciB0byB0aGUgcHJvY2VzcyBib290c3RyYXAgbWVzc2FnZSwgd2hpY2ggc2VlbXMKKyAg
ICAgICAgb3V0IG9mIHRoZSByZWFsbSBvZiByZWFzb24gZm9yIGEgdGVzdC4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xv
dyk6CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIFN0b3AgaGFyZGNvZGluZyBnbG9iYWxDb25zdFJlZGVjbGFy
YXRpb25TaG91bGRUaHJvdyBiYXNlZCBvbiB0aGUgVUkgcHJvY2VzcyBpZGVudGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjppc0luQXV4aWxpYXJ5UHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyT3ZlcnJpZGUpOgorICAgICAgICBBZGQgYW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFu
eSBmdXR1cmUgY2FzZSB3aGVyZSBhIGJ1bmRsZSBjaGVjayBpcyBxdWVyaWVkCisgICAgICAgIGlu
IGEgYXV4aWxpYXJ5IHByb2Nlc3MgYmVmb3JlIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uIGJ1bmRs
ZSBpZGVudGlmaWVyIGlzIHNldC4KKwogMjAyMS0wMy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciB2YWxpZGF0ZSBKU0FycmF5cyBpbiBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTMzMTNmYTZhZjBhMTlkZjQ1YjkzMjAzMmRjZWQ1
ODE2N2U5MTZiYi4uMmEwYWE4ODQ2MmFkMjMyZWUxNTk1ZGJkNTdiYWYzYjZmNTBiYTQzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0wMy0yMyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGwgQm9va3MgcXVpcmtzIGFyZSBmbGFraWx5
IG5vdCBhcHBsaWVkIGluIG1vZGVybiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5
NjUwMjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIwMDEyMSwgYSBxdWlyayB3YXMgaW50cm9kdWNlZCB0aGF0IHF1ZXJpZWQgdGhlIGlzSUJv
b2tzKCkKKyAgICAgICAgUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzIG1ldGhvZCBmcm9tIGluc2lk
ZSBjb21tb25WTSgpLgorCisgICAgICAgIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcyBidW5kbGUg
Y2hlY2tzIGNhY2hlIHRoZSByZXN1bHQgb2YgdGhlIGJ1bmRsZQorICAgICAgICBjaGVjaywgYW5k
LCBhcyBzdWNoLCBtdXN0IG5vdCBiZSBjYWxsZWQgdW50aWwgdGhlIGJ1bmRsZSBpZGVudGlmZXIg
b2YKKyAgICAgICAgdGhlIFVJIGFwcGxpY2F0aW9uIGlzIGtub3duLiBJbiBsZWdhY3kgV2ViS2l0
LCB0aGlzIGlzIG5vdCBhIHByb2JsZW0sCisgICAgICAgIGJlY2F1c2UgdGhlIGNoZWNrIGlzIHJ1
bm5pbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3M7IGluIG1vZGVybiBXZWJLaXQsCisgICAg
ICAgIHRoZXJlIGlzIGEgc2hvcnQgd2luZG93IGJldHdlZW4gcHJvY2VzcyBsYXVuY2ggYW5kIHRo
ZSBJbml0aWFsaXplV2ViUHJvY2VzcworICAgICAgICBtZXNzYWdlIGJlaW5nIHJlY2VpdmVkIHdo
ZXJlIHdlIHdvbid0IGtub3cgdGhlIGJ1bmRsZSBpZGVudGlmaWVyLCBhbmQgaWYKKyAgICAgICAg
aXNJQm9va3MoKSAob3IgYW55IG90aGVyIGJ1bmRsZSBjaGVjaykgaXMgY2FsbGVkIGR1cmluZyB0
aGlzIHRpbWUsIGl0IHdpbGwKKyAgICAgICAgY2FjaGUgdGhlIHdyb25nIHJlc3VsdC4KKworICAg
ICAgICBJdCBpcyBwb3NzaWJsZSBmb3IgY29tbW9uVk0oKSB0byBiZSBjYWxsZWQgaW4gdGhpcyB3
aW5kb3c7IG9uZSBwb3NzaWJsZSBwYXRoCisgICAgICAgIHRvIHRoaXMgaXMgYnkgdHJpZ2dlcmlu
ZyBhbiBvc19sb2dfZmF1bHQgZHVyaW5nIHRoaXMgdGltZSwgd2hpY2ggV2ViS2l0CisgICAgICAg
IG9ic2VydmVzICh2aWEgb3Nfc3RhdGVfYWRkX2hhbmRsZXIoKSkgaW4gb3JkZXIgdG8gZHVtcCBt
ZW1vcnkgdXNhZ2UKKyAgICAgICAgKHdoaWNoIGhhcHBlbnMgdG8gY2FsbCBjb21tb25WTSgpIGFu
ZCByZXN1bHRzIGluIGlzSUJvb2tzIGdldHRpbmcgY2FsbGVkCisgICAgICAgIGFuZCBjYWNoaW5n
IHRoZSB3cm9uZyB2YWx1ZSkuCisKKyAgICAgICAgQWRkIGFuIGFzc2VydGlvbiwgYW5kIG1vdmUg
dGhlIHF1aXJrIHRvIGxpdmUgYXMgYSBzZXR0aW5nIG9uIHRoZSBwcm9jZXNzCisgICAgICAgIHBv
b2wgY29uZmlndXJhdGlvbiwgdG8gYmUgc2V0IHZpYSBTUEkgYnkgQm9va3MsIGluc3RlYWQgb2Yg
YXMgYSBidW5kbGUgY2hlY2suCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaDoKKyAgICAgICAgQWxzbywgcmVtb3ZlIGFuIGV4dHJhIHVudXNlZCBtZW1i
ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5jcHA6CisgICAgICAgIChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSk6Cisg
ICAgICAgIChBUEk6OmRlZmF1bHRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50
UmVkZWNsYXJhdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRp
b25dKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldFNob3VsZFRo
cm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICBQbHVtYiBhIG5ldyBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gcGFyYW1ldGVyIHRvIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzLAorICAgICAgICBhbmQgc2V0
IHRoZSBiaXQgb24gdGhlIGNvbW1vblZNIHdoZW4gbGF1bmNoZWQuCisKIDIwMjEtMDMtMjIgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBlYXJseSBy
ZXR1cm4gaW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVG
aWx0ZXJlZERldmljZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NvbW1vblZNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcApp
bmRleCBkMzViZWQzMGZmNDVkYWJkNmQ2NzMyNGQzNGFiNDdmYzNmN2NkZGI4Li43Zjc2MDllOTMx
N2E2MTg3OGUwOWRiZDU0MzRlN2JiNjlmODAyNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Db21tb25WTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvQ29tbW9uVk0uY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSlND
bGllbnREYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KQEAg
LTQ0LDE4ICs0Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IDxyZGFy
Oi8vcHJvYmxlbS8yNTk2NTAyOD4gVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvciByZXBsYWNlZCB3
aXRoIGEgU2V0dGluZyB0aGF0IGlCb29rcyBjYW4gdXNlIGlmIGl0IGlzIHN0aWxsIG5lZWRlZC4K
LXN0YXRpYyBib29sIGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkKLXsKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuICFNYWNBcHBsaWNhdGlvbjo6aXNJQm9va3MoKTsK
LSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuICFJT1NBcHBsaWNhdGlvbjo6
aXNJQm9va3MoKTsKLSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLX0KLQogSlNDOjpW
TSogZ19jb21tb25WTU9yTnVsbDsKIAogSlNDOjpWTSYgY29tbW9uVk1TbG93KCkKQEAgLTg2LDgg
KzczLDYgQEAgSlNDOjpWTSYgY29tbW9uVk1TbG93KCkKICAgICB2bS5oZWFwLm1hY2hpbmVUaHJl
YWRzKCkuYWRkQ3VycmVudFRocmVhZCgpOwogI2VuZGlmCiAKLSAgICB2bS5zZXRHbG9iYWxDb25z
dFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyhnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRU
aHJvdygpKTsKLQogICAgIEpTVk1DbGllbnREYXRhOjppbml0Tm9ybWFsV29ybGQoJnZtLCBXb3Jr
ZXJUaHJlYWRUeXBlOjpNYWluKTsKIAogICAgIHJldHVybiB2bTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IDE0OWEx
ZjRhYWZmNzZkYWE1MzdhYjNmMTkyNjMzMDliNmE3Y2VmMDcuLjk4MGZmZTk1ODAwM2VkYWU4NmFj
Yjg4ZGI5NDEyMzc3OWIyOTczMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtNjYsNiArNjYsMTEgQEAgc3RhdGlj
IE9wdGlvbmFsPEF1eGlsaWFyeVByb2Nlc3NUeXBlPiYgYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKQog
ICAgIHJldHVybiBhdXhpbGlhcnlQcm9jZXNzVHlwZTsKIH0KIAorYm9vbCBpc0luQXV4aWxpYXJ5
UHJvY2VzcygpCit7CisgICAgcmV0dXJuICEhYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKTsKK30KKwog
dm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQog
ewogICAgIGF1eGlsaWFyeVByb2Nlc3NUeXBlKCkgPSB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCA0ZGE0YmFjMDk0
YTZlNGQwYjFmMzg4ZGZmYmU3MjI4YjA1OWI2ZDJmLi45ZDZmYjY1ZmNhMWI0ZDJmYWE5NjFmZGY1
ZjU3ZjA1ZmZhMTM1ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIGNsYXNzIEF1eGls
aWFyeVByb2Nlc3NUeXBlIDogdWludDhfdCB7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1eGls
aWFyeVByb2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlKTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgY2hlY2tBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiAKK2Jv
b2wgaXNJbkF1eGlsaWFyeVByb2Nlc3MoKTsKIGlubGluZSBib29sIGlzSW5XZWJQcm9jZXNzKCkg
eyByZXR1cm4gY2hlY2tBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZTo6
V2ViQ29udGVudCk7IH0KIGlubGluZSBib29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJu
IGNoZWNrQXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6Ok5ldHdvcmsp
OyB9CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQpp
bmRleCA3YjRjMDYxZjIxYTBiM2RjOWU0OWFkZjI2OWMzMTk5NDhlNWEyYjQzLi5mMjVjMWFiZGU0
YmY5MzRiZDFkZjI5NDE1ZWQ0YzgxZWFlMGUwNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2Nv
YS5tbQpAQCAtNjUsNiArNjUsNyBAQCBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
KCkKICAgICBBU1NFUlQoaWRlbnRpZmllci5pc051bGwoKSB8fCBSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgaWYgKGlkZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIGlkZW50aWZpZXIgPSBidW5k
bGVJZGVudGlmaWVyKCk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghaXNJbkF1eGlsaWFyeVBy
b2Nlc3MoKSB8fCAhIWlkZW50aWZpZXIsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFu
ZCBhcHBsaWNhdGlvbkJ1bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3Jl
IHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGluIGF1eGlsaWFyeSBwcm9jZXNzZXMi
KTsKICAgICByZXR1cm4gaWRlbnRpZmllci5pc051bGwoKSA/IFN0cmluZyhbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKSA6IGlkZW50aWZpZXI7CiB9CiAKQEAgLTc3LDcg
Kzc4LDcgQEAgdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyKQogdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlk
ZShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXJPdmVycmlkZVdhc1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBh
cHBsaWNhdGlvbkJ1bmRsZVN0YXJ0c1dpdGgoKSBzaG91bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUg
c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkiKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdhc1F1ZXJpZWQsICJhcHBs
aWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1bmRsZVN0YXJ0c1dpdGgo
KSBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ck92ZXJyaWRlKCkiKTsKICAgICBidW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IGlkZW50aWZp
ZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZGJlZTg0MzI5OGY2ZjU1ZmJlYjhhNzRmMTU2YzI0OTBj
MjY4NzczYS4uN2IxMmZmODg2N2JkMTM5ODBkMDdjOGEzMmYzOTZjYjQxNmQ1YTRhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKQEAgLTExOSw2ICsxMTksNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBlbmNvZGVyIDw8
IG1lbW9yeUNhY2hlRGlzYWJsZWQ7CiAgICAgZW5jb2RlciA8PCBhdHRyU3R5bGVFbmFibGVkOwor
ICAgIGVuY29kZXIgPDwgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVj
bGFyYXRpb247CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBlbmNvZGVyIDw8
IGhhc0ltYWdlU2VydmljZXM7CkBAIC0zNzEsNiArMzcyLDggQEAgYm9vbCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNz
Q3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5hdHRyU3R5bGVFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2Jh
bENvbnN0YW50UmVkZWNsYXJhdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5oYXNJbWFnZVNlcnZpY2VzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzZDU3M2UzNjM1MzBmNmM0N2Q5M2IyZjdl
M2E3Y2UyMjA3YjU0NDc3Li4zMjYxMzIzM2NmODdhYjkzZTA2OTdkNTcyMDMzYjlkODlkYzYyOTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCkBAIC0xMjYsNyArMTI2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIGJvb2wgaGFzU3R5bHVzRGV2aWNlIHsgZmFsc2UgfTsKICAgICBib29s
IG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxl
ZCB7IGZhbHNlIH07Ci0gICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRl
Y2xhcmF0aW9uIHsgdHJ1ZSB9OwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAg
Ym9vbCBoYXNJbWFnZVNlcnZpY2VzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKaW5k
ZXggMTg1ODVmNjFiYjZlY2FiZWMzOWZmMGMwM2I4NjJjNjU4NTZkY2EyNC4uZDE2ZWQ3NzUzZmE1
OWZjODdlYTk0MDJmNWZmNDg3MjUyNWVkMzJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKQEAg
LTUyLDYgKzUyLDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNB
bGxvd2VkRm9yVGVzdGluZyA9IHRoaXMtPm1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRG
b3JUZXN0aW5nOwogICAgIGNvcHktPm1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0
c0ZvclRlc3RpbmcgPSB0aGlzLT5tX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNG
b3JUZXN0aW5nOwogICAgIGNvcHktPm1fYXR0clN0eWxlRW5hYmxlZCA9IHRoaXMtPm1fYXR0clN0
eWxlRW5hYmxlZDsKKyAgICBjb3B5LT5tX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29u
c3RhbnRSZWRlY2xhcmF0aW9uID0gdGhpcy0+bV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2Jh
bENvbnN0YW50UmVkZWNsYXJhdGlvbjsKICAgICBjb3B5LT5tX292ZXJyaWRlTGFuZ3VhZ2VzID0g
dGhpcy0+bV9vdmVycmlkZUxhbmd1YWdlczsKICAgICBjb3B5LT5tX2Fsd2F5c1J1bnNBdEJhY2tn
cm91bmRQcmlvcml0eSA9IHRoaXMtPm1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5Owog
ICAgIGNvcHktPm1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiA9IHRoaXMtPm1fc2hv
dWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCA2NDky
NDkwMmYxOTgxMTc5MjUzN2ExNWEzMmVkNGQ3MDZkYWY5NjcwLi4xZjUwNzljODVmZGI5NTRjZDZh
NmM3YzljZjcwMTliNGQyYzE2Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC05NCw2ICs5NCw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYXR0clN0eWxlRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QXR0clN0eWxlRW5hYmxlZChib29s
IGVuYWJsZWQpIHsgbV9hdHRyU3R5bGVFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIAorICAgIGJv
b2wgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRl
Y2xhcmF0aW9uOyB9CisgICAgdm9pZCBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENv
bnN0YW50UmVkZWNsYXJhdGlvbihib29sIHNob3VsZFRocm93KSB7IG1fc2hvdWxkVGhyb3dFeGNl
cHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24gPSBzaG91bGRUaHJvdzsgfQogCiAg
ICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgb3ZlcnJpZGVMYW5ndWFnZXMoKSBjb25zdCB7
IHJldHVybiBtX292ZXJyaWRlTGFuZ3VhZ2VzOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZUxhbmd1
YWdlcyhWZWN0b3I8V1RGOjpTdHJpbmc+JiYgbGFuZ3VhZ2VzKSB7IG1fb3ZlcnJpZGVMYW5ndWFn
ZXMgPSBXVEZNb3ZlKGxhbmd1YWdlcyk7IH0KQEAgLTE1Niw2ICsxNTksNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3RpbmcgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVz
dGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2F0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJh
dGlvbiB7IHRydWUgfTsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fb3ZlcnJpZGVMYW5ndWFn
ZXM7CiAgICAgYm9vbCBtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24geyB0cnVlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggNWYyMTM5NzBhY2ZjMDM5NjgzOWE2MTNi
YjhlZTk0MDdiZmU4ODgxZS4uZDRiNjUxNzdmOWZlNTkzNTEwYmVhNjQ4MzJkNDI1NTY5M2JlNTRi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtNDAsNiArNDAsOSBAQCBXS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOwogCisvLyBEZWZhdWx0cyB0byBZRVMuCitAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJh
dGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRp
b25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwg
aW9zKDExLjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUgJiYgIVRBUkdFVF9PU19TSU1VTEFU
T1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDllMGQ3OTBhM2QzNTI2MTNl
NjJhN2FmNjNlMzU5MzNkZTJiMGFiNTYuLjkzZDBiMWVkODA2ZWU2OThiZGY1MWE3MDIyYjBjYjVl
YWJiYWE5NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMTQxLDYgKzE0
MSwxNiBAQCAtICh2b2lkKXNldEF0dHJTdHlsZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAogICAgIHJl
dHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zZXRBdHRyU3R5bGVFbmFibGVkKGVuYWJs
ZWQpOwogfQogCistIChCT09MKXNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRS
ZWRlY2xhcmF0aW9uCit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNo
b3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKCk7Cit9CisK
Ky0gKHZvaWQpc2V0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFy
YXRpb246KEJPT0wpc2hvdWxkVGhyb3cKK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi0+c2V0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFy
YXRpb24oc2hvdWxkVGhyb3cpOworfQorCiAtIChOU0FycmF5PE5TVVJMICo+ICopYWRkaXRpb25h
bFJlYWRBY2Nlc3NBbGxvd2VkVVJMcwogewogICAgIGF1dG8gcGF0aHMgPSBfcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLT5hZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRocygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGM3MDEzNjYyYjYyMWFh
NjNjNjA1YjM5YTg3ZjcwMmVlZTUyNzRlZmEuLjVkNmQxMWE0MGE5Zjg0MzExMTg2YjdlMmYyNjQx
Y2YxZDk5ZTg0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKQEAgLTgyNiw2ICs4MjYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3
V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgcGFy
YW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1vcnlDYWNoZURpc2FibGVkOwogICAg
IHBhcmFtZXRlcnMuYXR0clN0eWxlRW5hYmxlZCA9IG1fY29uZmlndXJhdGlvbi0+YXR0clN0eWxl
RW5hYmxlZCgpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxD
b25zdGFudFJlZGVjbGFyYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24tPnNob3VsZFRocm93RXhjZXB0
aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKICAgICBhdXRvJiBzZXJ2aWNlQ29udHJvbGxlciA9IFNlcnZpY2VzQ29udHJv
bGxlcjo6c2luZ2xldG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggOTZiMWFkNDdjYzBhYzM5NTgzY2RmMWM5NDAyNTUzMDAwNTI5MzIxYy4uOWQ0NWU3YjI5
NjVmY2E2ZWQ0MTNlYzcyNTdhZTg1ODYxYWQxOTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtNDg0LDYgKzQ4NCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgc2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlz
YWJsZWQpOwogCiAgICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zZXRBdHRyU3R5bGVFbmFibGVkKHBhcmFtZXRlcnMuYXR0clN0eWxlRW5hYmxlZCk7
CisgICAgCisgICAgY29tbW9uVk0oKS5zZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRU
aHJvdyhwYXJhbWV0ZXJzLnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRl
Y2xhcmF0aW9uKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHNldEVuYWJs
ZWRTZXJ2aWNlcyhwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMsIHBhcmFtZXRlcnMuaGFzU2Vs
ZWN0aW9uU2VydmljZXMsIHBhcmFtZXRlcnMuaGFzUmljaENvbnRlbnRTZXJ2aWNlcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424058</attachid>
            <date>2021-03-23 13:46:30 -0700</date>
            <delta_ts>2021-03-23 14:49:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157101-20210323134629.patch</filename>
            <type>text/plain</type>
            <size>35050</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjZGZjNjM5ZDg3OTE2
ZGM2NTQ1NDBiMDQ4ZWVmOTk4YjA4NThkOS4uMWRhMzMwNzM0MjE4ZWIyN2IxYmM1ZmY0ZDkyNGNh
NWFiZjFlNGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTIzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbCBCb29rcyBx
dWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTAxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IEkgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byB3
cml0ZSBhIHRlc3QgdGhhdCBkb2Vzbid0IGludm9sdmUKKyAgICAgICAgYWRkaW5nIGEgbmV3IHBh
cmFtZXRlciB0byB0aGUgcHJvY2VzcyBib290c3RyYXAgbWVzc2FnZSwgd2hpY2ggc2VlbXMKKyAg
ICAgICAgb3V0IG9mIHRoZSByZWFsbSBvZiByZWFzb24gZm9yIGEgdGVzdC4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xv
dyk6CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIFN0b3AgaGFyZGNvZGluZyBnbG9iYWxDb25zdFJlZGVjbGFy
YXRpb25TaG91bGRUaHJvdyBiYXNlZCBvbiB0aGUgVUkgcHJvY2VzcyBpZGVudGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjppc0luQXV4aWxpYXJ5UHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyT3ZlcnJpZGUpOgorICAgICAgICBBZGQgYW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFu
eSBmdXR1cmUgY2FzZSB3aGVyZSBhIGJ1bmRsZSBjaGVjayBpcyBxdWVyaWVkCisgICAgICAgIGlu
IGEgYXV4aWxpYXJ5IHByb2Nlc3MgYmVmb3JlIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uIGJ1bmRs
ZSBpZGVudGlmaWVyIGlzIHNldC4KKwogMjAyMS0wMy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciB2YWxpZGF0ZSBKU0FycmF5cyBpbiBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTMzMTNmYTZhZjBhMTlkZjQ1YjkzMjAzMmRjZWQ1
ODE2N2U5MTZiYi4uNzU5ODA5MTdjMmRlODhhMzQzMzUzNDA4ZjIyNmEwNjBlMmQ4MTkyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MiBAQAorMjAyMS0wMy0yMyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGwgQm9va3MgcXVpcmtzIGFyZSBmbGFraWx5
IG5vdCBhcHBsaWVkIGluIG1vZGVybiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5
NjUwMjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIwMDEyMSwgYSBxdWlyayB3YXMgaW50cm9kdWNlZCB0aGF0IHF1ZXJpZWQgdGhlIGlzSUJv
b2tzKCkKKyAgICAgICAgUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzIG1ldGhvZCBmcm9tIGluc2lk
ZSBjb21tb25WTSgpLgorCisgICAgICAgIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcyBidW5kbGUg
Y2hlY2tzIGNhY2hlIHRoZSByZXN1bHQgb2YgdGhlIGJ1bmRsZQorICAgICAgICBjaGVjaywgYW5k
LCBhcyBzdWNoLCBtdXN0IG5vdCBiZSBjYWxsZWQgdW50aWwgdGhlIGJ1bmRsZSBpZGVudGlmZXIg
b2YKKyAgICAgICAgdGhlIFVJIGFwcGxpY2F0aW9uIGlzIGtub3duLiBJbiBsZWdhY3kgV2ViS2l0
LCB0aGlzIGlzIG5vdCBhIHByb2JsZW0sCisgICAgICAgIGJlY2F1c2UgdGhlIGNoZWNrIGlzIHJ1
bm5pbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3M7IGluIG1vZGVybiBXZWJLaXQsCisgICAg
ICAgIHRoZXJlIGlzIGEgc2hvcnQgd2luZG93IGJldHdlZW4gcHJvY2VzcyBsYXVuY2ggYW5kIHRo
ZSBJbml0aWFsaXplV2ViUHJvY2VzcworICAgICAgICBtZXNzYWdlIGJlaW5nIHJlY2VpdmVkIHdo
ZXJlIHdlIHdvbid0IGtub3cgdGhlIGJ1bmRsZSBpZGVudGlmaWVyLCBhbmQgaWYKKyAgICAgICAg
aXNJQm9va3MoKSAob3IgYW55IG90aGVyIGJ1bmRsZSBjaGVjaykgaXMgY2FsbGVkIGR1cmluZyB0
aGlzIHRpbWUsIGl0IHdpbGwKKyAgICAgICAgY2FjaGUgdGhlIHdyb25nIHJlc3VsdC4KKworICAg
ICAgICBJdCBpcyBwb3NzaWJsZSBmb3IgY29tbW9uVk0oKSB0byBiZSBjYWxsZWQgaW4gdGhpcyB3
aW5kb3c7IG9uZSBwb3NzaWJsZSBwYXRoCisgICAgICAgIHRvIHRoaXMgaXMgYnkgdHJpZ2dlcmlu
ZyBhbiBvc19sb2dfZmF1bHQgZHVyaW5nIHRoaXMgdGltZSwgd2hpY2ggV2ViS2l0CisgICAgICAg
IG9ic2VydmVzICh2aWEgb3Nfc3RhdGVfYWRkX2hhbmRsZXIoKSkgaW4gb3JkZXIgdG8gZHVtcCBt
ZW1vcnkgdXNhZ2UKKyAgICAgICAgKHdoaWNoIGhhcHBlbnMgdG8gY2FsbCBjb21tb25WTSgpIGFu
ZCByZXN1bHRzIGluIGlzSUJvb2tzIGdldHRpbmcgY2FsbGVkCisgICAgICAgIGFuZCBjYWNoaW5n
IHRoZSB3cm9uZyB2YWx1ZSkuCisKKyAgICAgICAgQWRkIGFuIGFzc2VydGlvbiwgYW5kIG1vdmUg
dGhlIHF1aXJrIHRvIGxpdmUgYXMgYSBzZXR0aW5nIG9uIHRoZSBwcm9jZXNzCisgICAgICAgIHBv
b2wgY29uZmlndXJhdGlvbiwgdG8gYmUgc2V0IHZpYSBTUEkgYnkgQm9va3MsIGluc3RlYWQgb2Yg
YXMgYSBidW5kbGUgY2hlY2suCisKKyAgICAgICAgQWxzbywgZW5zdXJlIHRoYXQgY2xpZW50IGJ1
bmRsZSBpZGVudGlmaWVyIGFuZCBTREsgdmVyc2lvbiBhcmUgc2V0IGluIAorICAgICAgICBhbGwg
V2ViS2l0IHN1YnByb2Nlc3Nlcywgc28gdGhhdCBidW5kbGUvU0RLIGNoZWNrcyB3b3JrIGV2ZXJ5
d2hlcmUKKyAgICAgICAgKHByZXZpb3VzbHksIHRoZSBHUFUgcHJvY2VzcyB3YXMgdXNpbmcgU0RL
IGNoZWNrcyB3aXRob3V0IGhhdmluZyBwdXNoZWQKKyAgICAgICAgdGhlIHZhbHVlcyBmcm9tIHRo
ZSBVSSBwcm9jZXNzLCByZXN1bHRpbmcgaW4gaW5jb3JyZWN0IHJlc3VsdHMsIGFuZAorICAgICAg
ICBydW5uaW5nIGFmb3VsIG9mIHRoZSBhc3NlcnRpb24gYWRkZWQgYWJvdmUpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAg
ICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAoQVBJOjpk
ZWZhdWx0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNob3Vs
ZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uXSk6CisgICAgICAg
ICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZv
ckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aW5pdGlh
bGl6ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAg
ICAgICAgUGx1bWIgYSBuZXcgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHBhcmFtZXRlciB0
byB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcywKKyAgICAgICAgYW5kIHNldCB0aGUgYml0IG9uIHRo
ZSBjb21tb25WTSB3aGVuIGxhdW5jaGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1By
b2Nlc3NDb2NvYSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBT
aGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9BdXhpbGlh
cnlQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNvYWxl
c2NpbmdQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbik6
CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAg
ICAgIFJlbW92ZSBhbiBleHRyYSB1bnVzZWQgbWVtYmVyLgorICAgICAgICAqIFNoYXJlZC9pb3Mv
QXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0F1
eGlsaWFyeVByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNv
YWxlc2NpbmdQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBQbHVtYiB0aGUg
Y2xpZW50IGJ1bmRsZSBpZGVudGlmZXIgYW5kIFNESyB2ZXJzaW9uIHRvIGFsbCBhdXhpbGlhcnkg
cHJvY2Vzc2VzCisgICAgICAgIGF0IHByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZSBpbnN0ZWFk
IG9mIEluaXRpYWxpemVXZWJQcm9jZXNzL05ldHdvcmtQcm9jZXNzCisgICAgICAgIG1lc3NhZ2Ug
cmVjZWlwdCB0aW1lLCBjbG9zaW5nIHRoZSB3aW5kb3cgaW4gd2hpY2ggaXQgaXMgaW52YWxpZCB0
byB1c2UKKyAgICAgICAgYnVuZGxlIGNoZWNrcywgYW5kIGVuc3VyaW5nIHRoYXQgYnVuZGxlIGNo
ZWNrcyB3b3JrIGluIGFsbCBwcm9jZXNzZXMuCisKIDIwMjEtMDMtMjIgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBlYXJseSByZXR1cm4gaW4gVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldmlj
ZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcAppbmRleCBkMzViZWQz
MGZmNDVkYWJkNmQ2NzMyNGQzNGFiNDdmYzNmN2NkZGI4Li43Zjc2MDllOTMxN2E2MTg3OGUwOWRi
ZDU0MzRlN2JiNjlmODAyNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Db21tb25WTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9uVk0u
Y3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KQEAgLTQ0LDE4ICs0Myw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8y
NTk2NTAyOD4gVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvciByZXBsYWNlZCB3aXRoIGEgU2V0dGlu
ZyB0aGF0IGlCb29rcyBjYW4gdXNlIGlmIGl0IGlzIHN0aWxsIG5lZWRlZC4KLXN0YXRpYyBib29s
IGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkKLXsKLSNpZiBQTEFURk9STShN
QUMpCi0gICAgcmV0dXJuICFNYWNBcHBsaWNhdGlvbjo6aXNJQm9va3MoKTsKLSNlbGlmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuICFJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3MoKTsK
LSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLX0KLQogSlNDOjpWTSogZ19jb21tb25W
TU9yTnVsbDsKIAogSlNDOjpWTSYgY29tbW9uVk1TbG93KCkKQEAgLTg2LDggKzczLDYgQEAgSlND
OjpWTSYgY29tbW9uVk1TbG93KCkKICAgICB2bS5oZWFwLm1hY2hpbmVUaHJlYWRzKCkuYWRkQ3Vy
cmVudFRocmVhZCgpOwogI2VuZGlmCiAKLSAgICB2bS5zZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRp
b25TaG91bGRUaHJvdyhnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdygpKTsKLQog
ICAgIEpTVk1DbGllbnREYXRhOjppbml0Tm9ybWFsV29ybGQoJnZtLCBXb3JrZXJUaHJlYWRUeXBl
OjpNYWluKTsKIAogICAgIHJldHVybiB2bTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IDE0OWExZjRhYWZmNzZkYWE1
MzdhYjNmMTkyNjMzMDliNmE3Y2VmMDcuLjk4MGZmZTk1ODAwM2VkYWU4NmFjYjg4ZGI5NDEyMzc3
OWIyOTczMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtNjYsNiArNjYsMTEgQEAgc3RhdGljIE9wdGlvbmFsPEF1
eGlsaWFyeVByb2Nlc3NUeXBlPiYgYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKQogICAgIHJldHVybiBh
dXhpbGlhcnlQcm9jZXNzVHlwZTsKIH0KIAorYm9vbCBpc0luQXV4aWxpYXJ5UHJvY2VzcygpCit7
CisgICAgcmV0dXJuICEhYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKTsKK30KKwogdm9pZCBzZXRBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogewogICAgIGF1eGls
aWFyeVByb2Nlc3NUeXBlKCkgPSB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCA0ZGE0YmFjMDk0YTZlNGQwYjFmMzg4
ZGZmYmU3MjI4YjA1OWI2ZDJmLi45ZDZmYjY1ZmNhMWI0ZDJmYWE5NjFmZGY1ZjU3ZjA1ZmZhMTM1
ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NU
eXBlIDogdWludDhfdCB7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1eGlsaWFyeVByb2Nlc3NU
eXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2hlY2tBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiAKK2Jvb2wgaXNJbkF1eGls
aWFyeVByb2Nlc3MoKTsKIGlubGluZSBib29sIGlzSW5XZWJQcm9jZXNzKCkgeyByZXR1cm4gY2hl
Y2tBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZTo6V2ViQ29udGVudCk7
IH0KIGlubGluZSBib29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIGNoZWNrQXV4aWxp
YXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6Ok5ldHdvcmspOyB9CiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQppbmRleCA3YjRjMDYx
ZjIxYTBiM2RjOWU0OWFkZjI2OWMzMTk5NDhlNWEyYjQzLi5mMjVjMWFiZGU0YmY5MzRiZDFkZjI5
NDE1ZWQ0YzgxZWFlMGUwNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQpAQCAtNjUs
NiArNjUsNyBAQCBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkKICAgICBBU1NF
UlQoaWRlbnRpZmllci5pc051bGwoKSB8fCBSdW5Mb29wOjppc01haW4oKSk7CiAgICAgaWYgKGlk
ZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIGlkZW50aWZpZXIgPSBidW5kbGVJZGVudGlmaWVy
KCk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghaXNJbkF1eGlsaWFyeVByb2Nlc3MoKSB8fCAh
IWlkZW50aWZpZXIsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlv
bkJ1bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpIGluIGF1eGlsaWFyeSBwcm9jZXNzZXMiKTsKICAgICByZXR1
cm4gaWRlbnRpZmllci5pc051bGwoKSA/IFN0cmluZyhbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZUlkZW50aWZpZXJdKSA6IGlkZW50aWZpZXI7CiB9CiAKQEAgLTc3LDcgKzc4LDcgQEAgdm9p
ZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
KQogdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZShjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdh
c1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1
bmRsZVN0YXJ0c1dpdGgoKSBzaG91bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyKCkiKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdhc1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRs
ZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBi
ZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCki
KTsKICAgICBidW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IGlkZW50aWZpZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMDhlM2ZiZDMyN2RmMGE0NjY2Mjc3
NDJkNTlkNGZkYTQ2Y2FhN2FiZS4uMjM4Y2JhMzM5YTJiNmY0YTYxMWQ4OWJlNzM3NzNhOTUzZTdk
YzZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTUzLDcgKzUzLDYg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVk
Rm9yQ3VzdG9tUHJvdG9jb2xzOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwg
dWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1Zl
cnNpb247CiAgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgbmV0d29ya0FUU0NvbnRleHQuZ2V0KCkp
OwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCkBAIC0xMTEsOCArMTEwLDYgQEAgYm9vbCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
TmV0d29ya1Byb2MKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVpUHJvY2Vzc1NES1ZlcnNpb24pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCByZXN1
bHQubmV0d29ya0FUU0NvbnRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA1OTdmYzhkYmRjYmEwODI1NzllZDA5YWE4
MWMzNzI4MDM3NjMwODU1Li40MzY5YjIwMDVjZWZkZWU2NzIzODE0NjAzMzExNmI2ODRkMDI5NDdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC02Niw3ICs2Niw2IEBAIHN0cnVj
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCB1
aVByb2Nlc3NTREtWZXJzaW9uIHsgMCB9OwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IG5ldHdv
cmtBVFNDb250ZXh0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCA1ZmJlODFkNjg2
YjljNzRkN2RlYjk2ODU2NDAzODEzZmU2N2VkZjIwLi5kOGIzMTBmMTBkYTVmNzNmZDM4ZjJhOWEw
YjI4MmQwMTM5MmIxNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC03Myw5ICs3Myw2IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVOZXR3b3JrU2V0dGluZ3MoKQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIFdlYkNvcmU6OnNl
dEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXIpOwotICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc1NES1ZlcnNpb24pOwotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkocGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAppbmRleCBkYmJl
MWJmMDkwMzVmYTRkMzAzMGVlMWU0N2U5ZjcyMjVlMmYxMGEzLi5iMzc0NTk1YTQwNmYxMTljYjdm
NTgyOTE1MGEyNzgwZTBkNDZmOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQ
cm9jZXNzLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRp
YWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycwogICAg
IFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShwYXJhbWV0ZXJzLnByb2Nlc3NJZGVudGlmaWVy
LCAiVW5hYmxlIHRvIGluaXRpYWxpemUgY2hpbGQgcHJvY2VzcyB3aXRob3V0IGEgV2ViQ29yZSBw
cm9jZXNzIGlkZW50aWZpZXIiKTsKICAgICBQcm9jZXNzOjpzZXRJZGVudGlmaWVyKCpwYXJhbWV0
ZXJzLnByb2Nlc3NJZGVudGlmaWVyKTsKIAotICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAg
IHBsYXRmb3JtSW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIG1fcHJpb3JpdHlCb29zdE1lc3NhZ2UgPSBwYXJhbWV0ZXJzLnByaW9yaXR5Qm9vc3RNZXNz
YWdlOwpAQCAtMjM3LDcgKzIzNyw3IEBAIE9wdGlvbmFsPHN0ZDo6cGFpcjxJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIsIElQQzo6QXR0YWNobWVudD4+IEF1eGlsaWFyeVByb2NlCiB9CiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCit2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBB
dXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCmluZGV4IGQ4YjNiMTQ3OTY5NzJmNGVhYTQ0
ODg0NDk3NzQxMzU5MjYzODBlYTAuLmQ0OGNhYjI5YzNmMzI0NTEwNzU2NTY4MWEwNzJlYTVjNDI1
MWZjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKQEAgLTEzNyw3
ICsxMzcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKTsK
IAotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CisgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwog
ICAgIHZvaWQgcGxhdGZvcm1TdG9wUnVuTG9vcCgpOwogCiAgICAgLy8gVGhlIHRpbWVvdXQsIGlu
IHNlY29uZHMsIGJlZm9yZSB0aGlzIHByb2Nlc3Mgd2lsbCBiZSB0ZXJtaW5hdGVkIGlmIHRlcm1p
bmF0aW9uCkBAIC0xNjMsNiArMTYzLDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgdWlQcm9jZXNzTmFtZTsK
ICAgICBTdHJpbmcgY2xpZW50SWRlbnRpZmllcjsKKyAgICB1aW50MzJfdCBjbGllbnRTREtWZXJz
aW9uOwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyPiBwcm9jZXNzSWRl
bnRpZmllcjsKICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0cmFJbml0aWFsaXphdGlvbkRh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9j
ZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNz
Q29jb2EubW0KaW5kZXggY2ZmYmVkNzA3ZGNlN2U3ZGIxODU2OTJjODg0MzdhMjQ0Mjk3MzI4My4u
NjM0MTdhNzRiNDcxOThkZjRkYmJhYjk1MDRmMjE3OWNmZTJkNjkxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtMjgs
MTAgKzI4LDM5IEBACiAKICNpbXBvcnQgIldLQ3Jhc2hSZXBvcnRlci5oIgogI2ltcG9ydCAiWFBD
U2VydmljZUVudHJ5UG9pbnQuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRpbmdQb2ludEVudmly
b25tZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgog
I2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitz
dGF0aWMgdm9pZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCkKK3sKKyAgICAvLyBT
ZXQgdGFza19sYXRlbmN5IGFuZCB0YXNrX3Rocm91Z2hwdXQgUU9TIHRpZXJzIGFzIGFwcHJvcHJp
YXRlIGZvciBhIHZpc2libGUgYXBwbGljYXRpb24uCisgICAgc3RydWN0IHRhc2tfcW9zX3BvbGlj
eSBxb3NpbmZvID0geyBMQVRFTkNZX1FPU19USUVSXzAsIFRIUk9VR0hQVVRfUU9TX1RJRVJfMCB9
OworICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX3BvbGljeV9zZXQobWFjaF90YXNrX3NlbGYo
KSwgVEFTS19CQVNFX1FPU19QT0xJQ1ksICh0YXNrX3BvbGljeV90KSZxb3NpbmZvLCBUQVNLX1FP
U19QT0xJQ1lfQ09VTlQpOworICAgIEFTU0VSVF9VTlVTRUQoa3IsIGtyID09IEtFUk5fU1VDQ0VT
Uyk7Cit9CisKK3ZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0
IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7
CisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICBpbml0aWFs
aXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCk7CisjZW5kaWYKKworICAgIEZsb2F0aW5nUG9pbnRF
bnZpcm9ubWVudCYgZmxvYXRpbmdQb2ludEVudmlyb25tZW50ID0gRmxvYXRpbmdQb2ludEVudmly
b25tZW50OjpzaW5nbGV0b24oKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCisgICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LmVuYWJsZURlbm9y
bWFsU3VwcG9ydCgpOworI2VuZGlmCisgICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LnNhdmVN
YWluVGhyZWFkRW52aXJvbm1lbnQoKTsKKworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBi
dW5kbGVQYXRoXV07CisgICAgCisgICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50SWRlbnRpZmllcik7CisgICAgc2V0QXBwbGljYXRpb25T
REtWZXJzaW9uKHBhcmFtZXRlcnMuY2xpZW50U0RLVmVyc2lvbik7Cit9CisKIHZvaWQgQXV4aWxp
YXJ5UHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiB7CiAgICAgYXV0byBlcnJvck1lc3NhZ2UgPSBt
YWtlU3RyaW5nKCJSZWNlaXZlZCBpbnZhbGlkIG1lc3NhZ2U6ICciLCBkZXNjcmlwdGlvbihtZXNz
YWdlTmFtZSksICInICgiLCBtZXNzYWdlTmFtZSwgJyknKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKaW5kZXggZDk0YmM5YzU1
OWQ1Mzc0YjkxYmVmZGQ1MTg0Njg3YzkxYmMzZjIwZC4uOTBmMzFkYWI3OWIyMDZhMmQxMmEzYTc4
OTA3OTA5ZWFkYzkxNWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2
aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBnZXRDb25uZWN0aW9uSWRlbnRpZmllcihJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXImIGlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRQcm9jZXNzSWRlbnRp
ZmllcihXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRD
bGllbnRJZGVudGlmaWVyKFN0cmluZyYgY2xpZW50SWRlbnRpZmllcik7CisgICAgdmlydHVhbCBi
b29sIGdldENsaWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NO
YW1lKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0RXh0cmFJbml0aWFsaXphdGlvbkRhdGEoSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4mIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKTsKIApAQCAtMTE0LDYg
KzExNSw5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlmICghZGVs
ZWdhdGUuZ2V0Q2xpZW50SWRlbnRpZmllcihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXIpKQog
ICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAKKyAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVu
dFNES1ZlcnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKSkKKyAgICAgICAgZXhpdChF
WElUX0ZBSUxVUkUpOworCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXI7CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRQcm9jZXNzSWRlbnRpZmllcihwcm9jZXNz
SWRlbnRpZmllcikpCiAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQppbmRleCAw
YTE0MjViY2E1NmRhYTY2Njc3Zjk3YzUyM2M5M2U2ZDk0OThlZmNmLi4wN2NlMjA5MGQxZTNjNTlj
NDI0ODZmMzdiY2ZiYjdiMzE3YmI4YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9p
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC03Nyw2ICs3NywyMCBAQCBi
b29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRDbGllbnRJZGVudGlmaWVyKFN0
cmluZyYgY2xpZW50SWRlbnRpZmllcgogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFhQQ1Nl
cnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRDbGllbnRTREtWZXJzaW9uKHVpbnQzMl90JiBj
bGllbnRTREtWZXJzaW9uKQoreworICAgIFN0cmluZyBjbGllbnRJZGVudGlmaWVyU3RyaW5nID0g
eHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1z
ZGstdmVyc2lvbiIpOworICAgIGlmIChjbGllbnRJZGVudGlmaWVyU3RyaW5nLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCBvazsKKyAgICBjbGllbnRTREtWZXJz
aW9uID0gY2xpZW50SWRlbnRpZmllclN0cmluZy50b1VJbnRTdHJpY3QoJm9rKTsKKyAgICBpZiAo
IW9rKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9v
bCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0UHJvY2Vzc0lkZW50aWZpZXIoUHJv
Y2Vzc0lkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgU3RyaW5nIHByb2Nlc3NJZGVudGlm
aWVyU3RyaW5nID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2Fn
ZSwgInByb2Nlc3MtaWRlbnRpZmllciIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBkYmVlODQzMjk4ZjZmNTVm
YmViOGE3NGYxNTZjMjQ5MGMyNjg3NzNhLi45MGMxNzAwNjk2NjhmZTJhMjFmODNlMjE1OWQzMTAz
NmQ0ODU1MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtOTYsNyArOTYsNiBAQCB2b2lkIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHk7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwotICAgIGVuY29k
ZXIgPDwgdWlQcm9jZXNzU0RLVmVyc2lvbjsKICAgICBlbmNvZGVyIDw8IGxhdGVuY3lRT1M7CiAg
ICAgZW5jb2RlciA8PCB0aHJvdWdocHV0UU9TOwogI2VuZGlmCkBAIC0xMTksNiArMTE4LDcgQEAg
dm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBtZW1vcnlDYWNoZURpc2FibGVkOwogICAg
IGVuY29kZXIgPDwgYXR0clN0eWxlRW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IHNob3VsZFRocm93
RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uOwogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCiAgICAgZW5jb2RlciA8PCBoYXNJbWFnZVNlcnZpY2VzOwpAQCAtMzIx
LDggKzMyMSw2IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50
aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24pKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmxhdGVuY3lRT1MpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnRocm91Z2hw
dXRRT1MpKQpAQCAtMzcxLDYgKzM2OSw4IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXR0
clN0eWxlRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJl
ZGVjbGFyYXRpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzSW1hZ2VT
ZXJ2aWNlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggM2Q1NzNlMzYzNTMwZjZjNDdkOTNiMmY3ZTNhN2NlMjIwN2I1
NDQ3Ny4uZDVhODM0NWQzMjViMjA5MDUyNzdmODgzMTk0ZDUzOWE4OGY3ZjhiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtMTI2LDcgKzEyNiw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBib29sIGhhc1N0eWx1c0RldmljZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtZW1vcnlDYWNo
ZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9
OwotICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiB7
IHRydWUgfTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wgaGFzSW1h
Z2VTZXJ2aWNlcyB7IGZhbHNlIH07CkBAIC0xNDAsNyArMTQwLDYgQEAgc3RydWN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5n
IHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7Ci0gICAgdWludDMyX3QgdWlQcm9jZXNzU0RLVmVy
c2lvbiB7IDAgfTsKICAgICBpbnQgbGF0ZW5jeVFPUyB7IDAgfTsKICAgICBpbnQgdGhyb3VnaHB1
dFFPUyB7IDAgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0F1eGlsaWFyeVByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQXV4aWxp
YXJ5UHJvY2Vzc0lPUy5tbQppbmRleCA0MDU3NWRjMjIzM2NkYTNmMjk0NjQ4YzE0MDhkNzRlMThk
M2FkZTA5Li45MWU1MGIzYTNiODdiMDA5ZDRjNjNkZjhkNTY3NzJlNGIxOWUzMDI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbQpAQCAtNDEs
MTQgKzQxLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgQXV4aWxpYXJ5UHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplKCkKLXsKLSAgICBGbG9hdGluZ1BvaW50RW52aXJvbm1lbnQm
IGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudCA9IEZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudDo6c2lu
Z2xldG9uKCk7IAotICAgIGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5lbmFibGVEZW5vcm1hbFN1
cHBvcnQoKTsgCi0gICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LnNhdmVNYWluVGhyZWFkRW52
aXJvbm1lbnQoKTsgCi0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjaGFuZ2VD
dXJyZW50RGlyZWN0b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhdXTsK
LX0KLQogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhp
bGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMubW0KaW5kZXgg
NTc0NjgyZDEzOWFiZWRjNmU3ODM2NjYyMzY1ZTk0NDRlNGYyZTI5My4uM2I1ZTljYzkyMzNkM2Mx
OWUwM2I3MDQzZjE3NjYyMGE0Y2JiYzUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMubW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgIldL
Rm91bmRhdGlvbi5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKICNpbXBvcnQg
PFdlYkNvcmUvRmlsZUhhbmRsZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9GbG9hdGluZ1BvaW50RW52
aXJvbm1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtVmVyc2lvbi5oPgogI2ltcG9ydCA8
bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgpAQCAtMTQ1LDE0ICsxNDQsNiBA
QCBzdHJ1Y3QgU2FuZGJveEluZm8gewogY29uc3RleHByIHVpbnQzMl90IENhY2hlZFNhbmRib3hW
ZXJzaW9uTnVtYmVyID0gMTsKICNlbmRpZiAvLyBVU0UoQ0FDSEVfQ09NUElMRURfU0FOREJPWCkK
IAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpCi17Ci0gICAg
Ly8gU2V0IHRhc2tfbGF0ZW5jeSBhbmQgdGFza190aHJvdWdocHV0IFFPUyB0aWVycyBhcyBhcHBy
b3ByaWF0ZSBmb3IgYSB2aXNpYmxlIGFwcGxpY2F0aW9uLgotICAgIHN0cnVjdCB0YXNrX3Fvc19w
b2xpY3kgcW9zaW5mbyA9IHsgTEFURU5DWV9RT1NfVElFUl8wLCBUSFJPVUdIUFVUX1FPU19USUVS
XzAgfTsKLSAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19wb2xpY3lfc2V0KG1hY2hfdGFza19z
ZWxmKCksIFRBU0tfQkFTRV9RT1NfUE9MSUNZLCAodGFza19wb2xpY3lfdCkmcW9zaW5mbywgVEFT
S19RT1NfUE9MSUNZX0NPVU5UKTsKLSAgICBBU1NFUlRfVU5VU0VEKGtyLCBrciA9PSBLRVJOX1NV
Q0NFU1MpOwotfQotCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmxhdW5jaFNlcnZpY2VzQ2hlY2tJ
bigpCiB7CiAjaWYgSEFWRShDU0NIRUNLRklYRElTQUJMRSkKQEAgLTE2NCwxNSArMTU1LDYgQEAg
dm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpsYXVuY2hTZXJ2aWNlc0NoZWNrSW4oKQogICAgIFJldGFp
blB0cjxDRkRpY3Rpb25hcnlSZWY+IHVudXNlZCA9IF9MU0FwcGxpY2F0aW9uQ2hlY2tJbihrTFNE
ZWZhdWx0U2Vzc2lvbklELCBDRkJ1bmRsZUdldEluZm9EaWN0aW9uYXJ5KENGQnVuZGxlR2V0TWFp
bkJ1bmRsZSgpKSk7CiB9CiAKLXZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplKCkKLXsKLSAgICBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCk7Ci0KLSAgICBG
bG9hdGluZ1BvaW50RW52aXJvbm1lbnQ6OnNpbmdsZXRvbigpLnNhdmVNYWluVGhyZWFkRW52aXJv
bm1lbnQoKTsKLQotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3Vy
cmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07Ci19
Ci0KIHN0YXRpYyBPU1N0YXR1cyBlbmFibGVTYW5kYm94U3R5bGVGaWxlUXVhcmFudGluZSgpCiB7
CiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAppbmRleCAx
ODU4NWY2MWJiNmVjYWJlYzM5ZmYwYzAzYjg2MmM2NTg1NmRjYTI0Li5kMTZlZDc3NTNmYTU5ZmM4
N2VhOTQwMmY1ZmY0ODcyNTI1ZWQzMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcApAQCAtNTIs
NiArNTIsNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93
ZWRGb3JUZXN0aW5nID0gdGhpcy0+bV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRl
c3Rpbmc7CiAgICAgY29weS0+bV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9y
VGVzdGluZyA9IHRoaXMtPm1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRl
c3Rpbmc7CiAgICAgY29weS0+bV9hdHRyU3R5bGVFbmFibGVkID0gdGhpcy0+bV9hdHRyU3R5bGVF
bmFibGVkOworICAgIGNvcHktPm1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFu
dFJlZGVjbGFyYXRpb24gPSB0aGlzLT5tX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29u
c3RhbnRSZWRlY2xhcmF0aW9uOwogICAgIGNvcHktPm1fb3ZlcnJpZGVMYW5ndWFnZXMgPSB0aGlz
LT5tX292ZXJyaWRlTGFuZ3VhZ2VzOwogICAgIGNvcHktPm1fYWx3YXlzUnVuc0F0QmFja2dyb3Vu
ZFByaW9yaXR5ID0gdGhpcy0+bV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7CiAgICAg
Y29weS0+bV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uID0gdGhpcy0+bV9zaG91bGRU
YWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDY0OTI0OTAy
ZjE5ODExNzkyNTM3YTE1YTMyZWQ0ZDcwNmRhZjk2NzAuLjFmNTA3OWM4NWZkYjk1NGNkNmE2Yzdj
OWNmNzAxOWI0ZDJjMTZmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTk0LDYgKzk0LDkgQEAg
cHVibGljOgogCiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
dHRyU3R5bGVFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBdHRyU3R5bGVFbmFibGVkKGJvb2wgZW5h
YmxlZCkgeyBtX2F0dHJTdHlsZUVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgCisgICAgYm9vbCBz
aG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFy
YXRpb247IH0KKyAgICB2b2lkIHNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3Rh
bnRSZWRlY2xhcmF0aW9uKGJvb2wgc2hvdWxkVGhyb3cpIHsgbV9zaG91bGRUaHJvd0V4Y2VwdGlv
bkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiA9IHNob3VsZFRocm93OyB9CiAKICAgICBj
b25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBvdmVycmlkZUxhbmd1YWdlcygpIGNvbnN0IHsgcmV0
dXJuIG1fb3ZlcnJpZGVMYW5ndWFnZXM7IH0KICAgICB2b2lkIHNldE92ZXJyaWRlTGFuZ3VhZ2Vz
KFZlY3RvcjxXVEY6OlN0cmluZz4mJiBsYW5ndWFnZXMpIHsgbV9vdmVycmlkZUxhbmd1YWdlcyA9
IFdURk1vdmUobGFuZ3VhZ2VzKTsgfQpAQCAtMTU2LDYgKzE1OSw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVzdGluZyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5n
IHsgZmFsc2UgfTsKICAgICBib29sIG1fYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9u
IHsgdHJ1ZSB9OwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9vdmVycmlkZUxhbmd1YWdlczsK
ICAgICBib29sIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5IHsgZmFsc2UgfTsKICAg
ICBib29sIG1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiB7IHRydWUgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCA1ZjIxMzk3MGFjZmMwMzk2ODM5YTYxM2JiOGVl
OTQwN2JmZTg4ODFlLi5kNGI2NTE3N2Y5ZmU1OTM1MTBiZWE2NDgzMmQ0MjU1NjkzYmU1NGIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC00MCw2ICs0MCw5IEBAIFdLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBhdHRyU3R5bGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CiAKKy8vIERlZmF1bHRzIHRvIFlFUy4KK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PE5TVVJMICo+ICphZGRpdGlvbmFs
UmVhZEFjY2Vzc0FsbG93ZWRVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORSAmJiAhVEFSR0VUX09TX1NJTVVMQVRPUgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXggOWUwZDc5MGEzZDM1MjYxM2U2MmE3
YWY2M2UzNTkzM2RlMmIwYWI1Ni4uOTNkMGIxZWQ4MDZlZTY5OGJkZjUxYTcwMjJiMGNiNWVhYmJh
YTk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0xNDEsNiArMTQxLDE2
IEBAIC0gKHZvaWQpc2V0QXR0clN0eWxlRW5hYmxlZDooQk9PTCllbmFibGVkCiAgICAgcmV0dXJu
IF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldEF0dHJTdHlsZUVuYWJsZWQoZW5hYmxlZCk7
CiB9CiAKKy0gKEJPT0wpc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVj
bGFyYXRpb24KK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKTsKK30KKworLSAo
dm9pZClzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bjooQk9PTClzaG91bGRUaHJvdworeworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLT5zZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bihzaG91bGRUaHJvdyk7Cit9CisKIC0gKE5TQXJyYXk8TlNVUkwgKj4gKilhZGRpdGlvbmFsUmVh
ZEFjY2Vzc0FsbG93ZWRVUkxzCiB7CiAgICAgYXV0byBwYXRocyA9IF9wcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24tPmFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFBhdGhzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRl
eCBkYjAwOWFkMjgyZmJjMDc0NDliMjEyNTcxMDc2OTI0MjAzYWYxOTU3Li43NjI2Y2I4YjJkN2Ri
OTU5MDdkNDllMjMxNWI5ZGQ1MDQ5MWQyZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTMyMCw3ICszMjAsNiBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3Vy
Y2VQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcGFyYW1ldGVycy51aVBy
b2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogCiAgICAgcGFyYW1ldGVy
cy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
KCk7Ci0gICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0gYXBwbGljYXRpb25TREtW
ZXJzaW9uKCk7CiAKICAgICBwYXJhbWV0ZXJzLmxhdGVuY3lRT1MgPSB3ZWJQcm9jZXNzTGF0ZW5j
eVFPUygpOwogICAgIHBhcmFtZXRlcnMudGhyb3VnaHB1dFFPUyA9IHdlYlByb2Nlc3NUaHJvdWdo
cHV0UU9TKCk7CkBAIC00ODIsNyArNDgxLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIHBhcmFtZXRl
cnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cigpOwotICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbiA9IGFwcGxpY2F0aW9uU0RL
VmVyc2lvbigpOwogCiAgICAgTlNVc2VyRGVmYXVsdHMgKmRlZmF1bHRzID0gW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggNjdj
NmU5NjY5OTVkMzc0NmEzMWZjMzEzY2YzYmRiYzU2NjJjNDFlZi4uNTI4NThjMDBhYzk1MTdhZGEz
OTI4MzdmMGRlNTA2N2NlNDhiNzdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5n
Lmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9zcGkvY2YvQ0ZCdW5kbGVT
UEkuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgpAQCAtMjA3LDYgKzIwOCw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjps
YXVuY2hQcm9jZXNzKCkKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfbWFjaF9zZW5kKGJvb3RzdHJh
cE1lc3NhZ2UuZ2V0KCksICJzZXJ2ZXItcG9ydCIsIGxpc3RlbmluZ1BvcnQpOwogCiAgICAgeHBj
X2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWlk
ZW50aWZpZXIiLCAhY2xpZW50SWRlbnRpZmllci5pc0VtcHR5KCkgPyBjbGllbnRJZGVudGlmaWVy
LnV0ZjgoKS5kYXRhKCkgOiAqX05TR2V0UHJvZ25hbWUoKSk7CisgICAgeHBjX2RpY3Rpb25hcnlf
c2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LXNkay12ZXJzaW9uIiwg
U3RyaW5nOjpudW1iZXIoYXBwbGljYXRpb25TREtWZXJzaW9uKCkpLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInBy
b2Nlc3MtaWRlbnRpZmllciIsIFN0cmluZzo6bnVtYmVyKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNz
SWRlbnRpZmllci50b1VJbnQ2NCgpKS51dGY4KCkuZGF0YSgpKTsKICAgICB4cGNfZGljdGlvbmFy
eV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJ1aS1wcm9jZXNzLW5hbWUiLCBb
W1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBwcm9jZXNzTmFtZV0gVVRGOFN0cmluZ10pOwog
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInNl
cnZpY2UtbmFtZSIsIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCmluZGV4IGM3MDEzNjYyYjYyMWFhNjNjNjA1YjM5YTg3ZjcwMmVlZTUyNzRlZmEuLjVk
NmQxMWE0MGE5Zjg0MzExMTg2YjdlMmYyNjQxY2YxZDk5ZTg0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTgyNiw2ICs4MjYsNyBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0g
bV9tZW1vcnlDYWNoZURpc2FibGVkOwogICAgIHBhcmFtZXRlcnMuYXR0clN0eWxlRW5hYmxlZCA9
IG1fY29uZmlndXJhdGlvbi0+YXR0clN0eWxlRW5hYmxlZCgpOworICAgIHBhcmFtZXRlcnMuc2hv
dWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24gPSBtX2NvbmZp
Z3VyYXRpb24tPnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0
aW9uKCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBhdXRvJiBzZXJ2aWNl
Q29udHJvbGxlciA9IFNlcnZpY2VzQ29udHJvbGxlcjo6c2luZ2xldG9uKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTZiMWFkNDdjYzBhYzM5NTgzY2RmMWM5
NDAyNTUzMDAwNTI5MzIxYy4uOWQ0NWU3YjI5NjVmY2E2ZWQ0MTNlYzcyNTdhZTg1ODYxYWQxOTRl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDg0LDYgKzQ4
NCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgc2V0TWVtb3J5Q2FjaGVEaXNhYmxl
ZChwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQpOwogCiAgICAgV2ViQ29yZTo6UnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRBdHRyU3R5bGVFbmFibGVkKHBh
cmFtZXRlcnMuYXR0clN0eWxlRW5hYmxlZCk7CisgICAgCisgICAgY29tbW9uVk0oKS5zZXRHbG9i
YWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyhwYXJhbWV0ZXJzLnNob3VsZFRocm93RXhj
ZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKTsKIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIHNldEVuYWJsZWRTZXJ2aWNlcyhwYXJhbWV0ZXJzLmhhc0ltYWdl
U2VydmljZXMsIHBhcmFtZXRlcnMuaGFzU2VsZWN0aW9uU2VydmljZXMsIHBhcmFtZXRlcnMuaGFz
UmljaENvbnRlbnRTZXJ2aWNlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBlMDk5ZGU0MWRkN2M3YWMzZGZiNDAxNGNiYmRm
OWQ4YTQ1ZWMyNjVjLi5lYzE1MTMzYzNiOGJlNTEyMGMyZjAzMTcwOWUwNzQ3MGJkYzU4NmUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KQEAgLTI2MCw5ICsyNjAsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIFdlYktp
dDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJLaXRMb2dn
aW5nQ2hhbm5lbHMpOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBz
ZXRBcHBsaWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uKTsK
LQogICAgIG1fdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IHBhcmFtZXRlcnMudWlQcm9jZXNz
QnVuZGxlSWRlbnRpZmllcjsKIAogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCg==
</data>
<flag name="commit-queue"
          id="443629"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424068</attachid>
            <date>2021-03-23 14:46:34 -0700</date>
            <delta_ts>2021-03-23 15:13:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157101-20210323144633.patch</filename>
            <type>text/plain</type>
            <size>35121</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjZGZjNjM5ZDg3OTE2
ZGM2NTQ1NDBiMDQ4ZWVmOTk4YjA4NThkOS4uMWRhMzMwNzM0MjE4ZWIyN2IxYmM1ZmY0ZDkyNGNh
NWFiZjFlNGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTIzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbCBCb29rcyBx
dWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTAxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IEkgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byB3
cml0ZSBhIHRlc3QgdGhhdCBkb2Vzbid0IGludm9sdmUKKyAgICAgICAgYWRkaW5nIGEgbmV3IHBh
cmFtZXRlciB0byB0aGUgcHJvY2VzcyBib290c3RyYXAgbWVzc2FnZSwgd2hpY2ggc2VlbXMKKyAg
ICAgICAgb3V0IG9mIHRoZSByZWFsbSBvZiByZWFzb24gZm9yIGEgdGVzdC4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xv
dyk6CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIFN0b3AgaGFyZGNvZGluZyBnbG9iYWxDb25zdFJlZGVjbGFy
YXRpb25TaG91bGRUaHJvdyBiYXNlZCBvbiB0aGUgVUkgcHJvY2VzcyBpZGVudGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjppc0luQXV4aWxpYXJ5UHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyT3ZlcnJpZGUpOgorICAgICAgICBBZGQgYW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFu
eSBmdXR1cmUgY2FzZSB3aGVyZSBhIGJ1bmRsZSBjaGVjayBpcyBxdWVyaWVkCisgICAgICAgIGlu
IGEgYXV4aWxpYXJ5IHByb2Nlc3MgYmVmb3JlIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uIGJ1bmRs
ZSBpZGVudGlmaWVyIGlzIHNldC4KKwogMjAyMS0wMy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciB2YWxpZGF0ZSBKU0FycmF5cyBpbiBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTMzMTNmYTZhZjBhMTlkZjQ1YjkzMjAzMmRjZWQ1
ODE2N2U5MTZiYi4uNzU5ODA5MTdjMmRlODhhMzQzMzUzNDA4ZjIyNmEwNjBlMmQ4MTkyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MiBAQAorMjAyMS0wMy0yMyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGwgQm9va3MgcXVpcmtzIGFyZSBmbGFraWx5
IG5vdCBhcHBsaWVkIGluIG1vZGVybiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5
NjUwMjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIwMDEyMSwgYSBxdWlyayB3YXMgaW50cm9kdWNlZCB0aGF0IHF1ZXJpZWQgdGhlIGlzSUJv
b2tzKCkKKyAgICAgICAgUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzIG1ldGhvZCBmcm9tIGluc2lk
ZSBjb21tb25WTSgpLgorCisgICAgICAgIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcyBidW5kbGUg
Y2hlY2tzIGNhY2hlIHRoZSByZXN1bHQgb2YgdGhlIGJ1bmRsZQorICAgICAgICBjaGVjaywgYW5k
LCBhcyBzdWNoLCBtdXN0IG5vdCBiZSBjYWxsZWQgdW50aWwgdGhlIGJ1bmRsZSBpZGVudGlmZXIg
b2YKKyAgICAgICAgdGhlIFVJIGFwcGxpY2F0aW9uIGlzIGtub3duLiBJbiBsZWdhY3kgV2ViS2l0
LCB0aGlzIGlzIG5vdCBhIHByb2JsZW0sCisgICAgICAgIGJlY2F1c2UgdGhlIGNoZWNrIGlzIHJ1
bm5pbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3M7IGluIG1vZGVybiBXZWJLaXQsCisgICAg
ICAgIHRoZXJlIGlzIGEgc2hvcnQgd2luZG93IGJldHdlZW4gcHJvY2VzcyBsYXVuY2ggYW5kIHRo
ZSBJbml0aWFsaXplV2ViUHJvY2VzcworICAgICAgICBtZXNzYWdlIGJlaW5nIHJlY2VpdmVkIHdo
ZXJlIHdlIHdvbid0IGtub3cgdGhlIGJ1bmRsZSBpZGVudGlmaWVyLCBhbmQgaWYKKyAgICAgICAg
aXNJQm9va3MoKSAob3IgYW55IG90aGVyIGJ1bmRsZSBjaGVjaykgaXMgY2FsbGVkIGR1cmluZyB0
aGlzIHRpbWUsIGl0IHdpbGwKKyAgICAgICAgY2FjaGUgdGhlIHdyb25nIHJlc3VsdC4KKworICAg
ICAgICBJdCBpcyBwb3NzaWJsZSBmb3IgY29tbW9uVk0oKSB0byBiZSBjYWxsZWQgaW4gdGhpcyB3
aW5kb3c7IG9uZSBwb3NzaWJsZSBwYXRoCisgICAgICAgIHRvIHRoaXMgaXMgYnkgdHJpZ2dlcmlu
ZyBhbiBvc19sb2dfZmF1bHQgZHVyaW5nIHRoaXMgdGltZSwgd2hpY2ggV2ViS2l0CisgICAgICAg
IG9ic2VydmVzICh2aWEgb3Nfc3RhdGVfYWRkX2hhbmRsZXIoKSkgaW4gb3JkZXIgdG8gZHVtcCBt
ZW1vcnkgdXNhZ2UKKyAgICAgICAgKHdoaWNoIGhhcHBlbnMgdG8gY2FsbCBjb21tb25WTSgpIGFu
ZCByZXN1bHRzIGluIGlzSUJvb2tzIGdldHRpbmcgY2FsbGVkCisgICAgICAgIGFuZCBjYWNoaW5n
IHRoZSB3cm9uZyB2YWx1ZSkuCisKKyAgICAgICAgQWRkIGFuIGFzc2VydGlvbiwgYW5kIG1vdmUg
dGhlIHF1aXJrIHRvIGxpdmUgYXMgYSBzZXR0aW5nIG9uIHRoZSBwcm9jZXNzCisgICAgICAgIHBv
b2wgY29uZmlndXJhdGlvbiwgdG8gYmUgc2V0IHZpYSBTUEkgYnkgQm9va3MsIGluc3RlYWQgb2Yg
YXMgYSBidW5kbGUgY2hlY2suCisKKyAgICAgICAgQWxzbywgZW5zdXJlIHRoYXQgY2xpZW50IGJ1
bmRsZSBpZGVudGlmaWVyIGFuZCBTREsgdmVyc2lvbiBhcmUgc2V0IGluIAorICAgICAgICBhbGwg
V2ViS2l0IHN1YnByb2Nlc3Nlcywgc28gdGhhdCBidW5kbGUvU0RLIGNoZWNrcyB3b3JrIGV2ZXJ5
d2hlcmUKKyAgICAgICAgKHByZXZpb3VzbHksIHRoZSBHUFUgcHJvY2VzcyB3YXMgdXNpbmcgU0RL
IGNoZWNrcyB3aXRob3V0IGhhdmluZyBwdXNoZWQKKyAgICAgICAgdGhlIHZhbHVlcyBmcm9tIHRo
ZSBVSSBwcm9jZXNzLCByZXN1bHRpbmcgaW4gaW5jb3JyZWN0IHJlc3VsdHMsIGFuZAorICAgICAg
ICBydW5uaW5nIGFmb3VsIG9mIHRoZSBhc3NlcnRpb24gYWRkZWQgYWJvdmUpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAg
ICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAoQVBJOjpk
ZWZhdWx0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNob3Vs
ZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uXSk6CisgICAgICAg
ICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZv
ckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aW5pdGlh
bGl6ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAg
ICAgICAgUGx1bWIgYSBuZXcgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHBhcmFtZXRlciB0
byB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcywKKyAgICAgICAgYW5kIHNldCB0aGUgYml0IG9uIHRo
ZSBjb21tb25WTSB3aGVuIGxhdW5jaGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1By
b2Nlc3NDb2NvYSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBT
aGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9BdXhpbGlh
cnlQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNvYWxl
c2NpbmdQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbik6
CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAg
ICAgIFJlbW92ZSBhbiBleHRyYSB1bnVzZWQgbWVtYmVyLgorICAgICAgICAqIFNoYXJlZC9pb3Mv
QXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0F1
eGlsaWFyeVByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNv
YWxlc2NpbmdQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBQbHVtYiB0aGUg
Y2xpZW50IGJ1bmRsZSBpZGVudGlmZXIgYW5kIFNESyB2ZXJzaW9uIHRvIGFsbCBhdXhpbGlhcnkg
cHJvY2Vzc2VzCisgICAgICAgIGF0IHByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZSBpbnN0ZWFk
IG9mIEluaXRpYWxpemVXZWJQcm9jZXNzL05ldHdvcmtQcm9jZXNzCisgICAgICAgIG1lc3NhZ2Ug
cmVjZWlwdCB0aW1lLCBjbG9zaW5nIHRoZSB3aW5kb3cgaW4gd2hpY2ggaXQgaXMgaW52YWxpZCB0
byB1c2UKKyAgICAgICAgYnVuZGxlIGNoZWNrcywgYW5kIGVuc3VyaW5nIHRoYXQgYnVuZGxlIGNo
ZWNrcyB3b3JrIGluIGFsbCBwcm9jZXNzZXMuCisKIDIwMjEtMDMtMjIgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBlYXJseSByZXR1cm4gaW4gVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldmlj
ZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcAppbmRleCBkMzViZWQz
MGZmNDVkYWJkNmQ2NzMyNGQzNGFiNDdmYzNmN2NkZGI4Li43Zjc2MDllOTMxN2E2MTg3OGUwOWRi
ZDU0MzRlN2JiNjlmODAyNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Db21tb25WTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9uVk0u
Y3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KQEAgLTQ0LDE4ICs0Myw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8y
NTk2NTAyOD4gVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvciByZXBsYWNlZCB3aXRoIGEgU2V0dGlu
ZyB0aGF0IGlCb29rcyBjYW4gdXNlIGlmIGl0IGlzIHN0aWxsIG5lZWRlZC4KLXN0YXRpYyBib29s
IGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkKLXsKLSNpZiBQTEFURk9STShN
QUMpCi0gICAgcmV0dXJuICFNYWNBcHBsaWNhdGlvbjo6aXNJQm9va3MoKTsKLSNlbGlmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuICFJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3MoKTsK
LSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLX0KLQogSlNDOjpWTSogZ19jb21tb25W
TU9yTnVsbDsKIAogSlNDOjpWTSYgY29tbW9uVk1TbG93KCkKQEAgLTg2LDggKzczLDYgQEAgSlND
OjpWTSYgY29tbW9uVk1TbG93KCkKICAgICB2bS5oZWFwLm1hY2hpbmVUaHJlYWRzKCkuYWRkQ3Vy
cmVudFRocmVhZCgpOwogI2VuZGlmCiAKLSAgICB2bS5zZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRp
b25TaG91bGRUaHJvdyhnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdygpKTsKLQog
ICAgIEpTVk1DbGllbnREYXRhOjppbml0Tm9ybWFsV29ybGQoJnZtLCBXb3JrZXJUaHJlYWRUeXBl
OjpNYWluKTsKIAogICAgIHJldHVybiB2bTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IDE0OWExZjRhYWZmNzZkYWE1
MzdhYjNmMTkyNjMzMDliNmE3Y2VmMDcuLjk4MGZmZTk1ODAwM2VkYWU4NmFjYjg4ZGI5NDEyMzc3
OWIyOTczMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtNjYsNiArNjYsMTEgQEAgc3RhdGljIE9wdGlvbmFsPEF1
eGlsaWFyeVByb2Nlc3NUeXBlPiYgYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKQogICAgIHJldHVybiBh
dXhpbGlhcnlQcm9jZXNzVHlwZTsKIH0KIAorYm9vbCBpc0luQXV4aWxpYXJ5UHJvY2VzcygpCit7
CisgICAgcmV0dXJuICEhYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKTsKK30KKwogdm9pZCBzZXRBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogewogICAgIGF1eGls
aWFyeVByb2Nlc3NUeXBlKCkgPSB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCA0ZGE0YmFjMDk0YTZlNGQwYjFmMzg4
ZGZmYmU3MjI4YjA1OWI2ZDJmLi45ZDZmYjY1ZmNhMWI0ZDJmYWE5NjFmZGY1ZjU3ZjA1ZmZhMTM1
ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NU
eXBlIDogdWludDhfdCB7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1eGlsaWFyeVByb2Nlc3NU
eXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2hlY2tBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiAKK2Jvb2wgaXNJbkF1eGls
aWFyeVByb2Nlc3MoKTsKIGlubGluZSBib29sIGlzSW5XZWJQcm9jZXNzKCkgeyByZXR1cm4gY2hl
Y2tBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZTo6V2ViQ29udGVudCk7
IH0KIGlubGluZSBib29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIGNoZWNrQXV4aWxp
YXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6Ok5ldHdvcmspOyB9CiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQppbmRleCA3YjRjMDYx
ZjIxYTBiM2RjOWU0OWFkZjI2OWMzMTk5NDhlNWEyYjQzLi5mMjVjMWFiZGU0YmY5MzRiZDFkZjI5
NDE1ZWQ0YzgxZWFlMGUwNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQpAQCAtNjUs
NiArNjUsNyBAQCBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkKICAgICBBU1NF
UlQoaWRlbnRpZmllci5pc051bGwoKSB8fCBSdW5Mb29wOjppc01haW4oKSk7CiAgICAgaWYgKGlk
ZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIGlkZW50aWZpZXIgPSBidW5kbGVJZGVudGlmaWVy
KCk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghaXNJbkF1eGlsaWFyeVByb2Nlc3MoKSB8fCAh
IWlkZW50aWZpZXIsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlv
bkJ1bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpIGluIGF1eGlsaWFyeSBwcm9jZXNzZXMiKTsKICAgICByZXR1
cm4gaWRlbnRpZmllci5pc051bGwoKSA/IFN0cmluZyhbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZUlkZW50aWZpZXJdKSA6IGlkZW50aWZpZXI7CiB9CiAKQEAgLTc3LDcgKzc4LDcgQEAgdm9p
ZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
KQogdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZShjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdh
c1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1
bmRsZVN0YXJ0c1dpdGgoKSBzaG91bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyKCkiKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdhc1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRs
ZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBi
ZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCki
KTsKICAgICBidW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IGlkZW50aWZpZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMDhlM2ZiZDMyN2RmMGE0NjY2Mjc3
NDJkNTlkNGZkYTQ2Y2FhN2FiZS4uMjM4Y2JhMzM5YTJiNmY0YTYxMWQ4OWJlNzM3NzNhOTUzZTdk
YzZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTUzLDcgKzUzLDYg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVk
Rm9yQ3VzdG9tUHJvdG9jb2xzOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwg
dWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1Zl
cnNpb247CiAgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgbmV0d29ya0FUU0NvbnRleHQuZ2V0KCkp
OwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCkBAIC0xMTEsOCArMTEwLDYgQEAgYm9vbCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
TmV0d29ya1Byb2MKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVpUHJvY2Vzc1NES1ZlcnNpb24pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCByZXN1
bHQubmV0d29ya0FUU0NvbnRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA1OTdmYzhkYmRjYmEwODI1NzllZDA5YWE4
MWMzNzI4MDM3NjMwODU1Li40MzY5YjIwMDVjZWZkZWU2NzIzODE0NjAzMzExNmI2ODRkMDI5NDdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC02Niw3ICs2Niw2IEBAIHN0cnVj
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCB1
aVByb2Nlc3NTREtWZXJzaW9uIHsgMCB9OwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IG5ldHdv
cmtBVFNDb250ZXh0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCA1ZmJlODFkNjg2
YjljNzRkN2RlYjk2ODU2NDAzODEzZmU2N2VkZjIwLi5kOGIzMTBmMTBkYTVmNzNmZDM4ZjJhOWEw
YjI4MmQwMTM5MmIxNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC03Myw5ICs3Myw2IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVOZXR3b3JrU2V0dGluZ3MoKQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIFdlYkNvcmU6OnNl
dEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXIpOwotICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc1NES1ZlcnNpb24pOwotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkocGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAppbmRleCBkYmJl
MWJmMDkwMzVmYTRkMzAzMGVlMWU0N2U5ZjcyMjVlMmYxMGEzLi5iMzc0NTk1YTQwNmYxMTljYjdm
NTgyOTE1MGEyNzgwZTBkNDZmOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQ
cm9jZXNzLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRp
YWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycwogICAg
IFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShwYXJhbWV0ZXJzLnByb2Nlc3NJZGVudGlmaWVy
LCAiVW5hYmxlIHRvIGluaXRpYWxpemUgY2hpbGQgcHJvY2VzcyB3aXRob3V0IGEgV2ViQ29yZSBw
cm9jZXNzIGlkZW50aWZpZXIiKTsKICAgICBQcm9jZXNzOjpzZXRJZGVudGlmaWVyKCpwYXJhbWV0
ZXJzLnByb2Nlc3NJZGVudGlmaWVyKTsKIAotICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAg
IHBsYXRmb3JtSW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIG1fcHJpb3JpdHlCb29zdE1lc3NhZ2UgPSBwYXJhbWV0ZXJzLnByaW9yaXR5Qm9vc3RNZXNz
YWdlOwpAQCAtMjM3LDcgKzIzNyw3IEBAIE9wdGlvbmFsPHN0ZDo6cGFpcjxJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIsIElQQzo6QXR0YWNobWVudD4+IEF1eGlsaWFyeVByb2NlCiB9CiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCit2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBB
dXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCmluZGV4IGQ4YjNiMTQ3OTY5NzJmNGVhYTQ0
ODg0NDk3NzQxMzU5MjYzODBlYTAuLmQ0OGNhYjI5YzNmMzI0NTEwNzU2NTY4MWEwNzJlYTVjNDI1
MWZjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKQEAgLTEzNyw3
ICsxMzcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKTsK
IAotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CisgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwog
ICAgIHZvaWQgcGxhdGZvcm1TdG9wUnVuTG9vcCgpOwogCiAgICAgLy8gVGhlIHRpbWVvdXQsIGlu
IHNlY29uZHMsIGJlZm9yZSB0aGlzIHByb2Nlc3Mgd2lsbCBiZSB0ZXJtaW5hdGVkIGlmIHRlcm1p
bmF0aW9uCkBAIC0xNjMsNiArMTYzLDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgdWlQcm9jZXNzTmFtZTsK
ICAgICBTdHJpbmcgY2xpZW50SWRlbnRpZmllcjsKKyAgICB1aW50MzJfdCBjbGllbnRTREtWZXJz
aW9uOwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyPiBwcm9jZXNzSWRl
bnRpZmllcjsKICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0cmFJbml0aWFsaXphdGlvbkRh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9j
ZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNz
Q29jb2EubW0KaW5kZXggY2ZmYmVkNzA3ZGNlN2U3ZGIxODU2OTJjODg0MzdhMjQ0Mjk3MzI4My4u
MTgyYTg5ZDgyNjk0MGMxNTNiZjZkYzlmZmM3MjAwOWM5MjY3N2IxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtMjgs
MTAgKzI4LDQyIEBACiAKICNpbXBvcnQgIldLQ3Jhc2hSZXBvcnRlci5oIgogI2ltcG9ydCAiWFBD
U2VydmljZUVudHJ5UG9pbnQuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRpbmdQb2ludEVudmly
b25tZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgor
I2ltcG9ydCA8bWFjaC90YXNrLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+
CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpCit7
CisgICAgLy8gU2V0IHRhc2tfbGF0ZW5jeSBhbmQgdGFza190aHJvdWdocHV0IFFPUyB0aWVycyBh
cyBhcHByb3ByaWF0ZSBmb3IgYSB2aXNpYmxlIGFwcGxpY2F0aW9uLgorICAgIHN0cnVjdCB0YXNr
X3Fvc19wb2xpY3kgcW9zaW5mbyA9IHsgTEFURU5DWV9RT1NfVElFUl8wLCBUSFJPVUdIUFVUX1FP
U19USUVSXzAgfTsKKyAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19wb2xpY3lfc2V0KG1hY2hf
dGFza19zZWxmKCksIFRBU0tfQkFTRV9RT1NfUE9MSUNZLCAodGFza19wb2xpY3lfdCkmcW9zaW5m
bywgVEFTS19RT1NfUE9MSUNZX0NPVU5UKTsKKyAgICBBU1NFUlRfVU5VU0VEKGtyLCBrciA9PSBL
RVJOX1NVQ0NFU1MpOworfQorI2VuZGlmCisKK3ZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCit7CisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkKKyAgICBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCk7CisjZW5kaWYKKwor
ICAgIEZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudCYgZmxvYXRpbmdQb2ludEVudmlyb25tZW50ID0g
RmxvYXRpbmdQb2ludEVudmlyb25tZW50OjpzaW5nbGV0b24oKTsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgZmxvYXRpbmdQb2ludEVudmly
b25tZW50LmVuYWJsZURlbm9ybWFsU3VwcG9ydCgpOworI2VuZGlmCisgICAgZmxvYXRpbmdQb2lu
dEVudmlyb25tZW50LnNhdmVNYWluVGhyZWFkRW52aXJvbm1lbnQoKTsKKworICAgIFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07CisKKyAgICBXZWJDb3JlOjpzZXRBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRJZGVudGlmaWVyKTsKKyAgICBz
ZXRBcHBsaWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKK30K
Kwogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSkKIHsKICAgICBhdXRvIGVy
cm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIlJlY2VpdmVkIGludmFsaWQgbWVzc2FnZTogJyIsIGRl
c2NyaXB0aW9uKG1lc3NhZ2VOYW1lKSwgIicgKCIsIG1lc3NhZ2VOYW1lLCAnKScpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENT
ZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApp
bmRleCBkOTRiYzljNTU5ZDUzNzRiOTFiZWZkZDUxODQ2ODdjOTFiYzNmMjBkLi45MGYzMWRhYjc5
YjIwNmEyZDEyYTNhNzg5MDc5MDllYWRjOTE1ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNjEsNiArNjEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciYgaWRlbnRpZmllcik7CiAgICAgdmlydHVhbCBib29sIGdl
dFByb2Nlc3NJZGVudGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CiAgICAgdmly
dHVhbCBib29sIGdldENsaWVudElkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyKTsK
KyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RLVmVyc2lvbih1aW50MzJfdCYgY2xpZW50U0RL
VmVyc2lvbik7CiAgICAgdmlydHVhbCBib29sIGdldENsaWVudFByb2Nlc3NOYW1lKFN0cmluZyYg
Y2xpZW50UHJvY2Vzc05hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRFeHRyYUluaXRpYWxpemF0
aW9uRGF0YShIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEp
OwogCkBAIC0xMTQsNiArMTE1LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRJZGVudGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50
SWRlbnRpZmllcikpCiAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKIAorICAgIGlmICghZGVs
ZWdhdGUuZ2V0Q2xpZW50U0RLVmVyc2lvbihwYXJhbWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQor
ICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBwcm9jZXNzSWRlbnRpZmllcjsKICAgICBpZiAoIWRlbGVnYXRlLmdldFByb2Nlc3NJZGVu
dGlmaWVyKHByb2Nlc3NJZGVudGlmaWVyKSkKICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50Lm1tCmluZGV4IDBhMTQyNWJjYTU2ZGFhNjY2NzdmOTdjNTIzYzkzZTZkOTQ5OGVmY2YuLjA3
Y2UyMDkwZDFlM2M1OWM0MjQ4NmYzN2JjZmJiN2IzMTdiYjhiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTc3
LDYgKzc3LDIwIEBAIGJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVu
dElkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1ZlcnNp
b24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pCit7CisgICAgU3RyaW5nIGNsaWVudElkZW50
aWZpZXJTdHJpbmcgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKG1faW5pdGlhbGl6ZXJNZXNz
YWdlLCAiY2xpZW50LXNkay12ZXJzaW9uIik7CisgICAgaWYgKGNsaWVudElkZW50aWZpZXJTdHJp
bmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIG9rOworICAg
IGNsaWVudFNES1ZlcnNpb24gPSBjbGllbnRJZGVudGlmaWVyU3RyaW5nLnRvVUludFN0cmljdCgm
b2spOworICAgIGlmICghb2spCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0
cnVlOworfQorCiBib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRQcm9jZXNz
SWRlbnRpZmllcihQcm9jZXNzSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKICAgICBTdHJpbmcg
cHJvY2Vzc0lkZW50aWZpZXJTdHJpbmcgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKG1faW5p
dGlhbGl6ZXJNZXNzYWdlLCAicHJvY2Vzcy1pZGVudGlmaWVyIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGRi
ZWU4NDMyOThmNmY1NWZiZWI4YTc0ZjE1NmMyNDkwYzI2ODc3M2EuLjkwYzE3MDA2OTY2OGZlMmEy
MWY4M2UyMTU5ZDMxMDM2ZDQ4NTUyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC05Niw3ICs5Niw2IEBAIHZv
aWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eTsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZp
ZXI7Ci0gICAgZW5jb2RlciA8PCB1aVByb2Nlc3NTREtWZXJzaW9uOwogICAgIGVuY29kZXIgPDwg
bGF0ZW5jeVFPUzsKICAgICBlbmNvZGVyIDw8IHRocm91Z2hwdXRRT1M7CiAjZW5kaWYKQEAgLTEx
OSw2ICsxMTgsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBlbmNvZGVyIDw8IG1lbW9yeUNhY2hl
RGlzYWJsZWQ7CiAgICAgZW5jb2RlciA8PCBhdHRyU3R5bGVFbmFibGVkOworICAgIGVuY29kZXIg
PDwgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb247CiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBlbmNvZGVyIDw8IGhhc0ltYWdlU2Vy
dmljZXM7CkBAIC0zMjEsOCArMzIxLDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9j
ZXNzQnVuZGxlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbikpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubGF0ZW5jeVFP
UykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMudGhyb3VnaHB1dFFPUykpCkBAIC0zNzEsNiArMzY5LDggQEAgYm9vbCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9j
ZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5hdHRyU3R5bGVFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckds
b2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5oYXNJbWFnZVNlcnZpY2VzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzZDU3M2UzNjM1MzBmNmM0N2Q5M2Iy
ZjdlM2E3Y2UyMjA3YjU0NDc3Li5kNWE4MzQ1ZDMyNWIyMDkwNTI3N2Y4ODMxOTRkNTM5YTg4Zjdm
OGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCkBAIC0xMjYsNyArMTI2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIGJvb2wgaGFzU3R5bHVzRGV2aWNlIHsgZmFsc2UgfTsKICAgICBi
b29sIG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5h
YmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRS
ZWRlY2xhcmF0aW9uIHsgdHJ1ZSB9OwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAg
ICAgYm9vbCBoYXNJbWFnZVNlcnZpY2VzIHsgZmFsc2UgfTsKQEAgLTE0MCw3ICsxNDAsNiBAQCBz
dHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCB1
aVByb2Nlc3NTREtWZXJzaW9uIHsgMCB9OwogICAgIGludCBsYXRlbmN5UU9TIHsgMCB9OwogICAg
IGludCB0aHJvdWdocHV0UU9TIHsgMCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvQXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9BdXhpbGlhcnlQcm9jZXNzSU9TLm1tCmluZGV4IDQwNTc1ZGMyMjMzY2RhM2YyOTQ2
NDhjMTQwOGQ3NGUxOGQzYWRlMDkuLjkxZTUwYjNhM2I4N2IwMDlkNGM2M2RmOGQ1Njc3MmU0YjE5
ZTMwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9BdXhpbGlhcnlQcm9j
ZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9BdXhpbGlhcnlQcm9jZXNz
SU9TLm1tCkBAIC00MSwxNCArNDEsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBB
dXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoKQotewotICAgIEZsb2F0aW5nUG9p
bnRFbnZpcm9ubWVudCYgZmxvYXRpbmdQb2ludEVudmlyb25tZW50ID0gRmxvYXRpbmdQb2ludEVu
dmlyb25tZW50OjpzaW5nbGV0b24oKTsgCi0gICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LmVu
YWJsZURlbm9ybWFsU3VwcG9ydCgpOyAKLSAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuc2F2
ZU1haW5UaHJlYWRFbnZpcm9ubWVudCgpOyAKLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1h
bmFnZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlUGF0aF1dOwotfQotCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemVTYW5k
Ym94KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0F1eGlsaWFy
eVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vz
c01hYy5tbQppbmRleCA1NzQ2ODJkMTM5YWJlZGM2ZTc4MzY2NjIzNjVlOTQ0NGU0ZjJlMjkzLi4z
YjVlOWNjOTIzM2QzYzE5ZTAzYjcwNDNmMTc2NjIwYTRjYmJjNTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQpAQCAtMzYsNyArMzYsNiBA
QAogI2ltcG9ydCAiV0tGb3VuZGF0aW9uLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2lu
dC5oIgogI2ltcG9ydCA8V2ViQ29yZS9GaWxlSGFuZGxlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0Zs
b2F0aW5nUG9pbnRFbnZpcm9ubWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1WZXJzaW9u
Lmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoLmg+CkBAIC0x
NDUsMTQgKzE0NCw2IEBAIHN0cnVjdCBTYW5kYm94SW5mbyB7CiBjb25zdGV4cHIgdWludDMyX3Qg
Q2FjaGVkU2FuZGJveFZlcnNpb25OdW1iZXIgPSAxOwogI2VuZGlmIC8vIFVTRShDQUNIRV9DT01Q
SUxFRF9TQU5EQk9YKQogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9s
aWN5KCkKLXsKLSAgICAvLyBTZXQgdGFza19sYXRlbmN5IGFuZCB0YXNrX3Rocm91Z2hwdXQgUU9T
IHRpZXJzIGFzIGFwcHJvcHJpYXRlIGZvciBhIHZpc2libGUgYXBwbGljYXRpb24uCi0gICAgc3Ry
dWN0IHRhc2tfcW9zX3BvbGljeSBxb3NpbmZvID0geyBMQVRFTkNZX1FPU19USUVSXzAsIFRIUk9V
R0hQVVRfUU9TX1RJRVJfMCB9OwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX3BvbGljeV9z
ZXQobWFjaF90YXNrX3NlbGYoKSwgVEFTS19CQVNFX1FPU19QT0xJQ1ksICh0YXNrX3BvbGljeV90
KSZxb3NpbmZvLCBUQVNLX1FPU19QT0xJQ1lfQ09VTlQpOwotICAgIEFTU0VSVF9VTlVTRUQoa3Is
IGtyID09IEtFUk5fU1VDQ0VTUyk7Ci19Ci0KIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6bGF1bmNo
U2VydmljZXNDaGVja0luKCkKIHsKICNpZiBIQVZFKENTQ0hFQ0tGSVhESVNBQkxFKQpAQCAtMTY0
LDE1ICsxNTUsNiBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmxhdW5jaFNlcnZpY2VzQ2hlY2tJ
bigpCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gdW51c2VkID0gX0xTQXBwbGljYXRp
b25DaGVja0luKGtMU0RlZmF1bHRTZXNzaW9uSUQsIENGQnVuZGxlR2V0SW5mb0RpY3Rpb25hcnko
Q0ZCdW5kbGVHZXRNYWluQnVuZGxlKCkpKTsKIH0KIAotdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQotewotICAgIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xp
Y3koKTsKLQotICAgIEZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudDo6c2luZ2xldG9uKCkuc2F2ZU1h
aW5UaHJlYWRFbnZpcm9ubWVudCgpOwotCi0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5h
Z2VyXSBjaGFuZ2VDdXJyZW50RGlyZWN0b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZVBhdGhdXTsKLX0KLQogc3RhdGljIE9TU3RhdHVzIGVuYWJsZVNhbmRib3hTdHlsZUZpbGVR
dWFyYW50aW5lKCkKIHsKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uY3BwCmluZGV4IDE4NTg1ZjYxYmI2ZWNhYmVjMzlmZjBjMDNiODYyYzY1ODU2ZGNhMjQuLmQx
NmVkNzc1M2ZhNTlmYzg3ZWE5NDAyZjVmZjQ4NzI1MjVlZDMyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uY3BwCkBAIC01Miw2ICs1Miw3IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IFBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAgICAgY29weS0+bV9mdWxseVN5bmNocm9u
b3VzTW9kZUlzQWxsb3dlZEZvclRlc3RpbmcgPSB0aGlzLT5tX2Z1bGx5U3luY2hyb25vdXNNb2Rl
SXNBbGxvd2VkRm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2lnbm9yZVN5bmNocm9ub3VzTWVzc2Fn
aW5nVGltZW91dHNGb3JUZXN0aW5nID0gdGhpcy0+bV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2lu
Z1RpbWVvdXRzRm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2F0dHJTdHlsZUVuYWJsZWQgPSB0aGlz
LT5tX2F0dHJTdHlsZUVuYWJsZWQ7CisgICAgY29weS0+bV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZv
ckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiA9IHRoaXMtPm1fc2hvdWxkVGhyb3dFeGNlcHRp
b25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb247CiAgICAgY29weS0+bV9vdmVycmlkZUxh
bmd1YWdlcyA9IHRoaXMtPm1fb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgY29weS0+bV9hbHdheXNS
dW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgPSB0aGlzLT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQ
cmlvcml0eTsKICAgICBjb3B5LT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24gPSB0
aGlzLT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
aW5kZXggNjQ5MjQ5MDJmMTk4MTE3OTI1MzdhMTVhMzJlZDRkNzA2ZGFmOTY3MC4uMWY1MDc5Yzg1
ZmRiOTU0Y2Q2YTZjN2M5Y2Y3MDE5YjRkMmMxNmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAt
OTQsNiArOTQsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2F0dHJTdHlsZUVuYWJsZWQ7IH0KICAgICB2b2lkIHNldEF0dHJTdHlsZUVu
YWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYXR0clN0eWxlRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAg
ICAKKyAgICBib29sIHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xh
cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENv
bnN0YW50UmVkZWNsYXJhdGlvbjsgfQorICAgIHZvaWQgc2V0U2hvdWxkVGhyb3dFeGNlcHRpb25G
b3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oYm9vbCBzaG91bGRUaHJvdykgeyBtX3Nob3Vs
ZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uID0gc2hvdWxkVGhy
b3c7IH0KIAogICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIG92ZXJyaWRlTGFuZ3VhZ2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZUxhbmd1YWdlczsgfQogICAgIHZvaWQgc2V0T3Zl
cnJpZGVMYW5ndWFnZXMoVmVjdG9yPFdURjo6U3RyaW5nPiYmIGxhbmd1YWdlcykgeyBtX292ZXJy
aWRlTGFuZ3VhZ2VzID0gV1RGTW92ZShsYW5ndWFnZXMpOyB9CkBAIC0xNTYsNiArMTU5LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0
aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1l
b3V0c0ZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hdHRyU3R5bGVFbmFibGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFu
dFJlZGVjbGFyYXRpb24geyB0cnVlIH07CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX292ZXJy
aWRlTGFuZ3VhZ2VzOwogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uIHsg
dHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDVmMjEzOTcwYWNmYzAz
OTY4MzlhNjEzYmI4ZWU5NDA3YmZlODg4MWUuLmQ0YjY1MTc3ZjlmZTU5MzUxMGJlYTY0ODMyZDQy
NTU2OTNiZTU0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTQwLDYgKzQw
LDkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9y
VGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGF0dHJTdHlsZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAorLy8gRGVmYXVsdHMgdG8gWUVTLgorQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFu
dFJlZGVjbGFyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNVUkwg
Kj4gKmFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FICYmICFUQVJHRVRf
T1NfU0lNVUxBVE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQppbmRleCA5ZTBkNzkw
YTNkMzUyNjEzZTYyYTdhZjYzZTM1OTMzZGUyYjBhYjU2Li45M2QwYjFlZDgwNmVlNjk4YmRmNTFh
NzAyMmIwY2I1ZWFiYmFhOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KQEAg
LTE0MSw2ICsxNDEsMTYgQEAgLSAodm9pZClzZXRBdHRyU3R5bGVFbmFibGVkOihCT09MKWVuYWJs
ZWQKICAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0QXR0clN0eWxlRW5h
YmxlZChlbmFibGVkKTsKIH0KIAorLSAoQk9PTClzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2Jh
bENvbnN0YW50UmVkZWNsYXJhdGlvbgoreworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLT5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bigpOworfQorCistICh2b2lkKXNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3Rh
bnRSZWRlY2xhcmF0aW9uOihCT09MKXNob3VsZFRocm93Cit7CisgICAgcmV0dXJuIF9wcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24tPnNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3Rh
bnRSZWRlY2xhcmF0aW9uKHNob3VsZFRocm93KTsKK30KKwogLSAoTlNBcnJheTxOU1VSTCAqPiAq
KWFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMKIHsKICAgICBhdXRvIHBhdGhzID0gX3By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+YWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkUGF0aHMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCmluZGV4IGRiMDA5YWQyODJmYmMwNzQ0OWIyMTI1NzEwNzY5MjQyMDNhZjE5NTcu
Ljc2MjZjYjhiMmQ3ZGI5NTkwN2Q0OWUyMzE1YjlkZDUwNDkxZDJkZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAt
MzIwLDcgKzMyMCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy51aVByb2Nl
c3NCdW5kbGVSZXNvdXJjZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5LCBw
YXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAK
ICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIoKTsKLSAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBh
cHBsaWNhdGlvblNES1ZlcnNpb24oKTsKIAogICAgIHBhcmFtZXRlcnMubGF0ZW5jeVFPUyA9IHdl
YlByb2Nlc3NMYXRlbmN5UU9TKCk7CiAgICAgcGFyYW1ldGVycy50aHJvdWdocHV0UU9TID0gd2Vi
UHJvY2Vzc1Rocm91Z2hwdXRRT1MoKTsKQEAgLTQ4Miw3ICs0ODEsNiBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94
eSYgcHJvY2Vzcwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7
CiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gYXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0g
YXBwbGljYXRpb25TREtWZXJzaW9uKCk7CiAKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMg
PSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1h
Yy5tbQppbmRleCA2N2M2ZTk2Njk5NWQzNzQ2YTMxZmMzMTNjZjNiZGJjNTY2MmM0MWVmLi41Mjg1
OGMwMGFjOTUxN2FkYTM5MjgzN2YwZGU1MDY3Y2U0OGI3N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMu
bW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbXBvcnQgPHd0
Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3Nw
aS9jZi9DRkJ1bmRsZVNQSS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yMDcsNiArMjA4LDcgQEAgdm9pZCBQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9tYWNo
X3NlbmQoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInNlcnZlci1wb3J0IiwgbGlzdGVuaW5nUG9y
dCk7CiAKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0
KCksICJjbGllbnQtaWRlbnRpZmllciIsICFjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSA/IGNs
aWVudElkZW50aWZpZXIudXRmOCgpLmRhdGEoKSA6ICpfTlNHZXRQcm9nbmFtZSgpKTsKKyAgICB4
cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQt
c2RrLXZlcnNpb24iLCBTdHJpbmc6Om51bWJlcihhcHBsaWNhdGlvblNES1ZlcnNpb24oKSkudXRm
OCgpLmRhdGEoKSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNz
YWdlLmdldCgpLCAicHJvY2Vzcy1pZGVudGlmaWVyIiwgU3RyaW5nOjpudW1iZXIobV9sYXVuY2hP
cHRpb25zLnByb2Nlc3NJZGVudGlmaWVyLnRvVUludDY0KCkpLnV0ZjgoKS5kYXRhKCkpOwogICAg
IHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInVpLXBy
b2Nlc3MtbmFtZSIsIFtbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1lXSBV
VEY4U3RyaW5nXSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNz
YWdlLmdldCgpLCAic2VydmljZS1uYW1lIiwgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYzcwMTM2NjJiNjIxYWE2M2M2MDViMzlhODdmNzAy
ZWVlNTI3NGVmYS4uNWQ2ZDExYTQwYTlmODQzMTExODZiN2UyZjI2NDFjZjFkOTllODQzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtODI2LDYgKzgy
Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcywgV2Vic2l0ZURhCiAKICAgICBwYXJhbWV0ZXJzLm1lbW9yeUNh
Y2hlRGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQ7CiAgICAgcGFyYW1ldGVycy5hdHRy
U3R5bGVFbmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5hdHRyU3R5bGVFbmFibGVkKCk7CisgICAg
cGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJh
dGlvbiA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25z
dGFudFJlZGVjbGFyYXRpb24oKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAg
IGF1dG8mIHNlcnZpY2VDb250cm9sbGVyID0gU2VydmljZXNDb250cm9sbGVyOjpzaW5nbGV0b24o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA5NmIxYWQ0N2Nj
MGFjMzk1ODNjZGYxYzk0MDI1NTMwMDA1MjkzMjFjLi45ZDQ1ZTdiMjk2NWZjYTZlZDQxM2VjNzI1
N2FlODU4NjFhZDE5NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC00ODQsNiArNDg0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBzZXRNZW1v
cnlDYWNoZURpc2FibGVkKHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxlZCk7CiAKICAgICBX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEF0dHJT
dHlsZUVuYWJsZWQocGFyYW1ldGVycy5hdHRyU3R5bGVFbmFibGVkKTsKKyAgICAKKyAgICBjb21t
b25WTSgpLnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KHBhcmFtZXRlcnMu
c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24pOwogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgc2V0RW5hYmxlZFNlcnZpY2VzKHBhcmFt
ZXRlcnMuaGFzSW1hZ2VTZXJ2aWNlcywgcGFyYW1ldGVycy5oYXNTZWxlY3Rpb25TZXJ2aWNlcywg
cGFyYW1ldGVycy5oYXNSaWNoQ29udGVudFNlcnZpY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGUwOTlkZTQxZGQ3Yzdh
YzNkZmI0MDE0Y2JiZGY5ZDhhNDVlYzI2NWMuLmVjMTUxMzNjM2I4YmU1MTIwYzJmMDMxNzA5ZTA3
NDcwYmRjNTg2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQpAQCAtMjYwLDkgKzI2MCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhCiAgICAgV2ViS2l0Ojppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeShwYXJhbWV0
ZXJzLndlYktpdExvZ2dpbmdDaGFubmVscyk7CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OnNldEFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50
aWZpZXIpOwotICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVpUHJvY2Vz
c1NES1ZlcnNpb24pOwotCiAgICAgbV91aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gcGFyYW1l
dGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwogCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhU
RU5TSU9OUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424073</attachid>
            <date>2021-03-23 15:13:47 -0700</date>
            <delta_ts>2021-03-24 02:45:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157101-20210323151346.patch</filename>
            <type>text/plain</type>
            <size>35055</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdjZGZjNjM5ZDg3OTE2
ZGM2NTQ1NDBiMDQ4ZWVmOTk4YjA4NThkOS4uMWRhMzMwNzM0MjE4ZWIyN2IxYmM1ZmY0ZDkyNGNh
NWFiZjFlNGMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTIzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbCBCb29rcyBx
dWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTAxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IEkgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byB3
cml0ZSBhIHRlc3QgdGhhdCBkb2Vzbid0IGludm9sdmUKKyAgICAgICAgYWRkaW5nIGEgbmV3IHBh
cmFtZXRlciB0byB0aGUgcHJvY2VzcyBib290c3RyYXAgbWVzc2FnZSwgd2hpY2ggc2VlbXMKKyAg
ICAgICAgb3V0IG9mIHRoZSByZWFsbSBvZiByZWFzb24gZm9yIGEgdGVzdC4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xv
dyk6CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIFN0b3AgaGFyZGNvZGluZyBnbG9iYWxDb25zdFJlZGVjbGFy
YXRpb25TaG91bGRUaHJvdyBiYXNlZCBvbiB0aGUgVUkgcHJvY2VzcyBpZGVudGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjppc0luQXV4aWxpYXJ5UHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyT3ZlcnJpZGUpOgorICAgICAgICBBZGQgYW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFu
eSBmdXR1cmUgY2FzZSB3aGVyZSBhIGJ1bmRsZSBjaGVjayBpcyBxdWVyaWVkCisgICAgICAgIGlu
IGEgYXV4aWxpYXJ5IHByb2Nlc3MgYmVmb3JlIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uIGJ1bmRs
ZSBpZGVudGlmaWVyIGlzIHNldC4KKwogMjAyMS0wMy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciB2YWxpZGF0ZSBKU0FycmF5cyBpbiBBdWRpb1dv
cmtsZXRQcm9jZXNzb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTMzMTNmYTZhZjBhMTlkZjQ1YjkzMjAzMmRjZWQ1
ODE2N2U5MTZiYi4uNzU5ODA5MTdjMmRlODhhMzQzMzUzNDA4ZjIyNmEwNjBlMmQ4MTkyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MiBAQAorMjAyMS0wMy0yMyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGwgQm9va3MgcXVpcmtzIGFyZSBmbGFraWx5
IG5vdCBhcHBsaWVkIGluIG1vZGVybiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5
NjUwMjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gcjIwMDEyMSwgYSBxdWlyayB3YXMgaW50cm9kdWNlZCB0aGF0IHF1ZXJpZWQgdGhlIGlzSUJv
b2tzKCkKKyAgICAgICAgUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzIG1ldGhvZCBmcm9tIGluc2lk
ZSBjb21tb25WTSgpLgorCisgICAgICAgIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcyBidW5kbGUg
Y2hlY2tzIGNhY2hlIHRoZSByZXN1bHQgb2YgdGhlIGJ1bmRsZQorICAgICAgICBjaGVjaywgYW5k
LCBhcyBzdWNoLCBtdXN0IG5vdCBiZSBjYWxsZWQgdW50aWwgdGhlIGJ1bmRsZSBpZGVudGlmZXIg
b2YKKyAgICAgICAgdGhlIFVJIGFwcGxpY2F0aW9uIGlzIGtub3duLiBJbiBsZWdhY3kgV2ViS2l0
LCB0aGlzIGlzIG5vdCBhIHByb2JsZW0sCisgICAgICAgIGJlY2F1c2UgdGhlIGNoZWNrIGlzIHJ1
bm5pbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3M7IGluIG1vZGVybiBXZWJLaXQsCisgICAg
ICAgIHRoZXJlIGlzIGEgc2hvcnQgd2luZG93IGJldHdlZW4gcHJvY2VzcyBsYXVuY2ggYW5kIHRo
ZSBJbml0aWFsaXplV2ViUHJvY2VzcworICAgICAgICBtZXNzYWdlIGJlaW5nIHJlY2VpdmVkIHdo
ZXJlIHdlIHdvbid0IGtub3cgdGhlIGJ1bmRsZSBpZGVudGlmaWVyLCBhbmQgaWYKKyAgICAgICAg
aXNJQm9va3MoKSAob3IgYW55IG90aGVyIGJ1bmRsZSBjaGVjaykgaXMgY2FsbGVkIGR1cmluZyB0
aGlzIHRpbWUsIGl0IHdpbGwKKyAgICAgICAgY2FjaGUgdGhlIHdyb25nIHJlc3VsdC4KKworICAg
ICAgICBJdCBpcyBwb3NzaWJsZSBmb3IgY29tbW9uVk0oKSB0byBiZSBjYWxsZWQgaW4gdGhpcyB3
aW5kb3c7IG9uZSBwb3NzaWJsZSBwYXRoCisgICAgICAgIHRvIHRoaXMgaXMgYnkgdHJpZ2dlcmlu
ZyBhbiBvc19sb2dfZmF1bHQgZHVyaW5nIHRoaXMgdGltZSwgd2hpY2ggV2ViS2l0CisgICAgICAg
IG9ic2VydmVzICh2aWEgb3Nfc3RhdGVfYWRkX2hhbmRsZXIoKSkgaW4gb3JkZXIgdG8gZHVtcCBt
ZW1vcnkgdXNhZ2UKKyAgICAgICAgKHdoaWNoIGhhcHBlbnMgdG8gY2FsbCBjb21tb25WTSgpIGFu
ZCByZXN1bHRzIGluIGlzSUJvb2tzIGdldHRpbmcgY2FsbGVkCisgICAgICAgIGFuZCBjYWNoaW5n
IHRoZSB3cm9uZyB2YWx1ZSkuCisKKyAgICAgICAgQWRkIGFuIGFzc2VydGlvbiwgYW5kIG1vdmUg
dGhlIHF1aXJrIHRvIGxpdmUgYXMgYSBzZXR0aW5nIG9uIHRoZSBwcm9jZXNzCisgICAgICAgIHBv
b2wgY29uZmlndXJhdGlvbiwgdG8gYmUgc2V0IHZpYSBTUEkgYnkgQm9va3MsIGluc3RlYWQgb2Yg
YXMgYSBidW5kbGUgY2hlY2suCisKKyAgICAgICAgQWxzbywgZW5zdXJlIHRoYXQgY2xpZW50IGJ1
bmRsZSBpZGVudGlmaWVyIGFuZCBTREsgdmVyc2lvbiBhcmUgc2V0IGluIAorICAgICAgICBhbGwg
V2ViS2l0IHN1YnByb2Nlc3Nlcywgc28gdGhhdCBidW5kbGUvU0RLIGNoZWNrcyB3b3JrIGV2ZXJ5
d2hlcmUKKyAgICAgICAgKHByZXZpb3VzbHksIHRoZSBHUFUgcHJvY2VzcyB3YXMgdXNpbmcgU0RL
IGNoZWNrcyB3aXRob3V0IGhhdmluZyBwdXNoZWQKKyAgICAgICAgdGhlIHZhbHVlcyBmcm9tIHRo
ZSBVSSBwcm9jZXNzLCByZXN1bHRpbmcgaW4gaW5jb3JyZWN0IHJlc3VsdHMsIGFuZAorICAgICAg
ICBydW5uaW5nIGFmb3VsIG9mIHRoZSBhc3NlcnRpb24gYWRkZWQgYWJvdmUpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAg
ICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAoQVBJOjpk
ZWZhdWx0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNob3Vs
ZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uXSk6CisgICAgICAg
ICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZv
ckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aW5pdGlh
bGl6ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAg
ICAgICAgUGx1bWIgYSBuZXcgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHBhcmFtZXRlciB0
byB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcywKKyAgICAgICAgYW5kIHNldCB0aGUgYml0IG9uIHRo
ZSBjb21tb25WTSB3aGVuIGxhdW5jaGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1By
b2Nlc3NDb2NvYSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKToKKyAgICAgICAgKFdl
YktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBT
aGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9BdXhpbGlh
cnlQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNvYWxl
c2NpbmdQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbik6
CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAg
ICAgIFJlbW92ZSBhbiBleHRyYSB1bnVzZWQgbWVtYmVyLgorICAgICAgICAqIFNoYXJlZC9pb3Mv
QXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0F1
eGlsaWFyeVByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNv
YWxlc2NpbmdQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBQbHVtYiB0aGUg
Y2xpZW50IGJ1bmRsZSBpZGVudGlmZXIgYW5kIFNESyB2ZXJzaW9uIHRvIGFsbCBhdXhpbGlhcnkg
cHJvY2Vzc2VzCisgICAgICAgIGF0IHByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZSBpbnN0ZWFk
IG9mIEluaXRpYWxpemVXZWJQcm9jZXNzL05ldHdvcmtQcm9jZXNzCisgICAgICAgIG1lc3NhZ2Ug
cmVjZWlwdCB0aW1lLCBjbG9zaW5nIHRoZSB3aW5kb3cgaW4gd2hpY2ggaXQgaXMgaW52YWxpZCB0
byB1c2UKKyAgICAgICAgYnVuZGxlIGNoZWNrcywgYW5kIGVuc3VyaW5nIHRoYXQgYnVuZGxlIGNo
ZWNrcyB3b3JrIGluIGFsbCBwcm9jZXNzZXMuCisKIDIwMjEtMDMtMjIgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBlYXJseSByZXR1cm4gaW4gVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldmlj
ZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcAppbmRleCBkMzViZWQz
MGZmNDVkYWJkNmQ2NzMyNGQzNGFiNDdmYzNmN2NkZGI4Li43Zjc2MDllOTMxN2E2MTg3OGUwOWRi
ZDU0MzRlN2JiNjlmODAyNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Db21tb25WTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9uVk0u
Y3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KQEAgLTQ0LDE4ICs0Myw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8y
NTk2NTAyOD4gVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvciByZXBsYWNlZCB3aXRoIGEgU2V0dGlu
ZyB0aGF0IGlCb29rcyBjYW4gdXNlIGlmIGl0IGlzIHN0aWxsIG5lZWRlZC4KLXN0YXRpYyBib29s
IGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkKLXsKLSNpZiBQTEFURk9STShN
QUMpCi0gICAgcmV0dXJuICFNYWNBcHBsaWNhdGlvbjo6aXNJQm9va3MoKTsKLSNlbGlmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuICFJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3MoKTsK
LSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLX0KLQogSlNDOjpWTSogZ19jb21tb25W
TU9yTnVsbDsKIAogSlNDOjpWTSYgY29tbW9uVk1TbG93KCkKQEAgLTg2LDggKzczLDYgQEAgSlND
OjpWTSYgY29tbW9uVk1TbG93KCkKICAgICB2bS5oZWFwLm1hY2hpbmVUaHJlYWRzKCkuYWRkQ3Vy
cmVudFRocmVhZCgpOwogI2VuZGlmCiAKLSAgICB2bS5zZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRp
b25TaG91bGRUaHJvdyhnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdygpKTsKLQog
ICAgIEpTVk1DbGllbnREYXRhOjppbml0Tm9ybWFsV29ybGQoJnZtLCBXb3JrZXJUaHJlYWRUeXBl
OjpNYWluKTsKIAogICAgIHJldHVybiB2bTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmluZGV4IDE0OWExZjRhYWZmNzZkYWE1
MzdhYjNmMTkyNjMzMDliNmE3Y2VmMDcuLjk4MGZmZTk1ODAwM2VkYWU4NmFjYjg4ZGI5NDEyMzc3
OWIyOTczMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtNjYsNiArNjYsMTEgQEAgc3RhdGljIE9wdGlvbmFsPEF1
eGlsaWFyeVByb2Nlc3NUeXBlPiYgYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKQogICAgIHJldHVybiBh
dXhpbGlhcnlQcm9jZXNzVHlwZTsKIH0KIAorYm9vbCBpc0luQXV4aWxpYXJ5UHJvY2VzcygpCit7
CisgICAgcmV0dXJuICEhYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKTsKK30KKwogdm9pZCBzZXRBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogewogICAgIGF1eGls
aWFyeVByb2Nlc3NUeXBlKCkgPSB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCA0ZGE0YmFjMDk0YTZlNGQwYjFmMzg4
ZGZmYmU3MjI4YjA1OWI2ZDJmLi45ZDZmYjY1ZmNhMWI0ZDJmYWE5NjFmZGY1ZjU3ZjA1ZmZhMTM1
ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NU
eXBlIDogdWludDhfdCB7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1eGlsaWFyeVByb2Nlc3NU
eXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2hlY2tBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiAKK2Jvb2wgaXNJbkF1eGls
aWFyeVByb2Nlc3MoKTsKIGlubGluZSBib29sIGlzSW5XZWJQcm9jZXNzKCkgeyByZXR1cm4gY2hl
Y2tBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZTo6V2ViQ29udGVudCk7
IH0KIGlubGluZSBib29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIGNoZWNrQXV4aWxp
YXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6Ok5ldHdvcmspOyB9CiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQppbmRleCA3YjRjMDYx
ZjIxYTBiM2RjOWU0OWFkZjI2OWMzMTk5NDhlNWEyYjQzLi5mMjVjMWFiZGU0YmY5MzRiZDFkZjI5
NDE1ZWQ0YzgxZWFlMGUwNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQpAQCAtNjUs
NiArNjUsNyBAQCBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkKICAgICBBU1NF
UlQoaWRlbnRpZmllci5pc051bGwoKSB8fCBSdW5Mb29wOjppc01haW4oKSk7CiAgICAgaWYgKGlk
ZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIGlkZW50aWZpZXIgPSBidW5kbGVJZGVudGlmaWVy
KCk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghaXNJbkF1eGlsaWFyeVByb2Nlc3MoKSB8fCAh
IWlkZW50aWZpZXIsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlv
bkJ1bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpIGluIGF1eGlsaWFyeSBwcm9jZXNzZXMiKTsKICAgICByZXR1
cm4gaWRlbnRpZmllci5pc051bGwoKSA/IFN0cmluZyhbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZUlkZW50aWZpZXJdKSA6IGlkZW50aWZpZXI7CiB9CiAKQEAgLTc3LDcgKzc4LDcgQEAgdm9p
ZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
KQogdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZShjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdh
c1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1
bmRsZVN0YXJ0c1dpdGgoKSBzaG91bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyKCkiKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdhc1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRs
ZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBi
ZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCki
KTsKICAgICBidW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IGlkZW50aWZpZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMDhlM2ZiZDMyN2RmMGE0NjY2Mjc3
NDJkNTlkNGZkYTQ2Y2FhN2FiZS4uMjM4Y2JhMzM5YTJiNmY0YTYxMWQ4OWJlNzM3NzNhOTUzZTdk
YzZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTUzLDcgKzUzLDYg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVk
Rm9yQ3VzdG9tUHJvdG9jb2xzOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwg
dWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1Zl
cnNpb247CiAgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgbmV0d29ya0FUU0NvbnRleHQuZ2V0KCkp
OwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCkBAIC0xMTEsOCArMTEwLDYgQEAgYm9vbCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
TmV0d29ya1Byb2MKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVpUHJvY2Vzc1NES1ZlcnNpb24pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCByZXN1
bHQubmV0d29ya0FUU0NvbnRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA1OTdmYzhkYmRjYmEwODI1NzllZDA5YWE4
MWMzNzI4MDM3NjMwODU1Li40MzY5YjIwMDVjZWZkZWU2NzIzODE0NjAzMzExNmI2ODRkMDI5NDdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC02Niw3ICs2Niw2IEBAIHN0cnVj
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCB1
aVByb2Nlc3NTREtWZXJzaW9uIHsgMCB9OwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IG5ldHdv
cmtBVFNDb250ZXh0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCA1ZmJlODFkNjg2
YjljNzRkN2RlYjk2ODU2NDAzODEzZmU2N2VkZjIwLi5kOGIzMTBmMTBkYTVmNzNmZDM4ZjJhOWEw
YjI4MmQwMTM5MmIxNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC03Myw5ICs3Myw2IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVOZXR3b3JrU2V0dGluZ3MoKQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIFdlYkNvcmU6OnNl
dEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlk
ZW50aWZpZXIpOwotICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc1NES1ZlcnNpb24pOwotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkocGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAppbmRleCBkYmJl
MWJmMDkwMzVmYTRkMzAzMGVlMWU0N2U5ZjcyMjVlMmYxMGEzLi5iMzc0NTk1YTQwNmYxMTljYjdm
NTgyOTE1MGEyNzgwZTBkNDZmOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQ
cm9jZXNzLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRp
YWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycwogICAg
IFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRShwYXJhbWV0ZXJzLnByb2Nlc3NJZGVudGlmaWVy
LCAiVW5hYmxlIHRvIGluaXRpYWxpemUgY2hpbGQgcHJvY2VzcyB3aXRob3V0IGEgV2ViQ29yZSBw
cm9jZXNzIGlkZW50aWZpZXIiKTsKICAgICBQcm9jZXNzOjpzZXRJZGVudGlmaWVyKCpwYXJhbWV0
ZXJzLnByb2Nlc3NJZGVudGlmaWVyKTsKIAotICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAg
IHBsYXRmb3JtSW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIG1fcHJpb3JpdHlCb29zdE1lc3NhZ2UgPSBwYXJhbWV0ZXJzLnByaW9yaXR5Qm9vc3RNZXNz
YWdlOwpAQCAtMjM3LDcgKzIzNyw3IEBAIE9wdGlvbmFsPHN0ZDo6cGFpcjxJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIsIElQQzo6QXR0YWNobWVudD4+IEF1eGlsaWFyeVByb2NlCiB9CiAKICNp
ZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCit2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBB
dXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCmluZGV4IGQ4YjNiMTQ3OTY5NzJmNGVhYTQ0
ODg0NDk3NzQxMzU5MjYzODBlYTAuLmQ0OGNhYjI5YzNmMzI0NTEwNzU2NTY4MWEwNzJlYTVjNDI1
MWZjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKQEAgLTEzNyw3
ICsxMzcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKTsK
IAotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CisgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwog
ICAgIHZvaWQgcGxhdGZvcm1TdG9wUnVuTG9vcCgpOwogCiAgICAgLy8gVGhlIHRpbWVvdXQsIGlu
IHNlY29uZHMsIGJlZm9yZSB0aGlzIHByb2Nlc3Mgd2lsbCBiZSB0ZXJtaW5hdGVkIGlmIHRlcm1p
bmF0aW9uCkBAIC0xNjMsNiArMTYzLDcgQEAgcHJpdmF0ZToKIHN0cnVjdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgdWlQcm9jZXNzTmFtZTsK
ICAgICBTdHJpbmcgY2xpZW50SWRlbnRpZmllcjsKKyAgICB1aW50MzJfdCBjbGllbnRTREtWZXJz
aW9uOwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyPiBwcm9jZXNzSWRl
bnRpZmllcjsKICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0cmFJbml0aWFsaXphdGlvbkRh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9j
ZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNz
Q29jb2EubW0KaW5kZXggY2ZmYmVkNzA3ZGNlN2U3ZGIxODU2OTJjODg0MzdhMjQ0Mjk3MzI4My4u
MTgyYTg5ZDgyNjk0MGMxNTNiZjZkYzlmZmM3MjAwOWM5MjY3N2IxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtMjgs
MTAgKzI4LDQyIEBACiAKICNpbXBvcnQgIldLQ3Jhc2hSZXBvcnRlci5oIgogI2ltcG9ydCAiWFBD
U2VydmljZUVudHJ5UG9pbnQuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRpbmdQb2ludEVudmly
b25tZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgor
I2ltcG9ydCA8bWFjaC90YXNrLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+
CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpCit7
CisgICAgLy8gU2V0IHRhc2tfbGF0ZW5jeSBhbmQgdGFza190aHJvdWdocHV0IFFPUyB0aWVycyBh
cyBhcHByb3ByaWF0ZSBmb3IgYSB2aXNpYmxlIGFwcGxpY2F0aW9uLgorICAgIHN0cnVjdCB0YXNr
X3Fvc19wb2xpY3kgcW9zaW5mbyA9IHsgTEFURU5DWV9RT1NfVElFUl8wLCBUSFJPVUdIUFVUX1FP
U19USUVSXzAgfTsKKyAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19wb2xpY3lfc2V0KG1hY2hf
dGFza19zZWxmKCksIFRBU0tfQkFTRV9RT1NfUE9MSUNZLCAodGFza19wb2xpY3lfdCkmcW9zaW5m
bywgVEFTS19RT1NfUE9MSUNZX0NPVU5UKTsKKyAgICBBU1NFUlRfVU5VU0VEKGtyLCBrciA9PSBL
RVJOX1NVQ0NFU1MpOworfQorI2VuZGlmCisKK3ZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCit7CisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkKKyAgICBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCk7CisjZW5kaWYKKwor
ICAgIEZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudCYgZmxvYXRpbmdQb2ludEVudmlyb25tZW50ID0g
RmxvYXRpbmdQb2ludEVudmlyb25tZW50OjpzaW5nbGV0b24oKTsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgZmxvYXRpbmdQb2ludEVudmly
b25tZW50LmVuYWJsZURlbm9ybWFsU3VwcG9ydCgpOworI2VuZGlmCisgICAgZmxvYXRpbmdQb2lu
dEVudmlyb25tZW50LnNhdmVNYWluVGhyZWFkRW52aXJvbm1lbnQoKTsKKworICAgIFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07CisKKyAgICBXZWJDb3JlOjpzZXRBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRJZGVudGlmaWVyKTsKKyAgICBz
ZXRBcHBsaWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKK30K
Kwogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSkKIHsKICAgICBhdXRvIGVy
cm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIlJlY2VpdmVkIGludmFsaWQgbWVzc2FnZTogJyIsIGRl
c2NyaXB0aW9uKG1lc3NhZ2VOYW1lKSwgIicgKCIsIG1lc3NhZ2VOYW1lLCAnKScpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENT
ZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApp
bmRleCBkOTRiYzljNTU5ZDUzNzRiOTFiZWZkZDUxODQ2ODdjOTFiYzNmMjBkLi45MGYzMWRhYjc5
YjIwNmEyZDEyYTNhNzg5MDc5MDllYWRjOTE1ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNjEsNiArNjEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciYgaWRlbnRpZmllcik7CiAgICAgdmlydHVhbCBib29sIGdl
dFByb2Nlc3NJZGVudGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CiAgICAgdmly
dHVhbCBib29sIGdldENsaWVudElkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyKTsK
KyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RLVmVyc2lvbih1aW50MzJfdCYgY2xpZW50U0RL
VmVyc2lvbik7CiAgICAgdmlydHVhbCBib29sIGdldENsaWVudFByb2Nlc3NOYW1lKFN0cmluZyYg
Y2xpZW50UHJvY2Vzc05hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRFeHRyYUluaXRpYWxpemF0
aW9uRGF0YShIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEp
OwogCkBAIC0xMTQsNiArMTE1LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRJZGVudGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50
SWRlbnRpZmllcikpCiAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKIAorICAgIGlmICghZGVs
ZWdhdGUuZ2V0Q2xpZW50U0RLVmVyc2lvbihwYXJhbWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQor
ICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBwcm9jZXNzSWRlbnRpZmllcjsKICAgICBpZiAoIWRlbGVnYXRlLmdldFByb2Nlc3NJZGVu
dGlmaWVyKHByb2Nlc3NJZGVudGlmaWVyKSkKICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50Lm1tCmluZGV4IDBhMTQyNWJjYTU2ZGFhNjY2NzdmOTdjNTIzYzkzZTZkOTQ5OGVmY2YuLjdl
ZTBjODIzY2E4YTEyMTVmODA1M2Y5OWQzYTVlZjdmMzNiNDQ1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTc3
LDYgKzc3LDE0IEBAIGJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVu
dElkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1ZlcnNp
b24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pCit7CisgICAgYXV0byBzdHJpbmcgPSB4cGNf
ZGljdGlvbmFyeV9nZXRfc3RyaW5nKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay12
ZXJzaW9uIik7CisgICAgYm9vbCBvazsKKyAgICBjbGllbnRTREtWZXJzaW9uID0gY2hhcmFjdGVy
c1RvVUludFN0cmljdChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oc3RyaW5nKSwgc3Ry
aW5nID8gc3RkOjpzdHJsZW4oc3RyaW5nKSA6IDAsICZvayk7CisgICAgcmV0dXJuIG9rOworfQor
CiBib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRQcm9jZXNzSWRlbnRpZmll
cihQcm9jZXNzSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKICAgICBTdHJpbmcgcHJvY2Vzc0lk
ZW50aWZpZXJTdHJpbmcgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKG1faW5pdGlhbGl6ZXJN
ZXNzYWdlLCAicHJvY2Vzcy1pZGVudGlmaWVyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGRiZWU4NDMyOThm
NmY1NWZiZWI4YTc0ZjE1NmMyNDkwYzI2ODc3M2EuLjkwYzE3MDA2OTY2OGZlMmEyMWY4M2UyMTU5
ZDMxMDM2ZDQ4NTUyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC05Niw3ICs5Niw2IEBAIHZvaWQgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eTsKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7Ci0gICAg
ZW5jb2RlciA8PCB1aVByb2Nlc3NTREtWZXJzaW9uOwogICAgIGVuY29kZXIgPDwgbGF0ZW5jeVFP
UzsKICAgICBlbmNvZGVyIDw8IHRocm91Z2hwdXRRT1M7CiAjZW5kaWYKQEAgLTExOSw2ICsxMTgs
NyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBlbmNvZGVyIDw8IG1lbW9yeUNhY2hlRGlzYWJsZWQ7
CiAgICAgZW5jb2RlciA8PCBhdHRyU3R5bGVFbmFibGVkOworICAgIGVuY29kZXIgPDwgc2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb247CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKICAgICBlbmNvZGVyIDw8IGhhc0ltYWdlU2VydmljZXM7CkBA
IC0zMjEsOCArMzIxLDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxl
SWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbikpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubGF0ZW5jeVFPUykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudGhy
b3VnaHB1dFFPUykpCkBAIC0zNzEsNiArMzY5LDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5hdHRyU3R5bGVFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0
YW50UmVkZWNsYXJhdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNJ
bWFnZVNlcnZpY2VzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzZDU3M2UzNjM1MzBmNmM0N2Q5M2IyZjdlM2E3Y2Uy
MjA3YjU0NDc3Li5kNWE4MzQ1ZDMyNWIyMDkwNTI3N2Y4ODMxOTRkNTM5YTg4ZjdmOGI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCkBAIC0xMjYsNyArMTI2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIGJvb2wgaGFzU3R5bHVzRGV2aWNlIHsgZmFsc2UgfTsKICAgICBib29sIG1lbW9y
eUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZh
bHNlIH07Ci0gICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0
aW9uIHsgdHJ1ZSB9OwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgYm9vbCBo
YXNJbWFnZVNlcnZpY2VzIHsgZmFsc2UgfTsKQEAgLTE0MCw3ICsxNDAsNiBAQCBzdHJ1Y3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBT
dHJpbmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCB1aVByb2Nlc3NT
REtWZXJzaW9uIHsgMCB9OwogICAgIGludCBsYXRlbmN5UU9TIHsgMCB9OwogICAgIGludCB0aHJv
dWdocHV0UU9TIHsgMCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvQXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9B
dXhpbGlhcnlQcm9jZXNzSU9TLm1tCmluZGV4IDQwNTc1ZGMyMjMzY2RhM2YyOTQ2NDhjMTQwOGQ3
NGUxOGQzYWRlMDkuLjkxZTUwYjNhM2I4N2IwMDlkNGM2M2RmOGQ1Njc3MmU0YjE5ZTMwMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9BdXhpbGlhcnlQcm9jZXNzSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9BdXhpbGlhcnlQcm9jZXNzSU9TLm1tCkBA
IC00MSwxNCArNDEsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBBdXhpbGlhcnlQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoKQotewotICAgIEZsb2F0aW5nUG9pbnRFbnZpcm9u
bWVudCYgZmxvYXRpbmdQb2ludEVudmlyb25tZW50ID0gRmxvYXRpbmdQb2ludEVudmlyb25tZW50
OjpzaW5nbGV0b24oKTsgCi0gICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LmVuYWJsZURlbm9y
bWFsU3VwcG9ydCgpOyAKLSAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuc2F2ZU1haW5UaHJl
YWRFbnZpcm9ubWVudCgpOyAKLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNo
YW5nZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0
aF1dOwotfQotCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0
IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQpp
bmRleCA1NzQ2ODJkMTM5YWJlZGM2ZTc4MzY2NjIzNjVlOTQ0NGU0ZjJlMjkzLi4zYjVlOWNjOTIz
M2QzYzE5ZTAzYjcwNDNmMTc2NjIwYTRjYmJjNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQpAQCAtMzYsNyArMzYsNiBAQAogI2ltcG9y
dCAiV0tGb3VuZGF0aW9uLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgogI2lt
cG9ydCA8V2ViQ29yZS9GaWxlSGFuZGxlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0aW5nUG9p
bnRFbnZpcm9ubWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1WZXJzaW9uLmg+CiAjaW1w
b3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoLmg+CkBAIC0xNDUsMTQgKzE0
NCw2IEBAIHN0cnVjdCBTYW5kYm94SW5mbyB7CiBjb25zdGV4cHIgdWludDMyX3QgQ2FjaGVkU2Fu
ZGJveFZlcnNpb25OdW1iZXIgPSAxOwogI2VuZGlmIC8vIFVTRShDQUNIRV9DT01QSUxFRF9TQU5E
Qk9YKQogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCkKLXsK
LSAgICAvLyBTZXQgdGFza19sYXRlbmN5IGFuZCB0YXNrX3Rocm91Z2hwdXQgUU9TIHRpZXJzIGFz
IGFwcHJvcHJpYXRlIGZvciBhIHZpc2libGUgYXBwbGljYXRpb24uCi0gICAgc3RydWN0IHRhc2tf
cW9zX3BvbGljeSBxb3NpbmZvID0geyBMQVRFTkNZX1FPU19USUVSXzAsIFRIUk9VR0hQVVRfUU9T
X1RJRVJfMCB9OwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX3BvbGljeV9zZXQobWFjaF90
YXNrX3NlbGYoKSwgVEFTS19CQVNFX1FPU19QT0xJQ1ksICh0YXNrX3BvbGljeV90KSZxb3NpbmZv
LCBUQVNLX1FPU19QT0xJQ1lfQ09VTlQpOwotICAgIEFTU0VSVF9VTlVTRUQoa3IsIGtyID09IEtF
Uk5fU1VDQ0VTUyk7Ci19Ci0KIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6bGF1bmNoU2VydmljZXND
aGVja0luKCkKIHsKICNpZiBIQVZFKENTQ0hFQ0tGSVhESVNBQkxFKQpAQCAtMTY0LDE1ICsxNTUs
NiBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmxhdW5jaFNlcnZpY2VzQ2hlY2tJbigpCiAgICAg
UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gdW51c2VkID0gX0xTQXBwbGljYXRpb25DaGVja0lu
KGtMU0RlZmF1bHRTZXNzaW9uSUQsIENGQnVuZGxlR2V0SW5mb0RpY3Rpb25hcnkoQ0ZCdW5kbGVH
ZXRNYWluQnVuZGxlKCkpKTsKIH0KIAotdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemUoKQotewotICAgIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKTsKLQot
ICAgIEZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudDo6c2luZ2xldG9uKCkuc2F2ZU1haW5UaHJlYWRF
bnZpcm9ubWVudCgpOwotCi0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjaGFu
Z2VDdXJyZW50RGlyZWN0b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhd
XTsKLX0KLQogc3RhdGljIE9TU3RhdHVzIGVuYWJsZVNhbmRib3hTdHlsZUZpbGVRdWFyYW50aW5l
KCkKIHsKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmlu
ZGV4IDE4NTg1ZjYxYmI2ZWNhYmVjMzlmZjBjMDNiODYyYzY1ODU2ZGNhMjQuLmQxNmVkNzc1M2Zh
NTlmYzg3ZWE5NDAyZjVmZjQ4NzI1MjVlZDMyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBA
IC01Miw2ICs1Miw3IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbjo6Y29weSgpCiAgICAgY29weS0+bV9mdWxseVN5bmNocm9ub3VzTW9kZUlz
QWxsb3dlZEZvclRlc3RpbmcgPSB0aGlzLT5tX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2Vk
Rm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHNGb3JUZXN0aW5nID0gdGhpcy0+bV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRz
Rm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2F0dHJTdHlsZUVuYWJsZWQgPSB0aGlzLT5tX2F0dHJT
dHlsZUVuYWJsZWQ7CisgICAgY29weS0+bV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENv
bnN0YW50UmVkZWNsYXJhdGlvbiA9IHRoaXMtPm1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9i
YWxDb25zdGFudFJlZGVjbGFyYXRpb247CiAgICAgY29weS0+bV9vdmVycmlkZUxhbmd1YWdlcyA9
IHRoaXMtPm1fb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgY29weS0+bV9hbHdheXNSdW5zQXRCYWNr
Z3JvdW5kUHJpb3JpdHkgPSB0aGlzLT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eTsK
ICAgICBjb3B5LT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24gPSB0aGlzLT5tX3No
b3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggNjQ5
MjQ5MDJmMTk4MTE3OTI1MzdhMTVhMzJlZDRkNzA2ZGFmOTY3MC4uMWY1MDc5Yzg1ZmRiOTU0Y2Q2
YTZjN2M5Y2Y3MDE5YjRkMmMxNmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtOTQsNiArOTQs
OSBAQCBwdWJsaWM6CiAKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2F0dHJTdHlsZUVuYWJsZWQ7IH0KICAgICB2b2lkIHNldEF0dHJTdHlsZUVuYWJsZWQoYm9v
bCBlbmFibGVkKSB7IG1fYXR0clN0eWxlRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICAKKyAgICBi
b29sIHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVk
ZWNsYXJhdGlvbjsgfQorICAgIHZvaWQgc2V0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxD
b25zdGFudFJlZGVjbGFyYXRpb24oYm9vbCBzaG91bGRUaHJvdykgeyBtX3Nob3VsZFRocm93RXhj
ZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uID0gc2hvdWxkVGhyb3c7IH0KIAog
ICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIG92ZXJyaWRlTGFuZ3VhZ2VzKCkgY29uc3Qg
eyByZXR1cm4gbV9vdmVycmlkZUxhbmd1YWdlczsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGVMYW5n
dWFnZXMoVmVjdG9yPFdURjo6U3RyaW5nPiYmIGxhbmd1YWdlcykgeyBtX292ZXJyaWRlTGFuZ3Vh
Z2VzID0gV1RGTW92ZShsYW5ndWFnZXMpOyB9CkBAIC0xNTYsNiArMTU5LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nIHsgZmFs
c2UgfTsKICAgICBib29sIG1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRl
c3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFy
YXRpb24geyB0cnVlIH07CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX292ZXJyaWRlTGFuZ3Vh
Z2VzOwogICAgIGJvb2wgbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uIHsgdHJ1ZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDVmMjEzOTcwYWNmYzAzOTY4MzlhNjEz
YmI4ZWU5NDA3YmZlODg4MWUuLmQ0YjY1MTc3ZjlmZTU5MzUxMGJlYTY0ODMyZDQyNTU2OTNiZTU0
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTQwLDYgKzQwLDkgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGF0dHJTdHlsZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKIAorLy8gRGVmYXVsdHMgdG8gWUVTLgorQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFy
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKmFkZGl0
aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyks
IGlvcygxMS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FICYmICFUQVJHRVRfT1NfU0lNVUxB
VE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQppbmRleCA5ZTBkNzkwYTNkMzUyNjEz
ZTYyYTdhZjYzZTM1OTMzZGUyYjBhYjU2Li45M2QwYjFlZDgwNmVlNjk4YmRmNTFhNzAyMmIwY2I1
ZWFiYmFhOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KQEAgLTE0MSw2ICsx
NDEsMTYgQEAgLSAodm9pZClzZXRBdHRyU3R5bGVFbmFibGVkOihCT09MKWVuYWJsZWQKICAgICBy
ZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0QXR0clN0eWxlRW5hYmxlZChlbmFi
bGVkKTsKIH0KIAorLSAoQk9PTClzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50
UmVkZWNsYXJhdGlvbgoreworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5z
aG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbigpOworfQor
CistICh2b2lkKXNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xh
cmF0aW9uOihCT09MKXNob3VsZFRocm93Cit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24tPnNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xh
cmF0aW9uKHNob3VsZFRocm93KTsKK30KKwogLSAoTlNBcnJheTxOU1VSTCAqPiAqKWFkZGl0aW9u
YWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMKIHsKICAgICBhdXRvIHBhdGhzID0gX3Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi0+YWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkUGF0aHMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CmluZGV4IGRiMDA5YWQyODJmYmMwNzQ0OWIyMTI1NzEwNzY5MjQyMDNhZjE5NTcuLjc2MjZjYjhi
MmQ3ZGI5NTkwN2Q0OWUyMzE1YjlkZDUwNDkxZDJkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMzIwLDcgKzMy
MCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
Y29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVS
ZXNvdXJjZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5LCBwYXJhbWV0ZXJz
LnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBwYXJh
bWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIoKTsKLSAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBhcHBsaWNhdGlv
blNES1ZlcnNpb24oKTsKIAogICAgIHBhcmFtZXRlcnMubGF0ZW5jeVFPUyA9IHdlYlByb2Nlc3NM
YXRlbmN5UU9TKCk7CiAgICAgcGFyYW1ldGVycy50aHJvdWdocHV0UU9TID0gd2ViUHJvY2Vzc1Ro
cm91Z2hwdXRRT1MoKTsKQEAgLTQ4Miw3ICs0ODEsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgcGFy
YW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0gYXBwbGljYXRp
b25TREtWZXJzaW9uKCk7CiAKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRl
eCA2N2M2ZTk2Njk5NWQzNzQ2YTMxZmMzMTNjZjNiZGJjNTY2MmM0MWVmLi41Mjg1OGMwMGFjOTUx
N2FkYTM5MjgzN2YwZGU1MDY3Y2U0OGI3N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU29mdExp
bmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3NwaS9jZi9DRkJ1
bmRsZVNQSS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yMDcsNiArMjA4LDcgQEAgdm9pZCBQcm9jZXNzTGF1bmNo
ZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9tYWNoX3NlbmQoYm9v
dHN0cmFwTWVzc2FnZS5nZXQoKSwgInNlcnZlci1wb3J0IiwgbGlzdGVuaW5nUG9ydCk7CiAKICAg
ICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGll
bnQtaWRlbnRpZmllciIsICFjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSA/IGNsaWVudElkZW50
aWZpZXIudXRmOCgpLmRhdGEoKSA6ICpfTlNHZXRQcm9nbmFtZSgpKTsKKyAgICB4cGNfZGljdGlv
bmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtc2RrLXZlcnNp
b24iLCBTdHJpbmc6Om51bWJlcihhcHBsaWNhdGlvblNES1ZlcnNpb24oKSkudXRmOCgpLmRhdGEo
KSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgp
LCAicHJvY2Vzcy1pZGVudGlmaWVyIiwgU3RyaW5nOjpudW1iZXIobV9sYXVuY2hPcHRpb25zLnBy
b2Nlc3NJZGVudGlmaWVyLnRvVUludDY0KCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHhwY19kaWN0
aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInVpLXByb2Nlc3MtbmFt
ZSIsIFtbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1lXSBVVEY4U3RyaW5n
XSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgp
LCAic2VydmljZS1uYW1lIiwgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggYzcwMTM2NjJiNjIxYWE2M2M2MDViMzlhODdmNzAyZWVlNTI3NGVm
YS4uNWQ2ZDExYTQwYTlmODQzMTExODZiN2UyZjI2NDFjZjFkOTllODQzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtODI2LDYgKzgyNiw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94
eSYgcHJvY2VzcywgV2Vic2l0ZURhCiAKICAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJs
ZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQ7CiAgICAgcGFyYW1ldGVycy5hdHRyU3R5bGVFbmFi
bGVkID0gbV9jb25maWd1cmF0aW9uLT5hdHRyU3R5bGVFbmFibGVkKCk7CisgICAgcGFyYW1ldGVy
cy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiA9IG1f
Y29uZmlndXJhdGlvbi0+c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVj
bGFyYXRpb24oKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGF1dG8mIHNl
cnZpY2VDb250cm9sbGVyID0gU2VydmljZXNDb250cm9sbGVyOjpzaW5nbGV0b24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA5NmIxYWQ0N2NjMGFjMzk1ODNj
ZGYxYzk0MDI1NTMwMDA1MjkzMjFjLi45ZDQ1ZTdiMjk2NWZjYTZlZDQxM2VjNzI1N2FlODU4NjFh
ZDE5NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00ODQs
NiArNDg0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBzZXRNZW1vcnlDYWNoZURp
c2FibGVkKHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxlZCk7CiAKICAgICBXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEF0dHJTdHlsZUVuYWJs
ZWQocGFyYW1ldGVycy5hdHRyU3R5bGVFbmFibGVkKTsKKyAgICAKKyAgICBjb21tb25WTSgpLnNl
dEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KHBhcmFtZXRlcnMuc2hvdWxkVGhy
b3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24pOwogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgc2V0RW5hYmxlZFNlcnZpY2VzKHBhcmFtZXRlcnMuaGFz
SW1hZ2VTZXJ2aWNlcywgcGFyYW1ldGVycy5oYXNTZWxlY3Rpb25TZXJ2aWNlcywgcGFyYW1ldGVy
cy5oYXNSaWNoQ29udGVudFNlcnZpY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGUwOTlkZTQxZGQ3YzdhYzNkZmI0MDE0
Y2JiZGY5ZDhhNDVlYzI2NWMuLmVjMTUxMzNjM2I4YmU1MTIwYzJmMDMxNzA5ZTA3NDcwYmRjNTg2
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQpAQCAtMjYwLDkgKzI2MCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAg
V2ViS2l0Ojppbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeShwYXJhbWV0ZXJzLndlYktp
dExvZ2dpbmdDaGFubmVscyk7CiAjZW5kaWYKIAotICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwot
ICAgIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNp
b24pOwotCiAgICAgbV91aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gcGFyYW1ldGVycy51aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyOwogCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424115</attachid>
            <date>2021-03-24 02:45:37 -0700</date>
            <delta_ts>2021-03-25 00:13:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157101-20210324024536.patch</filename>
            <type>text/plain</type>
            <size>34922</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ5YTY5YjI4NWQ2ZTFj
MTE3ZmYwN2FlYTY4ZTIyZTg1MTVjNWVhNi4uYjMyYmFmYTc1MDFkYmIyODRmOWE5MTA4Zjk3Y2Rl
NjcwYzNhZGIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTI0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbCBCb29rcyBx
dWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTAxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBObyBuZXcgdGVzdHM7IEkgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byB3cml0
ZSBhIHRlc3QgdGhhdCBkb2Vzbid0IGludm9sdmUKKyAgICAgICAgYWRkaW5nIGEgbmV3IHBhcmFt
ZXRlciB0byB0aGUgcHJvY2VzcyBib290c3RyYXAgbWVzc2FnZSwgd2hpY2ggc2VlbXMKKyAgICAg
ICAgb3V0IG9mIHRoZSByZWFsbSBvZiByZWFzb24gZm9yIGEgdGVzdC4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xvdyk6
CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyk6
IERlbGV0ZWQuCisgICAgICAgIFN0b3AgaGFyZGNvZGluZyBnbG9iYWxDb25zdFJlZGVjbGFyYXRp
b25TaG91bGRUaHJvdyBiYXNlZCBvbiB0aGUgVUkgcHJvY2VzcyBpZGVudGl0eS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc0luQXV4aWxpYXJ5UHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyT3ZlcnJpZGUpOgorICAgICAgICBBZGQgYW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFueSBm
dXR1cmUgY2FzZSB3aGVyZSBhIGJ1bmRsZSBjaGVjayBpcyBxdWVyaWVkCisgICAgICAgIGluIGEg
YXV4aWxpYXJ5IHByb2Nlc3MgYmVmb3JlIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uIGJ1bmRsZSBp
ZGVudGlmaWVyIGlzIHNldC4KKwogMjAyMS0wMy0yNCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gRG8gbm90IGFsbG93IG5lZ2F0aXZlIGhlaWdodHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggODBjYTM1ZDZlOGJmZTNmZmExYTBmM2Y0NjI0ZGMyMDZmOTRhYzRjYy4uYTMy
NGJkZmQ3YTU5NzA0NjYzMGNhNzYyZDllNWJlNTY0ZTM5MDk3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw5MiBAQAorMjAyMS0wMy0yNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KKworICAgICAgICBBbGwgQm9va3MgcXVpcmtzIGFyZSBmbGFraWx5IG5vdCBhcHBsaWVkIGlu
IG1vZGVybiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NzEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5NjUwMjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSW4gcjIwMDEyMSwgYSBxdWly
ayB3YXMgaW50cm9kdWNlZCB0aGF0IHF1ZXJpZWQgdGhlIGlzSUJvb2tzKCkKKyAgICAgICAgUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzIG1ldGhvZCBmcm9tIGluc2lkZSBjb21tb25WTSgpLgorCisg
ICAgICAgIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcyBidW5kbGUgY2hlY2tzIGNhY2hlIHRoZSBy
ZXN1bHQgb2YgdGhlIGJ1bmRsZQorICAgICAgICBjaGVjaywgYW5kLCBhcyBzdWNoLCBtdXN0IG5v
dCBiZSBjYWxsZWQgdW50aWwgdGhlIGJ1bmRsZSBpZGVudGlmZXIgb2YKKyAgICAgICAgdGhlIFVJ
IGFwcGxpY2F0aW9uIGlzIGtub3duLiBJbiBsZWdhY3kgV2ViS2l0LCB0aGlzIGlzIG5vdCBhIHBy
b2JsZW0sCisgICAgICAgIGJlY2F1c2UgdGhlIGNoZWNrIGlzIHJ1bm5pbmcgaW4gdGhlIGFwcGxp
Y2F0aW9uIHByb2Nlc3M7IGluIG1vZGVybiBXZWJLaXQsCisgICAgICAgIHRoZXJlIGlzIGEgc2hv
cnQgd2luZG93IGJldHdlZW4gcHJvY2VzcyBsYXVuY2ggYW5kIHRoZSBJbml0aWFsaXplV2ViUHJv
Y2VzcworICAgICAgICBtZXNzYWdlIGJlaW5nIHJlY2VpdmVkIHdoZXJlIHdlIHdvbid0IGtub3cg
dGhlIGJ1bmRsZSBpZGVudGlmaWVyLCBhbmQgaWYKKyAgICAgICAgaXNJQm9va3MoKSAob3IgYW55
IG90aGVyIGJ1bmRsZSBjaGVjaykgaXMgY2FsbGVkIGR1cmluZyB0aGlzIHRpbWUsIGl0IHdpbGwK
KyAgICAgICAgY2FjaGUgdGhlIHdyb25nIHJlc3VsdC4KKworICAgICAgICBJdCBpcyBwb3NzaWJs
ZSBmb3IgY29tbW9uVk0oKSB0byBiZSBjYWxsZWQgaW4gdGhpcyB3aW5kb3c7IG9uZSBwb3NzaWJs
ZSBwYXRoCisgICAgICAgIHRvIHRoaXMgaXMgYnkgdHJpZ2dlcmluZyBhbiBvc19sb2dfZmF1bHQg
ZHVyaW5nIHRoaXMgdGltZSwgd2hpY2ggV2ViS2l0CisgICAgICAgIG9ic2VydmVzICh2aWEgb3Nf
c3RhdGVfYWRkX2hhbmRsZXIoKSkgaW4gb3JkZXIgdG8gZHVtcCBtZW1vcnkgdXNhZ2UKKyAgICAg
ICAgKHdoaWNoIGhhcHBlbnMgdG8gY2FsbCBjb21tb25WTSgpIGFuZCByZXN1bHRzIGluIGlzSUJv
b2tzIGdldHRpbmcgY2FsbGVkCisgICAgICAgIGFuZCBjYWNoaW5nIHRoZSB3cm9uZyB2YWx1ZSku
CisKKyAgICAgICAgQWRkIGFuIGFzc2VydGlvbiwgYW5kIG1vdmUgdGhlIHF1aXJrIHRvIGxpdmUg
YXMgYSBzZXR0aW5nIG9uIHRoZSBwcm9jZXNzCisgICAgICAgIHBvb2wgY29uZmlndXJhdGlvbiwg
dG8gYmUgc2V0IHZpYSBTUEkgYnkgQm9va3MsIGluc3RlYWQgb2YgYXMgYSBidW5kbGUgY2hlY2su
CisKKyAgICAgICAgQWxzbywgZW5zdXJlIHRoYXQgY2xpZW50IGJ1bmRsZSBpZGVudGlmaWVyIGFu
ZCBTREsgdmVyc2lvbiBhcmUgc2V0IGluIAorICAgICAgICBhbGwgV2ViS2l0IHN1YnByb2Nlc3Nl
cywgc28gdGhhdCBidW5kbGUvU0RLIGNoZWNrcyB3b3JrIGV2ZXJ5d2hlcmUKKyAgICAgICAgKHBy
ZXZpb3VzbHksIHRoZSBHUFUgcHJvY2VzcyB3YXMgdXNpbmcgU0RLIGNoZWNrcyB3aXRob3V0IGhh
dmluZyBwdXNoZWQKKyAgICAgICAgdGhlIHZhbHVlcyBmcm9tIHRoZSBVSSBwcm9jZXNzLCByZXN1
bHRpbmcgaW4gaW5jb3JyZWN0IHJlc3VsdHMsIGFuZAorICAgICAgICBydW5uaW5nIGFmb3VsIG9m
IHRoZSBhc3NlcnRpb24gYWRkZWQgYWJvdmUpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAoQVBJOjpkZWZhdWx0U2hvdWxkVGhyb3dF
eGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAg
ICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNob3VsZFRocm93RXhjZXB0aW9uRm9y
R2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uXSk6CisgICAgICAgICgtW19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVk
ZWNsYXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3Mp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgUGx1bWIgYSBuZXcg
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHBhcmFtZXRlciB0byB0aGUgV2ViIENvbnRlbnQg
cHJvY2VzcywKKyAgICAgICAgYW5kIHNldCB0aGUgYml0IG9uIHRoZSBjb21tb25WTSB3aGVuIGxh
dW5jaGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYSk6CisgICAg
ICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhp
bGlhcnlQcm9jZXNzOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJv
Y2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3kpOgorICAg
ICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUluaXRpYWxpemVy
KToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNl
L1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5p
dGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbik6CisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIFJlbW92ZSBhbiBleHRy
YSB1bnVzZWQgbWVtYmVyLgorICAgICAgICAqIFNoYXJlZC9pb3MvQXV4aWxpYXJ5UHJvY2Vzc0lP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3kpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NM
YXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBQbHVtYiB0aGUgY2xpZW50IGJ1bmRsZSBpZGVu
dGlmZXIgYW5kIFNESyB2ZXJzaW9uIHRvIGFsbCBhdXhpbGlhcnkgcHJvY2Vzc2VzCisgICAgICAg
IGF0IHByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZSBpbnN0ZWFkIG9mIEluaXRpYWxpemVXZWJQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzCisgICAgICAgIG1lc3NhZ2UgcmVjZWlwdCB0aW1lLCBjbG9z
aW5nIHRoZSB3aW5kb3cgaW4gd2hpY2ggaXQgaXMgaW52YWxpZCB0byB1c2UKKyAgICAgICAgYnVu
ZGxlIGNoZWNrcywgYW5kIGVuc3VyaW5nIHRoYXQgYnVuZGxlIGNoZWNrcyB3b3JrIGluIGFsbCBw
cm9jZXNzZXMuCisKIDIwMjEtMDMtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Db21tb25WTS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Db21tb25WTS5jcHAKaW5kZXggMjQzY2ZhYTNhNTE0NmM0MDg0
ZGFhOGY1YzU1NjBjNjA2OTg1ODFiOS4uN2Y3NjA5ZTkzMTdhNjE4NzhlMDlkYmQ1NDM0ZTdiYjY5
ZjgwMjYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9uVk0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcApAQCAtMjgs
NyArMjgsNiBAQAogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
LSNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CkBAIC00NCwxNiArNDMsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMjU5NjUwMjg+IFRo
aXMgc2hvdWxkIGJlIHJlbW92ZWQgb3IgcmVwbGFjZWQgd2l0aCBhIFNldHRpbmcgdGhhdCBpQm9v
a3MgY2FuIHVzZSBpZiBpdCBpcyBzdGlsbCBuZWVkZWQuCi1zdGF0aWMgYm9vbCBnbG9iYWxDb25z
dFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdygpCi17Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
cmV0dXJuICFDb2NvYUFwcGxpY2F0aW9uOjppc0lCb29rcygpOwotI2Vsc2UKLSAgICByZXR1cm4g
dHJ1ZTsKLSNlbmRpZgotfQotCiBKU0M6OlZNKiBnX2NvbW1vblZNT3JOdWxsOwogCiBKU0M6OlZN
JiBjb21tb25WTVNsb3coKQpAQCAtODQsOCArNzMsNiBAQCBKU0M6OlZNJiBjb21tb25WTVNsb3co
KQogICAgIHZtLmhlYXAubWFjaGluZVRocmVhZHMoKS5hZGRDdXJyZW50VGhyZWFkKCk7CiAjZW5k
aWYKIAotICAgIHZtLnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KGdsb2Jh
bENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkpOwotCiAgICAgSlNWTUNsaWVudERhdGE6
OmluaXROb3JtYWxXb3JsZCgmdm0sIFdvcmtlclRocmVhZFR5cGU6Ok1haW4pOwogCiAgICAgcmV0
dXJuIHZtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5jcHAKaW5kZXggMTQ5YTFmNGFhZmY3NmRhYTUzN2FiM2YxOTI2MzMwOWI2YTdj
ZWYwNy4uOTgwZmZlOTU4MDAzZWRhZTg2YWNiODhkYjk0MTIzNzc5YjI5NzMwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3Bw
CkBAIC02Niw2ICs2NiwxMSBAQCBzdGF0aWMgT3B0aW9uYWw8QXV4aWxpYXJ5UHJvY2Vzc1R5cGU+
JiBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpCiAgICAgcmV0dXJuIGF1eGlsaWFyeVByb2Nlc3NUeXBl
OwogfQogCitib29sIGlzSW5BdXhpbGlhcnlQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gISFhdXhp
bGlhcnlQcm9jZXNzVHlwZSgpOworfQorCiB2b2lkIHNldEF1eGlsaWFyeVByb2Nlc3NUeXBlKEF1
eGlsaWFyeVByb2Nlc3NUeXBlIHR5cGUpCiB7CiAgICAgYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKSA9
IHR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oCmluZGV4IGI1ZDRhMzQ0MDM2MzUwODdlMDA2NmVjOGE4ZGRjMmJmODJmZmI3OTEu
LmYwMzFlMTk2NTM5OGFkNTYzNjc1MmM1ZTNmZDBjNzkzNDUyZThiNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCkBAIC00Nyw2
ICs0Nyw3IEBAIGVudW0gY2xhc3MgQXV4aWxpYXJ5UHJvY2Vzc1R5cGUgOiB1aW50OF90IHsKIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vz
c1R5cGUpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBjaGVja0F1eGlsaWFyeVByb2Nlc3NUeXBlKEF1
eGlsaWFyeVByb2Nlc3NUeXBlKTsKIAorYm9vbCBpc0luQXV4aWxpYXJ5UHJvY2VzcygpOwogaW5s
aW5lIGJvb2wgaXNJbldlYlByb2Nlc3MoKSB7IHJldHVybiBjaGVja0F1eGlsaWFyeVByb2Nlc3NU
eXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlOjpXZWJDb250ZW50KTsgfQogaW5saW5lIGJvb2wgaXNJ
bk5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gY2hlY2tBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhp
bGlhcnlQcm9jZXNzVHlwZTo6TmV0d29yayk7IH0KICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCmluZGV4IDA0MGUzYzYxMWU2N2NlOGM5YjE2Mzg5ZDFh
YzcyZGYwNDA0NjBkZjcuLjNhMzYwNWUxMGIzNTk1MGNmODRkODZmNWE0MDE1ZTY0OTYzZmE4YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCkBAIC02NSw2ICs2NSw3IEBAIFN0cmluZyBh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKQogICAgIEFTU0VSVChpZGVudGlmaWVyLmlzTnVs
bCgpIHx8IFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBpZiAoaWRlbnRpZmllci5pc051bGwoKSkK
ICAgICAgICAgaWRlbnRpZmllciA9IGJ1bmRsZUlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKCFpc0luQXV4aWxpYXJ5UHJvY2VzcygpIHx8ICEhaWRlbnRpZmllciwgImFwcGxp
Y2F0aW9uQnVuZGxlSXNFcXVhbFRvKCkgYW5kIGFwcGxpY2F0aW9uQnVuZGxlU3RhcnRzV2l0aCgp
IG11c3Qgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
KCkgaW4gYXV4aWxpYXJ5IHByb2Nlc3NlcyIpOwogICAgIHJldHVybiBpZGVudGlmaWVyLmlzTnVs
bCgpID8gU3RyaW5nKFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pIDog
aWRlbnRpZmllcjsKIH0KIApAQCAtNzcsNyArNzgsNyBAQCB2b2lkIHNldEFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB2b2lkIHNldEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
IWFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCwgImFwcGxpY2F0
aW9uQnVuZGxlSXNFcXVhbFRvKCkgYW5kIGFwcGxpY2F0aW9uQnVuZGxlU3RhcnRzV2l0aCgpIHNo
b3VsZCBub3QgYmUgY2FsbGVkIGJlZm9yZSBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIo
KSIpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ck92ZXJyaWRlV2FzUXVlcmllZCwgImFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCkgYW5kIGFw
cGxpY2F0aW9uQnVuZGxlU3RhcnRzV2l0aCgpIG11c3Qgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSIpOwogICAgIGJ1bmRsZUlkZW50
aWZpZXJPdmVycmlkZSgpID0gaWRlbnRpZmllcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCAwOGUzZmJkMzI3ZGYwYTQ2NjYyNzc0MmQ1OWQ0ZmRhNDZjYWE3YWJl
Li4yMzhjYmEzMzlhMmI2ZjRhNjExZDg5YmU3Mzc3M2E5NTNlN2RjNmI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTMsNyArNTMsNiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHM7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NCdW5kbGVJZGVu
dGlmaWVyOwotICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzU0RLVmVyc2lvbjsKICAgICBJUEM6OmVu
Y29kZShlbmNvZGVyLCBuZXR3b3JrQVRTQ29udGV4dC5nZXQoKSk7CiAjZW5kaWYKICNpZiBVU0Uo
U09VUCkKQEAgLTExMSw4ICsxMTAsNiBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVpUHJvY2Vzc0J1
bmRsZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQudWlQcm9jZXNzU0RLVmVyc2lvbikpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdC5uZXR3b3JrQVRTQ29udGV4
dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCmluZGV4IDU5N2ZjOGRiZGNiYTA4MjU3OWVkMDlhYTgxYzM3MjgwMzc2MzA4NTUuLjQz
NjliMjAwNWNlZmRlZTY3MjM4MTQ2MDMzMTE2YjY4NGQwMjk0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKQEAgLTY2LDcgKzY2LDYgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFN0cmluZyB1aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IHVpUHJvY2Vzc1NES1ZlcnNpb24g
eyAwIH07CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gbmV0d29ya0FUU0NvbnRleHQ7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDVmYmU4MWQ2ODZiOWM3NGQ3ZGViOTY4NTY0MDM4
MTNmZTY3ZWRmMjAuLmQ4YjMxMGYxMGRhNWY3M2ZkMzhmMmE5YTBiMjgyZDAxMzkyYjE0OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nl
c3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtQcm9jZXNzQ29jb2EubW0KQEAgLTczLDkgKzczLDYgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZU5ldHdvcmtTZXR0aW5ncygpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2EoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcik7Ci0gICAgc2V0
QXBwbGljYXRpb25TREtWZXJzaW9uKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbik7Ci0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJz
LmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCmluZGV4IGRiYmUxYmYwOTAzNWZhNGQzMDMwZWUx
ZTQ3ZTlmNzIyNWUyZjEwYTMuLmIzNzQ1OTVhNDA2ZjExOWNiN2Y1ODI5MTUwYTI3ODBlMGQ0NmY5
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCkBAIC02OSw3
ICs2OSw3IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZShjb25zdCBBdXhpbGlh
cnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzCiAgICAgUkVMRUFTRV9BU1NFUlRfV0lU
SF9NRVNTQUdFKHBhcmFtZXRlcnMucHJvY2Vzc0lkZW50aWZpZXIsICJVbmFibGUgdG8gaW5pdGlh
bGl6ZSBjaGlsZCBwcm9jZXNzIHdpdGhvdXQgYSBXZWJDb3JlIHByb2Nlc3MgaWRlbnRpZmllciIp
OwogICAgIFByb2Nlc3M6OnNldElkZW50aWZpZXIoKnBhcmFtZXRlcnMucHJvY2Vzc0lkZW50aWZp
ZXIpOwogCi0gICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CisgICAgcGxhdGZvcm1Jbml0aWFsaXpl
KHBhcmFtZXRlcnMpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV9wcmlvcml0eUJvb3N0
TWVzc2FnZSA9IHBhcmFtZXRlcnMucHJpb3JpdHlCb29zdE1lc3NhZ2U7CkBAIC0yMzcsNyArMjM3
LDcgQEAgT3B0aW9uYWw8c3RkOjpwYWlyPElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgSVBD
OjpBdHRhY2htZW50Pj4gQXV4aWxpYXJ5UHJvY2UKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkK
LXZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3ZvaWQgQXV4aWxp
YXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlh
cnlQcm9jZXNzLmgKaW5kZXggZDhiM2IxNDc5Njk3MmY0ZWFhNDQ4ODQ0OTc3NDEzNTkyNjM4MGVh
MC4uZDQ4Y2FiMjljM2YzMjQ1MTA3NTY1NjgxYTA3MmVhNWM0MjUxZmM3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIHRlcm1pbmF0aW9uVGltZXJGaXJlZCgpOwogCi0gICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBBdXhpbGlh
cnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwbGF0Zm9ybVN0
b3BSdW5Mb29wKCk7CiAKICAgICAvLyBUaGUgdGltZW91dCwgaW4gc2Vjb25kcywgYmVmb3JlIHRo
aXMgcHJvY2VzcyB3aWxsIGJlIHRlcm1pbmF0ZWQgaWYgdGVybWluYXRpb24KQEAgLTE2Myw2ICsx
NjMsNyBAQCBwcml2YXRlOgogc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMgewogICAgIFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmluZyBjbGllbnRJ
ZGVudGlmaWVyOworICAgIHVpbnQzMl90IGNsaWVudFNES1ZlcnNpb247CiAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXI+IHByb2Nlc3NJZGVudGlmaWVyOwogICAgIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBleHRyYUluaXRpYWxpemF0aW9uRGF0YTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQppbmRleCBjZmZi
ZWQ3MDdkY2U3ZTdkYjE4NTY5MmM4ODQzN2EyNDQyOTczMjgzLi4xODJhODlkODI2OTQwYzE1M2Jm
NmRjOWZmYzcyMDA5YzkyNjc3YjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCkBAIC0yOCwxMCArMjgsNDIgQEAKIAogI2lt
cG9ydCAiV0tDcmFzaFJlcG9ydGVyLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5o
IgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxtYWNoL3Rhc2su
aD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KKyNpbXBvcnQgPHd0Zi9jb2Nv
YS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCitzdGF0aWMgdm9p
ZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCkKK3sKKyAgICAvLyBTZXQgdGFza19s
YXRlbmN5IGFuZCB0YXNrX3Rocm91Z2hwdXQgUU9TIHRpZXJzIGFzIGFwcHJvcHJpYXRlIGZvciBh
IHZpc2libGUgYXBwbGljYXRpb24uCisgICAgc3RydWN0IHRhc2tfcW9zX3BvbGljeSBxb3NpbmZv
ID0geyBMQVRFTkNZX1FPU19USUVSXzAsIFRIUk9VR0hQVVRfUU9TX1RJRVJfMCB9OworICAgIGtl
cm5fcmV0dXJuX3Qga3IgPSB0YXNrX3BvbGljeV9zZXQobWFjaF90YXNrX3NlbGYoKSwgVEFTS19C
QVNFX1FPU19QT0xJQ1ksICh0YXNrX3BvbGljeV90KSZxb3NpbmZvLCBUQVNLX1FPU19QT0xJQ1lf
Q09VTlQpOworICAgIEFTU0VSVF9VTlVTRUQoa3IsIGtyID09IEtFUk5fU1VDQ0VTUyk7Cit9Cisj
ZW5kaWYKKwordm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3Qg
QXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgIGluaXRpYWxp
emVUaW1lckNvYWxlc2NpbmdQb2xpY3koKTsKKyNlbmRpZgorCisgICAgRmxvYXRpbmdQb2ludEVu
dmlyb25tZW50JiBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQgPSBGbG9hdGluZ1BvaW50RW52aXJv
bm1lbnQ6OnNpbmdsZXRvbigpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9S
TShNQUNDQVRBTFlTVCkKKyAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuZW5hYmxlRGVub3Jt
YWxTdXBwb3J0KCk7CisjZW5kaWYKKyAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuc2F2ZU1h
aW5UaHJlYWRFbnZpcm9ubWVudCgpOworCisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5h
Z2VyXSBjaGFuZ2VDdXJyZW50RGlyZWN0b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1
bmRsZVBhdGhdXTsKKworICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXIpOworICAgIHNldEFwcGxpY2F0aW9uU0RLVmVy
c2lvbihwYXJhbWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pOworfQorCiB2b2lkIEF1eGlsaWFyeVBy
b2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQogewogICAgIGF1dG8gZXJyb3JNZXNzYWdlID0gbWFrZVN0
cmluZygiUmVjZWl2ZWQgaW52YWxpZCBtZXNzYWdlOiAnIiwgZGVzY3JpcHRpb24obWVzc2FnZU5h
bWUpLCAiJyAoIiwgbWVzc2FnZU5hbWUsICcpJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IGQ5NGJjOWM1NTlkNTM3
NGI5MWJlZmRkNTE4NDY4N2M5MWJjM2YyMGQuLjkwZjMxZGFiNzliMjA2YTJkMTJhM2E3ODkwNzkw
OWVhZGM5MTVlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC02MSw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0Q29ubmVjdGlvbklkZW50aWZpZXIoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyJiBpZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIo
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50
SWRlbnRpZmllcihTdHJpbmcmIGNsaWVudElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgYm9vbCBn
ZXRDbGllbnRTREtWZXJzaW9uKHVpbnQzMl90JiBjbGllbnRTREtWZXJzaW9uKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0Q2xpZW50UHJvY2Vzc05hbWUoU3RyaW5nJiBjbGllbnRQcm9jZXNzTmFtZSk7
CiAgICAgdmlydHVhbCBib29sIGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+JiBleHRyYUluaXRpYWxpemF0aW9uRGF0YSk7CiAKQEAgLTExNCw2ICsxMTUs
OSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoIWRlbGVnYXRl
LmdldENsaWVudElkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRJZGVudGlmaWVyKSkKICAgICAg
ICAgZXhpdChFWElUX0ZBSUxVUkUpOwogCisgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRTREtW
ZXJzaW9uKHBhcmFtZXRlcnMuY2xpZW50U0RLVmVyc2lvbikpCisgICAgICAgIGV4aXQoRVhJVF9G
QUlMVVJFKTsKKwogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlm
aWVyOwogICAgIGlmICghZGVsZWdhdGUuZ2V0UHJvY2Vzc0lkZW50aWZpZXIocHJvY2Vzc0lkZW50
aWZpZXIpKQogICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggMGExNDI1
YmNhNTZkYWE2NjY3N2Y5N2M1MjNjOTNlNmQ5NDk4ZWZjZi4uN2VlMGM4MjNjYThhMTIxNWY4MDUz
Zjk5ZDNhNWVmN2YzM2I0NDVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBD
U2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtNzcsNiArNzcsMTQgQEAgYm9vbCBY
UENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcm
IGNsaWVudElkZW50aWZpZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBYUENTZXJ2aWNl
SW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbih1aW50MzJfdCYgY2xpZW50
U0RLVmVyc2lvbikKK3sKKyAgICBhdXRvIHN0cmluZyA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJp
bmcobV9pbml0aWFsaXplck1lc3NhZ2UsICJjbGllbnQtc2RrLXZlcnNpb24iKTsKKyAgICBib29s
IG9rOworICAgIGNsaWVudFNES1ZlcnNpb24gPSBjaGFyYWN0ZXJzVG9VSW50U3RyaWN0KHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzdHJpbmcpLCBzdHJpbmcgPyBzdGQ6OnN0cmxlbihz
dHJpbmcpIDogMCwgJm9rKTsKKyAgICByZXR1cm4gb2s7Cit9CisKIGJvb2wgWFBDU2VydmljZUlu
aXRpYWxpemVyRGVsZWdhdGU6OmdldFByb2Nlc3NJZGVudGlmaWVyKFByb2Nlc3NJZGVudGlmaWVy
JiBpZGVudGlmaWVyKQogewogICAgIFN0cmluZyBwcm9jZXNzSWRlbnRpZmllclN0cmluZyA9IHhw
Y19kaWN0aW9uYXJ5X2dldF9zdHJpbmcobV9pbml0aWFsaXplck1lc3NhZ2UsICJwcm9jZXNzLWlk
ZW50aWZpZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZGJlZTg0MzI5OGY2ZjU1ZmJlYjhhNzRmMTU2YzI0
OTBjMjY4NzczYS4uOTBjMTcwMDY5NjY4ZmUyYTIxZjgzZTIxNTlkMzEwMzZkNDg1NTI0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKQEAgLTk2LDcgKzk2LDYgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
YmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29k
ZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IHVpUHJvY2Vz
c1NES1ZlcnNpb247CiAgICAgZW5jb2RlciA8PCBsYXRlbmN5UU9TOwogICAgIGVuY29kZXIgPDwg
dGhyb3VnaHB1dFFPUzsKICNlbmRpZgpAQCAtMTE5LDYgKzExOCw3IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IAogICAgIGVuY29kZXIgPDwgbWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAgICBlbmNvZGVyIDw8IGF0
dHJTdHlsZUVuYWJsZWQ7CisgICAgZW5jb2RlciA8PCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckds
b2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xT
KQogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2VTZXJ2aWNlczsKQEAgLTMyMSw4ICszMjEsNiBAQCBi
b29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIFdlYlByb2Nlc3NDcmVhdAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVBy
b2Nlc3NTREtWZXJzaW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy5sYXRlbmN5UU9TKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50aHJvdWdocHV0UU9TKSkKQEAgLTM3
MSw2ICszNjksOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF0dHJTdHlsZUVuYWJsZWQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0
ZXJzLnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IDNkNTczZTM2MzUzMGY2YzQ3ZDkzYjJmN2UzYTdjZTIyMDdiNTQ0NzcuLmQ1YTgzNDVk
MzI1YjIwOTA1Mjc3Zjg4MzE5NGQ1MzlhODhmN2Y4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEyNiw3ICsxMjYs
NyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBoYXNT
dHlsdXNEZXZpY2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbWVtb3J5Q2FjaGVEaXNhYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBib29sIHVz
ZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgc2hvdWxkVGhy
b3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24geyB0cnVlIH07CiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBib29sIGhhc0ltYWdlU2VydmljZXMgeyBm
YWxzZSB9OwpAQCAtMTQwLDcgKzE0MCw2IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFN0cmluZyB1aVByb2Nlc3NCdW5k
bGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IHVpUHJvY2Vzc1NES1ZlcnNpb24geyAwIH07CiAg
ICAgaW50IGxhdGVuY3lRT1MgeyAwIH07CiAgICAgaW50IHRocm91Z2hwdXRRT1MgeyAwIH07CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9BdXhpbGlhcnlQcm9j
ZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1Mu
bW0KaW5kZXggNDA1NzVkYzIyMzNjZGEzZjI5NDY0OGMxNDA4ZDc0ZTE4ZDNhZGUwOS4uOTFlNTBi
M2EzYjg3YjAwOWQ0YzYzZGY4ZDU2NzcyZTRiMTllMzAyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1MubW0KQEAgLTQxLDE0ICs0MSw2IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZSgpCi17Ci0gICAgRmxvYXRpbmdQb2ludEVudmlyb25tZW50JiBmbG9hdGluZ1BvaW50
RW52aXJvbm1lbnQgPSBGbG9hdGluZ1BvaW50RW52aXJvbm1lbnQ6OnNpbmdsZXRvbigpOyAKLSAg
ICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuZW5hYmxlRGVub3JtYWxTdXBwb3J0KCk7IAotICAg
IGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5zYXZlTWFpblRocmVhZEVudmlyb25tZW50KCk7IAot
ICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9y
eVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07Ci19Ci0KIHZvaWQgQXV4
aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KQogewogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1tCmluZGV4IDU3NDY4MmQxMzlhYmVk
YzZlNzgzNjY2MjM2NWU5NDQ0ZTRmMmUyOTMuLjNiNWU5Y2M5MjMzZDNjMTllMDNiNzA0M2YxNzY2
MjBhNGNiYmM1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlh
cnlQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQ
cm9jZXNzTWFjLm1tCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIK
ICNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVI
YW5kbGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRmxvYXRpbmdQb2ludEVudmlyb25tZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb24uaD4KICNpbXBvcnQgPG1hY2gtby9keWxkLmg+
CiAjaW1wb3J0IDxtYWNoL21hY2guaD4KQEAgLTE0NSwxNCArMTQ0LDYgQEAgc3RydWN0IFNhbmRi
b3hJbmZvIHsKIGNvbnN0ZXhwciB1aW50MzJfdCBDYWNoZWRTYW5kYm94VmVyc2lvbk51bWJlciA9
IDE7CiAjZW5kaWYgLy8gVVNFKENBQ0hFX0NPTVBJTEVEX1NBTkRCT1gpCiAKLXN0YXRpYyB2b2lk
IGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKQotewotICAgIC8vIFNldCB0YXNrX2xh
dGVuY3kgYW5kIHRhc2tfdGhyb3VnaHB1dCBRT1MgdGllcnMgYXMgYXBwcm9wcmlhdGUgZm9yIGEg
dmlzaWJsZSBhcHBsaWNhdGlvbi4KLSAgICBzdHJ1Y3QgdGFza19xb3NfcG9saWN5IHFvc2luZm8g
PSB7IExBVEVOQ1lfUU9TX1RJRVJfMCwgVEhST1VHSFBVVF9RT1NfVElFUl8wIH07Ci0gICAga2Vy
bl9yZXR1cm5fdCBrciA9IHRhc2tfcG9saWN5X3NldChtYWNoX3Rhc2tfc2VsZigpLCBUQVNLX0JB
U0VfUU9TX1BPTElDWSwgKHRhc2tfcG9saWN5X3QpJnFvc2luZm8sIFRBU0tfUU9TX1BPTElDWV9D
T1VOVCk7Ci0gICAgQVNTRVJUX1VOVVNFRChrciwga3IgPT0gS0VSTl9TVUNDRVNTKTsKLX0KLQog
dm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpsYXVuY2hTZXJ2aWNlc0NoZWNrSW4oKQogewogI2lmIEhB
VkUoQ1NDSEVDS0ZJWERJU0FCTEUpCkBAIC0xNjQsMTUgKzE1NSw2IEBAIHZvaWQgQXV4aWxpYXJ5
UHJvY2Vzczo6bGF1bmNoU2VydmljZXNDaGVja0luKCkKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9u
YXJ5UmVmPiB1bnVzZWQgPSBfTFNBcHBsaWNhdGlvbkNoZWNrSW4oa0xTRGVmYXVsdFNlc3Npb25J
RCwgQ0ZCdW5kbGVHZXRJbmZvRGljdGlvbmFyeShDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSkpOwog
fQogCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCi17Ci0gICAg
aW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpOwotCi0gICAgRmxvYXRpbmdQb2ludEVu
dmlyb25tZW50OjpzaW5nbGV0b24oKS5zYXZlTWFpblRocmVhZEVudmlyb25tZW50KCk7Ci0KLSAg
ICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQ
YXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF1dOwotfQotCiBzdGF0aWMgT1NT
dGF0dXMgZW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUoKQogewogI2lmICFQTEFURk9S
TShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMTg1ODVmNjFiYjZlY2Fi
ZWMzOWZmMGMwM2I4NjJjNjU4NTZkY2EyNC4uZDE2ZWQ3NzUzZmE1OWZjODdlYTk0MDJmNWZmNDg3
MjUyNWVkMzJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKQEAgLTUyLDYgKzUyLDcgQEAgUmVm
PFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5
KCkKICAgICBjb3B5LT5tX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVzdGluZyA9
IHRoaXMtPm1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nOwogICAgIGNv
cHktPm1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgPSB0aGlz
LT5tX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nOwogICAgIGNv
cHktPm1fYXR0clN0eWxlRW5hYmxlZCA9IHRoaXMtPm1fYXR0clN0eWxlRW5hYmxlZDsKKyAgICBj
b3B5LT5tX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9u
ID0gdGhpcy0+bV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJh
dGlvbjsKICAgICBjb3B5LT5tX292ZXJyaWRlTGFuZ3VhZ2VzID0gdGhpcy0+bV9vdmVycmlkZUxh
bmd1YWdlczsKICAgICBjb3B5LT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSA9IHRo
aXMtPm1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OwogICAgIGNvcHktPm1fc2hvdWxk
VGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiA9IHRoaXMtPm1fc2hvdWxkVGFrZVVJQmFja2dyb3Vu
ZEFzc2VydGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCA2NDkyNDkwMmYxOTgxMTc5MjUzN2Ex
NWEzMmVkNGQ3MDZkYWY5NjcwLi4xZjUwNzljODVmZGI5NTRjZDZhNmM3YzljZjcwMTliNGQyYzE2
Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC05NCw2ICs5NCw5IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgYXR0clN0eWxlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0clN0eWxlRW5hYmxl
ZDsgfQogICAgIHZvaWQgc2V0QXR0clN0eWxlRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hdHRy
U3R5bGVFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIAorICAgIGJvb2wgc2hvdWxkVGhyb3dFeGNl
cHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uOyB9CisgICAg
dm9pZCBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bihib29sIHNob3VsZFRocm93KSB7IG1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25z
dGFudFJlZGVjbGFyYXRpb24gPSBzaG91bGRUaHJvdzsgfQogCiAgICAgY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYgb3ZlcnJpZGVMYW5ndWFnZXMoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRl
TGFuZ3VhZ2VzOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZUxhbmd1YWdlcyhWZWN0b3I8V1RGOjpT
dHJpbmc+JiYgbGFuZ3VhZ2VzKSB7IG1fb3ZlcnJpZGVMYW5ndWFnZXMgPSBXVEZNb3ZlKGxhbmd1
YWdlcyk7IH0KQEAgLTE1Niw2ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mdWxseVN5
bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
Z25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2F0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRU
aHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiB7IHRydWUgfTsKICAg
ICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgYm9vbCBtX2Fs
d2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3Vs
ZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24geyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmgKaW5kZXggNWYyMTM5NzBhY2ZjMDM5NjgzOWE2MTNiYjhlZTk0MDdiZmU4ODgxZS4u
ZDRiNjUxNzdmOWZlNTkzNTEwYmVhNjQ4MzJkNDI1NTY5M2JlNTRiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaApAQCAtNDAsNiArNDAsOSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGlnbm9yZVN5
bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0
eWxlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwog
CisvLyBEZWZhdWx0cyB0byBZRVMuCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRU
aHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxv
d2VkVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIAogI2lm
IFRBUkdFVF9PU19JUEhPTkUgJiYgIVRBUkdFVF9PU19TSU1VTEFUT1IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLm1tCmluZGV4IDllMGQ3OTBhM2QzNTI2MTNlNjJhN2FmNjNlMzU5MzNkZTJi
MGFiNTYuLjkzZDBiMWVkODA2ZWU2OThiZGY1MWE3MDIyYjBjYjVlYWJiYWE5NDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMTQxLDYgKzE0MSwxNiBAQCAtICh2b2lkKXNl
dEF0dHJTdHlsZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLT5zZXRBdHRyU3R5bGVFbmFibGVkKGVuYWJsZWQpOwogfQogCistIChCT09M
KXNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uCit7Cisg
ICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNob3VsZFRocm93RXhjZXB0aW9u
Rm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0U2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb246KEJPT0wpc2hvdWxk
VGhyb3cKK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0U2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oc2hvdWxkVGhyb3cp
OworfQorCiAtIChOU0FycmF5PE5TVVJMICo+ICopYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2Vk
VVJMcwogewogICAgIGF1dG8gcGF0aHMgPSBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5hZGRp
dGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRocygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZGIwMDlhZDI4MmZi
YzA3NDQ5YjIxMjU3MTA3NjkyNDIwM2FmMTk1Ny4uNzYyNmNiOGIyZDdkYjk1OTA3ZDQ5ZTIzMTVi
OWRkNTA0OTFkMmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0zMjAsNyArMzIwLDYgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVz
b2x2aW5nUGF0aChwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aCwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHksIHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVz
b3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQnVu
ZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOwotICAgIHBhcmFt
ZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbiA9IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpOwogCiAg
ICAgcGFyYW1ldGVycy5sYXRlbmN5UU9TID0gd2ViUHJvY2Vzc0xhdGVuY3lRT1MoKTsKICAgICBw
YXJhbWV0ZXJzLnRocm91Z2hwdXRRT1MgPSB3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygpOwpAQCAt
NDgyLDcgKzQ4MSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1
bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKLSAgICBwYXJh
bWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBhcHBsaWNhdGlvblNES1ZlcnNpb24oKTsKIAog
ICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDY3YzZlOTY2OTk1ZDM3NDZh
MzFmYzMxM2NmM2JkYmM1NjYyYzQxZWYuLjUyODU4YzAwYWM5NTE3YWRhMzkyODM3ZjBkZTUwNjdj
ZTQ4Yjc3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8
d3RmL1RocmVhZGluZy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CiAjaW1wb3J0
IDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
QEAgLTIwNyw2ICsyMDgsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcygp
CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X21hY2hfc2VuZChib290c3RyYXBNZXNzYWdlLmdldCgp
LCAic2VydmVyLXBvcnQiLCBsaXN0ZW5pbmdQb3J0KTsKIAogICAgIHhwY19kaWN0aW9uYXJ5X3Nl
dF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1pZGVudGlmaWVyIiwgIWNs
aWVudElkZW50aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50SWRlbnRpZmllci51dGY4KCkuZGF0YSgp
IDogKl9OU0dldFByb2duYW1lKCkpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9v
dHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1zZGstdmVyc2lvbiIsIFN0cmluZzo6bnVtYmVy
KGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKS51dGY4KCkuZGF0YSgpKTsKICAgICB4cGNfZGljdGlv
bmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJwcm9jZXNzLWlkZW50aWZp
ZXIiLCBTdHJpbmc6Om51bWJlcihtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0lkZW50aWZpZXIudG9V
SW50NjQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhi
b290c3RyYXBNZXNzYWdlLmdldCgpLCAidWktcHJvY2Vzcy1uYW1lIiwgW1tbTlNQcm9jZXNzSW5m
byBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdIFVURjhTdHJpbmddKTsKICAgICB4cGNfZGljdGlv
bmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJzZXJ2aWNlLW5hbWUiLCBu
YW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBj
NzAxMzY2MmI2MjFhYTYzYzYwNWIzOWE4N2Y3MDJlZWU1Mjc0ZWZhLi41ZDZkMTFhNDBhOWY4NDMx
MTE4NmI3ZTJmMjY0MWNmMWQ5OWU4NDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC04MjYsNiArODI2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRl
RGEKIAogICAgIHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxlZCA9IG1fbWVtb3J5Q2FjaGVE
aXNhYmxlZDsKICAgICBwYXJhbWV0ZXJzLmF0dHJTdHlsZUVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRp
b24tPmF0dHJTdHlsZUVuYWJsZWQoKTsKKyAgICBwYXJhbWV0ZXJzLnNob3VsZFRocm93RXhjZXB0
aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uID0gbV9jb25maWd1cmF0aW9uLT5zaG91
bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbigpOwogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgYXV0byYgc2VydmljZUNvbnRyb2xsZXIgPSBT
ZXJ2aWNlc0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IDk2YjFhZDQ3Y2MwYWMzOTU4M2NkZjFjOTQwMjU1MzAwMDUyOTMy
MWMuLjlkNDVlN2IyOTY1ZmNhNmVkNDEzZWM3MjU3YWU4NTg2MWFkMTk0ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ4NCw2ICs0ODQsOCBAQCB2b2lkIFdl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogICAgIHNldE1lbW9yeUNhY2hlRGlzYWJsZWQocGFyYW1ldGVycy5t
ZW1vcnlDYWNoZURpc2FibGVkKTsKIAogICAgIFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0QXR0clN0eWxlRW5hYmxlZChwYXJhbWV0ZXJzLmF0dHJT
dHlsZUVuYWJsZWQpOworICAgIAorICAgIGNvbW1vblZNKCkuc2V0R2xvYmFsQ29uc3RSZWRlY2xh
cmF0aW9uU2hvdWxkVGhyb3cocGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2Jh
bENvbnN0YW50UmVkZWNsYXJhdGlvbik7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
ICAgICBzZXRFbmFibGVkU2VydmljZXMocGFyYW1ldGVycy5oYXNJbWFnZVNlcnZpY2VzLCBwYXJh
bWV0ZXJzLmhhc1NlbGVjdGlvblNlcnZpY2VzLCBwYXJhbWV0ZXJzLmhhc1JpY2hDb250ZW50U2Vy
dmljZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KaW5kZXggZTA5OWRlNDFkZDdjN2FjM2RmYjQwMTRjYmJkZjlkOGE0NWVjMjY1Yy4u
ZWMxNTEzM2MzYjhiZTUxMjBjMmYwMzE3MDllMDc0NzBiZGM1ODZlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0yNjAsOSAr
MjYwLDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICBXZWJLaXQ6OmluaXRpYWxpemVM
b2dDaGFubmVsc0lmTmVjZXNzYXJ5KHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzKTsK
ICNlbmRpZgogCi0gICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKHBh
cmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcik7Ci0gICAgc2V0QXBwbGljYXRpb25T
REtWZXJzaW9uKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbik7Ci0KICAgICBtX3VpUHJv
Y2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZp
ZXI7CiAKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424184</attachid>
            <date>2021-03-24 14:30:50 -0700</date>
            <delta_ts>2021-03-24 14:46:00 -0700</delta_ts>
            <desc>not for landing, just debugging</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>36907</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZWZhZGMwMGUwYzcuLmJjMTMwMjU1ZTMwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDIxLTAzLTI0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIEFsbCBCb29rcyBxdWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxp
ZWQgaW4gbW9kZXJuIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU3MTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBObyBuZXcgdGVzdHM7
IEkgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byB3cml0ZSBhIHRlc3QgdGhhdCBkb2Vzbid0IGludm9s
dmUKKyAgICAgICAgYWRkaW5nIGEgbmV3IHBhcmFtZXRlciB0byB0aGUgcHJvY2VzcyBib290c3Ry
YXAgbWVzc2FnZSwgd2hpY2ggc2VlbXMKKyAgICAgICAgb3V0IG9mIHRoZSByZWFsbSBvZiByZWFz
b24gZm9yIGEgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xvdyk6CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxD
b25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyk6IERlbGV0ZWQuCisgICAgICAgIFN0b3AgaGFy
ZGNvZGluZyBnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyBiYXNlZCBvbiB0aGUg
VUkgcHJvY2VzcyBpZGVudGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0luQXV4aWxpYXJ5UHJvY2Vzcyk6
CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUpOgorICAgICAgICBB
ZGQgYW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFueSBmdXR1cmUgY2FzZSB3aGVyZSBhIGJ1bmRsZSBj
aGVjayBpcyBxdWVyaWVkCisgICAgICAgIGluIGEgYXV4aWxpYXJ5IHByb2Nlc3MgYmVmb3JlIHRo
ZSBob3N0aW5nIGFwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyIGlzIHNldC4KKwogMjAyMS0w
My0yNCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIENT
UyBDb2xvciA1IGNvbG9yLW1peCgpIGltcGxlbWVudGF0aW9uIHRvIG1hdGNoIHRoZSBsYXRlc3Qg
ZHJhZnQgc3BlYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9u
Vk0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29tbW9uVk0uY3BwCmluZGV4IDI0
M2NmYWEzYTUxNC4uN2Y3NjA5ZTkzMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Db21tb25WTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29t
bW9uVk0uY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgog
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnRE
YXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGluZXMuaD4KQEAgLTQ0LDE2
ICs0Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IDxyZGFyOi8vcHJv
YmxlbS8yNTk2NTAyOD4gVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvciByZXBsYWNlZCB3aXRoIGEg
U2V0dGluZyB0aGF0IGlCb29rcyBjYW4gdXNlIGlmIGl0IGlzIHN0aWxsIG5lZWRlZC4KLXN0YXRp
YyBib29sIGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkKLXsKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICByZXR1cm4gIUNvY29hQXBwbGljYXRpb246OmlzSUJvb2tzKCk7Ci0j
ZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi19Ci0KIEpTQzo6Vk0qIGdfY29tbW9uVk1P
ck51bGw7CiAKIEpTQzo6Vk0mIGNvbW1vblZNU2xvdygpCkBAIC04NCw4ICs3Myw2IEBAIEpTQzo6
Vk0mIGNvbW1vblZNU2xvdygpCiAgICAgdm0uaGVhcC5tYWNoaW5lVGhyZWFkcygpLmFkZEN1cnJl
bnRUaHJlYWQoKTsKICNlbmRpZgogCi0gICAgdm0uc2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9u
U2hvdWxkVGhyb3coZ2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkVGhyb3coKSk7Ci0KICAg
ICBKU1ZNQ2xpZW50RGF0YTo6aW5pdE5vcm1hbFdvcmxkKCZ2bSwgV29ya2VyVGhyZWFkVHlwZTo6
TWFpbik7CiAKICAgICByZXR1cm4gdm07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAppbmRleCAxNDlhMWY0YWFmZjcuLjk4MGZm
ZTk1ODAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuY3BwCkBAIC02Niw2ICs2NiwxMSBAQCBzdGF0aWMgT3B0aW9uYWw8QXV4
aWxpYXJ5UHJvY2Vzc1R5cGU+JiBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpCiAgICAgcmV0dXJuIGF1
eGlsaWFyeVByb2Nlc3NUeXBlOwogfQogCitib29sIGlzSW5BdXhpbGlhcnlQcm9jZXNzKCkKK3sK
KyAgICByZXR1cm4gISFhdXhpbGlhcnlQcm9jZXNzVHlwZSgpOworfQorCiB2b2lkIHNldEF1eGls
aWFyeVByb2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlIHR5cGUpCiB7CiAgICAgYXV4aWxp
YXJ5UHJvY2Vzc1R5cGUoKSA9IHR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCmluZGV4IGI1ZDRhMzQ0MDM2My4uZjAzMWUxOTY1
Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NU
eXBlIDogdWludDhfdCB7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1eGlsaWFyeVByb2Nlc3NU
eXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2hlY2tBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiAKK2Jvb2wgaXNJbkF1eGls
aWFyeVByb2Nlc3MoKTsKIGlubGluZSBib29sIGlzSW5XZWJQcm9jZXNzKCkgeyByZXR1cm4gY2hl
Y2tBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZTo6V2ViQ29udGVudCk7
IH0KIGlubGluZSBib29sIGlzSW5OZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIGNoZWNrQXV4aWxp
YXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6Ok5ldHdvcmspOyB9CiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQppbmRleCAwNDBlM2M2
MTFlNjcuLjE3NzhiZDhjNTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0KQEAgLTYy
LDI4ICs2MiwyOSBAQCBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkKICAgICAv
LyBUaGUgb3ZlcnJpZGUgb25seSBnZXRzIHNldCBpbiBXZWJLaXRUZXN0UnVubmVyLiBJZiB1bnNl
dCwgd2UgdXNlIHRoZSBidW5kbGUgaWRlbnRpZmllciBzZXQKICAgICAvLyBpbiBXZWJLaXQyJ3Mg
V2ViUHJvY2VzcyBhbmQgTmV0d29ya1Byb2Nlc3MuIElmIHRoYXQgaXMgYWxzbyB1bnNldCwgd2Ug
dXNlIHRoZSBtYWluIGJ1bmRsZSBpZGVudGlmaWVyLgogICAgIGF1dG8gaWRlbnRpZmllciA9IGJ1
bmRsZUlkZW50aWZpZXJPdmVycmlkZSgpOwotICAgIEFTU0VSVChpZGVudGlmaWVyLmlzTnVsbCgp
IHx8IFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChpZGVudGlmaWVyLmlz
TnVsbCgpIHx8IFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBpZiAoaWRlbnRpZmllci5pc051bGwo
KSkKICAgICAgICAgaWRlbnRpZmllciA9IGJ1bmRsZUlkZW50aWZpZXIoKTsKKyAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX01FU1NBR0UoIWlzSW5BdXhpbGlhcnlQcm9jZXNzKCkgfHwgISFpZGVudGlm
aWVyLCAiYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oKSBhbmQgYXBwbGljYXRpb25CdW5kbGVT
dGFydHNXaXRoKCkgbXVzdCBub3QgYmUgY2FsbGVkIGJlZm9yZSBzZXRBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoKSBpbiBhdXhpbGlhcnkgcHJvY2Vzc2VzIik7CiAgICAgcmV0dXJuIGlkZW50
aWZpZXIuaXNOdWxsKCkgPyBTdHJpbmcoW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVu
dGlmaWVyXSkgOiBpZGVudGlmaWVyOwogfQogCiB2b2lkIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAg
YnVuZGxlSWRlbnRpZmllcigpID0gaWRlbnRpZmllcjsKIH0KIAogdm9pZCBzZXRBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7Ci0g
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdhc1F1ZXJpZWQsICJhcHBsaWNhdGlv
bkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1bmRsZVN0YXJ0c1dpdGgoKSBzaG91
bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCki
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgUkVMRUFTRV9B
U1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdh
c1F1ZXJpZWQsICJhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygpIGFuZCBhcHBsaWNhdGlvbkJ1
bmRsZVN0YXJ0c1dpdGgoKSBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCkiKTsKICAgICBidW5kbGVJZGVudGlmaWVyT3ZlcnJp
ZGUoKSA9IGlkZW50aWZpZXI7CiB9CiAKIHZvaWQgY2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKQogewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGJ1bmRsZUlkZW50
aWZpZXJPdmVycmlkZSgpID0gU3RyaW5nKCk7CiAjaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKICAg
ICBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdhc1F1ZXJpZWQgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNzkzNDYzOWQ0MTFjLi5iY2E3ZmI1ZWEyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTIgQEAKKzIwMjEtMDMtMjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWxsIEJvb2tzIHF1aXJrcyBhcmUgZmxha2lseSBub3QgYXBwbGllZCBp
biBtb2Rlcm4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTcxMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1OTY1MDI4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEluIHIyMDAxMjEsIGEgcXVp
cmsgd2FzIGludHJvZHVjZWQgdGhhdCBxdWVyaWVkIHRoZSBpc0lCb29rcygpCisgICAgICAgIFJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcyBtZXRob2QgZnJvbSBpbnNpZGUgY29tbW9uVk0oKS4KKwor
ICAgICAgICBSdW50aW1lQXBwbGljYXRpb25DaGVja3MgYnVuZGxlIGNoZWNrcyBjYWNoZSB0aGUg
cmVzdWx0IG9mIHRoZSBidW5kbGUKKyAgICAgICAgY2hlY2ssIGFuZCwgYXMgc3VjaCwgbXVzdCBu
b3QgYmUgY2FsbGVkIHVudGlsIHRoZSBidW5kbGUgaWRlbnRpZmVyIG9mCisgICAgICAgIHRoZSBV
SSBhcHBsaWNhdGlvbiBpcyBrbm93bi4gSW4gbGVnYWN5IFdlYktpdCwgdGhpcyBpcyBub3QgYSBw
cm9ibGVtLAorICAgICAgICBiZWNhdXNlIHRoZSBjaGVjayBpcyBydW5uaW5nIGluIHRoZSBhcHBs
aWNhdGlvbiBwcm9jZXNzOyBpbiBtb2Rlcm4gV2ViS2l0LAorICAgICAgICB0aGVyZSBpcyBhIHNo
b3J0IHdpbmRvdyBiZXR3ZWVuIHByb2Nlc3MgbGF1bmNoIGFuZCB0aGUgSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MKKyAgICAgICAgbWVzc2FnZSBiZWluZyByZWNlaXZlZCB3aGVyZSB3ZSB3b24ndCBrbm93
IHRoZSBidW5kbGUgaWRlbnRpZmllciwgYW5kIGlmCisgICAgICAgIGlzSUJvb2tzKCkgKG9yIGFu
eSBvdGhlciBidW5kbGUgY2hlY2spIGlzIGNhbGxlZCBkdXJpbmcgdGhpcyB0aW1lLCBpdCB3aWxs
CisgICAgICAgIGNhY2hlIHRoZSB3cm9uZyByZXN1bHQuCisKKyAgICAgICAgSXQgaXMgcG9zc2li
bGUgZm9yIGNvbW1vblZNKCkgdG8gYmUgY2FsbGVkIGluIHRoaXMgd2luZG93OyBvbmUgcG9zc2li
bGUgcGF0aAorICAgICAgICB0byB0aGlzIGlzIGJ5IHRyaWdnZXJpbmcgYW4gb3NfbG9nX2ZhdWx0
IGR1cmluZyB0aGlzIHRpbWUsIHdoaWNoIFdlYktpdAorICAgICAgICBvYnNlcnZlcyAodmlhIG9z
X3N0YXRlX2FkZF9oYW5kbGVyKCkpIGluIG9yZGVyIHRvIGR1bXAgbWVtb3J5IHVzYWdlCisgICAg
ICAgICh3aGljaCBoYXBwZW5zIHRvIGNhbGwgY29tbW9uVk0oKSBhbmQgcmVzdWx0cyBpbiBpc0lC
b29rcyBnZXR0aW5nIGNhbGxlZAorICAgICAgICBhbmQgY2FjaGluZyB0aGUgd3JvbmcgdmFsdWUp
LgorCisgICAgICAgIEFkZCBhbiBhc3NlcnRpb24sIGFuZCBtb3ZlIHRoZSBxdWlyayB0byBsaXZl
IGFzIGEgc2V0dGluZyBvbiB0aGUgcHJvY2VzcworICAgICAgICBwb29sIGNvbmZpZ3VyYXRpb24s
IHRvIGJlIHNldCB2aWEgU1BJIGJ5IEJvb2tzLCBpbnN0ZWFkIG9mIGFzIGEgYnVuZGxlIGNoZWNr
LgorCisgICAgICAgIEFsc28sIGVuc3VyZSB0aGF0IGNsaWVudCBidW5kbGUgaWRlbnRpZmllciBh
bmQgU0RLIHZlcnNpb24gYXJlIHNldCBpbiAKKyAgICAgICAgYWxsIFdlYktpdCBzdWJwcm9jZXNz
ZXMsIHNvIHRoYXQgYnVuZGxlL1NESyBjaGVja3Mgd29yayBldmVyeXdoZXJlCisgICAgICAgIChw
cmV2aW91c2x5LCB0aGUgR1BVIHByb2Nlc3Mgd2FzIHVzaW5nIFNESyBjaGVja3Mgd2l0aG91dCBo
YXZpbmcgcHVzaGVkCisgICAgICAgIHRoZSB2YWx1ZXMgZnJvbSB0aGUgVUkgcHJvY2VzcywgcmVz
dWx0aW5nIGluIGluY29ycmVjdCByZXN1bHRzLCBhbmQKKyAgICAgICAgcnVubmluZyBhZm91bCBv
ZiB0aGUgYXNzZXJ0aW9uIGFkZGVkIGFib3ZlKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uOjpjb3B5KToKKyAgICAgICAgKEFQSTo6ZGVmYXVsdFNob3VsZFRocm93
RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAg
ICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzaG91bGRUaHJvd0V4Y2VwdGlvbkZv
ckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbl0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gc2V0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJl
ZGVjbGFyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIFBsdW1iIGEgbmV3
IF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdG8gdGhlIFdlYiBDb250ZW50
IHByb2Nlc3MsCisgICAgICAgIGFuZCBzZXQgdGhlIGJpdCBvbiB0aGUgY29tbW9uVk0gd2hlbiBs
YXVuY2hlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2EpOgorICAg
ICAgICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4
aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVBy
b2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KToKKyAg
ICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAg
ICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VFbnRyeVBvaW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXpl
cik6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUlu
aXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1ZlcnNpb24pOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICBSZW1vdmUgYW4gZXh0
cmEgdW51c2VkIG1lbWJlci4KKyAgICAgICAgKiBTaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZSk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFj
Lm1tOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgUGx1bWIgdGhlIGNsaWVudCBidW5kbGUgaWRl
bnRpZmVyIGFuZCBTREsgdmVyc2lvbiB0byBhbGwgYXV4aWxpYXJ5IHByb2Nlc3NlcworICAgICAg
ICBhdCBwcm9jZXNzIGluaXRpYWxpemF0aW9uIHRpbWUgaW5zdGVhZCBvZiBJbml0aWFsaXplV2Vi
UHJvY2Vzcy9OZXR3b3JrUHJvY2VzcworICAgICAgICBtZXNzYWdlIHJlY2VpcHQgdGltZSwgY2xv
c2luZyB0aGUgd2luZG93IGluIHdoaWNoIGl0IGlzIGludmFsaWQgdG8gdXNlCisgICAgICAgIGJ1
bmRsZSBjaGVja3MsIGFuZCBlbnN1cmluZyB0aGF0IGJ1bmRsZSBjaGVja3Mgd29yayBpbiBhbGwg
cHJvY2Vzc2VzLgorCiAyMDIxLTAzLTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb2NvYV0gUmV2aXNlIGxvYWRTaW11bGF0ZWRSZXF1ZXN0IEFQSSB3
aXRoIGZpbmFsIHJldmlldyBjb21tZW50cyAoMjIzNjU3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCAwOGUzZmJkMzI3ZGYuLjIzOGNiYTMzOWEyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTUzLDcgKzUzLDYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xz
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRl
bnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1NES1ZlcnNpb247CiAgICAgSVBDOjpl
bmNvZGUoZW5jb2RlciwgbmV0d29ya0FUU0NvbnRleHQuZ2V0KCkpOwogI2VuZGlmCiAjaWYgVVNF
KFNPVVApCkBAIC0xMTEsOCArMTEwLDYgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NC
dW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LnVpUHJvY2Vzc1NES1ZlcnNpb24pKQotICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCByZXN1bHQubmV0d29ya0FUU0NvbnRl
eHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAppbmRleCA1OTdmYzhkYmRjYmEuLjQzNjliMjAwNWNlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaApAQCAtNjYsNyArNjYsNiBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgewogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5nIHVp
UHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7Ci0gICAgdWludDMyX3QgdWlQcm9jZXNzU0RLVmVyc2lv
biB7IDAgfTsKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBuZXR3b3JrQVRTQ29udGV4dDsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggNWZiZTgxZDY4NmI5Li5kOGIzMTBmMTBkYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1By
b2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTczLDkgKzczLDYgQEAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZU5ldHdvcmtTZXR0aW5ncygpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2EoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcik7Ci0gICAg
c2V0QXBwbGljYXRpb25TREtWZXJzaW9uKHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbik7
Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0
ZXJzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwCmluZGV4IGRiYmUxYmYwOTAzNS4uYjM3NDU5
NWE0MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmNwcApAQCAt
NjksNyArNjksNyBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemUoY29uc3QgQXV4
aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycwogICAgIFJFTEVBU0VfQVNTRVJU
X1dJVEhfTUVTU0FHRShwYXJhbWV0ZXJzLnByb2Nlc3NJZGVudGlmaWVyLCAiVW5hYmxlIHRvIGlu
aXRpYWxpemUgY2hpbGQgcHJvY2VzcyB3aXRob3V0IGEgV2ViQ29yZSBwcm9jZXNzIGlkZW50aWZp
ZXIiKTsKICAgICBQcm9jZXNzOjpzZXRJZGVudGlmaWVyKCpwYXJhbWV0ZXJzLnByb2Nlc3NJZGVu
dGlmaWVyKTsKIAotICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAgIHBsYXRmb3JtSW5pdGlh
bGl6ZShwYXJhbWV0ZXJzKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIG1fcHJpb3JpdHlC
b29zdE1lc3NhZ2UgPSBwYXJhbWV0ZXJzLnByaW9yaXR5Qm9vc3RNZXNzYWdlOwpAQCAtMjM3LDcg
KzIzNyw3IEBAIE9wdGlvbmFsPHN0ZDo6cGFpcjxJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIs
IElQQzo6QXR0YWNobWVudD4+IEF1eGlsaWFyeVByb2NlCiB9CiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIEF1
eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBBdXhpbGlhcnlQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4
aWxpYXJ5UHJvY2Vzcy5oCmluZGV4IGQ4YjNiMTQ3OTY5Ny4uZDQ4Y2FiMjljM2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgdGVybWluYXRpb25UaW1lckZpcmVkKCk7CiAKLSAgICB2b2lkIHBs
YXRmb3JtSW5pdGlhbGl6ZSgpOworICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IEF1
eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRm
b3JtU3RvcFJ1bkxvb3AoKTsKIAogICAgIC8vIFRoZSB0aW1lb3V0LCBpbiBzZWNvbmRzLCBiZWZv
cmUgdGhpcyBwcm9jZXNzIHdpbGwgYmUgdGVybWluYXRlZCBpZiB0ZXJtaW5hdGlvbgpAQCAtMTYz
LDYgKzE2Myw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIHVpUHJvY2Vzc05hbWU7CiAgICAgU3RyaW5nIGNs
aWVudElkZW50aWZpZXI7CisgICAgdWludDMyX3QgY2xpZW50U0RLVmVyc2lvbjsKICAgICBPcHRp
b25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcHJvY2Vzc0lkZW50aWZpZXI7CiAgICAg
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOwogICAgIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCmluZGV4
IGNmZmJlZDcwN2RjZS4uMTgyYTg5ZDgyNjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCkBAIC0yOCwxMCArMjgsNDIgQEAK
IAogI2ltcG9ydCAiV0tDcmFzaFJlcG9ydGVyLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQ
b2ludC5oIgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxtYWNo
L3Rhc2suaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KKyNpbXBvcnQgPHd0
Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCitzdGF0
aWMgdm9pZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCkKK3sKKyAgICAvLyBTZXQg
dGFza19sYXRlbmN5IGFuZCB0YXNrX3Rocm91Z2hwdXQgUU9TIHRpZXJzIGFzIGFwcHJvcHJpYXRl
IGZvciBhIHZpc2libGUgYXBwbGljYXRpb24uCisgICAgc3RydWN0IHRhc2tfcW9zX3BvbGljeSBx
b3NpbmZvID0geyBMQVRFTkNZX1FPU19USUVSXzAsIFRIUk9VR0hQVVRfUU9TX1RJRVJfMCB9Owor
ICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX3BvbGljeV9zZXQobWFjaF90YXNrX3NlbGYoKSwg
VEFTS19CQVNFX1FPU19QT0xJQ1ksICh0YXNrX3BvbGljeV90KSZxb3NpbmZvLCBUQVNLX1FPU19Q
T0xJQ1lfQ09VTlQpOworICAgIEFTU0VSVF9VTlVTRUQoa3IsIGtyID09IEtFUk5fU1VDQ0VTUyk7
Cit9CisjZW5kaWYKKwordm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUo
Y29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKK3sKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgIGlu
aXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKTsKKyNlbmRpZgorCisgICAgRmxvYXRpbmdQ
b2ludEVudmlyb25tZW50JiBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQgPSBGbG9hdGluZ1BvaW50
RW52aXJvbm1lbnQ6OnNpbmdsZXRvbigpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQ
TEFURk9STShNQUNDQVRBTFlTVCkKKyAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuZW5hYmxl
RGVub3JtYWxTdXBwb3J0KCk7CisjZW5kaWYKKyAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQu
c2F2ZU1haW5UaHJlYWRFbnZpcm9ubWVudCgpOworCisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBjaGFuZ2VDdXJyZW50RGlyZWN0b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZVBhdGhdXTsKKworICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXIpOworICAgIHNldEFwcGxpY2F0aW9u
U0RLVmVyc2lvbihwYXJhbWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pOworfQorCiB2b2lkIEF1eGls
aWFyeVByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6Ok1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQogewogICAgIGF1dG8gZXJyb3JNZXNzYWdlID0g
bWFrZVN0cmluZygiUmVjZWl2ZWQgaW52YWxpZCBtZXNzYWdlOiAnIiwgZGVzY3JpcHRpb24obWVz
c2FnZU5hbWUpLCAiJyAoIiwgbWVzc2FnZU5hbWUsICcpJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IDQ5MmI5
YzY0NDJiZS4uNjZkYTZjMWIyMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQpAQCAtNzksNyArNzksOCBAQCBzdGF0
aWMgYm9vbCBpc0luV2ViS2l0Q2hpbGRQcm9jZXNzKCkKICAgICAgICAgTlNTdHJpbmcgKmJ1bmRs
ZUlkZW50aWZpZXIgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdOwog
ICAgICAgICBpc0luU3ViUHJvY2VzcyA9IFtidW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpAImNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCJdCiAgICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRp
ZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmciXQotICAgICAgICAg
ICAgfHwgW2J1bmRsZUlkZW50aWZpZXIgaGFzUHJlZml4OkAiY29tLmFwcGxlLldlYktpdC5HUFUi
XTsKKyAgICAgICAgICAgIHx8IFtidW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpAImNvbS5hcHBs
ZS5XZWJLaXQuR1BVIl0KKyAgICAgICAgICAgIHx8IFtidW5kbGVJZGVudGlmaWVyIGhhc1ByZWZp
eDpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4iXTsKICAgICB9KTsKIAogICAgIHJldHVybiBp
c0luU3ViUHJvY2VzczsKQEAgLTIxOCw2ICsyMTksOCBAQCBib29sIGlzUGFyZW50UHJvY2Vzc0FG
dWxsV2ViQnJvd3NlcihPcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuKQogICAgIGRp
c3BhdGNoX29uY2UoJm9uY2UsIF57CiAgICAgICAgIGZ1bGxXZWJCcm93c2VyID0gV1RGOjpoYXNF
bnRpdGxlbWVudChhdWRpdFRva2VuLnZhbHVlKCksICJjb20uYXBwbGUuZGV2ZWxvcGVyLndlYi1i
cm93c2VyIik7CiAgICAgfSk7CisgICAgCisgICAgV1RGTG9nQWx3YXlzKCJUSE9SVE9OIGlzUGFy
ZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlciB0ZXN0PSVkIGJ1bmRsZT0lcyIsIGlzUnVubmluZ1Rl
c3QoV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkpLCBXZWJDb3JlOjphcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIHJldHVybiBm
dWxsV2ViQnJvd3NlciB8fCBpc1J1bm5pbmdUZXN0KFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcigpKTsKIH0KQEAgLTIyNyw2ICsyMzAsOCBAQCBzdGF0aWMgYm9vbCBpc0Z1bGxX
ZWJCcm93c2VyKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcikKICAgICBBU1NFUlQoIWlz
SW5XZWJLaXRDaGlsZFByb2Nlc3MoKSk7CiAKICAgICBzdGF0aWMgYm9vbCBmdWxsV2ViQnJvd3Nl
ciA9IFdURjo6cHJvY2Vzc0hhc0VudGl0bGVtZW50KCJjb20uYXBwbGUuZGV2ZWxvcGVyLndlYi1i
cm93c2VyIik7CisgICAgCisgICAgV1RGTG9nQWx3YXlzKCJUSE9SVE9OIGlzRnVsbFdlYkJyb3dz
ZXIgdGVzdD0lZCBidW5kbGU9JXMiLCBpc1J1bm5pbmdUZXN0KGJ1bmRsZUlkZW50aWZpZXIpLCBi
dW5kbGVJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgcmV0dXJuIGZ1bGxXZWJCcm93
c2VyIHx8IGlzUnVubmluZ1Rlc3QoYnVuZGxlSWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IGQ5
NGJjOWM1NTlkNS4uOTBmMzFkYWI3OWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9p
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciYgaWRlbnRpZmllcik7CiAgICAgdmlydHVhbCBib29sIGdldFByb2Nl
c3NJZGVudGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBi
b29sIGdldENsaWVudElkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyKTsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RLVmVyc2lvbih1aW50MzJfdCYgY2xpZW50U0RLVmVyc2lv
bik7CiAgICAgdmlydHVhbCBib29sIGdldENsaWVudFByb2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50
UHJvY2Vzc05hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRFeHRyYUluaXRpYWxpemF0aW9uRGF0
YShIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEpOwogCkBA
IC0xMTQsNiArMTE1LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
aWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRJZGVudGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50SWRlbnRp
ZmllcikpCiAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKIAorICAgIGlmICghZGVsZWdhdGUu
Z2V0Q2xpZW50U0RLVmVyc2lvbihwYXJhbWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQorICAgICAg
ICBleGl0KEVYSVRfRkFJTFVSRSk7CisKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBw
cm9jZXNzSWRlbnRpZmllcjsKICAgICBpZiAoIWRlbGVnYXRlLmdldFByb2Nlc3NJZGVudGlmaWVy
KHByb2Nlc3NJZGVudGlmaWVyKSkKICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENT
ZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1t
CmluZGV4IDBhMTQyNWJjYTU2ZC4uN2VlMGM4MjNjYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC03Nyw2ICs3
NywxNCBAQCBib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRDbGllbnRJZGVu
dGlmaWVyKFN0cmluZyYgY2xpZW50SWRlbnRpZmllcgogICAgIHJldHVybiB0cnVlOwogfQogCiti
b29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRDbGllbnRTREtWZXJzaW9uKHVp
bnQzMl90JiBjbGllbnRTREtWZXJzaW9uKQoreworICAgIGF1dG8gc3RyaW5nID0geHBjX2RpY3Rp
b25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1zZGstdmVyc2lv
biIpOworICAgIGJvb2wgb2s7CisgICAgY2xpZW50U0RLVmVyc2lvbiA9IGNoYXJhY3RlcnNUb1VJ
bnRTdHJpY3QocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHN0cmluZyksIHN0cmluZyA/
IHN0ZDo6c3RybGVuKHN0cmluZykgOiAwLCAmb2spOworICAgIHJldHVybiBvazsKK30KKwogYm9v
bCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0UHJvY2Vzc0lkZW50aWZpZXIoUHJv
Y2Vzc0lkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgU3RyaW5nIHByb2Nlc3NJZGVudGlm
aWVyU3RyaW5nID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2Fn
ZSwgInByb2Nlc3MtaWRlbnRpZmllciIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBkYmVlODQzMjk4ZjYuLjkw
YzE3MDA2OTY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk2LDcgKzk2LDYgQEAgdm9pZCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICBlbmNv
ZGVyIDw8IHVpUHJvY2Vzc1NES1ZlcnNpb247CiAgICAgZW5jb2RlciA8PCBsYXRlbmN5UU9TOwog
ICAgIGVuY29kZXIgPDwgdGhyb3VnaHB1dFFPUzsKICNlbmRpZgpAQCAtMTE5LDYgKzExOCw3IEBA
IHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIAogICAgIGVuY29kZXIgPDwgbWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAg
ICBlbmNvZGVyIDw8IGF0dHJTdHlsZUVuYWJsZWQ7CisgICAgZW5jb2RlciA8PCBzaG91bGRUaHJv
d0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2VTZXJ2aWNlczsKQEAgLTMy
MSw4ICszMjEsNiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVu
dGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5sYXRlbmN5UU9TKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50aHJvdWdo
cHV0UU9TKSkKQEAgLTM3MSw2ICszNjksOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF0
dHJTdHlsZUVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRS
ZWRlY2xhcmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhhc0ltYWdl
U2VydmljZXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDNkNTczZTM2MzUzMC4uZDVhODM0NWQzMjViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CkBAIC0xMjYsNyArMTI2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIGJvb2wgaGFzU3R5bHVzRGV2aWNlIHsgZmFsc2UgfTsKICAgICBib29sIG1lbW9yeUNh
Y2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNl
IH07Ci0gICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsKKyAg
ICBib29sIHNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9u
IHsgdHJ1ZSB9OwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgYm9vbCBoYXNJ
bWFnZVNlcnZpY2VzIHsgZmFsc2UgfTsKQEAgLTE0MCw3ICsxNDAsNiBAQCBzdHJ1Y3QgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTdHJp
bmcgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCB1aVByb2Nlc3NTREtW
ZXJzaW9uIHsgMCB9OwogICAgIGludCBsYXRlbmN5UU9TIHsgMCB9OwogICAgIGludCB0aHJvdWdo
cHV0UU9TIHsgMCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvQXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9BdXhp
bGlhcnlQcm9jZXNzSU9TLm1tCmluZGV4IDQwNTc1ZGMyMjMzYy4uOTFlNTBiM2EzYjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQXV4aWxpYXJ5UHJvY2Vzc0lPUy5tbQpAQCAt
NDEsMTQgKzQxLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgQXV4aWxpYXJ5UHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKCkKLXsKLSAgICBGbG9hdGluZ1BvaW50RW52aXJvbm1l
bnQmIGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudCA9IEZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudDo6
c2luZ2xldG9uKCk7IAotICAgIGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5lbmFibGVEZW5vcm1h
bFN1cHBvcnQoKTsgCi0gICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LnNhdmVNYWluVGhyZWFk
RW52aXJvbm1lbnQoKTsgCi0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjaGFu
Z2VDdXJyZW50RGlyZWN0b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhd
XTsKLX0KLQogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBB
dXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMubW0KaW5k
ZXggNTc0NjgyZDEzOWFiLi4zYjVlOWNjOTIzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1tCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0
ICJXS0ZvdW5kYXRpb24uaCIKICNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCiAjaW1w
b3J0IDxXZWJDb3JlL0ZpbGVIYW5kbGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRmxvYXRpbmdQb2lu
dEVudmlyb25tZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb24uaD4KICNpbXBv
cnQgPG1hY2gtby9keWxkLmg+CiAjaW1wb3J0IDxtYWNoL21hY2guaD4KQEAgLTE0NSwxNCArMTQ0
LDYgQEAgc3RydWN0IFNhbmRib3hJbmZvIHsKIGNvbnN0ZXhwciB1aW50MzJfdCBDYWNoZWRTYW5k
Ym94VmVyc2lvbk51bWJlciA9IDE7CiAjZW5kaWYgLy8gVVNFKENBQ0hFX0NPTVBJTEVEX1NBTkRC
T1gpCiAKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKQotewot
ICAgIC8vIFNldCB0YXNrX2xhdGVuY3kgYW5kIHRhc2tfdGhyb3VnaHB1dCBRT1MgdGllcnMgYXMg
YXBwcm9wcmlhdGUgZm9yIGEgdmlzaWJsZSBhcHBsaWNhdGlvbi4KLSAgICBzdHJ1Y3QgdGFza19x
b3NfcG9saWN5IHFvc2luZm8gPSB7IExBVEVOQ1lfUU9TX1RJRVJfMCwgVEhST1VHSFBVVF9RT1Nf
VElFUl8wIH07Ci0gICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfcG9saWN5X3NldChtYWNoX3Rh
c2tfc2VsZigpLCBUQVNLX0JBU0VfUU9TX1BPTElDWSwgKHRhc2tfcG9saWN5X3QpJnFvc2luZm8s
IFRBU0tfUU9TX1BPTElDWV9DT1VOVCk7Ci0gICAgQVNTRVJUX1VOVVNFRChrciwga3IgPT0gS0VS
Tl9TVUNDRVNTKTsKLX0KLQogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpsYXVuY2hTZXJ2aWNlc0No
ZWNrSW4oKQogewogI2lmIEhBVkUoQ1NDSEVDS0ZJWERJU0FCTEUpCkBAIC0xNjQsMTUgKzE1NSw2
IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6bGF1bmNoU2VydmljZXNDaGVja0luKCkKICAgICBS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiB1bnVzZWQgPSBfTFNBcHBsaWNhdGlvbkNoZWNrSW4o
a0xTRGVmYXVsdFNlc3Npb25JRCwgQ0ZCdW5kbGVHZXRJbmZvRGljdGlvbmFyeShDRkJ1bmRsZUdl
dE1haW5CdW5kbGUoKSkpOwogfQogCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZSgpCi17Ci0gICAgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpOwotCi0g
ICAgRmxvYXRpbmdQb2ludEVudmlyb25tZW50OjpzaW5nbGV0b24oKS5zYXZlTWFpblRocmVhZEVu
dmlyb25tZW50KCk7Ci0KLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNoYW5n
ZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF1d
OwotfQotCiBzdGF0aWMgT1NTdGF0dXMgZW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUo
KQogewogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKaW5k
ZXggMTg1ODVmNjFiYjZlLi5kMTZlZDc3NTNmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBA
IC01Miw2ICs1Miw3IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbjo6Y29weSgpCiAgICAgY29weS0+bV9mdWxseVN5bmNocm9ub3VzTW9kZUlz
QWxsb3dlZEZvclRlc3RpbmcgPSB0aGlzLT5tX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2Vk
Rm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHNGb3JUZXN0aW5nID0gdGhpcy0+bV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRz
Rm9yVGVzdGluZzsKICAgICBjb3B5LT5tX2F0dHJTdHlsZUVuYWJsZWQgPSB0aGlzLT5tX2F0dHJT
dHlsZUVuYWJsZWQ7CisgICAgY29weS0+bV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENv
bnN0YW50UmVkZWNsYXJhdGlvbiA9IHRoaXMtPm1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9i
YWxDb25zdGFudFJlZGVjbGFyYXRpb247CiAgICAgY29weS0+bV9vdmVycmlkZUxhbmd1YWdlcyA9
IHRoaXMtPm1fb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgY29weS0+bV9hbHdheXNSdW5zQXRCYWNr
Z3JvdW5kUHJpb3JpdHkgPSB0aGlzLT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eTsK
ICAgICBjb3B5LT5tX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24gPSB0aGlzLT5tX3No
b3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggNjQ5
MjQ5MDJmMTk4Li4xZjUwNzljODVmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTk0LDYgKzk0
LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyU3R5bGVFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBdHRyU3R5bGVFbmFibGVkKGJv
b2wgZW5hYmxlZCkgeyBtX2F0dHJTdHlsZUVuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgCisgICAg
Ym9vbCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJl
ZGVjbGFyYXRpb247IH0KKyAgICB2b2lkIHNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFs
Q29uc3RhbnRSZWRlY2xhcmF0aW9uKGJvb2wgc2hvdWxkVGhyb3cpIHsgbV9zaG91bGRUaHJvd0V4
Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiA9IHNob3VsZFRocm93OyB9CiAK
ICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBvdmVycmlkZUxhbmd1YWdlcygpIGNvbnN0
IHsgcmV0dXJuIG1fb3ZlcnJpZGVMYW5ndWFnZXM7IH0KICAgICB2b2lkIHNldE92ZXJyaWRlTGFu
Z3VhZ2VzKFZlY3RvcjxXVEY6OlN0cmluZz4mJiBsYW5ndWFnZXMpIHsgbV9vdmVycmlkZUxhbmd1
YWdlcyA9IFdURk1vdmUobGFuZ3VhZ2VzKTsgfQpAQCAtMTU2LDYgKzE1OSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVzdGluZyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JU
ZXN0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07
CisgICAgYm9vbCBtX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xh
cmF0aW9uIHsgdHJ1ZSB9OwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9vdmVycmlkZUxhbmd1
YWdlczsKICAgICBib29sIG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5IHsgZmFsc2Ug
fTsKICAgICBib29sIG1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiB7IHRydWUgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCA1ZjIxMzk3MGFjZmMuLmQ0YjY1MTc3
ZjlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtNDAsNiArNDAsOSBAQCBX
S19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5n
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOwogCisvLyBEZWZhdWx0cyB0byBZRVMuCitAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNs
YXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRk
aXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUgJiYgIVRBUkdFVF9PU19TSU1V
TEFUT1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDllMGQ3OTBhM2QzNS4u
OTNkMGIxZWQ4MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KQEAgLTE0MSw2
ICsxNDEsMTYgQEAgLSAodm9pZClzZXRBdHRyU3R5bGVFbmFibGVkOihCT09MKWVuYWJsZWQKICAg
ICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0QXR0clN0eWxlRW5hYmxlZChl
bmFibGVkKTsKIH0KIAorLSAoQk9PTClzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0
YW50UmVkZWNsYXJhdGlvbgoreworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LT5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbigpOwor
fQorCistICh2b2lkKXNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRl
Y2xhcmF0aW9uOihCT09MKXNob3VsZFRocm93Cit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24tPnNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRl
Y2xhcmF0aW9uKHNob3VsZFRocm93KTsKK30KKwogLSAoTlNBcnJheTxOU1VSTCAqPiAqKWFkZGl0
aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMKIHsKICAgICBhdXRvIHBhdGhzID0gX3Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi0+YWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkUGF0aHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCmluZGV4IGRiMDA5YWQyODJmYi4uNzYyNmNiOGIyZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTMyMCw3
ICszMjAsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVu
ZGxlUmVzb3VyY2VQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcGFyYW1l
dGVycy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogCiAgICAg
cGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyID0gYXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uID0gYXBwbGlj
YXRpb25TREtWZXJzaW9uKCk7CiAKICAgICBwYXJhbWV0ZXJzLmxhdGVuY3lRT1MgPSB3ZWJQcm9j
ZXNzTGF0ZW5jeVFPUygpOwogICAgIHBhcmFtZXRlcnMudGhyb3VnaHB1dFFPUyA9IHdlYlByb2Nl
c3NUaHJvdWdocHV0UU9TKCk7CkBAIC00ODIsNyArNDgxLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAg
IHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcigpOwotICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbiA9IGFwcGxp
Y2F0aW9uU0RLVmVyc2lvbigpOwogCiAgICAgTlNVc2VyRGVmYXVsdHMgKmRlZmF1bHRzID0gW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0K
aW5kZXggNjdjNmU5NjY5OTVkLi41Mjg1OGMwMGFjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpA
QCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9T
b2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1RocmVhZGluZy5oPgorI2ltcG9ydCA8d3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Nm
L0NGQnVuZGxlU1BJLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTIwNyw2ICsyMDgsNyBAQCB2b2lkIFByb2Nlc3NM
YXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X21hY2hfc2Vu
ZChib290c3RyYXBNZXNzYWdlLmdldCgpLCAic2VydmVyLXBvcnQiLCBsaXN0ZW5pbmdQb3J0KTsK
IAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwg
ImNsaWVudC1pZGVudGlmaWVyIiwgIWNsaWVudElkZW50aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50
SWRlbnRpZmllci51dGY4KCkuZGF0YSgpIDogKl9OU0dldFByb2duYW1lKCkpOworICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1zZGst
dmVyc2lvbiIsIFN0cmluZzo6bnVtYmVyKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKS51dGY4KCku
ZGF0YSgpKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2Uu
Z2V0KCksICJwcm9jZXNzLWlkZW50aWZpZXIiLCBTdHJpbmc6Om51bWJlcihtX2xhdW5jaE9wdGlv
bnMucHJvY2Vzc0lkZW50aWZpZXIudG9VSW50NjQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgeHBj
X2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAidWktcHJvY2Vz
cy1uYW1lIiwgW1tbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdIFVURjhT
dHJpbmddKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2Uu
Z2V0KCksICJzZXJ2aWNlLW5hbWUiLCBuYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAppbmRleCBjNzAxMzY2MmI2MjEuLjVkNmQxMWE0MGE5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtODI2LDYgKzgyNiw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgV2Vic2l0ZURhCiAKICAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hl
RGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQ7CiAgICAgcGFyYW1ldGVycy5hdHRyU3R5
bGVFbmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5hdHRyU3R5bGVFbmFibGVkKCk7CisgICAgcGFy
YW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
biA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFu
dFJlZGVjbGFyYXRpb24oKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGF1
dG8mIHNlcnZpY2VDb250cm9sbGVyID0gU2VydmljZXNDb250cm9sbGVyOjpzaW5nbGV0b24oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKaW5kZXgg
ZjI0Njc2OTMyOTgwLi5hNjViNmZhMDc3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC03NSw4ICs3NSwxMSBAQCB2b2lkIFdlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgRnJhbWUmIGZyYW1lLCBj
b25zdCBTZWN1cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFpc1dlYkJyb3dz
ZXIoKSkKKyAgICBpZiAoIWlzV2ViQnJvd3NlcigpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygi
VEhPUlRPTjogYmFpbGluZyB3aXRob3V0IGNhbGxpbmcgY29tcGxldGlvbiBoYW5kbGVyIGJlY2F1
c2Ugbm90IGEgd2ViIGJyb3dzZXI/Iik7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TWFr
ZUNyZWRlbnRpYWwoaGFzaCwgb3B0aW9ucywgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZN
b3ZlKGhhbmRsZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDk2YjFhZDQ3Y2MwYS4uOWQ0NWU3YjI5NjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00ODQsNiArNDg0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpp
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICAgICBzZXRNZW1vcnlDYWNoZURpc2FibGVkKHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVE
aXNhYmxlZCk7CiAKICAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLnNldEF0dHJTdHlsZUVuYWJsZWQocGFyYW1ldGVycy5hdHRyU3R5bGVFbmFibGVk
KTsKKyAgICAKKyAgICBjb21tb25WTSgpLnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3Vs
ZFRocm93KHBhcmFtZXRlcnMuc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJl
ZGVjbGFyYXRpb24pOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgc2V0RW5h
YmxlZFNlcnZpY2VzKHBhcmFtZXRlcnMuaGFzSW1hZ2VTZXJ2aWNlcywgcGFyYW1ldGVycy5oYXNT
ZWxlY3Rpb25TZXJ2aWNlcywgcGFyYW1ldGVycy5oYXNSaWNoQ29udGVudFNlcnZpY2VzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmlu
ZGV4IGUwOTlkZTQxZGQ3Yy4uZWMxNTEzM2MzYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTI2MCw5ICsyNjAsNiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIFdlYktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxz
SWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJLaXRMb2dnaW5nQ2hhbm5lbHMpOwogI2VuZGlmCiAK
LSAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy51
aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24o
cGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uKTsKLQogICAgIG1fdWlQcm9jZXNzQnVuZGxl
SWRlbnRpZmllciA9IHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKIAogI2lm
IEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCg==
</data>
<flag name="commit-queue"
          id="443777"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424185</attachid>
            <date>2021-03-24 14:37:31 -0700</date>
            <delta_ts>2021-03-25 00:13:23 -0700</delta_ts>
            <desc>not for landing, just debugging</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>36158</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcAppbmRleCAyNDNjZmFhM2E1MTQu
LjdmNzYwOWU5MzE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ29t
bW9uVk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1vblZNLmNwcApA
QCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CkBAIC00NCwxNiArNDMsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMjU5NjUw
Mjg+IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgb3IgcmVwbGFjZWQgd2l0aCBhIFNldHRpbmcgdGhh
dCBpQm9va3MgY2FuIHVzZSBpZiBpdCBpcyBzdGlsbCBuZWVkZWQuCi1zdGF0aWMgYm9vbCBnbG9i
YWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdygpCi17Ci0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgcmV0dXJuICFDb2NvYUFwcGxpY2F0aW9uOjppc0lCb29rcygpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbmRpZgotfQotCiBKU0M6OlZNKiBnX2NvbW1vblZNT3JOdWxsOwogCiBK
U0M6OlZNJiBjb21tb25WTVNsb3coKQpAQCAtODQsOCArNzMsNiBAQCBKU0M6OlZNJiBjb21tb25W
TVNsb3coKQogICAgIHZtLmhlYXAubWFjaGluZVRocmVhZHMoKS5hZGRDdXJyZW50VGhyZWFkKCk7
CiAjZW5kaWYKIAotICAgIHZtLnNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93
KGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkpOwotCiAgICAgSlNWTUNsaWVu
dERhdGE6OmluaXROb3JtYWxXb3JsZCgmdm0sIFdvcmtlclRocmVhZFR5cGU6Ok1haW4pOwogCiAg
ICAgcmV0dXJuIHZtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggMTQ5YTFmNGFhZmY3Li45ODBmZmU5NTgwMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmNwcApAQCAtNjYsNiArNjYsMTEgQEAgc3RhdGljIE9wdGlvbmFsPEF1eGlsaWFyeVByb2Nl
c3NUeXBlPiYgYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKQogICAgIHJldHVybiBhdXhpbGlhcnlQcm9j
ZXNzVHlwZTsKIH0KIAorYm9vbCBpc0luQXV4aWxpYXJ5UHJvY2VzcygpCit7CisgICAgcmV0dXJu
ICEhYXV4aWxpYXJ5UHJvY2Vzc1R5cGUoKTsKK30KKwogdm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNz
VHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogewogICAgIGF1eGlsaWFyeVByb2Nlc3NU
eXBlKCkgPSB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaAppbmRleCBiNWQ0YTM0NDAzNjMuLmYwMzFlMTk2NTM5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgK
QEAgLTQ3LDYgKzQ3LDcgQEAgZW51bSBjbGFzcyBBdXhpbGlhcnlQcm9jZXNzVHlwZSA6IHVpbnQ4
X3QgewogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlh
cnlQcm9jZXNzVHlwZSk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGNoZWNrQXV4aWxpYXJ5UHJvY2Vz
c1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGUpOwogCitib29sIGlzSW5BdXhpbGlhcnlQcm9jZXNz
KCk7CiBpbmxpbmUgYm9vbCBpc0luV2ViUHJvY2VzcygpIHsgcmV0dXJuIGNoZWNrQXV4aWxpYXJ5
UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OldlYkNvbnRlbnQpOyB9CiBpbmxpbmUg
Ym9vbCBpc0luTmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBjaGVja0F1eGlsaWFyeVByb2Nlc3NU
eXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlOjpOZXR3b3JrKTsgfQogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0KaW5kZXggMDQwZTNjNjExZTY3Li5hYmI4
ZDg1MTY3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCkBAIC0zNiwxOCArMzYsMTgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKKy8v
I2lmICFBU1NFUlRfTVNHX0RJU0FCTEVECiBzdGF0aWMgYm9vbCBhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXJPdmVycmlkZVdhc1F1ZXJpZWQ7Ci0jZW5kaWYKKy8vI2VuZGlmCiAKIC8vIFRoZSBh
cHBsaWNhdGlvbiBidW5kbGUgaWRlbnRpZmllciBnZXRzIHNldCB0byB0aGUgVUlQcm9jZXNzIGJ1
bmRsZSBpZGVudGlmaWVyIGJ5IHRoZSBXZWJQcm9jZXNzIGFuZAogLy8gdGhlIE5ldHdvcmtpbmcg
dXBvbiBpbml0aWFsaXphdGlvbi4gSXQgaXMgdW5zZXQgb3RoZXJ3aXNlLgogc3RhdGljIFN0cmlu
ZyYgYnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiBpZGVudGlmaWVyT3ZlcnJpZGU7Ci0jaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQK
Ky8vI2lmICFBU1NFUlRfTVNHX0RJU0FCTEVECiAgICAgYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyT3ZlcnJpZGVXYXNRdWVyaWVkID0gdHJ1ZTsKLSNlbmRpZgorLy8jZW5kaWYKICAgICByZXR1
cm4gaWRlbnRpZmllck92ZXJyaWRlOwogfQogCkBAIC02MiwzMiArNjIsMzMgQEAgU3RyaW5nIGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpCiAgICAgLy8gVGhlIG92ZXJyaWRlIG9ubHkgZ2V0
cyBzZXQgaW4gV2ViS2l0VGVzdFJ1bm5lci4gSWYgdW5zZXQsIHdlIHVzZSB0aGUgYnVuZGxlIGlk
ZW50aWZpZXIgc2V0CiAgICAgLy8gaW4gV2ViS2l0MidzIFdlYlByb2Nlc3MgYW5kIE5ldHdvcmtQ
cm9jZXNzLiBJZiB0aGF0IGlzIGFsc28gdW5zZXQsIHdlIHVzZSB0aGUgbWFpbiBidW5kbGUgaWRl
bnRpZmllci4KICAgICBhdXRvIGlkZW50aWZpZXIgPSBidW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUo
KTsKLSAgICBBU1NFUlQoaWRlbnRpZmllci5pc051bGwoKSB8fCBSdW5Mb29wOjppc01haW4oKSk7
CisgICAgUkVMRUFTRV9BU1NFUlQoaWRlbnRpZmllci5pc051bGwoKSB8fCBSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgaWYgKGlkZW50aWZpZXIuaXNOdWxsKCkpCiAgICAgICAgIGlkZW50aWZpZXIg
PSBidW5kbGVJZGVudGlmaWVyKCk7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFp
c0luQXV4aWxpYXJ5UHJvY2VzcygpIHx8ICEhaWRlbnRpZmllciwgImFwcGxpY2F0aW9uQnVuZGxl
SXNFcXVhbFRvKCkgYW5kIGFwcGxpY2F0aW9uQnVuZGxlU3RhcnRzV2l0aCgpIG11c3Qgbm90IGJl
IGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgaW4gYXV4aWxp
YXJ5IHByb2Nlc3NlcyIpOwogICAgIHJldHVybiBpZGVudGlmaWVyLmlzTnVsbCgpID8gU3RyaW5n
KFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pIDogaWRlbnRpZmllcjsK
IH0KIAogdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyKQogewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgUkVMRUFT
RV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGJ1bmRsZUlkZW50aWZpZXIoKSA9IGlk
ZW50aWZpZXI7CiB9CiAKIHZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJp
ZGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQogewotICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyT3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oKSBhbmQg
YXBwbGljYXRpb25CdW5kbGVTdGFydHNXaXRoKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3Jl
IHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIik7CisgICAgUkVMRUFTRV9BU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfTUVTU0FHRSghYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBwbGljYXRpb25C
dW5kbGVJc0VxdWFsVG8oKSBhbmQgYXBwbGljYXRpb25CdW5kbGVTdGFydHNXaXRoKCkgbXVzdCBu
b3QgYmUgY2FsbGVkIGJlZm9yZSBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlk
ZSgpIik7CiAgICAgYnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCkgPSBpZGVudGlmaWVyOwogfQog
CiB2b2lkIGNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlKCkK
IHsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBidW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IFN0cmlu
ZygpOwotI2lmICFBU1NFUlRfTVNHX0RJU0FCTEVECisvLyNpZiAhQVNTRVJUX01TR19ESVNBQkxF
RAogICAgIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCA9IGZh
bHNlOwotI2VuZGlmCisvLyNlbmRpZgogfQogCiBzdGF0aWMgYm9vbCBhcHBsaWNhdGlvbkJ1bmRs
ZUlzRXF1YWxUbyhjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXJTdHJpbmcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDc5MzQ2MzlkNDExYy4uYmNhN2ZiNWVhMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBA
CisyMDIxLTAzLTI0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEFsbCBCb29rcyBxdWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJu
IFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU3MTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJbiByMjAwMTIxLCBhIHF1aXJrIHdhcyBp
bnRyb2R1Y2VkIHRoYXQgcXVlcmllZCB0aGUgaXNJQm9va3MoKQorICAgICAgICBSdW50aW1lQXBw
bGljYXRpb25DaGVja3MgbWV0aG9kIGZyb20gaW5zaWRlIGNvbW1vblZNKCkuCisKKyAgICAgICAg
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzIGJ1bmRsZSBjaGVja3MgY2FjaGUgdGhlIHJlc3VsdCBv
ZiB0aGUgYnVuZGxlCisgICAgICAgIGNoZWNrLCBhbmQsIGFzIHN1Y2gsIG11c3Qgbm90IGJlIGNh
bGxlZCB1bnRpbCB0aGUgYnVuZGxlIGlkZW50aWZlciBvZgorICAgICAgICB0aGUgVUkgYXBwbGlj
YXRpb24gaXMga25vd24uIEluIGxlZ2FjeSBXZWJLaXQsIHRoaXMgaXMgbm90IGEgcHJvYmxlbSwK
KyAgICAgICAgYmVjYXVzZSB0aGUgY2hlY2sgaXMgcnVubmluZyBpbiB0aGUgYXBwbGljYXRpb24g
cHJvY2VzczsgaW4gbW9kZXJuIFdlYktpdCwKKyAgICAgICAgdGhlcmUgaXMgYSBzaG9ydCB3aW5k
b3cgYmV0d2VlbiBwcm9jZXNzIGxhdW5jaCBhbmQgdGhlIEluaXRpYWxpemVXZWJQcm9jZXNzCisg
ICAgICAgIG1lc3NhZ2UgYmVpbmcgcmVjZWl2ZWQgd2hlcmUgd2Ugd29uJ3Qga25vdyB0aGUgYnVu
ZGxlIGlkZW50aWZpZXIsIGFuZCBpZgorICAgICAgICBpc0lCb29rcygpIChvciBhbnkgb3RoZXIg
YnVuZGxlIGNoZWNrKSBpcyBjYWxsZWQgZHVyaW5nIHRoaXMgdGltZSwgaXQgd2lsbAorICAgICAg
ICBjYWNoZSB0aGUgd3JvbmcgcmVzdWx0LgorCisgICAgICAgIEl0IGlzIHBvc3NpYmxlIGZvciBj
b21tb25WTSgpIHRvIGJlIGNhbGxlZCBpbiB0aGlzIHdpbmRvdzsgb25lIHBvc3NpYmxlIHBhdGgK
KyAgICAgICAgdG8gdGhpcyBpcyBieSB0cmlnZ2VyaW5nIGFuIG9zX2xvZ19mYXVsdCBkdXJpbmcg
dGhpcyB0aW1lLCB3aGljaCBXZWJLaXQKKyAgICAgICAgb2JzZXJ2ZXMgKHZpYSBvc19zdGF0ZV9h
ZGRfaGFuZGxlcigpKSBpbiBvcmRlciB0byBkdW1wIG1lbW9yeSB1c2FnZQorICAgICAgICAod2hp
Y2ggaGFwcGVucyB0byBjYWxsIGNvbW1vblZNKCkgYW5kIHJlc3VsdHMgaW4gaXNJQm9va3MgZ2V0
dGluZyBjYWxsZWQKKyAgICAgICAgYW5kIGNhY2hpbmcgdGhlIHdyb25nIHZhbHVlKS4KKworICAg
ICAgICBBZGQgYW4gYXNzZXJ0aW9uLCBhbmQgbW92ZSB0aGUgcXVpcmsgdG8gbGl2ZSBhcyBhIHNl
dHRpbmcgb24gdGhlIHByb2Nlc3MKKyAgICAgICAgcG9vbCBjb25maWd1cmF0aW9uLCB0byBiZSBz
ZXQgdmlhIFNQSSBieSBCb29rcywgaW5zdGVhZCBvZiBhcyBhIGJ1bmRsZSBjaGVjay4KKworICAg
ICAgICBBbHNvLCBlbnN1cmUgdGhhdCBjbGllbnQgYnVuZGxlIGlkZW50aWZpZXIgYW5kIFNESyB2
ZXJzaW9uIGFyZSBzZXQgaW4gCisgICAgICAgIGFsbCBXZWJLaXQgc3VicHJvY2Vzc2VzLCBzbyB0
aGF0IGJ1bmRsZS9TREsgY2hlY2tzIHdvcmsgZXZlcnl3aGVyZQorICAgICAgICAocHJldmlvdXNs
eSwgdGhlIEdQVSBwcm9jZXNzIHdhcyB1c2luZyBTREsgY2hlY2tzIHdpdGhvdXQgaGF2aW5nIHB1
c2hlZAorICAgICAgICB0aGUgdmFsdWVzIGZyb20gdGhlIFVJIHByb2Nlc3MsIHJlc3VsdGluZyBp
biBpbmNvcnJlY3QgcmVzdWx0cywgYW5kCisgICAgICAgIHJ1bm5pbmcgYWZvdWwgb2YgdGhlIGFz
c2VydGlvbiBhZGRlZCBhYm92ZSkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbjo6Y29weSk6CisgICAgICAgIChBUEk6OmRlZmF1bHRTaG91bGRUaHJvd0V4Y2VwdGlv
bkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxD
b25zdGFudFJlZGVjbGFyYXRpb25dKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIHNldFNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0
aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2Vzcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBQbHVtYiBhIG5ldyBfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHRvIHRoZSBXZWIgQ29udGVudCBwcm9jZXNz
LAorICAgICAgICBhbmQgc2V0IHRoZSBiaXQgb24gdGhlIGNvbW1vblZNIHdoZW4gbGF1bmNoZWQu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToKKyAgICAgICAgKiBT
aGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVBy
b2Nlc3M6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmg6
CisgICAgICAgICogU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6aW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSk6CisgICAgICAgIChX
ZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICog
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50
cnlQb2ludC5oOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXIpOgorICAg
ICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZUVudHJ5UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXpl
ckRlbGVnYXRlOjpnZXRDbGllbnRTREtWZXJzaW9uKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgUmVtb3ZlIGFuIGV4dHJhIHVudXNl
ZCBtZW1iZXIuCisgICAgICAgICogU2hhcmVkL2lvcy9BdXhpbGlhcnlQcm9jZXNzSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBE
ZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFj
L1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVy
OjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgIFBsdW1iIHRoZSBjbGllbnQgYnVuZGxlIGlkZW50aWZlciBh
bmQgU0RLIHZlcnNpb24gdG8gYWxsIGF1eGlsaWFyeSBwcm9jZXNzZXMKKyAgICAgICAgYXQgcHJv
Y2VzcyBpbml0aWFsaXphdGlvbiB0aW1lIGluc3RlYWQgb2YgSW5pdGlhbGl6ZVdlYlByb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MKKyAgICAgICAgbWVzc2FnZSByZWNlaXB0IHRpbWUsIGNsb3NpbmcgdGhl
IHdpbmRvdyBpbiB3aGljaCBpdCBpcyBpbnZhbGlkIHRvIHVzZQorICAgICAgICBidW5kbGUgY2hl
Y2tzLCBhbmQgZW5zdXJpbmcgdGhhdCBidW5kbGUgY2hlY2tzIHdvcmsgaW4gYWxsIHByb2Nlc3Nl
cy4KKwogMjAyMS0wMy0yNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ29jb2FdIFJldmlzZSBsb2FkU2ltdWxhdGVkUmVxdWVzdCBBUEkgd2l0aCBmaW5h
bCByZXZpZXcgY29tbWVudHMgKDIyMzY1NykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggMDhlM2ZiZDMyN2RmLi4yMzhjYmEzMzlhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCkBAIC01Myw3ICs1Myw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAg
ZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29sczsKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7
Ci0gICAgZW5jb2RlciA8PCB1aVByb2Nlc3NTREtWZXJzaW9uOwogICAgIElQQzo6ZW5jb2RlKGVu
Y29kZXIsIG5ldHdvcmtBVFNDb250ZXh0LmdldCgpKTsKICNlbmRpZgogI2lmIFVTRShTT1VQKQpA
QCAtMTExLDggKzExMCw2IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzQnVuZGxlSWRl
bnRpZmllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC51aVByb2Nlc3NTREtWZXJzaW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgcmVzdWx0Lm5ldHdvcmtBVFNDb250ZXh0KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
aW5kZXggNTk3ZmM4ZGJkY2JhLi40MzY5YjIwMDVjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTY2LDcgKzY2LDYgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFN0cmluZyB1aVByb2Nlc3NC
dW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IHVpUHJvY2Vzc1NES1ZlcnNpb24geyAwIH07
CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gbmV0d29ya0FUU0NvbnRleHQ7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
UHJvY2Vzc0NvY29hLm1tCmluZGV4IDVmYmU4MWQ2ODZiOS4uZDhiMzEwZjEwZGE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJv
Y2Vzc0NvY29hLm1tCkBAIC03Myw5ICs3Myw2IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVOZXR3
b3JrU2V0dGluZ3MoKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2Vzc0NvY29hKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogewotICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwotICAgIHNldEFwcGxp
Y2F0aW9uU0RLVmVyc2lvbihwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24pOwotCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFu
ZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb250
YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXhpbGlhcnlQcm9jZXNzLmNwcAppbmRleCBkYmJlMWJmMDkwMzUuLmIzNzQ1OTVhNDA2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMKICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01F
U1NBR0UocGFyYW1ldGVycy5wcm9jZXNzSWRlbnRpZmllciwgIlVuYWJsZSB0byBpbml0aWFsaXpl
IGNoaWxkIHByb2Nlc3Mgd2l0aG91dCBhIFdlYkNvcmUgcHJvY2VzcyBpZGVudGlmaWVyIik7CiAg
ICAgUHJvY2Vzczo6c2V0SWRlbnRpZmllcigqcGFyYW1ldGVycy5wcm9jZXNzSWRlbnRpZmllcik7
CiAKLSAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKKyAgICBwbGF0Zm9ybUluaXRpYWxpemUocGFy
YW1ldGVycyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX3ByaW9yaXR5Qm9vc3RNZXNz
YWdlID0gcGFyYW1ldGVycy5wcmlvcml0eUJvb3N0TWVzc2FnZTsKQEAgLTIzNyw3ICsyMzcsNyBA
QCBPcHRpb25hbDxzdGQ6OnBhaXI8SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBJUEM6OkF0
dGFjaG1lbnQ+PiBBdXhpbGlhcnlQcm9jZQogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQotdm9p
ZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoKQordm9pZCBBdXhpbGlhcnlQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0F1eGlsaWFyeVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVBy
b2Nlc3MuaAppbmRleCBkOGIzYjE0Nzk2OTcuLmQ0OGNhYjI5YzNmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHRlcm1pbmF0aW9uVGltZXJGaXJlZCgpOwogCi0gICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBBdXhpbGlhcnlQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwbGF0Zm9ybVN0b3BS
dW5Mb29wKCk7CiAKICAgICAvLyBUaGUgdGltZW91dCwgaW4gc2Vjb25kcywgYmVmb3JlIHRoaXMg
cHJvY2VzcyB3aWxsIGJlIHRlcm1pbmF0ZWQgaWYgdGVybWluYXRpb24KQEAgLTE2Myw2ICsxNjMs
NyBAQCBwcml2YXRlOgogc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMgewogICAgIFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmluZyBjbGllbnRJZGVu
dGlmaWVyOworICAgIHVpbnQzMl90IGNsaWVudFNES1ZlcnNpb247CiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXI+IHByb2Nlc3NJZGVudGlmaWVyOwogICAgIElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBleHRyYUluaXRpYWxpemF0aW9uRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQppbmRleCBjZmZiZWQ3
MDdkY2UuLjE4MmE4OWQ4MjY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtMjgsMTAgKzI4LDQyIEBACiAKICNpbXBv
cnQgIldLQ3Jhc2hSZXBvcnRlci5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRpbmdQb2ludEVudmlyb25tZW50Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorI2ltcG9ydCA8bWFjaC90YXNrLmg+
CiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CisjaW1wb3J0IDx3dGYvY29jb2Ev
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpCit7CisgICAgLy8gU2V0IHRhc2tfbGF0
ZW5jeSBhbmQgdGFza190aHJvdWdocHV0IFFPUyB0aWVycyBhcyBhcHByb3ByaWF0ZSBmb3IgYSB2
aXNpYmxlIGFwcGxpY2F0aW9uLgorICAgIHN0cnVjdCB0YXNrX3Fvc19wb2xpY3kgcW9zaW5mbyA9
IHsgTEFURU5DWV9RT1NfVElFUl8wLCBUSFJPVUdIUFVUX1FPU19USUVSXzAgfTsKKyAgICBrZXJu
X3JldHVybl90IGtyID0gdGFza19wb2xpY3lfc2V0KG1hY2hfdGFza19zZWxmKCksIFRBU0tfQkFT
RV9RT1NfUE9MSUNZLCAodGFza19wb2xpY3lfdCkmcW9zaW5mbywgVEFTS19RT1NfUE9MSUNZX0NP
VU5UKTsKKyAgICBBU1NFUlRfVU5VU0VEKGtyLCBrciA9PSBLRVJOX1NVQ0NFU1MpOworfQorI2Vu
ZGlmCisKK3ZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IEF1
eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7Cisj
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICBpbml0aWFsaXpl
VGltZXJDb2FsZXNjaW5nUG9saWN5KCk7CisjZW5kaWYKKworICAgIEZsb2F0aW5nUG9pbnRFbnZp
cm9ubWVudCYgZmxvYXRpbmdQb2ludEVudmlyb25tZW50ID0gRmxvYXRpbmdQb2ludEVudmlyb25t
ZW50OjpzaW5nbGV0b24oKTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCisgICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LmVuYWJsZURlbm9ybWFs
U3VwcG9ydCgpOworI2VuZGlmCisgICAgZmxvYXRpbmdQb2ludEVudmlyb25tZW50LnNhdmVNYWlu
VGhyZWFkRW52aXJvbm1lbnQoKTsKKworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5k
bGVQYXRoXV07CisKKyAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIo
cGFyYW1ldGVycy5jbGllbnRJZGVudGlmaWVyKTsKKyAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNp
b24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKK30KKwogdm9pZCBBdXhpbGlhcnlQcm9j
ZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNz
YWdlTmFtZSBtZXNzYWdlTmFtZSkKIHsKICAgICBhdXRvIGVycm9yTWVzc2FnZSA9IG1ha2VTdHJp
bmcoIlJlY2VpdmVkIGludmFsaWQgbWVzc2FnZTogJyIsIGRlc2NyaXB0aW9uKG1lc3NhZ2VOYW1l
KSwgIicgKCIsIG1lc3NhZ2VOYW1lLCAnKScpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQppbmRleCA0OTJiOWM2NDQyYmUu
LjY2ZGE2YzFiMjIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVm
YXVsdFdlYkJyb3dzZXJDaGVja3MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
RGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0KQEAgLTc5LDcgKzc5LDggQEAgc3RhdGljIGJvb2wg
aXNJbldlYktpdENoaWxkUHJvY2VzcygpCiAgICAgICAgIE5TU3RyaW5nICpidW5kbGVJZGVudGlm
aWVyID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXTsKICAgICAgICAg
aXNJblN1YlByb2Nlc3MgPSBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUu
V2ViS2l0LldlYkNvbnRlbnQiXQogICAgICAgICAgICAgfHwgW2J1bmRsZUlkZW50aWZpZXIgaGFz
UHJlZml4OkAiY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nIl0KLSAgICAgICAgICAgIHx8IFti
dW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpAImNvbS5hcHBsZS5XZWJLaXQuR1BVIl07CisgICAg
ICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0
LkdQVSJdCisgICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20u
YXBwbGUuV2ViS2l0LldlYkF1dGhuIl07CiAgICAgfSk7CiAKICAgICByZXR1cm4gaXNJblN1YlBy
b2Nlc3M7CkBAIC0yMTgsNiArMjE5LDggQEAgYm9vbCBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJy
b3dzZXIoT3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tlbikKICAgICBkaXNwYXRjaF9v
bmNlKCZvbmNlLCBeewogICAgICAgICBmdWxsV2ViQnJvd3NlciA9IFdURjo6aGFzRW50aXRsZW1l
bnQoYXVkaXRUb2tlbi52YWx1ZSgpLCAiY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlciIp
OwogICAgIH0pOworICAgIAorICAgIFdURkxvZ0Fsd2F5cygiVEhPUlRPTiBpc1BhcmVudFByb2Nl
c3NBRnVsbFdlYkJyb3dzZXIgdGVzdD0lZCBidW5kbGU9JXMiLCBpc1J1bm5pbmdUZXN0KFdlYkNv
cmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpKSwgV2ViQ29yZTo6YXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICByZXR1cm4gZnVsbFdlYkJy
b3dzZXIgfHwgaXNSdW5uaW5nVGVzdChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIoKSk7CiB9CkBAIC0yMjcsNiArMjMwLDggQEAgc3RhdGljIGJvb2wgaXNGdWxsV2ViQnJvd3Nl
cihjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIpCiAgICAgQVNTRVJUKCFpc0luV2ViS2l0
Q2hpbGRQcm9jZXNzKCkpOwogCiAgICAgc3RhdGljIGJvb2wgZnVsbFdlYkJyb3dzZXIgPSBXVEY6
OnByb2Nlc3NIYXNFbnRpdGxlbWVudCgiY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlciIp
OworICAgIAorICAgIFdURkxvZ0Fsd2F5cygiVEhPUlRPTiBpc0Z1bGxXZWJCcm93c2VyIHRlc3Q9
JWQgYnVuZGxlPSVzIiwgaXNSdW5uaW5nVGVzdChidW5kbGVJZGVudGlmaWVyKSwgYnVuZGxlSWRl
bnRpZmllci51dGY4KCkuZGF0YSgpKTsKIAogICAgIHJldHVybiBmdWxsV2ViQnJvd3NlciB8fCBp
c1J1bm5pbmdUZXN0KGJ1bmRsZUlkZW50aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZp
Y2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAppbmRleCBkOTRiYzljNTU5
ZDUuLjkwZjMxZGFiNzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2
aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBnZXRDb25uZWN0aW9uSWRlbnRpZmllcihJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXImIGlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRQcm9jZXNzSWRlbnRp
ZmllcihXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRD
bGllbnRJZGVudGlmaWVyKFN0cmluZyYgY2xpZW50SWRlbnRpZmllcik7CisgICAgdmlydHVhbCBi
b29sIGdldENsaWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NO
YW1lKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0RXh0cmFJbml0aWFsaXphdGlvbkRhdGEoSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4mIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKTsKIApAQCAtMTE0LDYg
KzExNSw5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlmICghZGVs
ZWdhdGUuZ2V0Q2xpZW50SWRlbnRpZmllcihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXIpKQog
ICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAKKyAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVu
dFNES1ZlcnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKSkKKyAgICAgICAgZXhpdChF
WElUX0ZBSUxVUkUpOworCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXI7CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRQcm9jZXNzSWRlbnRpZmllcihwcm9jZXNz
SWRlbnRpZmllcikpCiAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQppbmRleCAw
YTE0MjViY2E1NmQuLjdlZTBjODIzY2E4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBv
aW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtNzcsNiArNzcsMTQgQEAg
Ym9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50SWRlbnRpZmllcihT
dHJpbmcmIGNsaWVudElkZW50aWZpZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBYUENT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbih1aW50MzJfdCYg
Y2xpZW50U0RLVmVyc2lvbikKK3sKKyAgICBhdXRvIHN0cmluZyA9IHhwY19kaWN0aW9uYXJ5X2dl
dF9zdHJpbmcobV9pbml0aWFsaXplck1lc3NhZ2UsICJjbGllbnQtc2RrLXZlcnNpb24iKTsKKyAg
ICBib29sIG9rOworICAgIGNsaWVudFNES1ZlcnNpb24gPSBjaGFyYWN0ZXJzVG9VSW50U3RyaWN0
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihzdHJpbmcpLCBzdHJpbmcgPyBzdGQ6OnN0
cmxlbihzdHJpbmcpIDogMCwgJm9rKTsKKyAgICByZXR1cm4gb2s7Cit9CisKIGJvb2wgWFBDU2Vy
dmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldFByb2Nlc3NJZGVudGlmaWVyKFByb2Nlc3NJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKQogewogICAgIFN0cmluZyBwcm9jZXNzSWRlbnRpZmllclN0cmlu
ZyA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcobV9pbml0aWFsaXplck1lc3NhZ2UsICJwcm9j
ZXNzLWlkZW50aWZpZXIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZGJlZTg0MzI5OGY2Li45MGMxNzAwNjk2
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCkBAIC05Niw3ICs5Niw2IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eTsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7Ci0gICAgZW5jb2RlciA8PCB1
aVByb2Nlc3NTREtWZXJzaW9uOwogICAgIGVuY29kZXIgPDwgbGF0ZW5jeVFPUzsKICAgICBlbmNv
ZGVyIDw8IHRocm91Z2hwdXRRT1M7CiAjZW5kaWYKQEAgLTExOSw2ICsxMTgsNyBAQCB2b2lkIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAKICAgICBlbmNvZGVyIDw8IG1lbW9yeUNhY2hlRGlzYWJsZWQ7CiAgICAgZW5jb2Rl
ciA8PCBhdHRyU3R5bGVFbmFibGVkOworICAgIGVuY29kZXIgPDwgc2hvdWxkVGhyb3dFeGNlcHRp
b25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb247CiAKICNpZiBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKICAgICBlbmNvZGVyIDw8IGhhc0ltYWdlU2VydmljZXM7CkBAIC0zMjEsOCArMzIx
LDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMudWlQcm9jZXNzU0RLVmVyc2lvbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubGF0ZW5jeVFPUykpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudGhyb3VnaHB1dFFPUykp
CkBAIC0zNzEsNiArMzY5LDggQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hdHRyU3R5bGVF
bmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJh
dGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNJbWFnZVNlcnZpY2Vz
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAppbmRleCAzZDU3M2UzNjM1MzAuLmQ1YTgzNDVkMzI1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTI2
LDcgKzEyNiw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBi
b29sIGhhc1N0eWx1c0RldmljZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2Fi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwotICAg
IGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBz
aG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiB7IHRydWUg
fTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGJvb2wgaGFzSW1hZ2VTZXJ2
aWNlcyB7IGZhbHNlIH07CkBAIC0xNDAsNyArMTQwLDYgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgewogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5nIHVpUHJv
Y2Vzc0J1bmRsZUlkZW50aWZpZXI7Ci0gICAgdWludDMyX3QgdWlQcm9jZXNzU0RLVmVyc2lvbiB7
IDAgfTsKICAgICBpbnQgbGF0ZW5jeVFPUyB7IDAgfTsKICAgICBpbnQgdGhyb3VnaHB1dFFPUyB7
IDAgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0F1eGls
aWFyeVByb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQXV4aWxpYXJ5UHJv
Y2Vzc0lPUy5tbQppbmRleCA0MDU3NWRjMjIzM2MuLjkxZTUwYjNhM2I4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1MubW0KQEAgLTQxLDE0ICs0
MSw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCi17Ci0gICAgRmxvYXRpbmdQb2ludEVudmlyb25tZW50JiBmbG9h
dGluZ1BvaW50RW52aXJvbm1lbnQgPSBGbG9hdGluZ1BvaW50RW52aXJvbm1lbnQ6OnNpbmdsZXRv
bigpOyAKLSAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuZW5hYmxlRGVub3JtYWxTdXBwb3J0
KCk7IAotICAgIGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5zYXZlTWFpblRocmVhZEVudmlyb25t
ZW50KCk7IAotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVu
dERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07Ci19Ci0K
IHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmKQogewogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1tCmluZGV4IDU3NDY4
MmQxMzlhYi4uM2I1ZTljYzkyMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
QXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQpAQCAtMzYsNyArMzYsNiBAQAogI2ltcG9ydCAiV0tGb3Vu
ZGF0aW9uLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9GaWxlSGFuZGxlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0aW5nUG9pbnRFbnZpcm9u
bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1WZXJzaW9uLmg+CiAjaW1wb3J0IDxtYWNo
LW8vZHlsZC5oPgogI2ltcG9ydCA8bWFjaC9tYWNoLmg+CkBAIC0xNDUsMTQgKzE0NCw2IEBAIHN0
cnVjdCBTYW5kYm94SW5mbyB7CiBjb25zdGV4cHIgdWludDMyX3QgQ2FjaGVkU2FuZGJveFZlcnNp
b25OdW1iZXIgPSAxOwogI2VuZGlmIC8vIFVTRShDQUNIRV9DT01QSUxFRF9TQU5EQk9YKQogCi1z
dGF0aWMgdm9pZCBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9saWN5KCkKLXsKLSAgICAvLyBT
ZXQgdGFza19sYXRlbmN5IGFuZCB0YXNrX3Rocm91Z2hwdXQgUU9TIHRpZXJzIGFzIGFwcHJvcHJp
YXRlIGZvciBhIHZpc2libGUgYXBwbGljYXRpb24uCi0gICAgc3RydWN0IHRhc2tfcW9zX3BvbGlj
eSBxb3NpbmZvID0geyBMQVRFTkNZX1FPU19USUVSXzAsIFRIUk9VR0hQVVRfUU9TX1RJRVJfMCB9
OwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX3BvbGljeV9zZXQobWFjaF90YXNrX3NlbGYo
KSwgVEFTS19CQVNFX1FPU19QT0xJQ1ksICh0YXNrX3BvbGljeV90KSZxb3NpbmZvLCBUQVNLX1FP
U19QT0xJQ1lfQ09VTlQpOwotICAgIEFTU0VSVF9VTlVTRUQoa3IsIGtyID09IEtFUk5fU1VDQ0VT
Uyk7Ci19Ci0KIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6bGF1bmNoU2VydmljZXNDaGVja0luKCkK
IHsKICNpZiBIQVZFKENTQ0hFQ0tGSVhESVNBQkxFKQpAQCAtMTY0LDE1ICsxNTUsNiBAQCB2b2lk
IEF1eGlsaWFyeVByb2Nlc3M6OmxhdW5jaFNlcnZpY2VzQ2hlY2tJbigpCiAgICAgUmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4gdW51c2VkID0gX0xTQXBwbGljYXRpb25DaGVja0luKGtMU0RlZmF1
bHRTZXNzaW9uSUQsIENGQnVuZGxlR2V0SW5mb0RpY3Rpb25hcnkoQ0ZCdW5kbGVHZXRNYWluQnVu
ZGxlKCkpKTsKIH0KIAotdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUo
KQotewotICAgIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKTsKLQotICAgIEZsb2F0
aW5nUG9pbnRFbnZpcm9ubWVudDo6c2luZ2xldG9uKCkuc2F2ZU1haW5UaHJlYWRFbnZpcm9ubWVu
dCgpOwotCi0gICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjaGFuZ2VDdXJyZW50
RGlyZWN0b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhdXTsKLX0KLQog
c3RhdGljIE9TU3RhdHVzIGVuYWJsZVNhbmRib3hTdHlsZUZpbGVRdWFyYW50aW5lKCkKIHsKICNp
ZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IDE4NTg1
ZjYxYmI2ZS4uZDE2ZWQ3NzUzZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcApAQCAtNTIsNiAr
NTIsNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRG
b3JUZXN0aW5nID0gdGhpcy0+bV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3Rp
bmc7CiAgICAgY29weS0+bV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVz
dGluZyA9IHRoaXMtPm1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3Rp
bmc7CiAgICAgY29weS0+bV9hdHRyU3R5bGVFbmFibGVkID0gdGhpcy0+bV9hdHRyU3R5bGVFbmFi
bGVkOworICAgIGNvcHktPm1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJl
ZGVjbGFyYXRpb24gPSB0aGlzLT5tX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3Rh
bnRSZWRlY2xhcmF0aW9uOwogICAgIGNvcHktPm1fb3ZlcnJpZGVMYW5ndWFnZXMgPSB0aGlzLT5t
X292ZXJyaWRlTGFuZ3VhZ2VzOwogICAgIGNvcHktPm1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5ID0gdGhpcy0+bV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7CiAgICAgY29w
eS0+bV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uID0gdGhpcy0+bV9zaG91bGRUYWtl
VUlCYWNrZ3JvdW5kQXNzZXJ0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDY0OTI0OTAyZjE5
OC4uMWY1MDc5Yzg1ZmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC05NCw2ICs5NCw5IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0
clN0eWxlRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QXR0clN0eWxlRW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9hdHRyU3R5bGVFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIAorICAgIGJvb2wgc2hv
dWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0
aW9uOyB9CisgICAgdm9pZCBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50
UmVkZWNsYXJhdGlvbihib29sIHNob3VsZFRocm93KSB7IG1fc2hvdWxkVGhyb3dFeGNlcHRpb25G
b3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24gPSBzaG91bGRUaHJvdzsgfQogCiAgICAgY29u
c3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgb3ZlcnJpZGVMYW5ndWFnZXMoKSBjb25zdCB7IHJldHVy
biBtX292ZXJyaWRlTGFuZ3VhZ2VzOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZUxhbmd1YWdlcyhW
ZWN0b3I8V1RGOjpTdHJpbmc+JiYgbGFuZ3VhZ2VzKSB7IG1fb3ZlcnJpZGVMYW5ndWFnZXMgPSBX
VEZNb3ZlKGxhbmd1YWdlcyk7IH0KQEAgLTE1Niw2ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9mdWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3RpbmcgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2F0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiB7
IHRydWUgfTsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fb3ZlcnJpZGVMYW5ndWFnZXM7CiAg
ICAgYm9vbCBtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24geyB0cnVlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggNWYyMTM5NzBhY2ZjLi5kNGI2NTE3N2Y5ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTQwLDYgKzQwLDkgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGF0dHJTdHlsZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIAorLy8gRGVmYXVsdHMgdG8gWUVTLgorQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKmFkZGl0aW9uYWxS
ZWFkQWNjZXNzQWxsb3dlZFVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FICYmICFUQVJHRVRfT1NfU0lNVUxBVE9SCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQppbmRleCA5ZTBkNzkwYTNkMzUuLjkzZDBiMWVk
ODA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCkBAIC0xNDEsNiArMTQxLDE2
IEBAIC0gKHZvaWQpc2V0QXR0clN0eWxlRW5hYmxlZDooQk9PTCllbmFibGVkCiAgICAgcmV0dXJu
IF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldEF0dHJTdHlsZUVuYWJsZWQoZW5hYmxlZCk7
CiB9CiAKKy0gKEJPT0wpc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVj
bGFyYXRpb24KK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKTsKK30KKworLSAo
dm9pZClzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bjooQk9PTClzaG91bGRUaHJvdworeworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLT5zZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlv
bihzaG91bGRUaHJvdyk7Cit9CisKIC0gKE5TQXJyYXk8TlNVUkwgKj4gKilhZGRpdGlvbmFsUmVh
ZEFjY2Vzc0FsbG93ZWRVUkxzCiB7CiAgICAgYXV0byBwYXRocyA9IF9wcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24tPmFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFBhdGhzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRl
eCBkYjAwOWFkMjgyZmIuLjc2MjZjYjhiMmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0zMjAsNyArMzIwLDYg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291
cmNlUGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHksIHBhcmFtZXRlcnMudWlQ
cm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIHBhcmFtZXRl
cnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cigpOwotICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbiA9IGFwcGxpY2F0aW9uU0RL
VmVyc2lvbigpOwogCiAgICAgcGFyYW1ldGVycy5sYXRlbmN5UU9TID0gd2ViUHJvY2Vzc0xhdGVu
Y3lRT1MoKTsKICAgICBwYXJhbWV0ZXJzLnRocm91Z2hwdXRRT1MgPSB3ZWJQcm9jZXNzVGhyb3Vn
aHB1dFFPUygpOwpAQCAtNDgyLDcgKzQ4MSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBwYXJhbWV0
ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIoKTsKLSAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBhcHBsaWNhdGlvblNE
S1ZlcnNpb24oKTsKIAogICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDY3
YzZlOTY2OTk1ZC4uNTI4NThjMDBhYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTM5LDYg
KzM5LDcgQEAKICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3NwaS9jZi9DRkJ1bmRs
ZVNQSS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjaW1wb3J0IDx3dGYv
dGV4dC9DU3RyaW5nLmg+CkBAIC0yMDcsNiArMjA4LDcgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6
OmxhdW5jaFByb2Nlc3MoKQogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9tYWNoX3NlbmQoYm9vdHN0
cmFwTWVzc2FnZS5nZXQoKSwgInNlcnZlci1wb3J0IiwgbGlzdGVuaW5nUG9ydCk7CiAKICAgICB4
cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQt
aWRlbnRpZmllciIsICFjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSA/IGNsaWVudElkZW50aWZp
ZXIudXRmOCgpLmRhdGEoKSA6ICpfTlNHZXRQcm9nbmFtZSgpKTsKKyAgICB4cGNfZGljdGlvbmFy
eV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtc2RrLXZlcnNpb24i
LCBTdHJpbmc6Om51bWJlcihhcHBsaWNhdGlvblNES1ZlcnNpb24oKSkudXRmOCgpLmRhdGEoKSk7
CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAi
cHJvY2Vzcy1pZGVudGlmaWVyIiwgU3RyaW5nOjpudW1iZXIobV9sYXVuY2hPcHRpb25zLnByb2Nl
c3NJZGVudGlmaWVyLnRvVUludDY0KCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHhwY19kaWN0aW9u
YXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInVpLXByb2Nlc3MtbmFtZSIs
IFtbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1lXSBVVEY4U3RyaW5nXSk7
CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAi
c2VydmljZS1uYW1lIiwgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggYzcwMTM2NjJiNjIxLi41ZDZkMTFhNDBhOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTgyNiw2ICs4MjYsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkm
IHByb2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVk
ID0gbV9tZW1vcnlDYWNoZURpc2FibGVkOwogICAgIHBhcmFtZXRlcnMuYXR0clN0eWxlRW5hYmxl
ZCA9IG1fY29uZmlndXJhdGlvbi0+YXR0clN0eWxlRW5hYmxlZCgpOworICAgIHBhcmFtZXRlcnMu
c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24gPSBtX2Nv
bmZpZ3VyYXRpb24tPnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xh
cmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBhdXRvJiBzZXJ2
aWNlQ29udHJvbGxlciA9IFNlcnZpY2VzQ29udHJvbGxlcjo6c2luZ2xldG9uKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGYyNDY3Njkz
Mjk4MC4uYTY1YjZmYTA3N2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmNwcApAQCAtNzUsOCArNzUsMTEgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3I6Om1ha2VDcmVkZW50aWFsKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2Vj
dXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghaXNXZWJCcm93c2VyKCkpCisg
ICAgaWYgKCFpc1dlYkJyb3dzZXIoKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlRIT1JUT046
IGJhaWxpbmcgd2l0aG91dCBjYWxsaW5nIGNvbXBsZXRpb24gaGFuZGxlciBiZWNhdXNlIG5vdCBh
IHdlYiBicm93c2VyPyIpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CisgICAgfQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok1ha2VDcmVkZW50
aWFsKGhhc2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5k
bGVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA5
NmIxYWQ0N2NjMGEuLjlkNDVlN2IyOTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcApAQCAtNDg0LDYgKzQ4NCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6
ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAg
ICAgc2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQp
OwogCiAgICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRBdHRyU3R5bGVFbmFibGVkKHBhcmFtZXRlcnMuYXR0clN0eWxlRW5hYmxlZCk7CisgICAg
CisgICAgY29tbW9uVk0oKS5zZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyhw
YXJhbWV0ZXJzLnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0
aW9uKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIHNldEVuYWJsZWRTZXJ2
aWNlcyhwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMsIHBhcmFtZXRlcnMuaGFzU2VsZWN0aW9u
U2VydmljZXMsIHBhcmFtZXRlcnMuaGFzUmljaENvbnRlbnRTZXJ2aWNlcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBlMDk5
ZGU0MWRkN2MuLmVjMTUxMzNjM2I4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0yNjAsOSArMjYwLDYgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmEKICAgICBXZWJLaXQ6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNz
YXJ5KHBhcmFtZXRlcnMud2ViS2l0TG9nZ2luZ0NoYW5uZWxzKTsKICNlbmRpZgogCi0gICAgV2Vi
Q29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKHBhcmFtZXRlcnMudWlQcm9jZXNz
QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgc2V0QXBwbGljYXRpb25TREtWZXJzaW9uKHBhcmFtZXRl
cnMudWlQcm9jZXNzU0RLVmVyc2lvbik7Ci0KICAgICBtX3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZp
ZXIgPSBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAKICNpZiBFTkFCTEUo
U0FOREJPWF9FWFRFTlNJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424219</attachid>
            <date>2021-03-25 00:13:25 -0700</date>
            <delta_ts>2021-03-25 03:14:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157101-20210325001324.patch</filename>
            <type>text/plain</type>
            <size>36022</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMwMjcyZDA5MjQ3MDI4
NWZiZTk4NjVlMDVjYWI2ZmU2MGJjODk0MC4uYWE1Y2ZhODZiMTg0YjYyMGIyYWNiOGE5Yjk4NzNh
MWVjMjZjYTJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTI0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbCBCb29rcyBx
dWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTAxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBObyBuZXcgdGVzdHM7IEkgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byB3cml0
ZSBhIHRlc3QgdGhhdCBkb2Vzbid0IGludm9sdmUKKyAgICAgICAgYWRkaW5nIGEgbmV3IHBhcmFt
ZXRlciB0byB0aGUgcHJvY2VzcyBib290c3RyYXAgbWVzc2FnZSwgd2hpY2ggc2VlbXMKKyAgICAg
ICAgb3V0IG9mIHRoZSByZWFsbSBvZiByZWFzb24gZm9yIGEgdGVzdC4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0NvbW1vblZNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vblZNU2xvdyk6
CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyk6
IERlbGV0ZWQuCisgICAgICAgIFN0b3AgaGFyZGNvZGluZyBnbG9iYWxDb25zdFJlZGVjbGFyYXRp
b25TaG91bGRUaHJvdyBiYXNlZCBvbiB0aGUgVUkgcHJvY2VzcyBpZGVudGl0eS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc0luQXV4aWxpYXJ5UHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyT3ZlcnJpZGUpOgorICAgICAgICBBZGQgYW4gYXNzZXJ0aW9uIHRvIGNhdGNoIGFueSBm
dXR1cmUgY2FzZSB3aGVyZSBhIGJ1bmRsZSBjaGVjayBpcyBxdWVyaWVkCisgICAgICAgIGluIGEg
YXV4aWxpYXJ5IHByb2Nlc3MgYmVmb3JlIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uIGJ1bmRsZSBp
ZGVudGlmaWVyIGlzIHNldC4KKwogMjAyMS0wMy0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIEFsbCBzdHJpbmcgcmVzb3VyY2VzIGZyb20gVXNlckFnZW50
U3R5bGVTaGVldHMgLyBVc2VyQWdlbnRTY3JpcHRzIHNob3VsZCBiZSB1c2VkIGFzIG5vbi1jb3B5
aW5nIFN0cmluZ0ltcGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDEzNTRkNTEzMTNkYzdhMmE1ZDZmZTMyZGE3MGFk
ZGQ0YWVhZjZkOC4uOWI4NTc4MTY3NGYxZGY3N2FkYzBlZTViZTRhNDdhYzY5YjUwNjg4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MiBAQAorMjAyMS0wMy0yNCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGwgQm9va3MgcXVpcmtzIGFyZSBmbGFraWx5
IG5vdCBhcHBsaWVkIGluIG1vZGVybiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5
NjUwMjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSW4g
cjIwMDEyMSwgYSBxdWlyayB3YXMgaW50cm9kdWNlZCB0aGF0IHF1ZXJpZWQgdGhlIGlzSUJvb2tz
KCkKKyAgICAgICAgUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzIG1ldGhvZCBmcm9tIGluc2lkZSBj
b21tb25WTSgpLgorCisgICAgICAgIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcyBidW5kbGUgY2hl
Y2tzIGNhY2hlIHRoZSByZXN1bHQgb2YgdGhlIGJ1bmRsZQorICAgICAgICBjaGVjaywgYW5kLCBh
cyBzdWNoLCBtdXN0IG5vdCBiZSBjYWxsZWQgdW50aWwgdGhlIGJ1bmRsZSBpZGVudGlmZXIgb2YK
KyAgICAgICAgdGhlIFVJIGFwcGxpY2F0aW9uIGlzIGtub3duLiBJbiBsZWdhY3kgV2ViS2l0LCB0
aGlzIGlzIG5vdCBhIHByb2JsZW0sCisgICAgICAgIGJlY2F1c2UgdGhlIGNoZWNrIGlzIHJ1bm5p
bmcgaW4gdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3M7IGluIG1vZGVybiBXZWJLaXQsCisgICAgICAg
IHRoZXJlIGlzIGEgc2hvcnQgd2luZG93IGJldHdlZW4gcHJvY2VzcyBsYXVuY2ggYW5kIHRoZSBJ
bml0aWFsaXplV2ViUHJvY2VzcworICAgICAgICBtZXNzYWdlIGJlaW5nIHJlY2VpdmVkIHdoZXJl
IHdlIHdvbid0IGtub3cgdGhlIGJ1bmRsZSBpZGVudGlmaWVyLCBhbmQgaWYKKyAgICAgICAgaXNJ
Qm9va3MoKSAob3IgYW55IG90aGVyIGJ1bmRsZSBjaGVjaykgaXMgY2FsbGVkIGR1cmluZyB0aGlz
IHRpbWUsIGl0IHdpbGwKKyAgICAgICAgY2FjaGUgdGhlIHdyb25nIHJlc3VsdC4KKworICAgICAg
ICBJdCBpcyBwb3NzaWJsZSBmb3IgY29tbW9uVk0oKSB0byBiZSBjYWxsZWQgaW4gdGhpcyB3aW5k
b3c7IG9uZSBwb3NzaWJsZSBwYXRoCisgICAgICAgIHRvIHRoaXMgaXMgYnkgdHJpZ2dlcmluZyBh
biBvc19sb2dfZmF1bHQgZHVyaW5nIHRoaXMgdGltZSwgd2hpY2ggV2ViS2l0CisgICAgICAgIG9i
c2VydmVzICh2aWEgb3Nfc3RhdGVfYWRkX2hhbmRsZXIoKSkgaW4gb3JkZXIgdG8gZHVtcCBtZW1v
cnkgdXNhZ2UKKyAgICAgICAgKHdoaWNoIGhhcHBlbnMgdG8gY2FsbCBjb21tb25WTSgpIGFuZCBy
ZXN1bHRzIGluIGlzSUJvb2tzIGdldHRpbmcgY2FsbGVkCisgICAgICAgIGFuZCBjYWNoaW5nIHRo
ZSB3cm9uZyB2YWx1ZSkuCisKKyAgICAgICAgQWRkIGFuIGFzc2VydGlvbiwgYW5kIG1vdmUgdGhl
IHF1aXJrIHRvIGxpdmUgYXMgYSBzZXR0aW5nIG9uIHRoZSBwcm9jZXNzCisgICAgICAgIHBvb2wg
Y29uZmlndXJhdGlvbiwgdG8gYmUgc2V0IHZpYSBTUEkgYnkgQm9va3MsIGluc3RlYWQgb2YgYXMg
YSBidW5kbGUgY2hlY2suCisKKyAgICAgICAgQWxzbywgZW5zdXJlIHRoYXQgY2xpZW50IGJ1bmRs
ZSBpZGVudGlmaWVyIGFuZCBTREsgdmVyc2lvbiBhcmUgc2V0IGluIAorICAgICAgICBhbGwgV2Vi
S2l0IHN1YnByb2Nlc3Nlcywgc28gdGhhdCBidW5kbGUvU0RLIGNoZWNrcyB3b3JrIGV2ZXJ5d2hl
cmUKKyAgICAgICAgKHByZXZpb3VzbHksIHRoZSBHUFUgcHJvY2VzcyB3YXMgdXNpbmcgU0RLIGNo
ZWNrcyB3aXRob3V0IGhhdmluZyBwdXNoZWQKKyAgICAgICAgdGhlIHZhbHVlcyBmcm9tIHRoZSBV
SSBwcm9jZXNzLCByZXN1bHRpbmcgaW4gaW5jb3JyZWN0IHJlc3VsdHMsIGFuZAorICAgICAgICBy
dW5uaW5nIGFmb3VsIG9mIHRoZSBhc3NlcnRpb24gYWRkZWQgYWJvdmUpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAo
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAoQVBJOjpkZWZh
dWx0U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNob3VsZFRo
cm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uXSk6CisgICAgICAgICgt
W19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckds
b2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6
ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgUGx1bWIgYSBuZXcgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHBhcmFtZXRlciB0byB0
aGUgV2ViIENvbnRlbnQgcHJvY2VzcywKKyAgICAgICAgYW5kIHNldCB0aGUgYml0IG9uIHRoZSBj
b21tb25WTSB3aGVuIGxhdW5jaGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nl
c3NDb2NvYSk6CisgICAgICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktp
dDo6QXV4aWxpYXJ5UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBTaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9BdXhpbGlhcnlQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNvYWxlc2Np
bmdQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vy
dmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0
OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbik6Cisg
ICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
IFJlbW92ZSBhbiBleHRyYSB1bnVzZWQgbWVtYmVyLgorICAgICAgICAqIFNoYXJlZC9pb3MvQXV4
aWxpYXJ5UHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0F1eGls
aWFyeVByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVUaW1lckNvYWxl
c2NpbmdQb2xpY3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBQbHVtYiB0aGUgY2xp
ZW50IGJ1bmRsZSBpZGVudGlmZXIgYW5kIFNESyB2ZXJzaW9uIHRvIGFsbCBhdXhpbGlhcnkgcHJv
Y2Vzc2VzCisgICAgICAgIGF0IHByb2Nlc3MgaW5pdGlhbGl6YXRpb24gdGltZSBpbnN0ZWFkIG9m
IEluaXRpYWxpemVXZWJQcm9jZXNzL05ldHdvcmtQcm9jZXNzCisgICAgICAgIG1lc3NhZ2UgcmVj
ZWlwdCB0aW1lLCBjbG9zaW5nIHRoZSB3aW5kb3cgaW4gd2hpY2ggaXQgaXMgaW52YWxpZCB0byB1
c2UKKyAgICAgICAgYnVuZGxlIGNoZWNrcywgYW5kIGVuc3VyaW5nIHRoYXQgYnVuZGxlIGNoZWNr
cyB3b3JrIGluIGFsbCBwcm9jZXNzZXMuCisKIDIwMjEtMDMtMjQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIERpc3BsYXlMaW5rIGxvZyBjaGFu
bmVscyBpbiBXZWJDb3JlIGFuZCBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NvbW1vblZNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NvbW1v
blZNLmNwcAppbmRleCAyNDNjZmFhM2E1MTQ2YzQwODRkYWE4ZjVjNTU2MGM2MDY5ODU4MWI5Li43
Zjc2MDllOTMxN2E2MTg3OGUwOWRiZDU0MzRlN2JiNjlmODAyNjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Db21tb25WTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ29tbW9uVk0uY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJX
ZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGlu
ZXMuaD4KQEAgLTQ0LDE2ICs0Myw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklY
TUU6IDxyZGFyOi8vcHJvYmxlbS8yNTk2NTAyOD4gVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvciBy
ZXBsYWNlZCB3aXRoIGEgU2V0dGluZyB0aGF0IGlCb29rcyBjYW4gdXNlIGlmIGl0IGlzIHN0aWxs
IG5lZWRlZC4KLXN0YXRpYyBib29sIGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93
KCkKLXsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gIUNvY29hQXBwbGljYXRpb246
OmlzSUJvb2tzKCk7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi19Ci0KIEpTQzo6
Vk0qIGdfY29tbW9uVk1Pck51bGw7CiAKIEpTQzo6Vk0mIGNvbW1vblZNU2xvdygpCkBAIC04NCw4
ICs3Myw2IEBAIEpTQzo6Vk0mIGNvbW1vblZNU2xvdygpCiAgICAgdm0uaGVhcC5tYWNoaW5lVGhy
ZWFkcygpLmFkZEN1cnJlbnRUaHJlYWQoKTsKICNlbmRpZgogCi0gICAgdm0uc2V0R2xvYmFsQ29u
c3RSZWRlY2xhcmF0aW9uU2hvdWxkVGhyb3coZ2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxk
VGhyb3coKSk7Ci0KICAgICBKU1ZNQ2xpZW50RGF0YTo6aW5pdE5vcm1hbFdvcmxkKCZ2bSwgV29y
a2VyVGhyZWFkVHlwZTo6TWFpbik7CiAKICAgICByZXR1cm4gdm07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAppbmRleCAxNDlh
MWY0YWFmZjc2ZGFhNTM3YWIzZjE5MjYzMzA5YjZhN2NlZjA3Li45ODBmZmU5NTgwMDNlZGFlODZh
Y2I4OGRiOTQxMjM3NzliMjk3MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKQEAgLTY2LDYgKzY2LDExIEBAIHN0YXRp
YyBPcHRpb25hbDxBdXhpbGlhcnlQcm9jZXNzVHlwZT4mIGF1eGlsaWFyeVByb2Nlc3NUeXBlKCkK
ICAgICByZXR1cm4gYXV4aWxpYXJ5UHJvY2Vzc1R5cGU7CiB9CiAKK2Jvb2wgaXNJbkF1eGlsaWFy
eVByb2Nlc3MoKQoreworICAgIHJldHVybiAhIWF1eGlsaWFyeVByb2Nlc3NUeXBlKCk7Cit9CisK
IHZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGUgdHlwZSkK
IHsKICAgICBhdXhpbGlhcnlQcm9jZXNzVHlwZSgpID0gdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgKaW5kZXggYjVkNGEzNDQw
MzYzNTA4N2UwMDY2ZWM4YThkZGMyYmY4MmZmYjc5MS4uZjAzMWUxOTY1Mzk4YWQ1NjM2NzUyYzVl
M2ZkMGM3OTM0NTJlOGI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgZW51bSBjbGFzcyBBdXhp
bGlhcnlQcm9jZXNzVHlwZSA6IHVpbnQ4X3QgewogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXhp
bGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CiBXRUJDT1JFX0VYUE9SVCBi
b29sIGNoZWNrQXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGUpOwogCiti
b29sIGlzSW5BdXhpbGlhcnlQcm9jZXNzKCk7CiBpbmxpbmUgYm9vbCBpc0luV2ViUHJvY2Vzcygp
IHsgcmV0dXJuIGNoZWNrQXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6
OldlYkNvbnRlbnQpOyB9CiBpbmxpbmUgYm9vbCBpc0luTmV0d29ya1Byb2Nlc3MoKSB7IHJldHVy
biBjaGVja0F1eGlsaWFyeVByb2Nlc3NUeXBlKEF1eGlsaWFyeVByb2Nlc3NUeXBlOjpOZXR3b3Jr
KTsgfQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0K
aW5kZXggMDQwZTNjNjExZTY3Y2U4YzliMTYzODlkMWFjNzJkZjA0MDQ2MGRmNy4uM2EzNjA1ZTEw
YjM1OTUwY2Y4NGQ4NmY1YTQwMTVlNjQ5NjNmYThhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29j
b2EubW0KQEAgLTY1LDYgKzY1LDcgQEAgU3RyaW5nIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cigpCiAgICAgQVNTRVJUKGlkZW50aWZpZXIuaXNOdWxsKCkgfHwgUnVuTG9vcDo6aXNNYWluKCkp
OwogICAgIGlmIChpZGVudGlmaWVyLmlzTnVsbCgpKQogICAgICAgICBpZGVudGlmaWVyID0gYnVu
ZGxlSWRlbnRpZmllcigpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWlzSW5BdXhpbGlhcnlQ
cm9jZXNzKCkgfHwgISFpZGVudGlmaWVyLCAiYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oKSBh
bmQgYXBwbGljYXRpb25CdW5kbGVTdGFydHNXaXRoKCkgbXVzdCBub3QgYmUgY2FsbGVkIGJlZm9y
ZSBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSBpbiBhdXhpbGlhcnkgcHJvY2Vzc2Vz
Iik7CiAgICAgcmV0dXJuIGlkZW50aWZpZXIuaXNOdWxsKCkgPyBTdHJpbmcoW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSkgOiBpZGVudGlmaWVyOwogfQogCkBAIC03Nyw3
ICs3OCw3IEBAIHZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllcikKIHZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJp
ZGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghYXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyT3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oKSBhbmQg
YXBwbGljYXRpb25CdW5kbGVTdGFydHNXaXRoKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3Jl
IHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIik7CisgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBw
bGljYXRpb25CdW5kbGVJc0VxdWFsVG8oKSBhbmQgYXBwbGljYXRpb25CdW5kbGVTdGFydHNXaXRo
KCkgbXVzdCBub3QgYmUgY2FsbGVkIGJlZm9yZSBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXJPdmVycmlkZSgpIik7CiAgICAgYnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCkgPSBpZGVudGlm
aWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDA4ZTNmYmQz
MjdkZjBhNDY2NjI3NzQyZDU5ZDRmZGE0NmNhYTdhYmUuLjIzOGNiYTMzOWEyYjZmNGE2MTFkODli
ZTczNzczYTk1M2U3ZGM2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC01Myw3ICs1Myw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB1cmxTY2hl
bWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29sczsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7Ci0gICAgZW5jb2RlciA8PCB1
aVByb2Nlc3NTREtWZXJzaW9uOwogICAgIElQQzo6ZW5jb2RlKGVuY29kZXIsIG5ldHdvcmtBVFND
b250ZXh0LmdldCgpKTsKICNlbmRpZgogI2lmIFVTRShTT1VQKQpAQCAtMTExLDggKzExMCw2IEBA
IGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NT
REtWZXJzaW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghSVBDOjpkZWNvZGUo
ZGVjb2RlciwgcmVzdWx0Lm5ldHdvcmtBVFNDb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTk3ZmM4ZGJkY2Jh
MDgyNTc5ZWQwOWFhODFjMzcyODAzNzYzMDg1NS4uNDM2OWIyMDA1Y2VmZGVlNjcyMzgxNDYwMzMx
MTZiNjg0ZDAyOTQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNjYsNyAr
NjYsNiBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7Ci0g
ICAgdWludDMyX3QgdWlQcm9jZXNzU0RLVmVyc2lvbiB7IDAgfTsKICAgICBSZXRhaW5QdHI8Q0ZE
YXRhUmVmPiBuZXR3b3JrQVRTQ29udGV4dDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5k
ZXggNWZiZTgxZDY4NmI5Yzc0ZDdkZWI5Njg1NjQwMzgxM2ZlNjdlZGYyMC4uZDhiMzEwZjEwZGE1
ZjczZmQzOGYyYTlhMGIyODJkMDEzOTJiMTQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtNzMs
OSArNzMsNiBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplTmV0d29ya1NldHRpbmdzKCkKIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3NDb2NvYShj
b25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAg
ICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy51aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24ocGFy
YW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9uKTsKLQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29v
a2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGls
aWFyeVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5j
cHAKaW5kZXggZGJiZTFiZjA5MDM1ZmE0ZDMwMzBlZTFlNDdlOWY3MjI1ZTJmMTBhMy4uYjM3NDU5
NWE0MDZmMTE5Y2I3ZjU4MjkxNTBhMjc4MGUwZDQ2ZjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV4aWxpYXJ5UHJvY2Vzcy5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBBdXhpbGlhcnlQ
cm9jZXNzOjppbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMKICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UocGFyYW1ldGVycy5wcm9j
ZXNzSWRlbnRpZmllciwgIlVuYWJsZSB0byBpbml0aWFsaXplIGNoaWxkIHByb2Nlc3Mgd2l0aG91
dCBhIFdlYkNvcmUgcHJvY2VzcyBpZGVudGlmaWVyIik7CiAgICAgUHJvY2Vzczo6c2V0SWRlbnRp
ZmllcigqcGFyYW1ldGVycy5wcm9jZXNzSWRlbnRpZmllcik7CiAKLSAgICBwbGF0Zm9ybUluaXRp
YWxpemUoKTsKKyAgICBwbGF0Zm9ybUluaXRpYWxpemUocGFyYW1ldGVycyk7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBtX3ByaW9yaXR5Qm9vc3RNZXNzYWdlID0gcGFyYW1ldGVycy5wcmlv
cml0eUJvb3N0TWVzc2FnZTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBPcHRpb25hbDxzdGQ6OnBhaXI8
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBJUEM6OkF0dGFjaG1lbnQ+PiBBdXhpbGlhcnlQ
cm9jZQogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQordm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaAppbmRleCBkOGIzYjE0
Nzk2OTcyZjRlYWE0NDg4NDQ5Nzc0MTM1OTI2MzgwZWEwLi4yNzBjNjY5ZGMxYTYyZjAwOWQzNzll
YjRjNzNmYTNjNzkxOTc3ZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhp
bGlhcnlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vz
cy5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdGVybWluYXRpb25U
aW1lckZpcmVkKCk7CiAKLSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAgIHZvaWQg
cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRmb3JtU3RvcFJ1bkxvb3AoKTsKIAogICAgIC8vIFRo
ZSB0aW1lb3V0LCBpbiBzZWNvbmRzLCBiZWZvcmUgdGhpcyBwcm9jZXNzIHdpbGwgYmUgdGVybWlu
YXRlZCBpZiB0ZXJtaW5hdGlvbgpAQCAtMTYzLDYgKzE2Myw4IEBAIHByaXZhdGU6CiBzdHJ1Y3Qg
QXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIHVp
UHJvY2Vzc05hbWU7CiAgICAgU3RyaW5nIGNsaWVudElkZW50aWZpZXI7CisgICAgU3RyaW5nIGNs
aWVudEJ1bmRsZUlkZW50aWZpZXI7CisgICAgdWludDMyX3QgY2xpZW50U0RLVmVyc2lvbjsKICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcHJvY2Vzc0lkZW50aWZpZXI7
CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOwog
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1t
CmluZGV4IGNmZmJlZDcwN2RjZTdlN2RiMTg1NjkyYzg4NDM3YTI0NDI5NzMyODMuLjAyNzczNTEy
ZGQxMTg5MWU0MWM4MDk5MGVhNzQ3ZGZiMDEzMDgzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KQEAgLTI4LDEwICsyOCw0
MiBAQAogCiAjaW1wb3J0ICJXS0NyYXNoUmVwb3J0ZXIuaCIKICNpbXBvcnQgIlhQQ1NlcnZpY2VF
bnRyeVBvaW50LmgiCisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQg
PG1hY2gvdGFzay5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgorI2ltcG9y
dCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkK
K3N0YXRpYyB2b2lkIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKQoreworICAgIC8v
IFNldCB0YXNrX2xhdGVuY3kgYW5kIHRhc2tfdGhyb3VnaHB1dCBRT1MgdGllcnMgYXMgYXBwcm9w
cmlhdGUgZm9yIGEgdmlzaWJsZSBhcHBsaWNhdGlvbi4KKyAgICBzdHJ1Y3QgdGFza19xb3NfcG9s
aWN5IHFvc2luZm8gPSB7IExBVEVOQ1lfUU9TX1RJRVJfMCwgVEhST1VHSFBVVF9RT1NfVElFUl8w
IH07CisgICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfcG9saWN5X3NldChtYWNoX3Rhc2tfc2Vs
ZigpLCBUQVNLX0JBU0VfUU9TX1BPTElDWSwgKHRhc2tfcG9saWN5X3QpJnFvc2luZm8sIFRBU0tf
UU9TX1BPTElDWV9DT1VOVCk7CisgICAgQVNTRVJUX1VOVVNFRChrciwga3IgPT0gS0VSTl9TVUND
RVNTKTsKK30KKyNlbmRpZgorCit2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQoreworI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisg
ICAgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpOworI2VuZGlmCisKKyAgICBGbG9h
dGluZ1BvaW50RW52aXJvbm1lbnQmIGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudCA9IEZsb2F0aW5n
UG9pbnRFbnZpcm9ubWVudDo6c2luZ2xldG9uKCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgIGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5l
bmFibGVEZW5vcm1hbFN1cHBvcnQoKTsKKyNlbmRpZgorICAgIGZsb2F0aW5nUG9pbnRFbnZpcm9u
bWVudC5zYXZlTWFpblRocmVhZEVudmlyb25tZW50KCk7CisKKyAgICBbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlUGF0aF1dOworCisgICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50QnVuZGxlSWRlbnRpZmllcik7CisgICAgc2V0
QXBwbGljYXRpb25TREtWZXJzaW9uKHBhcmFtZXRlcnMuY2xpZW50U0RLVmVyc2lvbik7Cit9CisK
IHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiB7CiAgICAgYXV0byBlcnJv
ck1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJSZWNlaXZlZCBpbnZhbGlkIG1lc3NhZ2U6ICciLCBkZXNj
cmlwdGlvbihtZXNzYWdlTmFtZSksICInICgiLCBtZXNzYWdlTmFtZSwgJyknKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vy
dmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKaW5k
ZXggZDk0YmM5YzU1OWQ1Mzc0YjkxYmVmZGQ1MTg0Njg3YzkxYmMzZjIwZC4uYmE2ZDNkYzM4MDZm
MTNiZjQzZDI1M2Q3NzMyYmJhYjk1YWE1NTlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRy
eVBvaW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgKQEAgLTYxLDYgKzYxLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRDb25uZWN0aW9uSWRlbnRpZmllcihJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXImIGlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRQ
cm9jZXNzSWRlbnRpZmllcihXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciYpOwogICAgIHZpcnR1
YWwgYm9vbCBnZXRDbGllbnRJZGVudGlmaWVyKFN0cmluZyYgY2xpZW50SWRlbnRpZmllcik7Cisg
ICAgdmlydHVhbCBib29sIGdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRC
dW5kbGVJZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RLVmVyc2lvbih1
aW50MzJfdCYgY2xpZW50U0RLVmVyc2lvbik7CiAgICAgdmlydHVhbCBib29sIGdldENsaWVudFBy
b2Nlc3NOYW1lKFN0cmluZyYgY2xpZW50UHJvY2Vzc05hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBn
ZXRFeHRyYUluaXRpYWxpemF0aW9uRGF0YShIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGEpOwogCkBAIC0xMTQsNiArMTE2LDEyIEBAIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50SWRlbnRpZmll
cihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZpZXIpKQogICAgICAgICBleGl0KEVYSVRfRkFJTFVS
RSk7CiAKKyAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIocGFyYW1l
dGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKSkKKyAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUp
OworCisgICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRTREtWZXJzaW9uKHBhcmFtZXRlcnMuY2xp
ZW50U0RLVmVyc2lvbikpCisgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKwogICAgIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyOwogICAgIGlmICghZGVsZWdh
dGUuZ2V0UHJvY2Vzc0lkZW50aWZpZXIocHJvY2Vzc0lkZW50aWZpZXIpKQogICAgICAgICBleGl0
KEVYSVRfRkFJTFVSRSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggMGExNDI1YmNhNTZkYWE2NjY3N2Y5N2M1MjNj
OTNlNmQ5NDk4ZWZjZi4uMWE0MTAwMGYxMmY2ZjdmZmMxYjc2MTQyZGFiMjg5OWFiZjhkMmY3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50
cnlQb2ludC5tbQpAQCAtNzIsOSArNzIsMjEgQEAgYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJE
ZWxlZ2F0ZTo6Z2V0Q29ubmVjdGlvbklkZW50aWZpZXIoSVBDOjpDb25uZWN0aW9uOjpJZGUKIGJv
b2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudElkZW50aWZpZXIoU3Ry
aW5nJiBjbGllbnRJZGVudGlmaWVyKQogewogICAgIGNsaWVudElkZW50aWZpZXIgPSB4cGNfZGlj
dGlvbmFyeV9nZXRfc3RyaW5nKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LWlkZW50aWZp
ZXIiKTsKLSAgICBpZiAoY2xpZW50SWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gIWNsaWVudElkZW50aWZpZXIu
aXNFbXB0eSgpOworfQorCitib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRD
bGllbnRCdW5kbGVJZGVudGlmaWVyKFN0cmluZyYgY2xpZW50QnVuZGxlSWRlbnRpZmllcikKK3sK
KyAgICBjbGllbnRCdW5kbGVJZGVudGlmaWVyID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyht
X2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1idW5kbGUtaWRlbnRpZmllciIpOworICAgIHJl
dHVybiAhY2xpZW50QnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCk7Cit9CisKK2Jvb2wgWFBDU2Vy
dmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1ZlcnNpb24odWludDMyX3QmIGNs
aWVudFNES1ZlcnNpb24pCit7CisgICAgYXV0byBzdHJpbmcgPSB4cGNfZGljdGlvbmFyeV9nZXRf
c3RyaW5nKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay12ZXJzaW9uIik7CisgICAg
Ym9vbCBvazsKKyAgICBjbGllbnRTREtWZXJzaW9uID0gY2hhcmFjdGVyc1RvVUludFN0cmljdChy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oc3RyaW5nKSwgc3RyaW5nID8gc3RkOjpzdHJs
ZW4oc3RyaW5nKSA6IDAsICZvayk7CisgICAgcmV0dXJuIG9rOwogfQogCiBib29sIFhQQ1NlcnZp
Y2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRQcm9jZXNzSWRlbnRpZmllcihQcm9jZXNzSWRlbnRp
ZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZGJlZTg0MzI5OGY2ZjU1ZmJlYjhhNzRm
MTU2YzI0OTBjMjY4NzczYS4uOTBjMTcwMDY5NjY4ZmUyYTIxZjgzZTIxNTlkMzEwMzZkNDg1NTI0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTk2LDcgKzk2LDYgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IHVp
UHJvY2Vzc1NES1ZlcnNpb247CiAgICAgZW5jb2RlciA8PCBsYXRlbmN5UU9TOwogICAgIGVuY29k
ZXIgPDwgdGhyb3VnaHB1dFFPUzsKICNlbmRpZgpAQCAtMTE5LDYgKzExOCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIAogICAgIGVuY29kZXIgPDwgbWVtb3J5Q2FjaGVEaXNhYmxlZDsKICAgICBlbmNvZGVy
IDw8IGF0dHJTdHlsZUVuYWJsZWQ7CisgICAgZW5jb2RlciA8PCBzaG91bGRUaHJvd0V4Y2VwdGlv
bkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbjsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQogICAgIGVuY29kZXIgPDwgaGFzSW1hZ2VTZXJ2aWNlczsKQEAgLTMyMSw4ICszMjEs
NiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy51aVByb2Nlc3NTREtWZXJzaW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5sYXRlbmN5UU9TKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50aHJvdWdocHV0UU9TKSkK
QEAgLTM3MSw2ICszNjksOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF0dHJTdHlsZUVu
YWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhhc0ltYWdlU2VydmljZXMp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCmluZGV4IDNkNTczZTM2MzUzMGY2YzQ3ZDkzYjJmN2UzYTdjZTIyMDdiNTQ0NzcuLmQ1
YTgzNDVkMzI1YjIwOTA1Mjc3Zjg4MzE5NGQ1MzlhODhmN2Y4YjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEyNiw3
ICsxMjYsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9v
bCBoYXNTdHlsdXNEZXZpY2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbWVtb3J5Q2FjaGVEaXNhYmxl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBi
b29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgc2hv
dWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24geyB0cnVlIH07
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBib29sIGhhc0ltYWdlU2Vydmlj
ZXMgeyBmYWxzZSB9OwpAQCAtMTQwLDcgKzE0MCw2IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFN0cmluZyB1aVByb2Nl
c3NCdW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IHVpUHJvY2Vzc1NES1ZlcnNpb24geyAw
IH07CiAgICAgaW50IGxhdGVuY3lRT1MgeyAwIH07CiAgICAgaW50IHRocm91Z2hwdXRRT1MgeyAw
IH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9BdXhpbGlh
cnlQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nl
c3NJT1MubW0KaW5kZXggNDA1NzVkYzIyMzNjZGEzZjI5NDY0OGMxNDA4ZDc0ZTE4ZDNhZGUwOS4u
OTFlNTBiM2EzYjg3YjAwOWQ0YzYzZGY4ZDU2NzcyZTRiMTllMzAyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1MubW0KQEAgLTQxLDE0ICs0MSw2
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZSgpCi17Ci0gICAgRmxvYXRpbmdQb2ludEVudmlyb25tZW50JiBmbG9hdGlu
Z1BvaW50RW52aXJvbm1lbnQgPSBGbG9hdGluZ1BvaW50RW52aXJvbm1lbnQ6OnNpbmdsZXRvbigp
OyAKLSAgICBmbG9hdGluZ1BvaW50RW52aXJvbm1lbnQuZW5hYmxlRGVub3JtYWxTdXBwb3J0KCk7
IAotICAgIGZsb2F0aW5nUG9pbnRFbnZpcm9ubWVudC5zYXZlTWFpblRocmVhZEVudmlyb25tZW50
KCk7IAotICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERp
cmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07Ci19Ci0KIHZv
aWQgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmKQogewogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1tCmluZGV4IDU3NDY4MmQx
MzlhYmVkYzZlNzgzNjY2MjM2NWU5NDQ0ZTRmMmUyOTMuLjNiNWU5Y2M5MjMzZDNjMTllMDNiNzA0
M2YxNzY2MjBhNGNiYmM1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9B
dXhpbGlhcnlQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhp
bGlhcnlQcm9jZXNzTWFjLm1tCkBAIC0zNiw3ICszNiw2IEBACiAjaW1wb3J0ICJXS0ZvdW5kYXRp
b24uaCIKICNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0ZpbGVIYW5kbGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRmxvYXRpbmdQb2ludEVudmlyb25tZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb24uaD4KICNpbXBvcnQgPG1hY2gtby9k
eWxkLmg+CiAjaW1wb3J0IDxtYWNoL21hY2guaD4KQEAgLTE0NSwxNCArMTQ0LDYgQEAgc3RydWN0
IFNhbmRib3hJbmZvIHsKIGNvbnN0ZXhwciB1aW50MzJfdCBDYWNoZWRTYW5kYm94VmVyc2lvbk51
bWJlciA9IDE7CiAjZW5kaWYgLy8gVVNFKENBQ0hFX0NPTVBJTEVEX1NBTkRCT1gpCiAKLXN0YXRp
YyB2b2lkIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xpY3koKQotewotICAgIC8vIFNldCB0
YXNrX2xhdGVuY3kgYW5kIHRhc2tfdGhyb3VnaHB1dCBRT1MgdGllcnMgYXMgYXBwcm9wcmlhdGUg
Zm9yIGEgdmlzaWJsZSBhcHBsaWNhdGlvbi4KLSAgICBzdHJ1Y3QgdGFza19xb3NfcG9saWN5IHFv
c2luZm8gPSB7IExBVEVOQ1lfUU9TX1RJRVJfMCwgVEhST1VHSFBVVF9RT1NfVElFUl8wIH07Ci0g
ICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfcG9saWN5X3NldChtYWNoX3Rhc2tfc2VsZigpLCBU
QVNLX0JBU0VfUU9TX1BPTElDWSwgKHRhc2tfcG9saWN5X3QpJnFvc2luZm8sIFRBU0tfUU9TX1BP
TElDWV9DT1VOVCk7Ci0gICAgQVNTRVJUX1VOVVNFRChrciwga3IgPT0gS0VSTl9TVUNDRVNTKTsK
LX0KLQogdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpsYXVuY2hTZXJ2aWNlc0NoZWNrSW4oKQogewog
I2lmIEhBVkUoQ1NDSEVDS0ZJWERJU0FCTEUpCkBAIC0xNjQsMTUgKzE1NSw2IEBAIHZvaWQgQXV4
aWxpYXJ5UHJvY2Vzczo6bGF1bmNoU2VydmljZXNDaGVja0luKCkKICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiB1bnVzZWQgPSBfTFNBcHBsaWNhdGlvbkNoZWNrSW4oa0xTRGVmYXVsdFNl
c3Npb25JRCwgQ0ZCdW5kbGVHZXRJbmZvRGljdGlvbmFyeShDRkJ1bmRsZUdldE1haW5CdW5kbGUo
KSkpOwogfQogCi12b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCi17
Ci0gICAgaW5pdGlhbGl6ZVRpbWVyQ29hbGVzY2luZ1BvbGljeSgpOwotCi0gICAgRmxvYXRpbmdQ
b2ludEVudmlyb25tZW50OjpzaW5nbGV0b24oKS5zYXZlTWFpblRocmVhZEVudmlyb25tZW50KCk7
Ci0KLSAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNoYW5nZUN1cnJlbnREaXJl
Y3RvcnlQYXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF1dOwotfQotCiBzdGF0
aWMgT1NTdGF0dXMgZW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUoKQogewogI2lmICFQ
TEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMTg1ODVmNjFi
YjZlY2FiZWMzOWZmMGMwM2I4NjJjNjU4NTZkY2EyNC4uZDE2ZWQ3NzUzZmE1OWZjODdlYTk0MDJm
NWZmNDg3MjUyNWVkMzJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKQEAgLTUyLDYgKzUyLDcg
QEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Ojpjb3B5KCkKICAgICBjb3B5LT5tX2Z1bGx5U3luY2hyb25vdXNNb2RlSXNBbGxvd2VkRm9yVGVz
dGluZyA9IHRoaXMtPm1fZnVsbHlTeW5jaHJvbm91c01vZGVJc0FsbG93ZWRGb3JUZXN0aW5nOwog
ICAgIGNvcHktPm1faWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0c0ZvclRlc3Rpbmcg
PSB0aGlzLT5tX2lnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nOwog
ICAgIGNvcHktPm1fYXR0clN0eWxlRW5hYmxlZCA9IHRoaXMtPm1fYXR0clN0eWxlRW5hYmxlZDsK
KyAgICBjb3B5LT5tX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xh
cmF0aW9uID0gdGhpcy0+bV9zaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVk
ZWNsYXJhdGlvbjsKICAgICBjb3B5LT5tX292ZXJyaWRlTGFuZ3VhZ2VzID0gdGhpcy0+bV9vdmVy
cmlkZUxhbmd1YWdlczsKICAgICBjb3B5LT5tX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0
eSA9IHRoaXMtPm1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5OwogICAgIGNvcHktPm1f
c2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbiA9IHRoaXMtPm1fc2hvdWxkVGFrZVVJQmFj
a2dyb3VuZEFzc2VydGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCA2NDkyNDkwMmYxOTgxMTc5
MjUzN2ExNWEzMmVkNGQ3MDZkYWY5NjcwLi4xZjUwNzljODVmZGI5NTRjZDZhNmM3YzljZjcwMTli
NGQyYzE2Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC05NCw2ICs5NCw5IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0clN0eWxl
RW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QXR0clN0eWxlRW5hYmxlZChib29sIGVuYWJsZWQpIHsg
bV9hdHRyU3R5bGVFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIAorICAgIGJvb2wgc2hvdWxkVGhy
b3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX3Nob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uOyB9
CisgICAgdm9pZCBzZXRTaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNs
YXJhdGlvbihib29sIHNob3VsZFRocm93KSB7IG1fc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9i
YWxDb25zdGFudFJlZGVjbGFyYXRpb24gPSBzaG91bGRUaHJvdzsgfQogCiAgICAgY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYgb3ZlcnJpZGVMYW5ndWFnZXMoKSBjb25zdCB7IHJldHVybiBtX292
ZXJyaWRlTGFuZ3VhZ2VzOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZUxhbmd1YWdlcyhWZWN0b3I8
V1RGOjpTdHJpbmc+JiYgbGFuZ3VhZ2VzKSB7IG1fb3ZlcnJpZGVMYW5ndWFnZXMgPSBXVEZNb3Zl
KGxhbmd1YWdlcyk7IH0KQEAgLTE1Niw2ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9m
dWxseVN5bmNocm9ub3VzTW9kZUlzQWxsb3dlZEZvclRlc3RpbmcgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2F0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9z
aG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiB7IHRydWUg
fTsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgYm9v
bCBtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24geyB0cnVlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmgKaW5kZXggNWYyMTM5NzBhY2ZjMDM5NjgzOWE2MTNiYjhlZTk0MDdiZmU4
ODgxZS4uZDRiNjUxNzdmOWZlNTkzNTEwYmVhNjQ4MzJkNDI1NTY5M2JlNTRiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtNDAsNiArNDAsOSBAQCBXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGln
bm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
YXR0clN0eWxlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIu
MikpOwogCisvLyBEZWZhdWx0cyB0byBZRVMuCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBz
aG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRpb25hbFJlYWRBY2Nl
c3NBbGxvd2VkVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsK
IAogI2lmIFRBUkdFVF9PU19JUEhPTkUgJiYgIVRBUkdFVF9PU19TSU1VTEFUT1IKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDllMGQ3OTBhM2QzNTI2MTNlNjJhN2FmNjNlMzU5
MzNkZTJiMGFiNTYuLjkzZDBiMWVkODA2ZWU2OThiZGY1MWE3MDIyYjBjYjVlYWJiYWE5NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMTQxLDYgKzE0MSwxNiBAQCAtICh2
b2lkKXNldEF0dHJTdHlsZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAogICAgIHJldHVybiBfcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLT5zZXRBdHRyU3R5bGVFbmFibGVkKGVuYWJsZWQpOwogfQogCist
IChCT09MKXNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9u
Cit7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNob3VsZFRocm93RXhj
ZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0
U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb246KEJPT0wp
c2hvdWxkVGhyb3cKK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0
U2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24oc2hvdWxk
VGhyb3cpOworfQorCiAtIChOU0FycmF5PE5TVVJMICo+ICopYWRkaXRpb25hbFJlYWRBY2Nlc3NB
bGxvd2VkVVJMcwogewogICAgIGF1dG8gcGF0aHMgPSBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LT5hZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRQYXRocygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZGIwMDlh
ZDI4MmZiYzA3NDQ5YjIxMjU3MTA3NjkyNDIwM2FmMTk1Ny4uNzYyNmNiOGIyZDdkYjk1OTA3ZDQ5
ZTIzMTViOWRkNTA0OTFkMmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0zMjAsNyArMzIwLDYgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRo
b3V0UmVzb2x2aW5nUGF0aChwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aCwg
U2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHksIHBhcmFtZXRlcnMudWlQcm9jZXNzQnVu
ZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIHBhcmFtZXRlcnMudWlQcm9j
ZXNzQnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOwotICAg
IHBhcmFtZXRlcnMudWlQcm9jZXNzU0RLVmVyc2lvbiA9IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigp
OwogCiAgICAgcGFyYW1ldGVycy5sYXRlbmN5UU9TID0gd2ViUHJvY2Vzc0xhdGVuY3lRT1MoKTsK
ICAgICBwYXJhbWV0ZXJzLnRocm91Z2hwdXRRT1MgPSB3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygp
OwpAQCAtNDgyLDcgKzQ4MSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKLSAg
ICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1NES1ZlcnNpb24gPSBhcHBsaWNhdGlvblNES1ZlcnNpb24o
KTsKIAogICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDY3YzZlOTY2OTk1
ZDM3NDZhMzFmYzMxM2NmM2JkYmM1NjYyYzQxZWYuLmFhNWMyODBlNjUyNTA1MDI2NjU3N2Y4NzM0
ZGU3ZDI0NmZmYWY5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjcsNiArMjcsNyBAQAog
I2ltcG9ydCAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzRGVm
YXVsdFZhbHVlcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aD4KICNpbXBvcnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2lt
cG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CkBAIC0zOSw2ICs0MCw3IEBACiAjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvVGhy
ZWFkaW5nLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29j
b2EuaD4KICNpbXBvcnQgPHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaD4KICNpbXBvcnQgPHd0Zi9z
cGkvZGFyd2luL1hQQ1NQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjA3
LDYgKzIwOSw4IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICB4
cGNfZGljdGlvbmFyeV9zZXRfbWFjaF9zZW5kKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJzZXJ2
ZXItcG9ydCIsIGxpc3RlbmluZ1BvcnQpOwogCiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmlu
Zyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWlkZW50aWZpZXIiLCAhY2xpZW50SWRl
bnRpZmllci5pc0VtcHR5KCkgPyBjbGllbnRJZGVudGlmaWVyLnV0ZjgoKS5kYXRhKCkgOiAqX05T
R2V0UHJvZ25hbWUoKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBN
ZXNzYWdlLmdldCgpLCAiY2xpZW50LWJ1bmRsZS1pZGVudGlmaWVyIiwgV2ViQ29yZTo6YXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSk7CisgICAgeHBjX2RpY3Rpb25h
cnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LXNkay12ZXJzaW9u
IiwgU3RyaW5nOjpudW1iZXIoYXBwbGljYXRpb25TREtWZXJzaW9uKCkpLnV0ZjgoKS5kYXRhKCkp
OwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwg
InByb2Nlc3MtaWRlbnRpZmllciIsIFN0cmluZzo6bnVtYmVyKG1fbGF1bmNoT3B0aW9ucy5wcm9j
ZXNzSWRlbnRpZmllci50b1VJbnQ2NCgpKS51dGY4KCkuZGF0YSgpKTsKICAgICB4cGNfZGljdGlv
bmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJ1aS1wcm9jZXNzLW5hbWUi
LCBbW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBwcm9jZXNzTmFtZV0gVVRGOFN0cmluZ10p
OwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwg
InNlcnZpY2UtbmFtZSIsIG5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCmluZGV4IGM3MDEzNjYyYjYyMWFhNjNjNjA1YjM5YTg3ZjcwMmVlZTUyNzRlZmEu
LjVkNmQxMWE0MGE5Zjg0MzExMTg2YjdlMmYyNjQxY2YxZDk5ZTg0MzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTgyNiw2ICs4MjYsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkm
IHByb2Nlc3MsIFdlYnNpdGVEYQogCiAgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVk
ID0gbV9tZW1vcnlDYWNoZURpc2FibGVkOwogICAgIHBhcmFtZXRlcnMuYXR0clN0eWxlRW5hYmxl
ZCA9IG1fY29uZmlndXJhdGlvbi0+YXR0clN0eWxlRW5hYmxlZCgpOworICAgIHBhcmFtZXRlcnMu
c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24gPSBtX2Nv
bmZpZ3VyYXRpb24tPnNob3VsZFRocm93RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xh
cmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBhdXRvJiBzZXJ2
aWNlQ29udHJvbGxlciA9IFNlcnZpY2VzQ29udHJvbGxlcjo6c2luZ2xldG9uKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTZiMWFkNDdjYzBhYzM5NTgzY2Rm
MWM5NDAyNTUzMDAwNTI5MzIxYy4uOWQ0NWU3YjI5NjVmY2E2ZWQ0MTNlYzcyNTdhZTg1ODYxYWQx
OTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDg0LDYg
KzQ4NCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgc2V0TWVtb3J5Q2FjaGVEaXNh
YmxlZChwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQpOwogCiAgICAgV2ViQ29yZTo6UnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRBdHRyU3R5bGVFbmFibGVk
KHBhcmFtZXRlcnMuYXR0clN0eWxlRW5hYmxlZCk7CisgICAgCisgICAgY29tbW9uVk0oKS5zZXRH
bG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyhwYXJhbWV0ZXJzLnNob3VsZFRocm93
RXhjZXB0aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uKTsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQogICAgIHNldEVuYWJsZWRTZXJ2aWNlcyhwYXJhbWV0ZXJzLmhhc0lt
YWdlU2VydmljZXMsIHBhcmFtZXRlcnMuaGFzU2VsZWN0aW9uU2VydmljZXMsIHBhcmFtZXRlcnMu
aGFzUmljaENvbnRlbnRTZXJ2aWNlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBlMDk5ZGU0MWRkN2M3YWMzZGZiNDAxNGNi
YmRmOWQ4YTQ1ZWMyNjVjLi5lYzE1MTMzYzNiOGJlNTEyMGMyZjAzMTcwOWUwNzQ3MGJkYzU4NmUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KQEAgLTI2MCw5ICsyNjAsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIFdl
YktpdDo6aW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkocGFyYW1ldGVycy53ZWJLaXRM
b2dnaW5nQ2hhbm5lbHMpOwogI2VuZGlmCiAKLSAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKLSAg
ICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy51aVByb2Nlc3NTREtWZXJzaW9u
KTsKLQogICAgIG1fdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IHBhcmFtZXRlcnMudWlQcm9j
ZXNzQnVuZGxlSWRlbnRpZmllcjsKIAogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>