<?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>229116</bug_id>
          
          <creation_ts>2021-08-14 21:53:02 -0700</creation_ts>
          <short_desc>WebKit might load custom URI scheme request content multiple times</short_desc>
          <delta_ts>2021-09-24 20:35:45 -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>WebKit Misc.</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230556</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=230783</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, InRadar</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yu-Wei Wu">wusyong9104</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>csaavedra</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1784364</commentid>
    <comment_count>0</comment_count>
    <who name="Yu-Wei Wu">wusyong9104</who>
    <bug_when>2021-08-14 21:53:02 -0700</bug_when>
    <thetext>Here&apos;s the repo and steps to reproduce the subtle bug I encountered:
https://github.com/wusyong/gtkbrowser

It opens 10 webview windows. All of them share the same web context which registers a &quot;gtk&quot; URL scheme that loads a simple HTML.
But some window&apos;s pages will be stolen by others. (One window will show nothing and the other will display two HTML files)
I&apos;ve tried adding locks but it has to be added after &quot;load_changed&quot; signal. Otherwise, the situation is still the same. And if I do so, it&apos;ll take a long time to show all windows (each window is displayed one by one)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791328</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-07 19:19:40 -0700</bug_when>
    <thetext>Unfortunately WebKit is invoking the WebKitURISchemeRequestCallback multiple times with the same WebKitURISchemeRequest object. Then WebKit gets very confused because the application called webkit_uri_scheme_request_finish() multiple times with the same object, but this is WebKit&apos;s fault for reusing the same WebKitURISchemeRequest in the first place. It actually trips an assert in WebKit::WebKitURISchemeHandler::platformStartTask, in WebKitWebContext.cpp:

ASSERT(addResult.isNewEntry);

but we compile out ASSERTs in release builds, and nobody tests debug builds because they ASSERT too much, because nobody tests debug builds. :)

The problem is that the UI process uses task IDs to distinguish between different WebURLSchemeTask objects, and reasonably expects the task IDs to be globally-unique. But the task IDs are actually generated in the web process in WebURLSchemeTaskProxy::startLoading using ResourceLoader::identifier, which uses ProgressTracker::createUniqueIdentifier, which just increments a counter variable, so they&apos;re only unique to a given web process, not unique in the web process. In your test program, all 10 tasks have the same ID: 1. Oops!

It&apos;s a cross-platform bug btw, nothing GTK-specific here. Probably not hard to fix, but I&apos;m too tired to think it through tonight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791338</commentid>
    <comment_count>2</comment_count>
      <attachid>437584</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-07 20:03:37 -0700</bug_when>
    <thetext>Created attachment 437584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791339</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-07 20:09:09 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #1)
&gt; It&apos;s a cross-platform bug btw, nothing GTK-specific here. Probably not hard
&gt; to fix, but I&apos;m too tired to think it through tonight.

Well actually it was easy. The attached patch fixes the bug, but I need to write an API test before it is ready for real review. That said, I&apos;m CCing WK2 owners early to make sure owners are OK with this approach. Basically I just have WebURLSchemeTask store the task ID it receives from the web process and use it for all communications with the web process, but expose an entirely different task ID to the UI process.

BTW: great bug report, your test program made it easy to reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791340</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-07 20:11:09 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #1)
&gt; so they&apos;re only unique to a given web process, not unique in the
&gt; web process.

I meant to write: not unique in the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792077</commentid>
    <comment_count>5</comment_count>
      <attachid>437779</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 14:00:20 -0700</bug_when>
    <thetext>Created attachment 437779
Test case

For posterity, I&apos;m attaching the test case from https://github.com/wusyong/gtkbrowser/blob/master/browser.c</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792193</commentid>
    <comment_count>6</comment_count>
      <attachid>437816</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 18:13:56 -0700</bug_when>
    <thetext>Created attachment 437816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792194</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 18:14:53 -0700</bug_when>
    <thetext>Hi owners, this patch needs owner review. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792195</commentid>
    <comment_count>8</comment_count>
      <attachid>437816</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-09 18:15:30 -0700</bug_when>
    <thetext>Comment on attachment 437816
Patch

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

&gt; Source/WebKit/ChangeLog:13
&gt; +        unique in the web process. Ouch! Since we have multiple tasks with the same ID, they clobber

s/in the web process/in the UI process/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792196</commentid>
    <comment_count>9</comment_count>
      <attachid>437817</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 18:19:12 -0700</bug_when>
    <thetext>Created attachment 437817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792197</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 18:21:17 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #8) 
&gt; s/in the web process/in the UI process/

Oops, yes, copied that typo straight from comment #1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792198</commentid>
    <comment_count>11</comment_count>
      <attachid>437818</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 18:21:26 -0700</bug_when>
    <thetext>Created attachment 437818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792200</commentid>
    <comment_count>12</comment_count>
      <attachid>437820</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 18:25:43 -0700</bug_when>
    <thetext>Created attachment 437820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792209</commentid>
    <comment_count>13</comment_count>
      <attachid>437825</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-09 19:20:25 -0700</bug_when>
    <thetext>Created attachment 437825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792230</commentid>
    <comment_count>14</comment_count>
      <attachid>437825</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 20:45:24 -0700</bug_when>
    <thetext>Comment on attachment 437825
Patch

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

I looked into whether this problem affects WKWebView and it doesn&apos;t seem that it does because in WKWebView._initializeWithConfiguration we create a WebURLSchemeHandlerCocoa for each WKWebView and for each scheme.  You might consider doing something similar in webkit_web_context_register_uri_scheme to fix this instead to make the ports more similar instead of adding code only needed by one port in common port-agnostic code.

&gt; Source/WebKit/UIProcess/WebURLSchemeTask.h:105
&gt;      uint64_t m_identifier;
&gt; +    uint64_t m_webProcessTaskIdentifier;

We want to use strongly typed identifiers instead of expanding the use of uint64_t.  See PageIdentifier.h et al.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792333</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-10 07:43:10 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #14)
&gt; I looked into whether this problem affects WKWebView and it doesn&apos;t seem
&gt; that it does because in WKWebView._initializeWithConfiguration we create a
&gt; WebURLSchemeHandlerCocoa for each WKWebView and for each scheme.  You might
&gt; consider doing something similar in webkit_web_context_register_uri_scheme
&gt; to fix this instead to make the ports more similar instead of adding code
&gt; only needed by one port in common port-agnostic code.

Hm, that seems OK to me, but it would only make sense if we make some bigger cross-platform changes in WebURLSchemeHandler.h. Currently WebURLSchemeHandler::startTask and WebURLSchemeHandler::stopTask take a WebPageProxy parameter, implying that each task may safely use a different WebPageProxy. There is also WebURLSchemeHandler::stopAllTasksForPage. If we go with your approach, then we should change WebURLSchemeHandler to take the WebPageProxy as a parameter of its constructor instead, drop it as a parameter from the other functions, and rename stopAllTasksForPage to just stopAllTasks. Agreed? I kinda prefer my existing solution, but I&apos;ll try to implement this if you prefer. But I don&apos;t want to leave WebURLSchemeHandler broken, so it requires cross-platform changes either way.

&gt; &gt; Source/WebKit/UIProcess/WebURLSchemeTask.h:105
&gt; &gt;      uint64_t m_identifier;
&gt; &gt; +    uint64_t m_webProcessTaskIdentifier;
&gt; 
&gt; We want to use strongly typed identifiers instead of expanding the use of
&gt; uint64_t.  See PageIdentifier.h et al.

Yeah OK, makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792400</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-10 09:30:37 -0700</bug_when>
    <thetext>I don&apos;t think I have a strong opinion on the approach.  Your approach actually seemed fine to me, and I think it matches the WKURLSchemeHandler API closer to have one object that can be attached to multiple pages.  We may want to change WKWebView._initializeWithConfiguration.

But the strongly typed identifiers will help everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792554</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-10 15:19:00 -0700</bug_when>
    <thetext>OK, in that case I&apos;ll change to a strongly-typed identifier but otherwise keep the patch the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792559</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-10 15:29:31 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #17)
&gt; OK, in that case I&apos;ll change to a strongly-typed identifier but otherwise
&gt; keep the patch the same.

Actually, changing these to use ObjectIdentifier will require a significant amount of code changes that will significantly complicate this patch. It&apos;s cleaner to leave this patch as-is, and convert to ObjectIdentifier in a follow-up patch in a different bug. Will try that now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792621</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-10 17:32:38 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #16)
&gt; But the strongly typed identifiers will help everything.

This was a good idea, because it found a bug. My patch actually breaks WebPageProxy::stopURLSchemeTask by misusing the web process identifier in the UI process, which I failed to notice until I tried converting it to strongly typed identifiers. I don&apos;t immediately see an easy way to fix it, so will need to continue this next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793080</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-13 13:47:39 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #19)
&gt; This was a good idea, because it found a bug.

FWIW there was actually no bug in the initial patch after all. I just got confused when doing the refactoring to strongly-typed identifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793089</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-13 14:05:58 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #20)
&gt; FWIW there was actually no bug in the initial patch after all. I just got
&gt; confused when doing the refactoring to strongly-typed identifiers.

Just kidding, there really is a bug, but one level deeper, in WebURLSchemeHandler::stopTask. After my patch, this function receives web process task IDs but expects to operate on the UI process task IDs. Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793479</commentid>
    <comment_count>22</comment_count>
      <attachid>438183</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-14 15:52:36 -0700</bug_when>
    <thetext>Created attachment 438183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793483</commentid>
    <comment_count>23</comment_count>
      <attachid>438183</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-14 15:54:29 -0700</bug_when>
    <thetext>Comment on attachment 438183
Patch

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

OK Alex, here is round two. This is basically the same as the original patch but with WebURLSchemeHandler::stopTask fixed. OK?

I have a separate patch in bug #230278 that converts to strongly-typed identifiers. That patch is pretty big and would obscure the fix here if combined into one, so I think it&apos;s more appropriate to land them separately.

&gt; Source/WebKit/UIProcess/WebURLSchemeHandler.cpp:95
&gt; -void WebURLSchemeHandler::stopTask(WebPageProxy&amp; page, uint64_t taskIdentifier)
&gt; +void WebURLSchemeHandler::stopTaskWithIdentifier(WebPageProxy&amp; page, uint64_t taskIdentifier)

This is a little confusing, but it will be cleaned up in the patch in bug #230278.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793585</commentid>
    <comment_count>24</comment_count>
      <attachid>438183</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-14 20:20:53 -0700</bug_when>
    <thetext>Comment on attachment 438183
Patch

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

I really think the strong typing needs to be done before this.  It&apos;s hard to see whether this is correct or not.

&gt; Source/WebKit/UIProcess/WebURLSchemeHandler.cpp:113
&gt; +    for (auto&amp; t : m_tasks.values()) {
&gt; +        if (t-&gt;webProcessTaskID() == webProcessTaskIdentifier) {

This isn&apos;t good.  The whole point of a HashMap is so that we don&apos;t have to look at all the values.  This takes a O(1) algorithm and makes it an O(n) algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793704</commentid>
    <comment_count>25</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-15 08:14:53 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #24)
&gt; I really think the strong typing needs to be done before this.  It&apos;s hard to
&gt; see whether this is correct or not.

Problem is strong typing works really hard to avoid bugs like this, so it&apos;s quite awkward to introduce the strong typing without fixing this bug at the same time. It&apos;s possible, but I would have to explicitly write the mistake into the strong typing patch by explicitly converting from WebURLSchemeTaskProxyIdentifier to uint64 to WebURLSchemeTaskIdentifier. Then this follow-up patch would be simplified to just removing that forced mistake. So really it doesn&apos;t make sense to do it that way. Another alternative would be to do it all in one patch, which is actually what I have in bug #230278 right now, but that really obscures the nature of the fix by hiding it among a much larger diff. So that&apos;s why I split it up this way.

ObjectIdentifier is pretty great. The more we use it, the fewer mistakes we&apos;ll have.

&gt; &gt; Source/WebKit/UIProcess/WebURLSchemeHandler.cpp:113
&gt; &gt; +    for (auto&amp; t : m_tasks.values()) {
&gt; &gt; +        if (t-&gt;webProcessTaskID() == webProcessTaskIdentifier) {
&gt; 
&gt; This isn&apos;t good.  The whole point of a HashMap is so that we don&apos;t have to
&gt; look at all the values.  This takes a O(1) algorithm and makes it an O(n)
&gt; algorithm.

That&apos;s true. I was thinking it&apos;d be OK because I would expect the number of URL scheme tasks to always be very small (in general, there should only be one), but considering it today, I agree with you: there is already a second HashMap here to avoid iterating over the primary map elsewhere in this file, and its presence implies a design decision to avoid the cost of looping, and it would be inconsistent to loop here but not there.

The solution to avoid this is to add a third HashMap to WebURLSchemeHandler. Extra storage cost should be negligible since, again, the normal case is going to be zero or one task in flight. There will be some additional accounting complexity in the other functions of this file since WebURLSchemeHandler would be maintaining three HashMaps in sync rather than the current two.

So there is a trade-off between time vs. storage. But I suspect it doesn&apos;t matter much at all either way, because the maps should be very small, so I&apos;m fine with whichever way you prefer. Do you want me to add the third HashMap? (If not, we would need to retain the loop here.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793709</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-15 08:19:47 -0700</bug_when>
    <thetext>Hm, it looks like this latest patch actually broke the URI scheme handler test for both GTK and Mac ports (two separate tests). That&apos;s no good. I&apos;ll need to investigate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793717</commentid>
    <comment_count>27</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-15 08:51:15 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #26)
&gt; Hm, it looks like this latest patch actually broke the URI scheme handler
&gt; test for both GTK and Mac ports (two separate tests). That&apos;s no good. I&apos;ll
&gt; need to investigate it.

Unfortunately the GTK test always passes for me locally. Drat. That makes this hard. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795199</commentid>
    <comment_count>28</comment_count>
      <attachid>438707</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-20 12:08:12 -0700</bug_when>
    <thetext>Created attachment 438707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795293</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-20 14:36:51 -0700</bug_when>
    <thetext>Committed r282783 (241918@main): &lt;https://commits.webkit.org/241918@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438707.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795294</commentid>
    <comment_count>30</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-20 14:37:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/83324926&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795559</commentid>
    <comment_count>31</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 08:21:15 -0700</bug_when>
    <thetext>Thanks Alex!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795561</commentid>
    <comment_count>32</comment_count>
    <who name="Yu-Wei Wu">wusyong9104</who>
    <bug_when>2021-09-21 08:25:17 -0700</bug_when>
    <thetext>The comments are detailed and patches are quick.
Realy appreciated. Thank you all!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795566</commentid>
    <comment_count>33</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 08:29:02 -0700</bug_when>
    <thetext>Unfortunately the new test is timing out on the bots. :/ Follow-up in bug #230556.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795575</commentid>
    <comment_count>34</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 08:42:30 -0700</bug_when>
    <thetext>(In reply to Yu-Wei Wu from comment #32)
&gt; The comments are detailed and patches are quick.
&gt; Realy appreciated. Thank you all!

Note the version of this patch that landed fixed the cross-platform bug, but the GTK/WPE API is still broken, so doesn&apos;t actually help you. We will follow up in that bug #230556.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437584</attachid>
            <date>2021-09-07 20:03:37 -0700</date>
            <delta_ts>2021-09-09 18:13:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210907220336.patch</filename>
            <type>text/plain</type>
            <size>6560</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzZGEzNThjZGM5YjZiZjYz
OGFkODZiYzM2YzQ4MWM3YmU2ZmVjYjMuLmI2M2YyN2ZiNDVkYmEyZmI1YTQzYjNiYTljMDdiOGYw
NmNiZDM5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDktMDcgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0
IGxvYWQgY3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVUkxTY2hlbWVUYXNrOjp3aWxsUGVyZm9ybVJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZVRhc2suaDoKKwogMjAyMS0wOS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBvcmlnaW4gcGFydGl0aW9uaW5nICh0b3Atb3Jp
Z2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5uZWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggZmY2OGQ2NGUxODAyYWRl
YmM0MDE0YjhiNjE3OTFhMDJmNGU0ZTRhMC4uNzkxMDZiNTFhZjY1OGExZjc2NGJhYTM3YWY4MzYx
MWY2NjViMTgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2No
ZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5jcHAKQEAgLTUxLDggKzUxLDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVS
TFNjaGVtZUhhbmRsZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhX
ZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZp
ZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIFN5bmNM
b2FkQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHRh
c2tJZGVudGlmaWVyID0gcGFyYW1ldGVycy50YXNrSWRlbnRpZmllcjsKLSAgICBhdXRvIHJlc3Vs
dCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUo
KnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICBhdXRvIHRhc2sgPSBXZWJVUkxTY2hlbWVU
YXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJh
bWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGF1dG8gdGFza0lkZW50
aWZpZXIgPSB0YXNrLT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFk
ZCh0YXNrSWRlbnRpZmllciwgV1RGTW92ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05l
d0VudHJ5KTsKIAogICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIu
YWRkKHBhZ2UuaWRlbnRpZmllcigpLCBIYXNoU2V0PHVpbnQ2NF90PigpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggOWUxZGJiZmM4ZTgyODgw
MWViMDg4M2EyNjAwZDFlYWEzZmZjZmZiNy4uN2Q1NmJkNjY3MTRmOWJmMTFiOGMxMTlmMzc3ZjBi
OTMyODEzN2YzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2No
ZW1lVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFz
ay5jcHAKQEAgLTQ1LDcgKzQ1LDggQEAgUmVmPFdlYlVSTFNjaGVtZVRhc2s+IFdlYlVSTFNjaGVt
ZVRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWIKIFdlYlVSTFNj
aGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwg
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlm
aWVyIHdlYlBhZ2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBTeW5j
TG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQogICAgIDogbV91
cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJlZihwcm9jZXNz
KSkKLSAgICAsIG1faWRlbnRpZmllcihwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyKQorICAgICwg
bV9pZGVudGlmaWVyKE9iamVjdElkZW50aWZpZXI8V2ViVVJMU2NoZW1lVGFzaz46OmdlbmVyYXRl
KCkudG9VSW50NjQoKSkKKyAgICAsIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyKHBhcmFtZXRl
cnMudGFza0lkZW50aWZpZXIpCiAgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmllcigp
KQogICAgICwgbV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0KFdURk1vdmUo
cGFyYW1ldGVycy5yZXF1ZXN0KSkKQEAgLTEwNiw3ICsxMDcsNyBAQCBhdXRvIFdlYlVSTFNjaGVt
ZVRhc2s6OndpbGxQZXJmb3JtUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNl
LCBSZXNvdQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7
CiAgICAgfTsKIAotICAgIHBhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFn
ZTo6VVJMU2NoZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVy
LT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBXVEZNb3Zl
KGlubmVyQ29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKG1f
dXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmll
ciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlvbkhhbmRsZXIpKTsK
IAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpAQCAtMTM4LDcgKzEzOSw3IEBA
IGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiByZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAg
ICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVU
YXNrRGlkUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigp
LCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1S
ZWRpcmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNz
VGFza0lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOwogCiAgICAg
cmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CkBAIC0xNjQsNyArMTY1LDcgQEAgYXV0byBX
ZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpIC0+IEUKICAgICBpZiAoaXNTeW5jKCkpCiAgICAgICAgIG1fc3luY1Jlc3Bv
bnNlID0gcmVzcG9uc2U7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVu
dGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJl
c3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNr
SWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlv
blR5cGU6Ok5vbmU7CiB9CiAKQEAgLTE5NCw3ICsxOTUsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRh
c2s6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRp
b25UeQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZl
RGF0YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBidWZm
ZXIuZ2V0KCkpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5p
ZGVudGlmaWVyKCksIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyLCBidWZmZXIuZ2V0KCkpLCBt
X3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTIy
NSw3ICsyMjYsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAgICAgICAgIG1fc3luY0RhdGEg
PSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmll
cigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2No
ZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgZXJy
b3IpLCBtX3dlYlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxldGVk
KCp0aGlzKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCmluZGV4IGVhYzA5YmRlY2ExZGVjMGNiMjE5
YWMxZDAzMzA4YjJlMjcyMzA5Y2UuLjYzYmU5MmU4M2RkZTRmNTZiOTc5ZmMwNTgzZmZhNDU1ZmEx
NDA5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRh
c2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAg
LTEwMiw2ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyPiBt
X3VybFNjaGVtZUhhbmRsZXI7CiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNz
OwogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICB1aW50NjRfdCBtX3dlYlByb2Nlc3NU
YXNrSWRlbnRpZmllcjsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7
CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcmVxdWVzdExv
Y2spOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>437779</attachid>
            <date>2021-09-09 14:00:20 -0700</date>
            <delta_ts>2021-09-09 14:00:20 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>test.c</filename>
            <type>text/x-csrc</type>
            <size>1665</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPGd0ay9ndGsuaD4KI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgoKc3RhdGlj
IHZvaWQgZGVzdHJveV93aW5fY2IoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a1dpZGdldCogd2luZG93
KQp7CiAgICBndGtfbWFpbl9xdWl0KCk7Cn0KCnN0YXRpYyBnYm9vbGVhbiBjbG9zZV93ZWJfY2Io
V2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrV2lkZ2V0KiB3aW5kb3cpCnsKICAgIGd0a193aWRn
ZXRfZGVzdHJveSh3aW5kb3cpOwogICAgcmV0dXJuIFRSVUU7Cn0KCnN0YXRpYyB2b2lkIHVyaV9z
Y2hlbWVfcmVxdWVzdF9jYiAoV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVzdCwgZ3BvaW50
ZXIgdXNlcl9kYXRhKQp7CiAgICBHSW5wdXRTdHJlYW0gKnN0cmVhbTsKICAgIGdzaXplICAgICAg
ICAgc3RyZWFtX2xlbmd0aDsKICAgIGdjaGFyICpjb250ZW50czsKICAgIGNvbnRlbnRzID0gZ19z
dHJkdXBfcHJpbnRmICgiPGh0bWw+PGJvZHk+PHA+RXhhbXBsZSBodG1sIHBhZ2U8L3A+PC9ib2R5
PjwvaHRtbD4iKTsKICAgIHN0cmVhbV9sZW5ndGggPSBzdHJsZW4gKGNvbnRlbnRzKTsKICAgIHN0
cmVhbSA9IGdfbWVtb3J5X2lucHV0X3N0cmVhbV9uZXdfZnJvbV9kYXRhIChjb250ZW50cywgc3Ry
ZWFtX2xlbmd0aCwgZ19mcmVlKTsKCiAgICB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2Zpbmlz
aCAocmVxdWVzdCwgc3RyZWFtLCBzdHJlYW1fbGVuZ3RoLCAidGV4dC9odG1sIik7CiAgICBnX29i
amVjdF91bnJlZiAoc3RyZWFtKTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ewogICAgZ3RrX2luaXQoJmFyZ2MsICZhcmd2KTsKICAgIGdjaGFyICp1cmwgPSAiZ3RrOi8vaW5k
ZXguaHRtbCI7CiAgICBpZiAoYXJnYyA9PSAyKQoJdXJsID0gYXJndlsxXTsKCiAgICBXZWJLaXRX
ZWJDb250ZXh0ICpjdHg7CiAgICBjdHggPSB3ZWJraXRfd2ViX2NvbnRleHRfbmV3KCk7CiAgICB3
ZWJraXRfd2ViX2NvbnRleHRfcmVnaXN0ZXJfdXJpX3NjaGVtZShjdHgsICJndGsiLCAoV2ViS2l0
VVJJU2NoZW1lUmVxdWVzdENhbGxiYWNrKXVyaV9zY2hlbWVfcmVxdWVzdF9jYiwgTlVMTCwgTlVM
TCk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKCUd0a1dpZGdldCAqd2luOwoJ
V2ViS2l0V2ViVmlldyAqd2ViOwoKCXdpbiA9IGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfVE9Q
TEVWRUwpOwoJZ3RrX3dpbmRvd19zZXRfZGVmYXVsdF9zaXplKEdUS19XSU5ET1cod2luKSwgMjAw
LCAyMDApOwoKCXdlYiA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3X3dpdGhf
Y29udGV4dChjdHgpKTsKCglndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHdpbiksIEdU
S19XSURHRVQod2ViKSk7CgoJZ19zaWduYWxfY29ubmVjdCh3aW4sICJkZXN0cm95IiwgR19DQUxM
QkFDSyhkZXN0cm95X3dpbl9jYiksIE5VTEwpOwoJZ19zaWduYWxfY29ubmVjdCh3ZWIsICJjbG9z
ZSIsIEdfQ0FMTEJBQ0soY2xvc2Vfd2ViX2NiKSwgd2luKTsKCgl3ZWJraXRfd2ViX3ZpZXdfbG9h
ZF91cmkod2ViLCB1cmwpOwoKCWd0a193aWRnZXRfZ3JhYl9mb2N1cyhHVEtfV0lER0VUKHdlYikp
OwoJZ3RrX3dpZGdldF9zaG93X2FsbCh3aW4pOwogICAgfQoKICAgIGd0a19tYWluKCk7CgogICAg
cmV0dXJuIDA7Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437816</attachid>
            <date>2021-09-09 18:13:56 -0700</date>
            <delta_ts>2021-09-09 18:21:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210909201355.patch</filename>
            <type>text/plain</type>
            <size>12758</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzZGEzNThjZGM5YjZiZjYz
OGFkODZiYzM2YzQ4MWM3YmU2ZmVjYjMuLjA1ZTcxYjVlNDFiZTQzYTJmNWQzZmYyYmY1ZTNiNmYw
ZTQzYTI5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMDkgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0
IGxvYWQgY3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IHRoZSBVSSBwcm9jZXNzIHVzZXMgdGFzayBJRHMgdG8gZGlzdGluZ3Vpc2ggYmV0
d2VlbiBkaWZmZXJlbnQKKyAgICAgICAgV2ViVVJMU2NoZW1lVGFzayBvYmplY3RzLCBhbmQgcmVh
c29uYWJseSBleHBlY3RzIHRoZSB0YXNrIElEcyB0byBiZSBnbG9iYWxseS11bmlxdWUuIEJ1dCB0
aGUKKyAgICAgICAgdGFzayBJRHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZCBpbiB0aGUgd2ViIHBy
b2Nlc3MgaW4gV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcKKyAgICAgICAgdXNp
bmcgUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIsIHdoaWNoIHVzZXMgUHJvZ3Jlc3NUcmFja2Vy
OjpjcmVhdGVVbmlxdWVJZGVudGlmaWVyLCB3aGljaAorICAgICAgICBqdXN0IGluY3JlbWVudHMg
YSBjb3VudGVyIHZhcmlhYmxlLCBzbyB0aGV5J3JlIG9ubHkgdW5pcXVlIHRvIGEgZ2l2ZW4gd2Vi
IHByb2Nlc3MsIG5vdAorICAgICAgICB1bmlxdWUgaW4gdGhlIHdlYiBwcm9jZXNzLiBPdWNoISBT
aW5jZSB3ZSBoYXZlIG11bHRpcGxlIHRhc2tzIHdpdGggdGhlIHNhbWUgSUQsIHRoZXkgY2xvYmJl
cgorICAgICAgICBlYWNoIG90aGVyIGluIHZhcmlvdXMgaW50ZXJuYWwgSGFzaFNldHMsIGFuZCB0
aGUgY2xvYmJlcmVkIHRhc2tzIG5ldmVyIGNvbXBsZXRlLCB3aGlsZSB0aGUKKyAgICAgICAgdGFz
a3MgdGhhdCBkb24ndCBnZXQgY2xvYmJlcmVkIG1heSB3aW5kIHVwIGNvbXBsZXRpbmcgbXVsdGlw
bGUgdGltZXMsIG9yIHdpdGggZXh0cmEgZGF0YQorICAgICAgICBmcm9tIHRoZSB0YXNrcyB0aGF0
IG5ldmVyIGZpbmlzaGVkLgorCisgICAgICAgIFNvbHV0aW9uIGlzIHRvIGp1c3QgdXNlIHNlcGFy
YXRlIHRhc2sgSURzIGdlbmVyYXRlZCBpbiB0aGUgVUkgcHJvY2VzcyB0byByZWZlciB0byB0aGUg
dGFza3MKKyAgICAgICAgaW4gdGhlIFVJIHByb2Nlc3MsIHRvIGVuc3VyZSB0YXNrIElEcyBhcmUg
cmVhbGx5IGdsb2JhbGx5LXVuaXF1ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3Rh
cnRUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2spOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjp3aWxsUGVyZm9ybVJlZGlyZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZURhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaDoKKwogMjAyMS0wOS0wNyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBvcmlnaW4gcGFydGl0aW9u
aW5nICh0b3Atb3JpZ2luL2ZyYW1lLW9yaWdpbikgZm9yIEJyb2FkY2FzdENoYW5uZWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggZmY2
OGQ2NGUxODAyYWRlYmM0MDE0YjhiNjE3OTFhMDJmNGU0ZTRhMC4uNzkxMDZiNTFhZjY1OGExZjc2
NGJhYTM3YWY4MzYxMWY2NjViMTgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTUxLDggKzUxLDkgQEAgV2ViVVJMU2NoZW1lSGFu
ZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRsZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6
OnN0YXJ0VGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
LSAgICBhdXRvIHRhc2tJZGVudGlmaWVyID0gcGFyYW1ldGVycy50YXNrSWRlbnRpZmllcjsKLSAg
ICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVU
YXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJh
bWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICBhdXRvIHRhc2sgPSBX
ZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwg
V1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGF1
dG8gdGFza0lkZW50aWZpZXIgPSB0YXNrLT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQg
PSBtX3Rhc2tzLmFkZCh0YXNrSWRlbnRpZmllciwgV1RGTW92ZSh0YXNrKSk7CiAgICAgQVNTRVJU
KHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFn
ZUlkZW50aWZpZXIuYWRkKHBhZ2UuaWRlbnRpZmllcigpLCBIYXNoU2V0PHVpbnQ2NF90PigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggOWUx
ZGJiZmM4ZTgyODgwMWViMDg4M2EyNjAwZDFlYWEzZmZjZmZiNy4uN2Q1NmJkNjY3MTRmOWJmMTFi
OGMxMTlmMzc3ZjBiOTMyODEzN2YzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lVGFzay5jcHAKQEAgLTQ1LDcgKzQ1LDggQEAgUmVmPFdlYlVSTFNjaGVtZVRhc2s+
IFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBX
ZWIKIFdlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxl
ciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVy
KQogICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCiAgICAgLCBtX3Byb2Nlc3MobWFr
ZVJlZihwcm9jZXNzKSkKLSAgICAsIG1faWRlbnRpZmllcihwYXJhbWV0ZXJzLnRhc2tJZGVudGlm
aWVyKQorICAgICwgbV9pZGVudGlmaWVyKE9iamVjdElkZW50aWZpZXI8V2ViVVJMU2NoZW1lVGFz
az46OmdlbmVyYXRlKCkudG9VSW50NjQoKSkKKyAgICAsIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlm
aWVyKHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIpCiAgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2Uu
aWRlbnRpZmllcigpKQogICAgICwgbV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1
ZXN0KFdURk1vdmUocGFyYW1ldGVycy5yZXF1ZXN0KSkKQEAgLTEwNiw3ICsxMDcsNyBAQCBhdXRv
IFdlYlVSTFNjaGVtZVRhc2s6OndpbGxQZXJmb3JtUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlLCBSZXNvdQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShyZXF1ZXN0KSk7CiAgICAgfTsKIAotICAgIHBhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxT
Y2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVl
c3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYWdlLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJl
ZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NU
YXNrSWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlv
bkhhbmRsZXIpKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpAQCAtMTM4
LDcgKzEzOSw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9u
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9
IHJlcXVlc3Q7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+
aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdl
SUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFz
a0RpZFBlcmZvcm1SZWRpcmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwg
bV93ZWJQcm9jZXNzVGFza0lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdl
SUQpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CkBAIC0xNjQsNyArMTY1
LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIC0+IEUKICAgICBpZiAoaXNTeW5jKCkpCiAgICAgICAg
IG1fc3luY1Jlc3BvbnNlID0gcmVzcG9uc2U7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVI
YW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJ
RCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNr
RGlkUmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dl
YlByb2Nlc3NUYXNrSWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0
dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTE5NCw3ICsxOTUsNyBAQCBhdXRvIFdl
YlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVy
KSAtPiBFeGNlcHRpb25UeQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAg
ICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRh
c2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVu
dGlmaWVyLCBidWZmZXIuZ2V0KCkpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hl
bWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyLCBidWZm
ZXIuZ2V0KCkpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7
CiB9CiAKQEAgLTIyNSw3ICsyMjYsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBs
ZXRlKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAgICAgICAg
IG1fc3luY0RhdGEgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOworICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBs
ZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRl
bnRpZmllciwgZXJyb3IpLCBtX3dlYlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50
YXNrQ29tcGxldGVkKCp0aGlzKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCmluZGV4IGVhYzA5YmRl
Y2ExZGVjMGNiMjE5YWMxZDAzMzA4YjJlMjcyMzA5Y2UuLjYzYmU5MmU4M2RkZTRmNTZiOTc5ZmMw
NTgzZmZhNDU1ZmExNDA5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVUYXNrLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxXZWJVUkxTY2hl
bWVIYW5kbGVyPiBtX3VybFNjaGVtZUhhbmRsZXI7CiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94
eT4gbV9wcm9jZXNzOwogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICB1aW50NjRfdCBt
X3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllcjsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1f
cGFnZVByb3h5SUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdCBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fcmVxdWVzdExvY2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGExZGE5NzA4ZDc3YmUwNjQ4NjRjNmNmNmZjNGI4OTg3M2Y3OGNkYTkuLmY0
NTQ2NGEyMjgxNDk3MDc4OThlZTU4YTJmZGJiZjlkYzEyYzVjODkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMS0w
OS0wOSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAg
ICBXZWJLaXQgbWlnaHQgbG9hZCBjdXN0b20gVVJJIHNjaGVtZSByZXF1ZXN0IGNvbnRlbnQgbXVs
dGlwbGUgdGltZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyOTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIExldCdzIGxvYWQgdGhlIHNhbWUgVVJMIDUwIHRpbWVzIGFuZCBtYWtlIHN1cmUgYWxsIGxv
YWRzIGNvbXBsZXRlIHdpdGggdGhlIHNhbWUgY29udGVudC4KKyAgICAgICAgV2l0aG91dCBteSBm
aXgsIHRoZSB0ZXN0IGhhbmdzIGZvcmV2ZXIgc3Bpbm5pbmcgaXRzIG1haW4gbG9vcCwgYmVjYXVz
ZSBvbmx5IGEgZmV3IG9mIHRoZQorICAgICAgICByZXF1ZXN0cyBhY3R1YWxseSBjb21wbGV0ZSwg
c28gdGhlIHRlc3QgZ2V0cyBzdHVjayB3YWl0aW5nLgorCisgICAgICAgIE5vdGUgSSBwaWNrZWQg
NTAgYmVjYXVzZSB3aGVuIHJ1bm5pbmcgdGhlIHRlc3QgMTAwIHRpbWVzLCB3cGViYWNrZW5kLWZk
byBkaWVzIHRvIGFuCisgICAgICAgIHVucmVsYXRlZCBwcm9ibGVtOiBpdHMgaW50ZXJuYWwgV2F5
bGFuZCByZWdpc3RyeSBzdG9wcyByZWdpc3RlcmluZyBuZXcgZ2xvYmFsIG9iamVjdHMsIGFuZAor
ICAgICAgICBlYWNoIG5ldyB3ZWIgcHJvY2VzcyBzdGFydHMgY3Jhc2hpbmcuIFRoYXQncyB3ZWly
ZCwgYnV0IG5vdCB0aGUgcHJvYmxlbSB3ZSdyZSB0cnlpbmcgdG8KKyAgICAgICAgc29sdmUgdG9k
YXkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktp
dFdlYkNvbnRleHQuY3BwOgorICAgICAgICAobG9hZENoYW5nZWQpOgorICAgICAgICAodGVzdFdl
YkNvbnRleHRVUklTY2hlbWUpOgorCiAyMDIxLTA5LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcgKHRvcC1v
cmlnaW4vZnJhbWUtb3JpZ2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29u
dGV4dC5jcHAKaW5kZXggNTMyNTQ4YjFlNGUyYTBhZjVjOWEyZWUxYzMyMDZiY2JmMjg4ZjQzYS4u
ZTMxNGQ4MTNlMjg3Mzk3MDU0M2Q1MzEwZGFkODIxMjRlYTFhMjRlYSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdl
YkNvbnRleHQuY3BwCkBAIC0xMTMsNyArMTEzLDggQEAgcHVibGljOgogICAgICAgICB0ZXN0LT5t
X3VyaVNjaGVtZVJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJ
c0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHJlcXVlc3QpKTsKIAotICAgICAgICBn
X2Fzc2VydF90cnVlKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3KHJlcXVl
c3QpID09IHRlc3QtPm1fd2ViVmlldyk7CisgICAgICAgIGlmICh0ZXN0LT5tX3VyaVNjaGVtZVJl
cXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldykKKyAgICAgICAgICAgIGdfYXNzZXJ0X3RydWUo
d2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcocmVxdWVzdCkgPT0gdGVzdC0+
bV93ZWJWaWV3KTsKIAogICAgICAgICBjb25zdCBjaGFyKiBzY2hlbWUgPSB3ZWJraXRfdXJpX3Nj
aGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUocmVxdWVzdCk7CiAgICAgICAgIGdfYXNzZXJ0X25vbm51
bGwoc2NoZW1lKTsKQEAgLTE2NCw2ICsxNjUsOCBAQCBwdWJsaWM6CiAKICAgICBHUmVmUHRyPFdl
YktpdFVSSVNjaGVtZVJlcXVlc3Q+IG1fdXJpU2NoZW1lUmVxdWVzdDsKICAgICBIYXNoTWFwPFN0
cmluZywgVVJJU2NoZW1lSGFuZGxlcj4gbV9oYW5kbGVyc01hcDsKKyAgICBib29sIG1fdXJpU2No
ZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3IHsgdHJ1ZSB9OworICAgIGludCBtX2xv
YWRDb3VudGVyIHsgMCB9OwogfTsKIAogU3RyaW5nIGdlbmVyYXRlSFRNTENvbnRlbnQodW5zaWdu
ZWQgY29udGVudExlbmd0aCkKQEAgLTE5Myw2ICsxOTYsMTQgQEAgU3RyaW5nIGdlbmVyYXRlSFRN
TENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOwogfQogCitzdGF0aWMgdm9pZCBsb2FkQ2hhbmdlZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRMb2FkRXZlbnQgbG9hZEV2ZW50LCBXZWJWaWV3VGVzdCogdGVzdCkKK3sKKyAg
ICBpZiAobG9hZEV2ZW50ICE9IFdFQktJVF9MT0FEX0ZJTklTSEVEKQorICAgICAgICByZXR1cm47
CisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHdlYlZpZXcsIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KGxvYWRDaGFuZ2VkKSwgdGVzdCk7CisgICAgZ19tYWluX2xvb3Bf
cXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRleHRV
UklTY2hlbWUoVVJJU2NoZW1lVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICB0ZXN0
LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoImZvbyIsIGtCYXJIVE1MLCBzdHJsZW4oa0JhckhU
TUwpLCAidGV4dC9odG1sIik7CkBAIC0yNzgsNiArMjg5LDQwIEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAg
ICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5n
VGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVkKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5t
X2xvYWRGYWlsZWQpOwogICAgIGdfYXNzZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCksIEdf
SU9fRVJST1IsIEdfSU9fRVJST1JfQ0xPU0VEKTsKKworICAgIC8vIFRvcnR1cmUgdGVzdCB0aW1l
OiBtYWtlIHN1cmUgaXQgc3RpbGwgd29ya3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZmZXJl
bnQgcmVxdWVzdHMgYWxsIGF0CisgICAgLy8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBmaW5p
c2ggYW5kIHJldHVybiBleGFjdGx5IHRoZSBzYW1lIGRhdGEuCisgICAgaW50IG51bUl0ZXJhdGlv
bnMgPSA1MDsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlZpZXc+IHZpZXdzW251bUl0ZXJhdGlvbnNd
OworICAgIHRlc3QtPm1fdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3ID0g
ZmFsc2U7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsKKyAg
ICAgICAgdmlld3NbaV0gPSBhZG9wdEdSZWYoV0VCS0lUX1dFQl9WSUVXKGdfb2JqZWN0X3JlZl9z
aW5rKHdlYmtpdF93ZWJfdmlld19uZXdfd2l0aF9jb250ZXh0KHRlc3QtPm1fd2ViQ29udGV4dC5n
ZXQoKSkpKSk7CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSh2aWV3c1tpXS5nZXQo
KSwgImZvbzpibGFuayIpOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KHZpZXdzW2ldLmdldCgp
LCAibG9hZC1jaGFuZ2VkIiwgR19DQUxMQkFDSygrW10gKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdExvYWRFdmVudCBsb2FkRXZlbnQsIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAg
ICAgICBhdXRvKiB0ZXN0ID0gc3RhdGljX2Nhc3Q8VVJJU2NoZW1lVGVzdCo+KHVzZXJEYXRhKTsK
KyAgICAgICAgICAgIGlmIChsb2FkRXZlbnQgIT0gV0VCS0lUX0xPQURfRklOSVNIRUQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGVzdC0+bV9sb2FkQ291bnRlci0tOwor
ICAgICAgICAgICAgaWYgKCF0ZXN0LT5tX2xvYWRDb3VudGVyKQorICAgICAgICAgICAgICAgIGdf
bWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWluTG9vcCk7CisgICAgICAgIH0pLCB0ZXN0KTsKKyAg
ICB9CisgICAgdGVzdC0+bV9sb2FkQ291bnRlciA9IG51bUl0ZXJhdGlvbnM7CisgICAgZ19tYWlu
X2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxvb3ApOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBu
dW1JdGVyYXRpb25zOyBpKyspIHsKKyAgICAgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNl
ID0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKHZpZXdzW2ldLmdldCgpKTsKKyAg
ICAgICAgZ19hc3NlcnRfbm9ubnVsbChyZXNvdXJjZSk7CisgICAgICAgIHdlYmtpdF93ZWJfcmVz
b3VyY2VfZ2V0X2RhdGEocmVzb3VyY2UsIDAsICtbXSAoR09iamVjdCogb2JqZWN0LCBHQXN5bmNS
ZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIHRl
c3QgPSBzdGF0aWNfY2FzdDxVUklTY2hlbWVUZXN0Kj4odXNlckRhdGEpOworICAgICAgICAgICAg
Z3NpemUgZGF0YVNpemU7CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyKiBkYXRhID0gd2Via2l0
X3dlYl9yZXNvdXJjZV9nZXRfZGF0YV9maW5pc2goV0VCS0lUX1dFQl9SRVNPVVJDRShvYmplY3Qp
LCByZXN1bHQsICZkYXRhU2l6ZSwgbnVsbHB0cik7CisgICAgICAgICAgICBnX2Fzc2VydF9jbXBp
bnQoc3RybmNtcChyZWludGVycHJldF9jYXN0PGNoYXIqPihkYXRhKSwga0JhckhUTUwsIGRhdGFT
aXplKSwgPT0sIDApOworICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5M
b29wKTsKKyAgICAgICAgfSwgdGVzdCk7CisgICAgICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5t
X21haW5Mb29wKTsKKyAgICB9CisgICAgdGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2tV
c2VzVGVzdFdlYlZpZXcgPSB0cnVlOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKQo=
</data>
<flag name="commit-queue"
          id="461070"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437817</attachid>
            <date>2021-09-09 18:19:12 -0700</date>
            <delta_ts>2021-09-09 18:21:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210909201911.patch</filename>
            <type>text/plain</type>
            <size>12108</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4M2IzMTY0NDBiM2Q0MGYy
ODdmMjhlMWRmZGNiZmIxMTgzYmUyNjMuLmMxMmIxMDIwMWFiZTU3MGRkZjIxZGExYWRlZjdkMzYx
MTQ1OGFlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMDkgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0
IGxvYWQgY3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IHRoZSBVSSBwcm9jZXNzIHVzZXMgdGFzayBJRHMgdG8gZGlzdGluZ3Vpc2ggYmV0
d2VlbiBkaWZmZXJlbnQKKyAgICAgICAgV2ViVVJMU2NoZW1lVGFzayBvYmplY3RzLCBhbmQgcmVh
c29uYWJseSBleHBlY3RzIHRoZSB0YXNrIElEcyB0byBiZSBnbG9iYWxseS11bmlxdWUuIEJ1dCB0
aGUKKyAgICAgICAgdGFzayBJRHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZCBpbiB0aGUgd2ViIHBy
b2Nlc3MgaW4gV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcKKyAgICAgICAgdXNp
bmcgUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIsIHdoaWNoIHVzZXMgUHJvZ3Jlc3NUcmFja2Vy
OjpjcmVhdGVVbmlxdWVJZGVudGlmaWVyLCB3aGljaAorICAgICAgICBqdXN0IGluY3JlbWVudHMg
YSBjb3VudGVyIHZhcmlhYmxlLCBzbyB0aGV5J3JlIG9ubHkgdW5pcXVlIHRvIGEgZ2l2ZW4gd2Vi
IHByb2Nlc3MsIG5vdAorICAgICAgICB1bmlxdWUgaW4gdGhlIHdlYiBwcm9jZXNzLiBPdWNoISBT
aW5jZSB3ZSBoYXZlIG11bHRpcGxlIHRhc2tzIHdpdGggdGhlIHNhbWUgSUQsIHRoZXkgY2xvYmJl
cgorICAgICAgICBlYWNoIG90aGVyIGluIHZhcmlvdXMgaW50ZXJuYWwgSGFzaFNldHMsIGFuZCB0
aGUgY2xvYmJlcmVkIHRhc2tzIG5ldmVyIGNvbXBsZXRlLCB3aGlsZSB0aGUKKyAgICAgICAgdGFz
a3MgdGhhdCBkb24ndCBnZXQgY2xvYmJlcmVkIG1heSB3aW5kIHVwIGNvbXBsZXRpbmcgbXVsdGlw
bGUgdGltZXMsIG9yIHdpdGggZXh0cmEgZGF0YQorICAgICAgICBmcm9tIHRoZSB0YXNrcyB0aGF0
IG5ldmVyIGZpbmlzaGVkLgorCisgICAgICAgIFNvbHV0aW9uIGlzIHRvIGp1c3QgdXNlIHNlcGFy
YXRlIHRhc2sgSURzIGdlbmVyYXRlZCBpbiB0aGUgVUkgcHJvY2VzcyB0byByZWZlciB0byB0aGUg
dGFza3MKKyAgICAgICAgaW4gdGhlIFVJIHByb2Nlc3MsIHRvIGVuc3VyZSB0YXNrIElEcyBhcmUg
cmVhbGx5IGdsb2JhbGx5LXVuaXF1ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3Rh
cnRUYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2spOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjp3aWxsUGVyZm9ybVJlZGlyZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZURhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaDoKKwogMjAyMS0wOS0wOSAgQmVuIE5oYW0gIDxu
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVjb25uZWN0ZWQgc29ja2V0IGlzIHNvbWV0aW1l
cyBub3QgdXNlZCBmb3IgaW5pdGlhbCByZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IGZmNjhkNjRlMTgwMmFkZWJjNDAxNGI4
YjYxNzkxYTAyZjRlNGU0YTAuLjc5MTA2YjUxYWY2NThhMWY3NjRiYWEzN2FmODM2MTFmNjY1YjE4
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIu
Y3BwCkBAIC01MSw4ICs1MSw5IEBAIFdlYlVSTFNjaGVtZUhhbmRsZXI6On5XZWJVUkxTY2hlbWVI
YW5kbGVyKCkKIAogdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBTeW5jTG9hZENvbXBs
ZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byB0YXNrSWRlbnRp
ZmllciA9IHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXI7Ci0gICAgYXV0byByZXN1bHQgPSBtX3Rh
c2tzLmFkZCh0YXNrSWRlbnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKCp0aGlzLCBw
YWdlLCBwcm9jZXNzLCB3ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycyksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKSk7CisgICAgYXV0byB0YXNrID0gV2ViVVJMU2NoZW1lVGFzazo6Y3Jl
YXRlKCp0aGlzLCBwYWdlLCBwcm9jZXNzLCB3ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycyks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBhdXRvIHRhc2tJZGVudGlmaWVyID0g
dGFzay0+aWRlbnRpZmllcigpOworICAgIGF1dG8gcmVzdWx0ID0gbV90YXNrcy5hZGQodGFza0lk
ZW50aWZpZXIsIFdURk1vdmUodGFzaykpOwogICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRyeSk7
CiAKICAgICBhdXRvIHBhZ2VFbnRyeSA9IG1fdGFza3NCeVBhZ2VJZGVudGlmaWVyLmFkZChwYWdl
LmlkZW50aWZpZXIoKSwgSGFzaFNldDx1aW50NjRfdD4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCmluZGV4IDllMWRiYmZjOGU4Mjg4MDFlYjA4ODNh
MjYwMGQxZWFhM2ZmY2ZmYjcuLjdkNTZiZDY2NzE0ZjliZjExYjhjMTE5ZjM3N2YwYjkzMjgxMzdm
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCkBA
IC00NSw3ICs0NSw4IEBAIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBXZWJVUkxTY2hlbWVUYXNrOjpj
cmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViCiBXZWJVUkxTY2hlbWVUYXNr
OjpXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQ
cm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgU3luY0xvYWRDb21w
bGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKICAgICA6IG1fdXJsU2NoZW1l
SGFuZGxlcihoYW5kbGVyKQogICAgICwgbV9wcm9jZXNzKG1ha2VSZWYocHJvY2VzcykpCi0gICAg
LCBtX2lkZW50aWZpZXIocGFyYW1ldGVycy50YXNrSWRlbnRpZmllcikKKyAgICAsIG1faWRlbnRp
ZmllcihPYmplY3RJZGVudGlmaWVyPFdlYlVSTFNjaGVtZVRhc2s+OjpnZW5lcmF0ZSgpLnRvVUlu
dDY0KCkpCisgICAgLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllcihwYXJhbWV0ZXJzLnRhc2tJ
ZGVudGlmaWVyKQogICAgICwgbV9wYWdlUHJveHlJRChwYWdlLmlkZW50aWZpZXIoKSkKICAgICAs
IG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHBhcmFtZXRl
cnMucmVxdWVzdCkpCkBAIC0xMDYsNyArMTA3LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjp3
aWxsUGVyZm9ybVJlZGlyZWN0aW9uKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzb3UK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOwogICAgIH07
CiAKLSAgICBwYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNj
aGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRp
ZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgV1RGTW92ZShpbm5lckNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrV2lsbFBlcmZvcm1SZWRpcmVjdGlvbihtX3VybFNjaGVt
ZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFza0lkZW50aWZpZXIsIHJlc3Bv
bnNlLCByZXF1ZXN0KSwgV1RGTW92ZShpbm5lckNvbXBsZXRpb25IYW5kbGVyKSk7CiAKICAgICBy
ZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTEzOCw3ICsxMzksNyBAQCBhdXRvIFdl
YlVSTFNjaGVtZVRhc2s6OmRpZFBlcmZvcm1SZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVzcG9ucwogICAgICAgICBtX3JlcXVlc3QgPSByZXF1ZXN0OwogICAgIH0KIAot
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBl
cmZvcm1SZWRpcmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVu
dGlmaWVyLCByZXNwb25zZSwgcmVxdWVzdCksIG1fd2ViUGFnZUlEKTsKKyAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rp
b24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1fd2ViUHJvY2Vzc1Rhc2tJZGVu
dGlmaWVyLCByZXNwb25zZSwgcmVxdWVzdCksIG1fd2ViUGFnZUlEKTsKIAogICAgIHJldHVybiBF
eGNlcHRpb25UeXBlOjpOb25lOwogfQpAQCAtMTY0LDcgKzE2NSw3IEBAIGF1dG8gV2ViVVJMU2No
ZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKSAtPiBFCiAgICAgaWYgKGlzU3luYygpKQogICAgICAgICBtX3N5bmNSZXNwb25zZSA9IHJl
c3BvbnNlOwogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hl
bWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigp
LCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlKSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSht
X3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFza0lkZW50aWZp
ZXIsIHJlc3BvbnNlKSwgbV93ZWJQYWdlSUQpOwogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpO
b25lOwogfQogCkBAIC0xOTQsNyArMTk1LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRS
ZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikgLT4gRXhjZXB0aW9uVHkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiAgICAgfQogCi0gICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91
cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgYnVmZmVyLmdldCgp
KSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmll
cigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgYnVmZmVyLmdldCgpKSwgbV93ZWJQYWdl
SUQpOwogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0yMjUsNyArMjI2
LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogICAgICAgICBtX3N5bmNEYXRhID0gbnVsbHB0
cjsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNj
aGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9p
ZGVudGlmaWVyLCBlcnJvciksIG1fd2ViUGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRs
ZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFza0lkZW50aWZpZXIsIGVycm9yKSwgbV93
ZWJQYWdlSUQpOwogICAgIG1fdXJsU2NoZW1lSGFuZGxlci0+dGFza0NvbXBsZXRlZCgqdGhpcyk7
CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZVRhc2suaAppbmRleCBlYWMwOWJkZWNhMWRlYzBjYjIxOWFjMWQwMzMw
OGIyZTI3MjMwOWNlLi42M2JlOTJlODNkZGU0ZjU2Yjk3OWZjMDU4M2ZmYTQ1NWZhMTQwOWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCkBAIC0xMDIsNiAr
MTAyLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8V2ViVVJMU2NoZW1lSGFuZGxlcj4gbV91cmxTY2hl
bWVIYW5kbGVyOwogICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKICAgICB1
aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgdWludDY0X3QgbV93ZWJQcm9jZXNzVGFza0lkZW50
aWZpZXI7CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3BhZ2VQcm94eUlEOwogICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fd2ViUGFnZUlEOwogICAgIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCBtX3JlcXVlc3QgV1RGX0dVQVJERURfQllfTE9DSyhtX3JlcXVlc3RMb2NrKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMjc4Mzkz
NDRlNjE5N2VmNWIzNjNiYTlhYjM1MjA4NzI0ZDA0Y2UwLi5mMjkwNWMwN2IxYzVlOTUyOWNkMjdj
NTY4ZjNlYWQ2MTUzNzE0ZDUzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDktMDkgIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0IGxvYWQg
Y3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQncyBsb2FkIHRoZSBz
YW1lIFVSTCA1MCB0aW1lcyBhbmQgbWFrZSBzdXJlIGFsbCBsb2FkcyBjb21wbGV0ZSB3aXRoIHRo
ZSBzYW1lIGNvbnRlbnQuCisgICAgICAgIFdpdGhvdXQgbXkgZml4LCB0aGUgdGVzdCBoYW5ncyBm
b3JldmVyIHNwaW5uaW5nIGl0cyBtYWluIGxvb3AsIGJlY2F1c2Ugb25seSBhIGZldyBvZiB0aGUK
KyAgICAgICAgcmVxdWVzdHMgYWN0dWFsbHkgY29tcGxldGUsIHNvIHRoZSB0ZXN0IGdldHMgc3R1
Y2sgd2FpdGluZy4KKworICAgICAgICBOb3RlIEkgcGlja2VkIDUwIGJlY2F1c2Ugd2hlbiBydW5u
aW5nIHRoZSB0ZXN0IDEwMCB0aW1lcywgd3BlYmFja2VuZC1mZG8gZGllcyB0byBhbgorICAgICAg
ICB1bnJlbGF0ZWQgcHJvYmxlbTogaXRzIGludGVybmFsIFdheWxhbmQgcmVnaXN0cnkgc3RvcHMg
cmVnaXN0ZXJpbmcgbmV3IGdsb2JhbCBvYmplY3RzLCBhbmQKKyAgICAgICAgZWFjaCBuZXcgd2Vi
IHByb2Nlc3Mgc3RhcnRzIGNyYXNoaW5nLiBUaGF0J3Mgd2VpcmQsIGJ1dCBub3QgdGhlIHByb2Js
ZW0gd2UncmUgdHJ5aW5nIHRvCisgICAgICAgIHNvbHZlIHRvZGF5LgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKToKKwogMjAyMS0wOS0wOSAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBsbGRiIGRh
dGEgcHJvdmlkZXIgaXNzdWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCA1MzI1NDhi
MWU0ZTJhMGFmNWM5YTJlZTFjMzIwNmJjYmYyODhmNDNhLi4wOTU1YjY5NTExZTBhZjdlZmEzMDM5
MGJlMjA1ZWUyOGMyODU2Y2YzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTExMyw3
ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHRlc3QtPm1fdXJpU2NoZW1lUmVxdWVzdCA9IHJl
cXVlc3Q7CiAgICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNo
ZXMoR19PQkpFQ1QocmVxdWVzdCkpOwogCi0gICAgICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3Vy
aV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3ZpZXcocmVxdWVzdCkgPT0gdGVzdC0+bV93ZWJWaWV3
KTsKKyAgICAgICAgaWYgKHRlc3QtPm1fdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RX
ZWJWaWV3KQorICAgICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1
ZXN0X2dldF93ZWJfdmlldyhyZXF1ZXN0KSA9PSB0ZXN0LT5tX3dlYlZpZXcpOwogCiAgICAgICAg
IGNvbnN0IGNoYXIqIHNjaGVtZSA9IHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3NjaGVt
ZShyZXF1ZXN0KTsKICAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChzY2hlbWUpOwpAQCAtMTY0LDYg
KzE2NSw4IEBAIHB1YmxpYzoKIAogICAgIEdSZWZQdHI8V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4g
bV91cmlTY2hlbWVSZXF1ZXN0OwogICAgIEhhc2hNYXA8U3RyaW5nLCBVUklTY2hlbWVIYW5kbGVy
PiBtX2hhbmRsZXJzTWFwOworICAgIGJvb2wgbV91cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2tVc2Vz
VGVzdFdlYlZpZXcgeyB0cnVlIH07CisgICAgaW50IG1fbG9hZENvdW50ZXIgeyAwIH07CiB9Owog
CiBTdHJpbmcgZ2VuZXJhdGVIVE1MQ29udGVudCh1bnNpZ25lZCBjb250ZW50TGVuZ3RoKQpAQCAt
Mjc4LDYgKzI4MSw0MCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZShVUklT
Y2hlbWVUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+
bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lvbmFsTG9hZEZh
aWxlZCkpOwogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFpbGVkKTsKICAgICBnX2Fz
c2VydF9lcnJvcih0ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NM
T1NFRCk7CisKKyAgICAvLyBUb3J0dXJlIHRlc3QgdGltZTogbWFrZSBzdXJlIGl0IHN0aWxsIHdv
cmtzIGlmIHdlIGlzc3VlIGEgYnVuY2ggb2YgZGlmZmVyZW50IHJlcXVlc3RzIGFsbCBhdAorICAg
IC8vIG9uY2UuIEVhY2ggcmVxdWVzdCBzaG91bGQgZmluaXNoIGFuZCByZXR1cm4gZXhhY3RseSB0
aGUgc2FtZSBkYXRhLgorICAgIGludCBudW1JdGVyYXRpb25zID0gNTA7CisgICAgR1JlZlB0cjxX
ZWJLaXRXZWJWaWV3PiB2aWV3c1tudW1JdGVyYXRpb25zXTsKKyAgICB0ZXN0LT5tX3VyaVNjaGVt
ZVJlcXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldyA9IGZhbHNlOworICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbnVtSXRlcmF0aW9uczsgaSsrKSB7CisgICAgICAgIHZpZXdzW2ldID0gYWRvcHRH
UmVmKFdFQktJVF9XRUJfVklFVyhnX29iamVjdF9yZWZfc2luayh3ZWJraXRfd2ViX3ZpZXdfbmV3
X3dpdGhfY29udGV4dCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCkpKSkpOworICAgICAgICB3ZWJr
aXRfd2ViX3ZpZXdfbG9hZF91cmkodmlld3NbaV0uZ2V0KCksICJmb286YmxhbmsiKTsKKyAgICAg
ICAgZ19zaWduYWxfY29ubmVjdCh2aWV3c1tpXS5nZXQoKSwgImxvYWQtY2hhbmdlZCIsIEdfQ0FM
TEJBQ0soK1tdIChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRMb2FkRXZlbnQgbG9hZEV2
ZW50LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICAgICAgYXV0byogdGVzdCA9IHN0YXRp
Y19jYXN0PFVSSVNjaGVtZVRlc3QqPih1c2VyRGF0YSk7CisgICAgICAgICAgICBpZiAobG9hZEV2
ZW50ICE9IFdFQktJVF9MT0FEX0ZJTklTSEVEKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIHRlc3QtPm1fbG9hZENvdW50ZXItLTsKKyAgICAgICAgICAgIGlmICghdGVzdC0+
bV9sb2FkQ291bnRlcikKKyAgICAgICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1f
bWFpbkxvb3ApOworICAgICAgICB9KSwgdGVzdCk7CisgICAgfQorICAgIHRlc3QtPm1fbG9hZENv
dW50ZXIgPSBudW1JdGVyYXRpb25zOworICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5M
b29wKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtSXRlcmF0aW9uczsgaSsrKSB7Cisg
ICAgICAgIFdlYktpdFdlYlJlc291cmNlKiByZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRf
bWFpbl9yZXNvdXJjZSh2aWV3c1tpXS5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X25vbm51bGwo
cmVzb3VyY2UpOworICAgICAgICB3ZWJraXRfd2ViX3Jlc291cmNlX2dldF9kYXRhKHJlc291cmNl
LCAwLCArW10gKEdPYmplY3QqIG9iamVjdCwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIGdwb2ludGVy
IHVzZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvKiB0ZXN0ID0gc3RhdGljX2Nhc3Q8VVJJU2No
ZW1lVGVzdCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIGdzaXplIGRhdGFTaXplOworICAgICAg
ICAgICAgdW5zaWduZWQgY2hhciogZGF0YSA9IHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X2RhdGFf
ZmluaXNoKFdFQktJVF9XRUJfUkVTT1VSQ0Uob2JqZWN0KSwgcmVzdWx0LCAmZGF0YVNpemUsIG51
bGxwdHIpOworICAgICAgICAgICAgZ19hc3NlcnRfY21waW50KHN0cm5jbXAocmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oZGF0YSksIGtCYXJIVE1MLCBkYXRhU2l6ZSksID09LCAwKTsKKyAgICAgICAg
ICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWluTG9vcCk7CisgICAgICAgIH0sIHRlc3Qp
OworICAgICAgICBnX21haW5fbG9vcF9ydW4odGVzdC0+bV9tYWluTG9vcCk7CisgICAgfQorICAg
IHRlc3QtPm1fdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3ID0gdHJ1ZTsK
IH0KIAogI2lmIFBMQVRGT1JNKEdUSykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437818</attachid>
            <date>2021-09-09 18:21:26 -0700</date>
            <delta_ts>2021-09-09 18:25:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210909202125.patch</filename>
            <type>text/plain</type>
            <size>12107</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4M2IzMTY0NDBiM2Q0MGYy
ODdmMjhlMWRmZGNiZmIxMTgzYmUyNjMuLjJhNjlhMWEwYmYyNDVjYzczNGMzYTljMWM1NDcyNzNh
MzhmM2M4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMDkgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0
IGxvYWQgY3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IHRoZSBVSSBwcm9jZXNzIHVzZXMgdGFzayBJRHMgdG8gZGlzdGluZ3Vpc2ggYmV0
d2VlbiBkaWZmZXJlbnQKKyAgICAgICAgV2ViVVJMU2NoZW1lVGFzayBvYmplY3RzLCBhbmQgcmVh
c29uYWJseSBleHBlY3RzIHRoZSB0YXNrIElEcyB0byBiZSBnbG9iYWxseS11bmlxdWUuIEJ1dCB0
aGUKKyAgICAgICAgdGFzayBJRHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZCBpbiB0aGUgd2ViIHBy
b2Nlc3MgaW4gV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcKKyAgICAgICAgdXNp
bmcgUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIsIHdoaWNoIHVzZXMgUHJvZ3Jlc3NUcmFja2Vy
OjpjcmVhdGVVbmlxdWVJZGVudGlmaWVyLCB3aGljaAorICAgICAgICBqdXN0IGluY3JlbWVudHMg
YSBjb3VudGVyIHZhcmlhYmxlLCBzbyB0aGV5J3JlIG9ubHkgdW5pcXVlIHRvIGEgZ2l2ZW4gd2Vi
IHByb2Nlc3MsIG5vdAorICAgICAgICB1bmlxdWUgaW4gdGhlIFVJIHByb2Nlc3MuIE91Y2ghIFNp
bmNlIHdlIGhhdmUgbXVsdGlwbGUgdGFza3Mgd2l0aCB0aGUgc2FtZSBJRCwgdGhleSBjbG9iYmVy
CisgICAgICAgIGVhY2ggb3RoZXIgaW4gdmFyaW91cyBpbnRlcm5hbCBIYXNoU2V0cywgYW5kIHRo
ZSBjbG9iYmVyZWQgdGFza3MgbmV2ZXIgY29tcGxldGUsIHdoaWxlIHRoZQorICAgICAgICB0YXNr
cyB0aGF0IGRvbid0IGdldCBjbG9iYmVyZWQgbWF5IHdpbmQgdXAgY29tcGxldGluZyBtdWx0aXBs
ZSB0aW1lcywgb3Igd2l0aCBleHRyYSBkYXRhCisgICAgICAgIGZyb20gdGhlIHRhc2tzIHRoYXQg
bmV2ZXIgZmluaXNoZWQuCisKKyAgICAgICAgU29sdXRpb24gaXMgdG8ganVzdCB1c2Ugc2VwYXJh
dGUgdGFzayBJRHMgZ2VuZXJhdGVkIGluIHRoZSBVSSBwcm9jZXNzIHRvIHJlZmVyIHRvIHRoZSB0
YXNrcworICAgICAgICBpbiB0aGUgVUkgcHJvY2VzcywgdG8gZW5zdXJlIHRhc2sgSURzIGFyZSBy
ZWFsbHkgZ2xvYmFsbHktdW5pcXVlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFy
dFRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OndpbGxQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oOgorCiAyMDIxLTA5LTA5ICBCZW4gTmhhbSAgPG5o
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFByZWNvbm5lY3RlZCBzb2NrZXQgaXMgc29tZXRpbWVz
IG5vdCB1c2VkIGZvciBpbml0aWFsIHJlcXVlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggZmY2OGQ2NGUxODAyYWRlYmM0MDE0Yjhi
NjE3OTFhMDJmNGU0ZTRhMC4uNzkxMDZiNTFhZjY1OGExZjc2NGJhYTM3YWY4MzYxMWY2NjViMTgw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5j
cHAKQEAgLTUxLDggKzUxLDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhh
bmRsZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJv
eHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIFN5bmNMb2FkQ29tcGxl
dGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHRhc2tJZGVudGlm
aWVyID0gcGFyYW1ldGVycy50YXNrSWRlbnRpZmllcjsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFz
a3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBh
Z2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpKTsKKyAgICBhdXRvIHRhc2sgPSBXZWJVUkxTY2hlbWVUYXNrOjpjcmVh
dGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGF1dG8gdGFza0lkZW50aWZpZXIgPSB0
YXNrLT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRl
bnRpZmllciwgV1RGTW92ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsK
IAogICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRkKHBhZ2Uu
aWRlbnRpZmllcigpLCBIYXNoU2V0PHVpbnQ2NF90PigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggOWUxZGJiZmM4ZTgyODgwMWViMDg4M2Ey
NjAwZDFlYWEzZmZjZmZiNy4uN2Q1NmJkNjY3MTRmOWJmMTFiOGMxMTlmMzc3ZjBiOTMyODEzN2Yz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAg
LTQ1LDcgKzQ1LDggQEAgUmVmPFdlYlVSTFNjaGVtZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNy
ZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWIKIFdlYlVSTFNjaGVtZVRhc2s6
OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBTeW5jTG9hZENvbXBs
ZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQogICAgIDogbV91cmxTY2hlbWVI
YW5kbGVyKGhhbmRsZXIpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJlZihwcm9jZXNzKSkKLSAgICAs
IG1faWRlbnRpZmllcihwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyKQorICAgICwgbV9pZGVudGlm
aWVyKE9iamVjdElkZW50aWZpZXI8V2ViVVJMU2NoZW1lVGFzaz46OmdlbmVyYXRlKCkudG9VSW50
NjQoKSkKKyAgICAsIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyKHBhcmFtZXRlcnMudGFza0lk
ZW50aWZpZXIpCiAgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmllcigpKQogICAgICwg
bV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0KFdURk1vdmUocGFyYW1ldGVy
cy5yZXF1ZXN0KSkKQEAgLTEwNiw3ICsxMDcsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6Ondp
bGxQZXJmb3JtUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNvdQog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgfTsK
IAotICAgIHBhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2No
ZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlm
aWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1l
SGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgcmVzcG9u
c2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlvbkhhbmRsZXIpKTsKIAogICAgIHJl
dHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpAQCAtMTM4LDcgKzEzOSw3IEBAIGF1dG8gV2Vi
VVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgfQogCi0g
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVy
Zm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50
aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlv
bihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFza0lkZW50
aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOwogCiAgICAgcmV0dXJuIEV4
Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CkBAIC0xNjQsNyArMTY1LDcgQEAgYXV0byBXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpIC0+IEUKICAgICBpZiAoaXNTeW5jKCkpCiAgICAgICAgIG1fc3luY1Jlc3BvbnNlID0gcmVz
cG9uc2U7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1f
dXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmll
ciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5v
bmU7CiB9CiAKQEAgLTE5NCw3ICsxOTUsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJl
Y2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRpb25UeQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBidWZmZXIuZ2V0KCkp
LCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpV
UkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyLCBidWZmZXIuZ2V0KCkpLCBtX3dlYlBhZ2VJ
RCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTIyNSw3ICsyMjYs
NyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAgICAgICAgIG1fc3luY0RhdGEgPSBudWxscHRy
OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2No
ZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lk
ZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgZXJyb3IpLCBtX3dl
YlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxldGVkKCp0aGlzKTsK
IAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lVGFzay5oCmluZGV4IGVhYzA5YmRlY2ExZGVjMGNiMjE5YWMxZDAzMzA4
YjJlMjcyMzA5Y2UuLjYzYmU5MmU4M2RkZTRmNTZiOTc5ZmMwNTgzZmZhNDU1ZmExNDA5ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAgLTEwMiw2ICsx
MDIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyPiBtX3VybFNjaGVt
ZUhhbmRsZXI7CiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICB1aW50NjRfdCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRp
ZmllcjsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CiAgICAgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IG1fcmVxdWVzdCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcmVxdWVzdExvY2spOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUyNzgzOTM0
NGU2MTk3ZWY1YjM2M2JhOWFiMzUyMDg3MjRkMDRjZTAuLmYyOTA1YzA3YjFjNWU5NTI5Y2QyN2M1
NjhmM2VhZDYxNTM3MTRkNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOS0wOSAgTWljaGFlbCBDYXRhbnph
cm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBXZWJLaXQgbWlnaHQgbG9hZCBj
dXN0b20gVVJJIHNjaGVtZSByZXF1ZXN0IGNvbnRlbnQgbXVsdGlwbGUgdGltZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTExNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCdzIGxvYWQgdGhlIHNh
bWUgVVJMIDUwIHRpbWVzIGFuZCBtYWtlIHN1cmUgYWxsIGxvYWRzIGNvbXBsZXRlIHdpdGggdGhl
IHNhbWUgY29udGVudC4KKyAgICAgICAgV2l0aG91dCBteSBmaXgsIHRoZSB0ZXN0IGhhbmdzIGZv
cmV2ZXIgc3Bpbm5pbmcgaXRzIG1haW4gbG9vcCwgYmVjYXVzZSBvbmx5IGEgZmV3IG9mIHRoZQor
ICAgICAgICByZXF1ZXN0cyBhY3R1YWxseSBjb21wbGV0ZSwgc28gdGhlIHRlc3QgZ2V0cyBzdHVj
ayB3YWl0aW5nLgorCisgICAgICAgIE5vdGUgSSBwaWNrZWQgNTAgYmVjYXVzZSB3aGVuIHJ1bm5p
bmcgdGhlIHRlc3QgMTAwIHRpbWVzLCB3cGViYWNrZW5kLWZkbyBkaWVzIHRvIGFuCisgICAgICAg
IHVucmVsYXRlZCBwcm9ibGVtOiBpdHMgaW50ZXJuYWwgV2F5bGFuZCByZWdpc3RyeSBzdG9wcyBy
ZWdpc3RlcmluZyBuZXcgZ2xvYmFsIG9iamVjdHMsIGFuZAorICAgICAgICBlYWNoIG5ldyB3ZWIg
cHJvY2VzcyBzdGFydHMgY3Jhc2hpbmcuIFRoYXQncyB3ZWlyZCwgYnV0IG5vdCB0aGUgcHJvYmxl
bSB3ZSdyZSB0cnlpbmcgdG8KKyAgICAgICAgc29sdmUgdG9kYXkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgorICAg
ICAgICAodGVzdFdlYkNvbnRleHRVUklTY2hlbWUpOgorCiAyMDIxLTA5LTA5ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzb21lIGxsZGIgZGF0
YSBwcm92aWRlciBpc3N1ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDUzMjU0OGIx
ZTRlMmEwYWY1YzlhMmVlMWMzMjA2YmNiZjI4OGY0M2EuLjA5NTViNjk1MTFlMGFmN2VmYTMwMzkw
YmUyMDVlZTI4YzI4NTZjZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTEzLDcg
KzExMyw4IEBAIHB1YmxpYzoKICAgICAgICAgdGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0ID0gcmVx
dWVzdDsKICAgICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hl
cyhHX09CSkVDVChyZXF1ZXN0KSk7CiAKLSAgICAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldyhyZXF1ZXN0KSA9PSB0ZXN0LT5tX3dlYlZpZXcp
OworICAgICAgICBpZiAodGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2tVc2VzVGVzdFdl
YlZpZXcpCisgICAgICAgICAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3dlYl92aWV3KHJlcXVlc3QpID09IHRlc3QtPm1fd2ViVmlldyk7CiAKICAgICAgICAg
Y29uc3QgY2hhciogc2NoZW1lID0gd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2NoZW1l
KHJlcXVlc3QpOwogICAgICAgICBnX2Fzc2VydF9ub25udWxsKHNjaGVtZSk7CkBAIC0xNjQsNiAr
MTY1LDggQEAgcHVibGljOgogCiAgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiBt
X3VyaVNjaGVtZVJlcXVlc3Q7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSSVNjaGVtZUhhbmRsZXI+
IG1faGFuZGxlcnNNYXA7CisgICAgYm9vbCBtX3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNU
ZXN0V2ViVmlldyB7IHRydWUgfTsKKyAgICBpbnQgbV9sb2FkQ291bnRlciB7IDAgfTsKIH07CiAK
IFN0cmluZyBnZW5lcmF0ZUhUTUxDb250ZW50KHVuc2lnbmVkIGNvbnRlbnRMZW5ndGgpCkBAIC0y
NzgsNiArMjgxLDQwIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNj
aGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5t
X2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFp
bGVkKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRGYWlsZWQpOwogICAgIGdfYXNz
ZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0xP
U0VEKTsKKworICAgIC8vIFRvcnR1cmUgdGVzdCB0aW1lOiBtYWtlIHN1cmUgaXQgc3RpbGwgd29y
a3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZmZXJlbnQgcmVxdWVzdHMgYWxsIGF0CisgICAg
Ly8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBmaW5pc2ggYW5kIHJldHVybiBleGFjdGx5IHRo
ZSBzYW1lIGRhdGEuCisgICAgaW50IG51bUl0ZXJhdGlvbnMgPSA1MDsKKyAgICBHUmVmUHRyPFdl
YktpdFdlYlZpZXc+IHZpZXdzW251bUl0ZXJhdGlvbnNdOworICAgIHRlc3QtPm1fdXJpU2NoZW1l
UmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3ID0gZmFsc2U7CisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsKKyAgICAgICAgdmlld3NbaV0gPSBhZG9wdEdS
ZWYoV0VCS0lUX1dFQl9WSUVXKGdfb2JqZWN0X3JlZl9zaW5rKHdlYmtpdF93ZWJfdmlld19uZXdf
d2l0aF9jb250ZXh0KHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSkpKSk7CisgICAgICAgIHdlYmtp
dF93ZWJfdmlld19sb2FkX3VyaSh2aWV3c1tpXS5nZXQoKSwgImZvbzpibGFuayIpOworICAgICAg
ICBnX3NpZ25hbF9jb25uZWN0KHZpZXdzW2ldLmdldCgpLCAibG9hZC1jaGFuZ2VkIiwgR19DQUxM
QkFDSygrW10gKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCBsb2FkRXZl
bnQsIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvKiB0ZXN0ID0gc3RhdGlj
X2Nhc3Q8VVJJU2NoZW1lVGVzdCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIGlmIChsb2FkRXZl
bnQgIT0gV0VCS0lUX0xPQURfRklOSVNIRUQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgdGVzdC0+bV9sb2FkQ291bnRlci0tOworICAgICAgICAgICAgaWYgKCF0ZXN0LT5t
X2xvYWRDb3VudGVyKQorICAgICAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9t
YWluTG9vcCk7CisgICAgICAgIH0pLCB0ZXN0KTsKKyAgICB9CisgICAgdGVzdC0+bV9sb2FkQ291
bnRlciA9IG51bUl0ZXJhdGlvbnM7CisgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxv
b3ApOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsKKyAg
ICAgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9t
YWluX3Jlc291cmNlKHZpZXdzW2ldLmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChy
ZXNvdXJjZSk7CisgICAgICAgIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X2RhdGEocmVzb3VyY2Us
IDAsICtbXSAoR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIg
dXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIHRlc3QgPSBzdGF0aWNfY2FzdDxVUklTY2hl
bWVUZXN0Kj4odXNlckRhdGEpOworICAgICAgICAgICAgZ3NpemUgZGF0YVNpemU7CisgICAgICAg
ICAgICB1bnNpZ25lZCBjaGFyKiBkYXRhID0gd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZGF0YV9m
aW5pc2goV0VCS0lUX1dFQl9SRVNPVVJDRShvYmplY3QpLCByZXN1bHQsICZkYXRhU2l6ZSwgbnVs
bHB0cik7CisgICAgICAgICAgICBnX2Fzc2VydF9jbXBpbnQoc3RybmNtcChyZWludGVycHJldF9j
YXN0PGNoYXIqPihkYXRhKSwga0JhckhUTUwsIGRhdGFTaXplKSwgPT0sIDApOworICAgICAgICAg
ICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKKyAgICAgICAgfSwgdGVzdCk7
CisgICAgICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKKyAgICB9CisgICAg
dGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2tVc2VzVGVzdFdlYlZpZXcgPSB0cnVlOwog
fQogCiAjaWYgUExBVEZPUk0oR1RLKQo=
</data>
<flag name="commit-queue"
          id="461071"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437820</attachid>
            <date>2021-09-09 18:25:43 -0700</date>
            <delta_ts>2021-09-09 19:20:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210909202542.patch</filename>
            <type>text/plain</type>
            <size>12113</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4M2IzMTY0NDBiM2Q0MGYy
ODdmMjhlMWRmZGNiZmIxMTgzYmUyNjMuLjJhNjlhMWEwYmYyNDVjYzczNGMzYTljMWM1NDcyNzNh
MzhmM2M4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMDkgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0
IGxvYWQgY3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IHRoZSBVSSBwcm9jZXNzIHVzZXMgdGFzayBJRHMgdG8gZGlzdGluZ3Vpc2ggYmV0
d2VlbiBkaWZmZXJlbnQKKyAgICAgICAgV2ViVVJMU2NoZW1lVGFzayBvYmplY3RzLCBhbmQgcmVh
c29uYWJseSBleHBlY3RzIHRoZSB0YXNrIElEcyB0byBiZSBnbG9iYWxseS11bmlxdWUuIEJ1dCB0
aGUKKyAgICAgICAgdGFzayBJRHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZCBpbiB0aGUgd2ViIHBy
b2Nlc3MgaW4gV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcKKyAgICAgICAgdXNp
bmcgUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIsIHdoaWNoIHVzZXMgUHJvZ3Jlc3NUcmFja2Vy
OjpjcmVhdGVVbmlxdWVJZGVudGlmaWVyLCB3aGljaAorICAgICAgICBqdXN0IGluY3JlbWVudHMg
YSBjb3VudGVyIHZhcmlhYmxlLCBzbyB0aGV5J3JlIG9ubHkgdW5pcXVlIHRvIGEgZ2l2ZW4gd2Vi
IHByb2Nlc3MsIG5vdAorICAgICAgICB1bmlxdWUgaW4gdGhlIFVJIHByb2Nlc3MuIE91Y2ghIFNp
bmNlIHdlIGhhdmUgbXVsdGlwbGUgdGFza3Mgd2l0aCB0aGUgc2FtZSBJRCwgdGhleSBjbG9iYmVy
CisgICAgICAgIGVhY2ggb3RoZXIgaW4gdmFyaW91cyBpbnRlcm5hbCBIYXNoU2V0cywgYW5kIHRo
ZSBjbG9iYmVyZWQgdGFza3MgbmV2ZXIgY29tcGxldGUsIHdoaWxlIHRoZQorICAgICAgICB0YXNr
cyB0aGF0IGRvbid0IGdldCBjbG9iYmVyZWQgbWF5IHdpbmQgdXAgY29tcGxldGluZyBtdWx0aXBs
ZSB0aW1lcywgb3Igd2l0aCBleHRyYSBkYXRhCisgICAgICAgIGZyb20gdGhlIHRhc2tzIHRoYXQg
bmV2ZXIgZmluaXNoZWQuCisKKyAgICAgICAgU29sdXRpb24gaXMgdG8ganVzdCB1c2Ugc2VwYXJh
dGUgdGFzayBJRHMgZ2VuZXJhdGVkIGluIHRoZSBVSSBwcm9jZXNzIHRvIHJlZmVyIHRvIHRoZSB0
YXNrcworICAgICAgICBpbiB0aGUgVUkgcHJvY2VzcywgdG8gZW5zdXJlIHRhc2sgSURzIGFyZSBy
ZWFsbHkgZ2xvYmFsbHktdW5pcXVlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFy
dFRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OndpbGxQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oOgorCiAyMDIxLTA5LTA5ICBCZW4gTmhhbSAgPG5o
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFByZWNvbm5lY3RlZCBzb2NrZXQgaXMgc29tZXRpbWVz
IG5vdCB1c2VkIGZvciBpbml0aWFsIHJlcXVlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggZmY2OGQ2NGUxODAyYWRlYmM0MDE0Yjhi
NjE3OTFhMDJmNGU0ZTRhMC4uNzkxMDZiNTFhZjY1OGExZjc2NGJhYTM3YWY4MzYxMWY2NjViMTgw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5j
cHAKQEAgLTUxLDggKzUxLDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhh
bmRsZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJv
eHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIFN5bmNMb2FkQ29tcGxl
dGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHRhc2tJZGVudGlm
aWVyID0gcGFyYW1ldGVycy50YXNrSWRlbnRpZmllcjsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFz
a3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBh
Z2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpKTsKKyAgICBhdXRvIHRhc2sgPSBXZWJVUkxTY2hlbWVUYXNrOjpjcmVh
dGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGF1dG8gdGFza0lkZW50aWZpZXIgPSB0
YXNrLT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRl
bnRpZmllciwgV1RGTW92ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsK
IAogICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRkKHBhZ2Uu
aWRlbnRpZmllcigpLCBIYXNoU2V0PHVpbnQ2NF90PigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggOWUxZGJiZmM4ZTgyODgwMWViMDg4M2Ey
NjAwZDFlYWEzZmZjZmZiNy4uN2Q1NmJkNjY3MTRmOWJmMTFiOGMxMTlmMzc3ZjBiOTMyODEzN2Yz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAg
LTQ1LDcgKzQ1LDggQEAgUmVmPFdlYlVSTFNjaGVtZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNy
ZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWIKIFdlYlVSTFNjaGVtZVRhc2s6
OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBTeW5jTG9hZENvbXBs
ZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQogICAgIDogbV91cmxTY2hlbWVI
YW5kbGVyKGhhbmRsZXIpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJlZihwcm9jZXNzKSkKLSAgICAs
IG1faWRlbnRpZmllcihwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyKQorICAgICwgbV9pZGVudGlm
aWVyKE9iamVjdElkZW50aWZpZXI8V2ViVVJMU2NoZW1lVGFzaz46OmdlbmVyYXRlKCkudG9VSW50
NjQoKSkKKyAgICAsIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyKHBhcmFtZXRlcnMudGFza0lk
ZW50aWZpZXIpCiAgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmllcigpKQogICAgICwg
bV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0KFdURk1vdmUocGFyYW1ldGVy
cy5yZXF1ZXN0KSkKQEAgLTEwNiw3ICsxMDcsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6Ondp
bGxQZXJmb3JtUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNvdQog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgfTsK
IAotICAgIHBhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2No
ZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlm
aWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1l
SGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgcmVzcG9u
c2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlvbkhhbmRsZXIpKTsKIAogICAgIHJl
dHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpAQCAtMTM4LDcgKzEzOSw3IEBAIGF1dG8gV2Vi
VVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgfQogCi0g
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVy
Zm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50
aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlv
bihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFza0lkZW50
aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOwogCiAgICAgcmV0dXJuIEV4
Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CkBAIC0xNjQsNyArMTY1LDcgQEAgYXV0byBXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpIC0+IEUKICAgICBpZiAoaXNTeW5jKCkpCiAgICAgICAgIG1fc3luY1Jlc3BvbnNlID0gcmVz
cG9uc2U7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1f
dXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmll
ciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5v
bmU7CiB9CiAKQEAgLTE5NCw3ICsxOTUsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJl
Y2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRpb25UeQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBidWZmZXIuZ2V0KCkp
LCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpV
UkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyLCBidWZmZXIuZ2V0KCkpLCBtX3dlYlBhZ2VJ
RCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTIyNSw3ICsyMjYs
NyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAgICAgICAgIG1fc3luY0RhdGEgPSBudWxscHRy
OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2No
ZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lk
ZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgZXJyb3IpLCBtX3dl
YlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxldGVkKCp0aGlzKTsK
IAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lVGFzay5oCmluZGV4IGVhYzA5YmRlY2ExZGVjMGNiMjE5YWMxZDAzMzA4
YjJlMjcyMzA5Y2UuLjYzYmU5MmU4M2RkZTRmNTZiOTc5ZmMwNTgzZmZhNDU1ZmExNDA5ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAgLTEwMiw2ICsx
MDIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyPiBtX3VybFNjaGVt
ZUhhbmRsZXI7CiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICB1aW50NjRfdCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRp
ZmllcjsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CiAgICAgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IG1fcmVxdWVzdCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcmVxdWVzdExvY2spOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUyNzgzOTM0
NGU2MTk3ZWY1YjM2M2JhOWFiMzUyMDg3MjRkMDRjZTAuLmYyOTA1YzA3YjFjNWU5NTI5Y2QyN2M1
NjhmM2VhZDYxNTM3MTRkNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOS0wOSAgTWljaGFlbCBDYXRhbnph
cm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBXZWJLaXQgbWlnaHQgbG9hZCBj
dXN0b20gVVJJIHNjaGVtZSByZXF1ZXN0IGNvbnRlbnQgbXVsdGlwbGUgdGltZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTExNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCdzIGxvYWQgdGhlIHNh
bWUgVVJMIDUwIHRpbWVzIGFuZCBtYWtlIHN1cmUgYWxsIGxvYWRzIGNvbXBsZXRlIHdpdGggdGhl
IHNhbWUgY29udGVudC4KKyAgICAgICAgV2l0aG91dCBteSBmaXgsIHRoZSB0ZXN0IGhhbmdzIGZv
cmV2ZXIgc3Bpbm5pbmcgaXRzIG1haW4gbG9vcCwgYmVjYXVzZSBvbmx5IGEgZmV3IG9mIHRoZQor
ICAgICAgICByZXF1ZXN0cyBhY3R1YWxseSBjb21wbGV0ZSwgc28gdGhlIHRlc3QgZ2V0cyBzdHVj
ayB3YWl0aW5nLgorCisgICAgICAgIE5vdGUgSSBwaWNrZWQgNTAgYmVjYXVzZSB3aGVuIHJ1bm5p
bmcgdGhlIHRlc3QgMTAwIHRpbWVzLCB3cGViYWNrZW5kLWZkbyBkaWVzIHRvIGFuCisgICAgICAg
IHVucmVsYXRlZCBwcm9ibGVtOiBpdHMgaW50ZXJuYWwgV2F5bGFuZCByZWdpc3RyeSBzdG9wcyBy
ZWdpc3RlcmluZyBuZXcgZ2xvYmFsIG9iamVjdHMsIGFuZAorICAgICAgICBlYWNoIG5ldyB3ZWIg
cHJvY2VzcyBzdGFydHMgY3Jhc2hpbmcuIFRoYXQncyB3ZWlyZCwgYnV0IG5vdCB0aGUgcHJvYmxl
bSB3ZSdyZSB0cnlpbmcgdG8KKyAgICAgICAgc29sdmUgdG9kYXkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgorICAg
ICAgICAodGVzdFdlYkNvbnRleHRVUklTY2hlbWUpOgorCiAyMDIxLTA5LTA5ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzb21lIGxsZGIgZGF0
YSBwcm92aWRlciBpc3N1ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDUzMjU0OGIx
ZTRlMmEwYWY1YzlhMmVlMWMzMjA2YmNiZjI4OGY0M2EuLmFmNmU4ODQ1ZDFhZTc2MjJkYmRlM2Q1
YWQxYTU3YTEzMTYxZjU0N2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTEzLDcg
KzExMyw4IEBAIHB1YmxpYzoKICAgICAgICAgdGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0ID0gcmVx
dWVzdDsKICAgICAgICAgdGVzdC0+YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hl
cyhHX09CSkVDVChyZXF1ZXN0KSk7CiAKLSAgICAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfdXJp
X3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmlldyhyZXF1ZXN0KSA9PSB0ZXN0LT5tX3dlYlZpZXcp
OworICAgICAgICBpZiAodGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2tVc2VzVGVzdFdl
YlZpZXcpCisgICAgICAgICAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3dlYl92aWV3KHJlcXVlc3QpID09IHRlc3QtPm1fd2ViVmlldyk7CiAKICAgICAgICAg
Y29uc3QgY2hhciogc2NoZW1lID0gd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2NoZW1l
KHJlcXVlc3QpOwogICAgICAgICBnX2Fzc2VydF9ub25udWxsKHNjaGVtZSk7CkBAIC0xNjQsNiAr
MTY1LDggQEAgcHVibGljOgogCiAgICAgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiBt
X3VyaVNjaGVtZVJlcXVlc3Q7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSSVNjaGVtZUhhbmRsZXI+
IG1faGFuZGxlcnNNYXA7CisgICAgYm9vbCBtX3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNU
ZXN0V2ViVmlldyB7IHRydWUgfTsKKyAgICBpbnQgbV9sb2FkQ291bnRlciB7IDAgfTsKIH07CiAK
IFN0cmluZyBnZW5lcmF0ZUhUTUxDb250ZW50KHVuc2lnbmVkIGNvbnRlbnRMZW5ndGgpCkBAIC0y
NzgsNiArMjgxLDQwIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNj
aGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5t
X2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFp
bGVkKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRGYWlsZWQpOwogICAgIGdfYXNz
ZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0xP
U0VEKTsKKworICAgIC8vIFRvcnR1cmUgdGVzdCB0aW1lOiBtYWtlIHN1cmUgaXQgc3RpbGwgd29y
a3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZmZXJlbnQgcmVxdWVzdHMgYWxsIGF0CisgICAg
Ly8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBmaW5pc2ggYW5kIHJldHVybiBleGFjdGx5IHRo
ZSBzYW1lIGRhdGEuCisgICAgaW50IG51bUl0ZXJhdGlvbnMgPSA1MDsKKyAgICBHUmVmUHRyPFdl
YktpdFdlYlZpZXc+IHZpZXdzW251bUl0ZXJhdGlvbnNdOworICAgIHRlc3QtPm1fdXJpU2NoZW1l
UmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3ID0gZmFsc2U7CisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsKKyAgICAgICAgdmlld3NbaV0gPSBhZG9wdEdS
ZWYoV0VCS0lUX1dFQl9WSUVXKGdfb2JqZWN0X3JlZl9zaW5rKHdlYmtpdF93ZWJfdmlld19uZXdf
d2l0aF9jb250ZXh0KHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSkpKSk7CisgICAgICAgIHdlYmtp
dF93ZWJfdmlld19sb2FkX3VyaSh2aWV3c1tpXS5nZXQoKSwgImZvbzpibGFuayIpOworICAgICAg
ICBnX3NpZ25hbF9jb25uZWN0KHZpZXdzW2ldLmdldCgpLCAibG9hZC1jaGFuZ2VkIiwgR19DQUxM
QkFDSygrW10gKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCBsb2FkRXZl
bnQsIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvKiB0ZXN0ID0gc3RhdGlj
X2Nhc3Q8VVJJU2NoZW1lVGVzdCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIGlmIChsb2FkRXZl
bnQgIT0gV0VCS0lUX0xPQURfRklOSVNIRUQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgdGVzdC0+bV9sb2FkQ291bnRlci0tOworICAgICAgICAgICAgaWYgKCF0ZXN0LT5t
X2xvYWRDb3VudGVyKQorICAgICAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9t
YWluTG9vcCk7CisgICAgICAgIH0pLCB0ZXN0KTsKKyAgICB9CisgICAgdGVzdC0+bV9sb2FkQ291
bnRlciA9IG51bUl0ZXJhdGlvbnM7CisgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxv
b3ApOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsKKyAg
ICAgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHJlc291cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9t
YWluX3Jlc291cmNlKHZpZXdzW2ldLmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChy
ZXNvdXJjZSk7CisgICAgICAgIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X2RhdGEocmVzb3VyY2Us
IG51bGxwdHIsICtbXSAoR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3Bv
aW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIHRlc3QgPSBzdGF0aWNfY2FzdDxV
UklTY2hlbWVUZXN0Kj4odXNlckRhdGEpOworICAgICAgICAgICAgZ3NpemUgZGF0YVNpemU7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBjaGFyKiBkYXRhID0gd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRf
ZGF0YV9maW5pc2goV0VCS0lUX1dFQl9SRVNPVVJDRShvYmplY3QpLCByZXN1bHQsICZkYXRhU2l6
ZSwgbnVsbHB0cik7CisgICAgICAgICAgICBnX2Fzc2VydF9jbXBpbnQoc3RybmNtcChyZWludGVy
cHJldF9jYXN0PGNoYXIqPihkYXRhKSwga0JhckhUTUwsIGRhdGFTaXplKSwgPT0sIDApOworICAg
ICAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKKyAgICAgICAgfSwg
dGVzdCk7CisgICAgICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKKyAgICB9
CisgICAgdGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2tVc2VzVGVzdFdlYlZpZXcgPSB0
cnVlOwogfQogCiAjaWYgUExBVEZPUk0oR1RLKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437825</attachid>
            <date>2021-09-09 19:20:25 -0700</date>
            <delta_ts>2021-09-14 15:52:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210909212024.patch</filename>
            <type>text/plain</type>
            <size>12853</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4M2IzMTY0NDBiM2Q0MGYy
ODdmMjhlMWRmZGNiZmIxMTgzYmUyNjMuLjJhNjlhMWEwYmYyNDVjYzczNGMzYTljMWM1NDcyNzNh
MzhmM2M4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDktMDkgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0
IGxvYWQgY3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IHRoZSBVSSBwcm9jZXNzIHVzZXMgdGFzayBJRHMgdG8gZGlzdGluZ3Vpc2ggYmV0
d2VlbiBkaWZmZXJlbnQKKyAgICAgICAgV2ViVVJMU2NoZW1lVGFzayBvYmplY3RzLCBhbmQgcmVh
c29uYWJseSBleHBlY3RzIHRoZSB0YXNrIElEcyB0byBiZSBnbG9iYWxseS11bmlxdWUuIEJ1dCB0
aGUKKyAgICAgICAgdGFzayBJRHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZCBpbiB0aGUgd2ViIHBy
b2Nlc3MgaW4gV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcKKyAgICAgICAgdXNp
bmcgUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIsIHdoaWNoIHVzZXMgUHJvZ3Jlc3NUcmFja2Vy
OjpjcmVhdGVVbmlxdWVJZGVudGlmaWVyLCB3aGljaAorICAgICAgICBqdXN0IGluY3JlbWVudHMg
YSBjb3VudGVyIHZhcmlhYmxlLCBzbyB0aGV5J3JlIG9ubHkgdW5pcXVlIHRvIGEgZ2l2ZW4gd2Vi
IHByb2Nlc3MsIG5vdAorICAgICAgICB1bmlxdWUgaW4gdGhlIFVJIHByb2Nlc3MuIE91Y2ghIFNp
bmNlIHdlIGhhdmUgbXVsdGlwbGUgdGFza3Mgd2l0aCB0aGUgc2FtZSBJRCwgdGhleSBjbG9iYmVy
CisgICAgICAgIGVhY2ggb3RoZXIgaW4gdmFyaW91cyBpbnRlcm5hbCBIYXNoU2V0cywgYW5kIHRo
ZSBjbG9iYmVyZWQgdGFza3MgbmV2ZXIgY29tcGxldGUsIHdoaWxlIHRoZQorICAgICAgICB0YXNr
cyB0aGF0IGRvbid0IGdldCBjbG9iYmVyZWQgbWF5IHdpbmQgdXAgY29tcGxldGluZyBtdWx0aXBs
ZSB0aW1lcywgb3Igd2l0aCBleHRyYSBkYXRhCisgICAgICAgIGZyb20gdGhlIHRhc2tzIHRoYXQg
bmV2ZXIgZmluaXNoZWQuCisKKyAgICAgICAgU29sdXRpb24gaXMgdG8ganVzdCB1c2Ugc2VwYXJh
dGUgdGFzayBJRHMgZ2VuZXJhdGVkIGluIHRoZSBVSSBwcm9jZXNzIHRvIHJlZmVyIHRvIHRoZSB0
YXNrcworICAgICAgICBpbiB0aGUgVUkgcHJvY2VzcywgdG8gZW5zdXJlIHRhc2sgSURzIGFyZSBy
ZWFsbHkgZ2xvYmFsbHktdW5pcXVlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFy
dFRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OndpbGxQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oOgorCiAyMDIxLTA5LTA5ICBCZW4gTmhhbSAgPG5o
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFByZWNvbm5lY3RlZCBzb2NrZXQgaXMgc29tZXRpbWVz
IG5vdCB1c2VkIGZvciBpbml0aWFsIHJlcXVlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggZmY2OGQ2NGUxODAyYWRlYmM0MDE0Yjhi
NjE3OTFhMDJmNGU0ZTRhMC4uNzkxMDZiNTFhZjY1OGExZjc2NGJhYTM3YWY4MzYxMWY2NjViMTgw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5j
cHAKQEAgLTUxLDggKzUxLDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhh
bmRsZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJv
eHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIFN5bmNMb2FkQ29tcGxl
dGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHRhc2tJZGVudGlm
aWVyID0gcGFyYW1ldGVycy50YXNrSWRlbnRpZmllcjsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFz
a3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBh
Z2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpKTsKKyAgICBhdXRvIHRhc2sgPSBXZWJVUkxTY2hlbWVUYXNrOjpjcmVh
dGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGF1dG8gdGFza0lkZW50aWZpZXIgPSB0
YXNrLT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRl
bnRpZmllciwgV1RGTW92ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsK
IAogICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRkKHBhZ2Uu
aWRlbnRpZmllcigpLCBIYXNoU2V0PHVpbnQ2NF90PigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggOWUxZGJiZmM4ZTgyODgwMWViMDg4M2Ey
NjAwZDFlYWEzZmZjZmZiNy4uN2Q1NmJkNjY3MTRmOWJmMTFiOGMxMTlmMzc3ZjBiOTMyODEzN2Yz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAg
LTQ1LDcgKzQ1LDggQEAgUmVmPFdlYlVSTFNjaGVtZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNy
ZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWIKIFdlYlVSTFNjaGVtZVRhc2s6
OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBTeW5jTG9hZENvbXBs
ZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQogICAgIDogbV91cmxTY2hlbWVI
YW5kbGVyKGhhbmRsZXIpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJlZihwcm9jZXNzKSkKLSAgICAs
IG1faWRlbnRpZmllcihwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyKQorICAgICwgbV9pZGVudGlm
aWVyKE9iamVjdElkZW50aWZpZXI8V2ViVVJMU2NoZW1lVGFzaz46OmdlbmVyYXRlKCkudG9VSW50
NjQoKSkKKyAgICAsIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyKHBhcmFtZXRlcnMudGFza0lk
ZW50aWZpZXIpCiAgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmllcigpKQogICAgICwg
bV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0KFdURk1vdmUocGFyYW1ldGVy
cy5yZXF1ZXN0KSkKQEAgLTEwNiw3ICsxMDcsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6Ondp
bGxQZXJmb3JtUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNvdQog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgfTsK
IAotICAgIHBhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2No
ZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlm
aWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1l
SGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgcmVzcG9u
c2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlvbkhhbmRsZXIpKTsKIAogICAgIHJl
dHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpAQCAtMTM4LDcgKzEzOSw3IEBAIGF1dG8gV2Vi
VVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgfQogCi0g
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVy
Zm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50
aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlv
bihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFza0lkZW50
aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOwogCiAgICAgcmV0dXJuIEV4
Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CkBAIC0xNjQsNyArMTY1LDcgQEAgYXV0byBXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpIC0+IEUKICAgICBpZiAoaXNTeW5jKCkpCiAgICAgICAgIG1fc3luY1Jlc3BvbnNlID0gcmVz
cG9uc2U7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1f
dXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmll
ciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5v
bmU7CiB9CiAKQEAgLTE5NCw3ICsxOTUsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJl
Y2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRpb25UeQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBidWZmZXIuZ2V0KCkp
LCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpV
UkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1fd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyLCBidWZmZXIuZ2V0KCkpLCBtX3dlYlBhZ2VJ
RCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTIyNSw3ICsyMjYs
NyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAgICAgICAgIG1fc3luY0RhdGEgPSBudWxscHRy
OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2No
ZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lk
ZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgZXJyb3IpLCBtX3dl
YlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxldGVkKCp0aGlzKTsK
IAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lVGFzay5oCmluZGV4IGVhYzA5YmRlY2ExZGVjMGNiMjE5YWMxZDAzMzA4
YjJlMjcyMzA5Y2UuLjYzYmU5MmU4M2RkZTRmNTZiOTc5ZmMwNTgzZmZhNDU1ZmExNDA5ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAgLTEwMiw2ICsx
MDIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyPiBtX3VybFNjaGVt
ZUhhbmRsZXI7CiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICB1aW50NjRfdCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRp
ZmllcjsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CiAgICAgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IG1fcmVxdWVzdCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcmVxdWVzdExvY2spOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUyNzgzOTM0
NGU2MTk3ZWY1YjM2M2JhOWFiMzUyMDg3MjRkMDRjZTAuLjA5NDM4MzUyZDFlMDQwYjY5OTBhZjgx
MmY0MGEwMTBjM2Y1OTE0MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMS0wOS0wOSAgTWljaGFlbCBDYXRhbnph
cm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KKworICAgICAgICBXZWJLaXQgbWlnaHQgbG9hZCBj
dXN0b20gVVJJIHNjaGVtZSByZXF1ZXN0IGNvbnRlbnQgbXVsdGlwbGUgdGltZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTExNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCdzIGxvYWQgdGhlIHNh
bWUgVVJMIDUwIHRpbWVzIGFuZCBtYWtlIHN1cmUgYWxsIGxvYWRzIGNvbXBsZXRlIHdpdGggdGhl
IHNhbWUgY29udGVudC4KKyAgICAgICAgV2l0aG91dCBteSBmaXgsIHRoZSB0ZXN0IGhhbmdzIGZv
cmV2ZXIgc3Bpbm5pbmcgaXRzIG1haW4gbG9vcCwgYmVjYXVzZSBvbmx5IGEgZmV3IG9mIHRoZQor
ICAgICAgICByZXF1ZXN0cyBhY3R1YWxseSBjb21wbGV0ZSwgc28gdGhlIHRlc3QgZ2V0cyBzdHVj
ayB3YWl0aW5nLgorCisgICAgICAgIE5vdGUgSSBwaWNrZWQgNTAgYmVjYXVzZSB3aGVuIHJ1bm5p
bmcgdGhlIHRlc3QgMTAwIHRpbWVzLCB3cGViYWNrZW5kLWZkbyBkaWVzIHRvIGFuCisgICAgICAg
IHVucmVsYXRlZCBwcm9ibGVtOiBpdHMgaW50ZXJuYWwgV2F5bGFuZCByZWdpc3RyeSBzdG9wcyBy
ZWdpc3RlcmluZyBuZXcgZ2xvYmFsIG9iamVjdHMsIGFuZAorICAgICAgICBlYWNoIG5ldyB3ZWIg
cHJvY2VzcyBzdGFydHMgY3Jhc2hpbmcuIFRoYXQncyB3ZWlyZCwgYnV0IG5vdCB0aGUgcHJvYmxl
bSB3ZSdyZSB0cnlpbmcgdG8KKyAgICAgICAgc29sdmUgdG9kYXkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgorICAg
ICAgICAoY3JlYXRlVGVzdFdlYlZpZXdXaXRoV2ViQ29udGV4dCk6CisgICAgICAgICh0ZXN0V2Vi
Q29udGV4dFVSSVNjaGVtZSk6CisKIDIwMjEtMDktMDkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNvbWUgbGxkYiBkYXRhIHByb3ZpZGVyIGlz
c3VlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggNTMyNTQ4YjFlNGUyYTBhZjVjOWEy
ZWUxYzMyMDZiY2JmMjg4ZjQzYS4uNWU3ODgyMGZjYTlkOTVkOGZiYzhkMWI2MjIzNWY2MTFkNmIz
MGQyMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0xMTMsNyArMTEzLDggQEAgcHVi
bGljOgogICAgICAgICB0ZXN0LT5tX3VyaVNjaGVtZVJlcXVlc3QgPSByZXF1ZXN0OwogICAgICAg
ICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHJl
cXVlc3QpKTsKIAotICAgICAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVl
c3RfZ2V0X3dlYl92aWV3KHJlcXVlc3QpID09IHRlc3QtPm1fd2ViVmlldyk7CisgICAgICAgIGlm
ICh0ZXN0LT5tX3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldykKKyAgICAg
ICAgICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2ViX3Zp
ZXcocmVxdWVzdCkgPT0gdGVzdC0+bV93ZWJWaWV3KTsKIAogICAgICAgICBjb25zdCBjaGFyKiBz
Y2hlbWUgPSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUocmVxdWVzdCk7CiAg
ICAgICAgIGdfYXNzZXJ0X25vbm51bGwoc2NoZW1lKTsKQEAgLTE2NCw2ICsxNjUsOCBAQCBwdWJs
aWM6CiAKICAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+IG1fdXJpU2NoZW1lUmVx
dWVzdDsKICAgICBIYXNoTWFwPFN0cmluZywgVVJJU2NoZW1lSGFuZGxlcj4gbV9oYW5kbGVyc01h
cDsKKyAgICBib29sIG1fdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3IHsg
dHJ1ZSB9OworICAgIGludCBtX2xvYWRDb3VudGVyIHsgMCB9OwogfTsKIAogU3RyaW5nIGdlbmVy
YXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKQEAgLTE5Myw2ICsxOTYsMjEg
QEAgU3RyaW5nIGdlbmVyYXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCitzdGF0aWMgR1JlZlB0cjxXZWJLaXRX
ZWJWaWV3PiBjcmVhdGVUZXN0V2ViVmlld1dpdGhXZWJDb250ZXh0KFdlYktpdFdlYkNvbnRleHQq
IGNvbnRleHQpCit7CisgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyhn
X29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX1ZJRVcsCisjaWYgUExBVEZPUk0oV1BFKQorICAg
ICAgICAiYmFja2VuZCIsIFRlc3Q6OmNyZWF0ZVdlYlZpZXdCYWNrZW5kKCksCisjZW5kaWYKKyAg
ICAgICAgIndlYi1jb250ZXh0IiwgY29udGV4dCwKKyAgICAgICAgbnVsbHB0cikpOworCisjaWYg
UExBVEZPUk0oR1RLKQorICAgIGdfb2JqZWN0X3JlZl9zaW5rKHZpZXcpOworI2VuZGlmCisgICAg
cmV0dXJuIGFkb3B0R1JlZih2aWV3KTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRleHRV
UklTY2hlbWUoVVJJU2NoZW1lVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICB0ZXN0
LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoImZvbyIsIGtCYXJIVE1MLCBzdHJsZW4oa0JhckhU
TUwpLCAidGV4dC9odG1sIik7CkBAIC0yNzgsNiArMjk2LDQxIEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAg
ICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNraW5n
VGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVkKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5t
X2xvYWRGYWlsZWQpOwogICAgIGdfYXNzZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCksIEdf
SU9fRVJST1IsIEdfSU9fRVJST1JfQ0xPU0VEKTsKKworICAgIC8vIFRvcnR1cmUgdGVzdCB0aW1l
OiBtYWtlIHN1cmUgaXQgc3RpbGwgd29ya3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZmZXJl
bnQgcmVxdWVzdHMgYWxsIGF0CisgICAgLy8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBmaW5p
c2ggYW5kIHJldHVybiBleGFjdGx5IHRoZSBzYW1lIGRhdGEuCisgICAgaW50IG51bUl0ZXJhdGlv
bnMgPSA1MDsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlZpZXc+IHZpZXdzW251bUl0ZXJhdGlvbnNd
OworICAgIHRlc3QtPm1fdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3ID0g
ZmFsc2U7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsKKyAg
ICAgICAgdmlld3NbaV0gPSBjcmVhdGVUZXN0V2ViVmlld1dpdGhXZWJDb250ZXh0KHRlc3QtPm1f
d2ViQ29udGV4dC5nZXQoKSk7CisgICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRlZFdo
ZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qodmlld3NbaV0uZ2V0KCkpKTsKKyAgICAgICAgd2Via2l0
X3dlYl92aWV3X2xvYWRfdXJpKHZpZXdzW2ldLmdldCgpLCAiZm9vOmJsYW5rIik7CisgICAgICAg
IGdfc2lnbmFsX2Nvbm5lY3Qodmlld3NbaV0uZ2V0KCksICJsb2FkLWNoYW5nZWQiLCBHX0NBTExC
QUNLKCtbXSAoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TG9hZEV2ZW50IGxvYWRFdmVu
dCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIHRlc3QgPSBzdGF0aWNf
Y2FzdDxVUklTY2hlbWVUZXN0Kj4odXNlckRhdGEpOworICAgICAgICAgICAgaWYgKGxvYWRFdmVu
dCAhPSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB0ZXN0LT5tX2xvYWRDb3VudGVyLS07CisgICAgICAgICAgICBpZiAoIXRlc3QtPm1f
bG9hZENvdW50ZXIpCisgICAgICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21h
aW5Mb29wKTsKKyAgICAgICAgfSksIHRlc3QpOworICAgIH0KKyAgICB0ZXN0LT5tX2xvYWRDb3Vu
dGVyID0gbnVtSXRlcmF0aW9uczsKKyAgICBnX21haW5fbG9vcF9ydW4odGVzdC0+bV9tYWluTG9v
cCk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUl0ZXJhdGlvbnM7IGkrKykgeworICAg
ICAgICBXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21h
aW5fcmVzb3VyY2Uodmlld3NbaV0uZ2V0KCkpOworICAgICAgICBnX2Fzc2VydF9ub25udWxsKHJl
c291cmNlKTsKKyAgICAgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZGF0YShyZXNvdXJjZSwg
bnVsbHB0ciwgK1tdIChHT2JqZWN0KiBvYmplY3QsIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9p
bnRlciB1c2VyRGF0YSkgeworICAgICAgICAgICAgYXV0byogdGVzdCA9IHN0YXRpY19jYXN0PFVS
SVNjaGVtZVRlc3QqPih1c2VyRGF0YSk7CisgICAgICAgICAgICBnc2l6ZSBkYXRhU2l6ZTsKKyAg
ICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGRhdGEgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2dldF9k
YXRhX2ZpbmlzaChXRUJLSVRfV0VCX1JFU09VUkNFKG9iamVjdCksIHJlc3VsdCwgJmRhdGFTaXpl
LCBudWxscHRyKTsKKyAgICAgICAgICAgIGdfYXNzZXJ0X2NtcGludChzdHJuY21wKHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KGRhdGEpLCBrQmFySFRNTCwgZGF0YVNpemUpLCA9PSwgMCk7CisgICAg
ICAgICAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFpbkxvb3ApOworICAgICAgICB9LCB0
ZXN0KTsKKyAgICAgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxvb3ApOworICAgIH0K
KyAgICB0ZXN0LT5tX3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldyA9IHRy
dWU7CiB9CiAKICNpZiBQTEFURk9STShHVEspCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438183</attachid>
            <date>2021-09-14 15:52:36 -0700</date>
            <delta_ts>2021-09-20 12:08:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210914175235.patch</filename>
            <type>text/plain</type>
            <size>15706</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRjODNlYjE0ZDM5ZGNlMjRj
ZDM3OWNlMmU4MmUwZjhlMDA4ZmE0MzIuLjlhZjEyOGNlMjJjM2ZmNDBlYTMwOTg4NWNlYmE1MjA4
ZWNkMmUwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjEtMDktMTQgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgV2ViS2l0IG1pZ2h0
IGxvYWQgY3VzdG9tIFVSSSBzY2hlbWUgcmVxdWVzdCBjb250ZW50IG11bHRpcGxlIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkxMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IHRoZSBVSSBwcm9jZXNzIHVzZXMgdGFzayBJRHMgdG8gZGlzdGluZ3Vpc2ggYmV0
d2VlbiBkaWZmZXJlbnQKKyAgICAgICAgV2ViVVJMU2NoZW1lVGFzayBvYmplY3RzLCBhbmQgcmVh
c29uYWJseSBleHBlY3RzIHRoZSB0YXNrIElEcyB0byBiZSBnbG9iYWxseS11bmlxdWUuIEJ1dCB0
aGUKKyAgICAgICAgdGFzayBJRHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZCBpbiB0aGUgd2ViIHBy
b2Nlc3MgaW4gV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcKKyAgICAgICAgdXNp
bmcgUmVzb3VyY2VMb2FkZXI6OmlkZW50aWZpZXIsIHdoaWNoIHVzZXMgUHJvZ3Jlc3NUcmFja2Vy
OjpjcmVhdGVVbmlxdWVJZGVudGlmaWVyLCB3aGljaAorICAgICAgICBqdXN0IGluY3JlbWVudHMg
YSBjb3VudGVyIHZhcmlhYmxlLCBzbyB0aGV5J3JlIG9ubHkgdW5pcXVlIHRvIGEgZ2l2ZW4gd2Vi
IHByb2Nlc3MsIG5vdAorICAgICAgICB1bmlxdWUgaW4gdGhlIFVJIHByb2Nlc3MuIE91Y2ghIFNp
bmNlIHdlIGhhdmUgbXVsdGlwbGUgdGFza3Mgd2l0aCB0aGUgc2FtZSBJRCwgdGhleSBjbG9iYmVy
CisgICAgICAgIGVhY2ggb3RoZXIgaW4gdmFyaW91cyBpbnRlcm5hbCBIYXNoU2V0cywgYW5kIHRo
ZSBjbG9iYmVyZWQgdGFza3MgbmV2ZXIgY29tcGxldGUsIHdoaWxlIHRoZQorICAgICAgICB0YXNr
cyB0aGF0IGRvbid0IGdldCBjbG9iYmVyZWQgbWF5IHdpbmQgdXAgY29tcGxldGluZyBtdWx0aXBs
ZSB0aW1lcywgb3Igd2l0aCBleHRyYSBkYXRhCisgICAgICAgIGZyb20gdGhlIHRhc2tzIHRoYXQg
bmV2ZXIgZmluaXNoZWQuCisKKyAgICAgICAgU29sdXRpb24gaXMgdG8ganVzdCB1c2Ugc2VwYXJh
dGUgdGFzayBJRHMgZ2VuZXJhdGVkIGluIHRoZSBVSSBwcm9jZXNzIHRvIHJlZmVyIHRvIHRoZSB0
YXNrcworICAgICAgICBpbiB0aGUgVUkgcHJvY2VzcywgdG8gZW5zdXJlIHRhc2sgSURzIGFyZSBy
ZWFsbHkgZ2xvYmFsbHktdW5pcXVlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFy
dFRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdG9wVGFza1dp
dGhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3Rv
cFRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMU2NoZW1lVGFzazo6d2lsbFBlcmZvcm1SZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFNjaGVtZVRhc2s6OmRpZFBlcmZvcm1SZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxldGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OndlYlBy
b2Nlc3NUYXNrSUQgY29uc3QpOgorCiAyMDIxLTA5LTE0ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIEVuYWJsZSBJUENNZXNzYWdlcyBkZWJ1ZyBs
b2dnaW5nIGZvciBub24tQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggZmY2OGQ2NGUxODAyYWRlYmM0MDE0YjhiNjE3
OTFhMDJmNGU0ZTRhMC4uMjkxNTM3YmZlMGE3ZGM0OWU1NjhhMWIyZTVkNjc1ZWZjYzY5YWFmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAK
QEAgLTUxLDggKzUxLDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRs
ZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJveHkm
IHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlE
LCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIFN5bmNMb2FkQ29tcGxldGlv
bkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHRhc2tJZGVudGlmaWVy
ID0gcGFyYW1ldGVycy50YXNrSWRlbnRpZmllcjsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3Mu
YWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2Us
IHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpKTsKKyAgICBhdXRvIHRhc2sgPSBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUo
KnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGF1dG8gdGFza0lkZW50aWZpZXIgPSB0YXNr
LT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRlbnRp
ZmllciwgV1RGTW92ZSh0YXNrKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKIAog
ICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRkKHBhZ2UuaWRl
bnRpZmllcigpLCBIYXNoU2V0PHVpbnQ2NF90PigpKTsKQEAgLTkxLDcgKzkyLDcgQEAgdm9pZCBX
ZWJVUkxTY2hlbWVIYW5kbGVyOjpzdG9wQWxsVGFza3NGb3JQYWdlKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViUHJvY2Vzc1Byb3gKIAogfQogCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0b3BU
YXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCit2b2lkIFdl
YlVSTFNjaGVtZUhhbmRsZXI6OnN0b3BUYXNrV2l0aElkZW50aWZpZXIoV2ViUGFnZVByb3h5JiBw
YWdlLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWRlY2x0eXBlKG1fdGFz
a3MpOjppc1ZhbGlkS2V5KHRhc2tJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA2
LDYgKzEwNywxNiBAQCB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0b3BUYXNrKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCiAgICAgbV90YXNrcy5yZW1vdmUo
aXRlcmF0b3IpOwogfQogCit2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0b3BUYXNrKFdlYlBh
Z2VQcm94eSYgcGFnZSwgdWludDY0X3Qgd2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyKQoreworICAg
IGZvciAoYXV0byYgdCA6IG1fdGFza3MudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHQtPndlYlBy
b2Nlc3NUYXNrSUQoKSA9PSB3ZWJQcm9jZXNzVGFza0lkZW50aWZpZXIpIHsKKyAgICAgICAgICAg
IHN0b3BUYXNrV2l0aElkZW50aWZpZXIocGFnZSwgdC0+aWRlbnRpZmllcigpKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBXZWJVUkxTY2hlbWVIYW5k
bGVyOjp0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smIHRhc2spCiB7CiAgICAgYXV0byB0
YWtlblRhc2sgPSBtX3Rhc2tzLnRha2UodGFzay5pZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCmluZGV4IGY0ZTNkYjYwY2MzYjhl
MDAwYjM0NjAzMmE5OTk3ZWVjMDE0NGQ4ZGIuLjBkZTk4NWI5MmIzY2FhMTZkZDNiZDIyOGYwNTAy
ZWVkYzBjZjJhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNj
aGVtZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVI
YW5kbGVyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIHZvaWQgc3RhcnRUYXNr
KFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYp
OwotICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIpOworICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgdWludDY0X3Qgd2ViUHJvY2Vz
c1Rhc2tJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BBbGxUYXNrc0ZvclBhZ2UoV2ViUGFnZVBy
b3h5JiwgV2ViUHJvY2Vzc1Byb3h5Kik7CiAgICAgdm9pZCB0YXNrQ29tcGxldGVkKFdlYlVSTFNj
aGVtZVRhc2smKTsKIApAQCAtNjMsNiArNjMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBwbGF0Zm9ybVN0b3BUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFNjaGVtZVRhc2smKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtVGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNr
JikgeyB9OwogCisgICAgdm9pZCBzdG9wVGFza1dpdGhJZGVudGlmaWVyKFdlYlBhZ2VQcm94eSYs
IHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKTsKKwogICAgIHZvaWQgcmVtb3ZlVGFza0Zyb21QYWdl
TWFwKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJRCk7CiAgICAgV2ViUHJv
Y2Vzc1Byb3h5KiBwcm9jZXNzRm9yVGFza0lkZW50aWZpZXIodWludDY0X3QpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCmluZGV4IDllMWRi
YmZjOGU4Mjg4MDFlYjA4ODNhMjYwMGQxZWFhM2ZmY2ZmYjcuLjdkNTZiZDY2NzE0ZjliZjExYjhj
MTE5ZjM3N2YwYjkzMjgxMzdmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVS
TFNjaGVtZVRhc2suY3BwCkBAIC00NSw3ICs0NSw4IEBAIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBX
ZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2Vi
CiBXZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXIm
IGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBQ
YWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycywgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikK
ICAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQogICAgICwgbV9wcm9jZXNzKG1ha2VS
ZWYocHJvY2VzcykpCi0gICAgLCBtX2lkZW50aWZpZXIocGFyYW1ldGVycy50YXNrSWRlbnRpZmll
cikKKyAgICAsIG1faWRlbnRpZmllcihPYmplY3RJZGVudGlmaWVyPFdlYlVSTFNjaGVtZVRhc2s+
OjpnZW5lcmF0ZSgpLnRvVUludDY0KCkpCisgICAgLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmll
cihwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyKQogICAgICwgbV9wYWdlUHJveHlJRChwYWdlLmlk
ZW50aWZpZXIoKSkKICAgICAsIG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fcmVxdWVz
dChXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCkpCkBAIC0xMDYsNyArMTA3LDcgQEAgYXV0byBX
ZWJVUkxTY2hlbWVUYXNrOjp3aWxsUGVyZm9ybVJlZGlyZWN0aW9uKFJlc291cmNlUmVzcG9uc2Um
JiByZXNwb25zZSwgUmVzb3UKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
cmVxdWVzdCkpOwogICAgIH07CiAKLSAgICBwYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2No
ZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0
KSwgV1RGTW92ZShpbm5lckNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZS0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrV2lsbFBlcmZvcm1SZWRp
cmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFz
a0lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgV1RGTW92ZShpbm5lckNvbXBsZXRpb25I
YW5kbGVyKSk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTEzOCw3
ICsxMzksNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFBlcmZvcm1SZWRpcmVjdGlvbihX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9ucwogICAgICAgICBtX3JlcXVlc3QgPSBy
ZXF1ZXN0OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXItPmlk
ZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSwgcmVxdWVzdCksIG1fd2ViUGFnZUlE
KTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tE
aWRQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1f
d2ViUHJvY2Vzc1Rhc2tJZGVudGlmaWVyLCByZXNwb25zZSwgcmVxdWVzdCksIG1fd2ViUGFnZUlE
KTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpAQCAtMTY0LDcgKzE2NSw3
IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSAtPiBFCiAgICAgaWYgKGlzU3luYygpKQogICAgICAgICBt
X3N5bmNSZXNwb25zZSA9IHJlc3BvbnNlOwogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFu
ZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlKSwgbV93ZWJQYWdlSUQp
OworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0Rp
ZFJlY2VpdmVSZXNwb25zZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQ
cm9jZXNzVGFza0lkZW50aWZpZXIsIHJlc3BvbnNlKSwgbV93ZWJQYWdlSUQpOwogICAgIHJldHVy
biBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0xOTQsNyArMTk1LDcgQEAgYXV0byBXZWJV
UkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikg
LT4gRXhjZXB0aW9uVHkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiAgICAg
fQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNr
RGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRp
ZmllciwgYnVmZmVyLmdldCgpKSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2NoZW1l
SGFuZGxlci0+aWRlbnRpZmllcigpLCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllciwgYnVmZmVy
LmdldCgpKSwgbV93ZWJQYWdlSUQpOwogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwog
fQogCkBAIC0yMjUsNyArMjI2LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0
ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogICAgICAgICBt
X3N5bmNEYXRhID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXIt
PmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvciksIG1fd2ViUGFnZUlEKTsKKyAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0
ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV93ZWJQcm9jZXNzVGFza0lkZW50
aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOwogICAgIG1fdXJsU2NoZW1lSGFuZGxlci0+dGFz
a0NvbXBsZXRlZCgqdGhpcyk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAppbmRleCBlYWMwOWJkZWNh
MWRlYzBjYjIxOWFjMWQwMzMwOGIyZTI3MjMwOWNlLi5iMWU2N2M0NGRmZDRkZThjOGI2OTM1YzRm
OGU4YTM5Y2JhM2Q0MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
VGFzay5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB+V2ViVVJMU2NoZW1lVGFzaygp
OwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHVpbnQ2NF90IHdlYlByb2Nlc3NU
YXNrSUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3dlYlBy
b2Nlc3NUYXNrSWRlbnRpZmllcjsgfQogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVBy
b3h5SUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3BhZ2VQ
cm94eUlEOyB9CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKCkgY29uc3Qg
eyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV93ZWJQYWdlSUQ7IH0KICAgICBX
ZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MoKSB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJl
dHVybiBtX3Byb2Nlc3MuZ2V0KCk7IH0KQEAgLTEwMiw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAg
IFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVyPiBtX3VybFNjaGVtZUhhbmRsZXI7CiAgICAgUmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsK
KyAgICB1aW50NjRfdCBtX3dlYlByb2Nlc3NUYXNrSWRlbnRpZmllcjsKICAgICBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
bV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdCBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fcmVxdWVzdExvY2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhODNiMzk4Yjc4ODgwNWUzNjJkYjE4ZGEyYTQ1
YjQ0NDJmYzNiYmMuLjQwZTI4Zjg2Njg5OGZkOWY3YjFjZTk2ZmQwYjFiZDUyY2ZkMjU1YmIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAyMS0wOS0xNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21l
Lm9yZz4KKworICAgICAgICBXZWJLaXQgbWlnaHQgbG9hZCBjdXN0b20gVVJJIHNjaGVtZSByZXF1
ZXN0IGNvbnRlbnQgbXVsdGlwbGUgdGltZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyOTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIExldCdzIGxvYWQgdGhlIHNhbWUgVVJMIDUwIHRpbWVzIGFuZCBt
YWtlIHN1cmUgYWxsIGxvYWRzIGNvbXBsZXRlIHdpdGggdGhlIHNhbWUgY29udGVudC4KKyAgICAg
ICAgV2l0aG91dCBteSBmaXgsIHRoZSB0ZXN0IGhhbmdzIGZvcmV2ZXIgc3Bpbm5pbmcgaXRzIG1h
aW4gbG9vcCwgYmVjYXVzZSBvbmx5IGEgZmV3IG9mIHRoZQorICAgICAgICByZXF1ZXN0cyBhY3R1
YWxseSBjb21wbGV0ZSwgc28gdGhlIHRlc3QgZ2V0cyBzdHVjayB3YWl0aW5nLgorCisgICAgICAg
IE5vdGUgSSBwaWNrZWQgNTAgYmVjYXVzZSB3aGVuIHJ1bm5pbmcgdGhlIHRlc3QgMTAwIHRpbWVz
LCB3cGViYWNrZW5kLWZkbyBkaWVzIHRvIGFuCisgICAgICAgIHVucmVsYXRlZCBwcm9ibGVtOiBp
dHMgaW50ZXJuYWwgV2F5bGFuZCByZWdpc3RyeSBzdG9wcyByZWdpc3RlcmluZyBuZXcgZ2xvYmFs
IG9iamVjdHMsIGFuZAorICAgICAgICBlYWNoIG5ldyB3ZWIgcHJvY2VzcyBzdGFydHMgY3Jhc2hp
bmcuIFRoYXQncyB3ZWlyZCwgYnV0IG5vdCB0aGUgcHJvYmxlbSB3ZSdyZSB0cnlpbmcgdG8KKyAg
ICAgICAgc29sdmUgdG9kYXkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAoY3JlYXRlVGVzdFdlYlZp
ZXdXaXRoV2ViQ29udGV4dCk6CisgICAgICAgICh0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZSk6CisK
IDIwMjEtMDktMTQgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtnaXQtd2Via2l0XSBSZXNldCBhdXRob3IgdGltZSB3aGVuIGVkaXRpbmcgY29tbWl0cyAo
UGFydCAyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggNTMyNTQ4YjFlNGUyYTBhZjVj
OWEyZWUxYzMyMDZiY2JmMjg4ZjQzYS4uNWU3ODgyMGZjYTlkOTVkOGZiYzhkMWI2MjIzNWY2MTFk
NmIzMGQyMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0xMTMsNyArMTEzLDggQEAg
cHVibGljOgogICAgICAgICB0ZXN0LT5tX3VyaVNjaGVtZVJlcXVlc3QgPSByZXF1ZXN0OwogICAg
ICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNU
KHJlcXVlc3QpKTsKIAotICAgICAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF91cmlfc2NoZW1lX3Jl
cXVlc3RfZ2V0X3dlYl92aWV3KHJlcXVlc3QpID09IHRlc3QtPm1fd2ViVmlldyk7CisgICAgICAg
IGlmICh0ZXN0LT5tX3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldykKKyAg
ICAgICAgICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfd2Vi
X3ZpZXcocmVxdWVzdCkgPT0gdGVzdC0+bV93ZWJWaWV3KTsKIAogICAgICAgICBjb25zdCBjaGFy
KiBzY2hlbWUgPSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF9zY2hlbWUocmVxdWVzdCk7
CiAgICAgICAgIGdfYXNzZXJ0X25vbm51bGwoc2NoZW1lKTsKQEAgLTE2NCw2ICsxNjUsOCBAQCBw
dWJsaWM6CiAKICAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+IG1fdXJpU2NoZW1l
UmVxdWVzdDsKICAgICBIYXNoTWFwPFN0cmluZywgVVJJU2NoZW1lSGFuZGxlcj4gbV9oYW5kbGVy
c01hcDsKKyAgICBib29sIG1fdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3
IHsgdHJ1ZSB9OworICAgIGludCBtX2xvYWRDb3VudGVyIHsgMCB9OwogfTsKIAogU3RyaW5nIGdl
bmVyYXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkKQEAgLTE5Myw2ICsxOTYs
MjEgQEAgU3RyaW5nIGdlbmVyYXRlSFRNTENvbnRlbnQodW5zaWduZWQgY29udGVudExlbmd0aCkK
ICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCitzdGF0aWMgR1JlZlB0cjxXZWJL
aXRXZWJWaWV3PiBjcmVhdGVUZXN0V2ViVmlld1dpdGhXZWJDb250ZXh0KFdlYktpdFdlYkNvbnRl
eHQqIGNvbnRleHQpCit7CisgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklF
VyhnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX1ZJRVcsCisjaWYgUExBVEZPUk0oV1BFKQor
ICAgICAgICAiYmFja2VuZCIsIFRlc3Q6OmNyZWF0ZVdlYlZpZXdCYWNrZW5kKCksCisjZW5kaWYK
KyAgICAgICAgIndlYi1jb250ZXh0IiwgY29udGV4dCwKKyAgICAgICAgbnVsbHB0cikpOworCisj
aWYgUExBVEZPUk0oR1RLKQorICAgIGdfb2JqZWN0X3JlZl9zaW5rKHZpZXcpOworI2VuZGlmCisg
ICAgcmV0dXJuIGFkb3B0R1JlZih2aWV3KTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRl
eHRVUklTY2hlbWUoVVJJU2NoZW1lVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICB0
ZXN0LT5yZWdpc3RlclVSSVNjaGVtZUhhbmRsZXIoImZvbyIsIGtCYXJIVE1MLCBzdHJsZW4oa0Jh
ckhUTUwpLCAidGV4dC9odG1sIik7CkBAIC0yNzgsNiArMjk2LDQxIEBAIHN0YXRpYyB2b2lkIHRl
c3RXZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNjaGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
CiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9hZFRyYWNr
aW5nVGVzdDo6UHJvdmlzaW9uYWxMb2FkRmFpbGVkKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0
LT5tX2xvYWRGYWlsZWQpOwogICAgIGdfYXNzZXJ0X2Vycm9yKHRlc3QtPm1fZXJyb3IuZ2V0KCks
IEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0xPU0VEKTsKKworICAgIC8vIFRvcnR1cmUgdGVzdCB0
aW1lOiBtYWtlIHN1cmUgaXQgc3RpbGwgd29ya3MgaWYgd2UgaXNzdWUgYSBidW5jaCBvZiBkaWZm
ZXJlbnQgcmVxdWVzdHMgYWxsIGF0CisgICAgLy8gb25jZS4gRWFjaCByZXF1ZXN0IHNob3VsZCBm
aW5pc2ggYW5kIHJldHVybiBleGFjdGx5IHRoZSBzYW1lIGRhdGEuCisgICAgaW50IG51bUl0ZXJh
dGlvbnMgPSA1MDsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlZpZXc+IHZpZXdzW251bUl0ZXJhdGlv
bnNdOworICAgIHRlc3QtPm1fdXJpU2NoZW1lUmVxdWVzdENhbGxiYWNrVXNlc1Rlc3RXZWJWaWV3
ID0gZmFsc2U7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsK
KyAgICAgICAgdmlld3NbaV0gPSBjcmVhdGVUZXN0V2ViVmlld1dpdGhXZWJDb250ZXh0KHRlc3Qt
Pm1fd2ViQ29udGV4dC5nZXQoKSk7CisgICAgICAgIHRlc3QtPmFzc2VydE9iamVjdElzRGVsZXRl
ZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qodmlld3NbaV0uZ2V0KCkpKTsKKyAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X2xvYWRfdXJpKHZpZXdzW2ldLmdldCgpLCAiZm9vOmJsYW5rIik7CisgICAg
ICAgIGdfc2lnbmFsX2Nvbm5lY3Qodmlld3NbaV0uZ2V0KCksICJsb2FkLWNoYW5nZWQiLCBHX0NB
TExCQUNLKCtbXSAoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TG9hZEV2ZW50IGxvYWRF
dmVudCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIHRlc3QgPSBzdGF0
aWNfY2FzdDxVUklTY2hlbWVUZXN0Kj4odXNlckRhdGEpOworICAgICAgICAgICAgaWYgKGxvYWRF
dmVudCAhPSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB0ZXN0LT5tX2xvYWRDb3VudGVyLS07CisgICAgICAgICAgICBpZiAoIXRlc3Qt
Pm1fbG9hZENvdW50ZXIpCisgICAgICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5t
X21haW5Mb29wKTsKKyAgICAgICAgfSksIHRlc3QpOworICAgIH0KKyAgICB0ZXN0LT5tX2xvYWRD
b3VudGVyID0gbnVtSXRlcmF0aW9uczsKKyAgICBnX21haW5fbG9vcF9ydW4odGVzdC0+bV9tYWlu
TG9vcCk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUl0ZXJhdGlvbnM7IGkrKykgewor
ICAgICAgICBXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X21haW5fcmVzb3VyY2Uodmlld3NbaV0uZ2V0KCkpOworICAgICAgICBnX2Fzc2VydF9ub25udWxs
KHJlc291cmNlKTsKKyAgICAgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZGF0YShyZXNvdXJj
ZSwgbnVsbHB0ciwgK1tdIChHT2JqZWN0KiBvYmplY3QsIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBn
cG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICAgICAgYXV0byogdGVzdCA9IHN0YXRpY19jYXN0
PFVSSVNjaGVtZVRlc3QqPih1c2VyRGF0YSk7CisgICAgICAgICAgICBnc2l6ZSBkYXRhU2l6ZTsK
KyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGRhdGEgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2dl
dF9kYXRhX2ZpbmlzaChXRUJLSVRfV0VCX1JFU09VUkNFKG9iamVjdCksIHJlc3VsdCwgJmRhdGFT
aXplLCBudWxscHRyKTsKKyAgICAgICAgICAgIGdfYXNzZXJ0X2NtcGludChzdHJuY21wKHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KGRhdGEpLCBrQmFySFRNTCwgZGF0YVNpemUpLCA9PSwgMCk7Cisg
ICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFpbkxvb3ApOworICAgICAgICB9
LCB0ZXN0KTsKKyAgICAgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxvb3ApOworICAg
IH0KKyAgICB0ZXN0LT5tX3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldyA9
IHRydWU7CiB9CiAKICNpZiBQTEFURk9STShHVEspCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438707</attachid>
            <date>2021-09-20 12:08:12 -0700</date>
            <delta_ts>2021-09-20 14:36:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229116-20210920120811.patch</filename>
            <type>text/plain</type>
            <size>13352</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRkYmY5NWEwYWE3OGY3ZjM2
NmJlZTA1YzZjMWZiYjIwNDAzMDVlNmIuLmVmZjU3ZTAxMGM1ZGNiNjUyOTc0M2JkNjlkZTk4MDUy
MmZhMTFjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDktMjAgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBXZWJLaXQgbWln
aHQgbG9hZCBjdXN0b20gVVJJIHNjaGVtZSByZXF1ZXN0IGNvbnRlbnQgbXVsdGlwbGUgdGltZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTExNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIFJl
c291cmNlTG9hZGVySWRlbnRpZmllciBhbmQgYSBXZWJQYWdlUHJveHlJZGVudGlmaWVyIGFzIGtl
eXMgaW4gV2ViVVJMU2NoZW1lSGFuZGxlci4KKyAgICAgICAgVGhpcyBhbHNvIG1ha2VzIGl0IHNv
IHRoYXQgd2UgZG9uJ3QgbmVlZCBhIG5ldyBvbmUgcGVyIHBhZ2Ugb24gQ29jb2EgcGxhdGZvcm1z
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2No
ZW1lSGFuZGxlcjo6cHJvY2Vzc0ZvclRhc2tJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RvcEFsbFRhc2tzRm9yUGFnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI6OnN0b3BUYXNrKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0NvbXBsZXRlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2No
ZW1lVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBs
ZXRlKToKKwogMjAyMS0wOS0yMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21l
Lm9yZz4KIAogICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllciBmb3IgV2ViVVJMU2NoZW1lSGFu
ZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
aW5kZXggYzM4MWQ3ZThjZjExNGY5N2ExOTYwODA0N2Y1N2ZmNzdhMDMwMjE3NC4uOTc0ODVhYTM5
MzY1NjNmYzAyMjBjMTIwYzUyZTg3YjJlN2NmMDQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00MzQsNyArNDM0LDcgQEAgc3RhdGlj
IHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5vdGlm
aWNhdGlvbkNlbnRlclJlZiwKICAgICBfcmVzb3VyY2VMb2FkRGVsZWdhdGUgPSBtYWtlVW5pcXVl
PFdlYktpdDo6UmVzb3VyY2VMb2FkRGVsZWdhdGU+KHNlbGYpOwogCiAgICAgZm9yIChhdXRvJiBw
YWlyIDogcGFnZUNvbmZpZ3VyYXRpb24tPnVybFNjaGVtZUhhbmRsZXJzKCkpCi0gICAgICAgIF9w
YWdlLT5zZXRVUkxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFu
ZGxlckNvY29hOjpjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVy
Q29jb2EmPihwYWlyLnZhbHVlLmdldCgpKS5hcGlIYW5kbGVyKCkpLCBwYWlyLmtleSk7CisgICAg
ICAgIF9wYWdlLT5zZXRVUkxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHBhaXIudmFsdWUuZ2V0KCks
IHBhaXIua2V5KTsKIAogICAgIF9wYWdlLT5zZXRDb2NvYVZpZXcoc2VsZik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggYTNlZTY0
YjI2MWYxZGNiYzc1NWM2NWUyNTI4Y2FjNmE2N2ExYmQxYS4uNGFhNTI0ZDgxNDFhOWZkNjA4YTZh
OGRlNTc1NzY2MDEzOWMxYjhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgV2ViVVJMU2NoZW1lSGFuZGxl
cjo6fldlYlVSTFNjaGVtZUhhbmRsZXIoKQogdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFy
dFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
YXV0byB0YXNrSWRlbnRpZmllciA9IHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXI7Ci0gICAgYXV0
byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRlbnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6
Y3JlYXRlKCp0aGlzLCBwYWdlLCBwcm9jZXNzLCB3ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVy
cyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rh
c2tzLmFkZCh7IHRhc2tJZGVudGlmaWVyLCBwYWdlLmlkZW50aWZpZXIoKSB9LCBXZWJVUkxTY2hl
bWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgV1RGTW92ZShw
YXJhbWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICBBU1NFUlQocmVz
dWx0LmlzTmV3RW50cnkpOwogCiAgICAgYXV0byBwYWdlRW50cnkgPSBtX3Rhc2tzQnlQYWdlSWRl
bnRpZmllci5hZGQocGFnZS5pZGVudGlmaWVyKCksIEhhc2hTZXQ8V2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJJZGVudGlmaWVyPigpKTsKQEAgLTU2LDExICs1NiwxMiBAQCB2b2lkIFdlYlVSTFNjaGVt
ZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcwogICAgIHBsYXRmb3JtU3RhcnRUYXNrKHBhZ2UsIHJlc3VsdC5pdGVyYXRvci0+dmFs
dWUpOwogfQogCi1XZWJQcm9jZXNzUHJveHkqIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnByb2Nlc3NG
b3JUYXNrSWRlbnRpZmllcihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgdGFza0lk
ZW50aWZpZXIpIGNvbnN0CitXZWJQcm9jZXNzUHJveHkqIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnBy
b2Nlc3NGb3JUYXNrSWRlbnRpZmllcihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OlJlc291
cmNlTG9hZGVySWRlbnRpZmllciB0YXNrSWRlbnRpZmllcikgY29uc3QKIHsKLSAgICBpZiAoIWRl
Y2x0eXBlKG1fdGFza3MpOjppc1ZhbGlkS2V5KHRhc2tJZGVudGlmaWVyKSkKKyAgICBhdXRvIGtl
eSA9IHN0ZDo6bWFrZV9wYWlyKHRhc2tJZGVudGlmaWVyLCBwYWdlLmlkZW50aWZpZXIoKSk7Cisg
ICAgaWYgKCFkZWNsdHlwZShtX3Rhc2tzKTo6aXNWYWxpZEtleShrZXkpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBhdXRvIGl0ZXJhdG9yID0gbV90YXNrcy5maW5kKHRhc2tJZGVudGlm
aWVyKTsKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV90YXNrcy5maW5kKGtleSk7CiAgICAgaWYgKGl0
ZXJhdG9yID09IG1fdGFza3MuZW5kKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJl
dHVybiBpdGVyYXRvci0+dmFsdWUtPnByb2Nlc3MoKTsKQEAgLTc2LDcgKzc3LDcgQEAgdm9pZCBX
ZWJVUkxTY2hlbWVIYW5kbGVyOjpzdG9wQWxsVGFza3NGb3JQYWdlKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViUHJvY2Vzc1Byb3gKICAgICBWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVu
dGlmaWVyPiB0YXNrSWRlbnRpZmllcnNUb1N0b3A7CiAgICAgdGFza0lkZW50aWZpZXJzVG9TdG9w
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGFza3NCeVBhZ2Uuc2l6ZSgpKTsKICAgICBmb3IgKGF1
dG8gdGFza0lkZW50aWZpZXIgOiB0YXNrc0J5UGFnZSkgewotICAgICAgICBpZiAoIXByb2Nlc3Mg
fHwgcHJvY2Vzc0ZvclRhc2tJZGVudGlmaWVyKHRhc2tJZGVudGlmaWVyKSA9PSBwcm9jZXNzKQor
ICAgICAgICBpZiAoIXByb2Nlc3MgfHwgcHJvY2Vzc0ZvclRhc2tJZGVudGlmaWVyKHBhZ2UsIHRh
c2tJZGVudGlmaWVyKSA9PSBwcm9jZXNzKQogICAgICAgICAgICAgdGFza0lkZW50aWZpZXJzVG9T
dG9wLnVuY2hlY2tlZEFwcGVuZCh0YXNrSWRlbnRpZmllcik7CiAgICAgfQogCkBAIC04Nyw5ICs4
OCwxMCBAQCB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0b3BBbGxUYXNrc0ZvclBhZ2UoV2Vi
UGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveAogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRs
ZXI6OnN0b3BUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJ
ZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyKQogewotICAgIGlmICghZGVjbHR5cGUobV90YXNrcyk6
OmlzVmFsaWRLZXkodGFza0lkZW50aWZpZXIpKQorICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3Bh
aXIodGFza0lkZW50aWZpZXIsIHBhZ2UuaWRlbnRpZmllcigpKTsKKyAgICBpZiAoIWRlY2x0eXBl
KG1fdGFza3MpOjppc1ZhbGlkS2V5KGtleSkpCiAgICAgICAgIHJldHVybjsKLSAgICBhdXRvIGl0
ZXJhdG9yID0gbV90YXNrcy5maW5kKHRhc2tJZGVudGlmaWVyKTsKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gbV90YXNrcy5maW5kKGtleSk7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fdGFza3MuZW5kKCkp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMTAwLDkgKzEwMiw5IEBAIHZvaWQgV2ViVVJMU2NoZW1l
SGFuZGxlcjo6c3RvcFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlcklkCiAgICAgbV90YXNrcy5yZW1vdmUoaXRlcmF0b3IpOwogfQogCi12b2lkIFdlYlVSTFNj
aGVtZUhhbmRsZXI6OnRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYgdGFzaykKK3ZvaWQg
V2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0NvbXBsZXRlZChXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViVVJMU2NoZW1lVGFzayYgdGFzaykKIHsKLSAgICBhdXRvIHRha2VuVGFzayA9
IG1fdGFza3MudGFrZSh0YXNrLmlkZW50aWZpZXIoKSk7CisgICAgYXV0byB0YWtlblRhc2sgPSBt
X3Rhc2tzLnRha2UoeyB0YXNrLmlkZW50aWZpZXIoKSwgcGFnZUlEIH0pOwogICAgIEFTU0VSVF9V
TlVTRUQodGFrZW5UYXNrLCB0YWtlblRhc2sgPT0gJnRhc2spOwogICAgIHJlbW92ZVRhc2tGcm9t
UGFnZU1hcCh0YXNrLnBhZ2VQcm94eUlEKCksIHRhc2suaWRlbnRpZmllcigpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCmluZGV4IDIzNTRkMDlm
MGZhNjM5NTFlY2Q0MjE3ZTI3MTRjNzFhZmZkYjEzOGEuLjk5YjY4MjQ4NzJkYWM0YmY0MzRlN2Nm
YmQ3NWU4M2RkMmMwZGQxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxT
Y2hlbWVIYW5kbGVyLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRU
YXNrKFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVy
JiYpOwogICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BBbGxUYXNrc0Zv
clBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Kik7Ci0gICAgdm9pZCB0YXNrQ29t
cGxldGVkKFdlYlVSTFNjaGVtZVRhc2smKTsKKyAgICB2b2lkIHRhc2tDb21wbGV0ZWQoV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgV2ViVVJMU2NoZW1lVGFzayYpOwogCiBwcm90ZWN0ZWQ6CiAgICAg
V2ViVVJMU2NoZW1lSGFuZGxlcigpOwpAQCAtNjYsMTEgKzY2LDExIEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHBsYXRmb3JtVGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNrJikgeyB9
OwogCiAgICAgdm9pZCByZW1vdmVUYXNrRnJvbVBhZ2VNYXAoV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyKTsKLSAgICBXZWJQcm9jZXNzUHJv
eHkqIHByb2Nlc3NGb3JUYXNrSWRlbnRpZmllcihXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50
aWZpZXIpIGNvbnN0OworICAgIFdlYlByb2Nlc3NQcm94eSogcHJvY2Vzc0ZvclRhc2tJZGVudGlm
aWVyKFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcikgY29u
c3Q7CiAKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAK
LSAgICBIYXNoTWFwPFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciwgUmVmPFdlYlVS
TFNjaGVtZVRhc2s+PiBtX3Rhc2tzOworICAgIEhhc2hNYXA8c3RkOjpwYWlyPFdlYkNvcmU6OlJl
c291cmNlTG9hZGVySWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllcj4sIFJlZjxXZWJV
UkxTY2hlbWVUYXNrPj4gbV90YXNrczsKICAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIsIEhhc2hTZXQ8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyPj4gbV90YXNrc0J5
UGFnZUlkZW50aWZpZXI7CiAgICAgCiAgICAgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciBtX3N5
bmNMb2FkQ29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVS
TFNjaGVtZVRhc2suY3BwCmluZGV4IGExMGU2NDE3Y2UxYTA1NzA4MmJkMWJkZTc3OTAwNDE3NTY4
MGRjMjQuLjI2OGIxZjY1MGU4ZTRjN2U0ZGEyMDI3ZjdmNjdmMGM3YzMzYmFkNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCkBAIC0yMjYsNyArMjI2
LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogICAgIH0KIAogICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1l
SGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQp
OwotICAgIG1fdXJsU2NoZW1lSGFuZGxlci0+dGFza0NvbXBsZXRlZCgqdGhpcyk7CisgICAgbV91
cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxldGVkKHBhZ2VQcm94eUlEKCksICp0aGlzKTsKIAog
ICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDMyMDgxMjdkMDQwYjk3YTliZjBkNTgxYWE5
ZWE2NDVkM2YxNTY3ZDkuLjExNjg1ODY3ODQwODg1MTVmYjI5OWEyNzBjNTk2MDEzNzMyNjhlM2Ig
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wOS0yMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KKworICAgICAgICBXZWJLaXQgbWlnaHQgbG9hZCBjdXN0b20gVVJJIHNjaGVtZSBy
ZXF1ZXN0IGNvbnRlbnQgbXVsdGlwbGUgdGltZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIExldCdzIGxvYWQgdGhlIHNhbWUgVVJMIDUwIHRpbWVzIGFu
ZCBtYWtlIHN1cmUgYWxsIGxvYWRzIGNvbXBsZXRlIHdpdGggdGhlIHNhbWUgY29udGVudC4KKyAg
ICAgICAgV2l0aG91dCB0aGUgZml4LCB0aGUgdGVzdCBoYW5ncyBmb3JldmVyIHNwaW5uaW5nIGl0
cyBtYWluIGxvb3AsIGJlY2F1c2Ugb25seSBhIGZldyBvZiB0aGUKKyAgICAgICAgcmVxdWVzdHMg
YWN0dWFsbHkgY29tcGxldGUsIHNvIHRoZSB0ZXN0IGdldHMgc3R1Y2sgd2FpdGluZy4KKworICAg
ICAgICBOb3RlIEkgcGlja2VkIDUwIGJlY2F1c2Ugd2hlbiBydW5uaW5nIHRoZSB0ZXN0IDEwMCB0
aW1lcywgd3BlYmFja2VuZC1mZG8gZGllcyB0byBhbgorICAgICAgICB1bnJlbGF0ZWQgcHJvYmxl
bTogaXRzIGludGVybmFsIFdheWxhbmQgcmVnaXN0cnkgc3RvcHMgcmVnaXN0ZXJpbmcgbmV3IGds
b2JhbCBvYmplY3RzLCBhbmQKKyAgICAgICAgZWFjaCBuZXcgd2ViIHByb2Nlc3Mgc3RhcnRzIGNy
YXNoaW5nLiBUaGF0J3Mgd2VpcmQsIGJ1dCBub3QgdGhlIHByb2JsZW0gd2UncmUgdHJ5aW5nIHRv
CisgICAgICAgIHNvbHZlIHRvZGF5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKGNyZWF0ZVRlc3RX
ZWJWaWV3V2l0aFdlYkNvbnRleHQpOgorICAgICAgICAodGVzdFdlYkNvbnRleHRVUklTY2hlbWUp
OgorCiAyMDIxLTA5LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3RvcCB1c2luZyBtYWtlUmVmKCp0aGlzKSAvIG1ha2VSZWZQdHIodGhpcykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29u
dGV4dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktp
dFdlYkNvbnRleHQuY3BwCmluZGV4IDUzMjU0OGIxZTRlMmEwYWY1YzlhMmVlMWMzMjA2YmNiZjI4
OGY0M2EuLjVlNzg4MjBmY2E5ZDk1ZDhmYmM4ZDFiNjIyMzVmNjExZDZiMzBkMjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29u
dGV4dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTEzLDcgKzExMyw4IEBAIHB1YmxpYzoKICAgICAgICAg
dGVzdC0+bV91cmlTY2hlbWVSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICAgdGVzdC0+YXNzZXJ0
T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChyZXF1ZXN0KSk7CiAKLSAg
ICAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJfdmll
dyhyZXF1ZXN0KSA9PSB0ZXN0LT5tX3dlYlZpZXcpOworICAgICAgICBpZiAodGVzdC0+bV91cmlT
Y2hlbWVSZXF1ZXN0Q2FsbGJhY2tVc2VzVGVzdFdlYlZpZXcpCisgICAgICAgICAgICBnX2Fzc2Vy
dF90cnVlKHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfZ2V0X3dlYl92aWV3KHJlcXVlc3QpID09
IHRlc3QtPm1fd2ViVmlldyk7CiAKICAgICAgICAgY29uc3QgY2hhciogc2NoZW1lID0gd2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9nZXRfc2NoZW1lKHJlcXVlc3QpOwogICAgICAgICBnX2Fzc2Vy
dF9ub25udWxsKHNjaGVtZSk7CkBAIC0xNjQsNiArMTY1LDggQEAgcHVibGljOgogCiAgICAgR1Jl
ZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiBtX3VyaVNjaGVtZVJlcXVlc3Q7CiAgICAgSGFz
aE1hcDxTdHJpbmcsIFVSSVNjaGVtZUhhbmRsZXI+IG1faGFuZGxlcnNNYXA7CisgICAgYm9vbCBt
X3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldyB7IHRydWUgfTsKKyAgICBp
bnQgbV9sb2FkQ291bnRlciB7IDAgfTsKIH07CiAKIFN0cmluZyBnZW5lcmF0ZUhUTUxDb250ZW50
KHVuc2lnbmVkIGNvbnRlbnRMZW5ndGgpCkBAIC0xOTMsNiArMTk2LDIxIEBAIFN0cmluZyBnZW5l
cmF0ZUhUTUxDb250ZW50KHVuc2lnbmVkIGNvbnRlbnRMZW5ndGgpCiAgICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKIH0KIAorc3RhdGljIEdSZWZQdHI8V2ViS2l0V2ViVmlldz4gY3JlYXRl
VGVzdFdlYlZpZXdXaXRoV2ViQ29udGV4dChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQorewor
ICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcoZ19vYmplY3RfbmV3KFdF
QktJVF9UWVBFX1dFQl9WSUVXLAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgImJhY2tlbmQi
LCBUZXN0OjpjcmVhdGVXZWJWaWV3QmFja2VuZCgpLAorI2VuZGlmCisgICAgICAgICJ3ZWItY29u
dGV4dCIsIGNvbnRleHQsCisgICAgICAgIG51bGxwdHIpKTsKKworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICBnX29iamVjdF9yZWZfc2luayh2aWV3KTsKKyNlbmRpZgorICAgIHJldHVybiBhZG9wdEdS
ZWYodmlldyk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RXZWJDb250ZXh0VVJJU2NoZW1lKFVSSVNj
aGVtZVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAgICAgdGVzdC0+cmVnaXN0ZXJVUklT
Y2hlbWVIYW5kbGVyKCJmb28iLCBrQmFySFRNTCwgc3RybGVuKGtCYXJIVE1MKSwgInRleHQvaHRt
bCIpOwpAQCAtMjc4LDYgKzI5Niw0MSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViQ29udGV4dFVSSVNj
aGVtZShVUklTY2hlbWVUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X3Ry
dWUodGVzdC0+bV9sb2FkRXZlbnRzLmNvbnRhaW5zKExvYWRUcmFja2luZ1Rlc3Q6OlByb3Zpc2lv
bmFsTG9hZEZhaWxlZCkpOwogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+bV9sb2FkRmFpbGVkKTsK
ICAgICBnX2Fzc2VydF9lcnJvcih0ZXN0LT5tX2Vycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lP
X0VSUk9SX0NMT1NFRCk7CisKKyAgICAvLyBUb3J0dXJlIHRlc3QgdGltZTogbWFrZSBzdXJlIGl0
IHN0aWxsIHdvcmtzIGlmIHdlIGlzc3VlIGEgYnVuY2ggb2YgZGlmZmVyZW50IHJlcXVlc3RzIGFs
bCBhdAorICAgIC8vIG9uY2UuIEVhY2ggcmVxdWVzdCBzaG91bGQgZmluaXNoIGFuZCByZXR1cm4g
ZXhhY3RseSB0aGUgc2FtZSBkYXRhLgorICAgIGludCBudW1JdGVyYXRpb25zID0gNTA7CisgICAg
R1JlZlB0cjxXZWJLaXRXZWJWaWV3PiB2aWV3c1tudW1JdGVyYXRpb25zXTsKKyAgICB0ZXN0LT5t
X3VyaVNjaGVtZVJlcXVlc3RDYWxsYmFja1VzZXNUZXN0V2ViVmlldyA9IGZhbHNlOworICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgbnVtSXRlcmF0aW9uczsgaSsrKSB7CisgICAgICAgIHZpZXdzW2ld
ID0gY3JlYXRlVGVzdFdlYlZpZXdXaXRoV2ViQ29udGV4dCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0
KCkpOworICAgICAgICB0ZXN0LT5hc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVz
KEdfT0JKRUNUKHZpZXdzW2ldLmdldCgpKSk7CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19sb2Fk
X3VyaSh2aWV3c1tpXS5nZXQoKSwgImZvbzpibGFuayIpOworICAgICAgICBnX3NpZ25hbF9jb25u
ZWN0KHZpZXdzW2ldLmdldCgpLCAibG9hZC1jaGFuZ2VkIiwgR19DQUxMQkFDSygrW10gKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCBsb2FkRXZlbnQsIGdwb2ludGVyIHVz
ZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvKiB0ZXN0ID0gc3RhdGljX2Nhc3Q8VVJJU2NoZW1l
VGVzdCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIGlmIChsb2FkRXZlbnQgIT0gV0VCS0lUX0xP
QURfRklOSVNIRUQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGVzdC0+
bV9sb2FkQ291bnRlci0tOworICAgICAgICAgICAgaWYgKCF0ZXN0LT5tX2xvYWRDb3VudGVyKQor
ICAgICAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWluTG9vcCk7CisgICAg
ICAgIH0pLCB0ZXN0KTsKKyAgICB9CisgICAgdGVzdC0+bV9sb2FkQ291bnRlciA9IG51bUl0ZXJh
dGlvbnM7CisgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxvb3ApOworCisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBudW1JdGVyYXRpb25zOyBpKyspIHsKKyAgICAgICAgV2ViS2l0V2Vi
UmVzb3VyY2UqIHJlc291cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKHZp
ZXdzW2ldLmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChyZXNvdXJjZSk7CisgICAg
ICAgIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X2RhdGEocmVzb3VyY2UsIG51bGxwdHIsICtbXSAo
R09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEp
IHsKKyAgICAgICAgICAgIGF1dG8qIHRlc3QgPSBzdGF0aWNfY2FzdDxVUklTY2hlbWVUZXN0Kj4o
dXNlckRhdGEpOworICAgICAgICAgICAgZ3NpemUgZGF0YVNpemU7CisgICAgICAgICAgICB1bnNp
Z25lZCBjaGFyKiBkYXRhID0gd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZGF0YV9maW5pc2goV0VC
S0lUX1dFQl9SRVNPVVJDRShvYmplY3QpLCByZXN1bHQsICZkYXRhU2l6ZSwgbnVsbHB0cik7Cisg
ICAgICAgICAgICBnX2Fzc2VydF9jbXBpbnQoc3RybmNtcChyZWludGVycHJldF9jYXN0PGNoYXIq
PihkYXRhKSwga0JhckhUTUwsIGRhdGFTaXplKSwgPT0sIDApOworICAgICAgICAgICAgZ19tYWlu
X2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKKyAgICAgICAgfSwgdGVzdCk7CisgICAgICAg
IGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKKyAgICB9CisgICAgdGVzdC0+bV91
cmlTY2hlbWVSZXF1ZXN0Q2FsbGJhY2tVc2VzVGVzdFdlYlZpZXcgPSB0cnVlOwogfQogCiAjaWYg
UExBVEZPUk0oR1RLKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>