<?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>230556</bug_id>
          
          <creation_ts>2021-09-21 08:28:50 -0700</creation_ts>
          <short_desc>REGRESSION(241918@main): [WPE][GTK] New test is timing out on bots</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>WebKitGTK</component>
          <version>WebKit Nightly Build</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=229116</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1795565</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 08:28:50 -0700</bug_when>
    <thetext>Unfortunately the new test added in 241918@main is timing out on the bots. :/

It works perfectly fine for me locally, so I cannot do much about this. If any other GTK/WPE maintainers are able to reproduce, or spot anything clearly wrong with the test, that would be interesting to know. Otherwise, my suggestion is to just remove this new test. I considered marking it expected fail, but I think it&apos;s more valuable to keep the original test passing, so instead I will revert the changes to this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795568</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 08:35:30 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #0)
&gt; Unfortunately the new test added in 241918@main is timing out on the bots. :/
&gt; 
&gt; It works perfectly fine for me locally, so I cannot do much about this.

Ah wait, this is wrong. I got confused:

 * In the last version of *my* patch from https://bugs.webkit.org/show_bug.cgi?id=229116#c26, the test was timing out on the EWS, but worked for me locally. 
 * But in the patch that Alex landed, it cannot possibly work because WebKitWebContext is still using only the WebURLSchemeTask identifier in its map. That&apos;s not enough, because the task identifier is not unique in the web process.

IMO we should change the WebURLSchemeTask::identifier to return std::pair&lt;WebCore::ResourceLoaderIdentifier, WebPageProxyID&gt;, since that is now the *real* identifier type that the UI process must use everywhere.

After making this change, it&apos;s possible the test will still fail on the bots. We&apos;ll just have to find out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795606</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 09:42:31 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #1)
&gt; That&apos;s not enough, because the task identifier is not unique in the web
&gt; process.

I keep typoing this. The task identifier (ResourceLoaderIdentifier) is not unique in the *UI* process. Alex fixed this in WebURLSchemeHandler by switching to use std::pair&lt;WebCore::ResourceLoaderIdentifier, WebPageProxyIdentifier&gt; to identify tasks, but I think it would be better to return that pair directly from WebURLSchemeTask::identifier. That would fix this everywhere while ensuring that the result of WebURLSchemeTask::identifier actually uniquely identifies the WebURLSchemeTask.

We could do this using a new ObjectIdentifier as well, which is what my original patches did, but then that complicates the implementation of WebURLSchemeHandler, which is why Youenn suggested std::pair&lt;WebCore::ResourceLoaderIdentifier, WebPageProxyIdentifier&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795614</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 09:59:55 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; We could do this using a new ObjectIdentifier as well, which is what my
&gt; original patches did, but then that complicates the implementation of
&gt; WebURLSchemeHandler, which is why Youenn suggested
&gt; std::pair&lt;WebCore::ResourceLoaderIdentifier, WebPageProxyIdentifier&gt;.

Well I think this will work, but it&apos;s a little weird for ::identifier to return a std::pair containing two different ObjectIdentifiers, rather than just returning one ObjectIdentifier.

Alternatively, we could give WebURLSchemeTask its own ObjectIdentifier, and WebURLSchemeHandler can use std::pair&lt;WebURLSchemeTaskIdentifier, WebPageProxyIdentifier&gt; just for convenience to avoid needing to add an extra HashMap.

I&apos;ll most likely implement this both ways and then decide which version I prefer. If owners have a strong preference one way or the other, please let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795705</commentid>
    <comment_count>4</comment_count>
      <attachid>438845</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 12:51:46 -0700</bug_when>
    <thetext>Created attachment 438845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795706</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-21 12:52:45 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795707</commentid>
    <comment_count>6</comment_count>
      <attachid>438845</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 12:54:19 -0700</bug_when>
    <thetext>Comment on attachment 438845
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        WebURLSchemeTasks to get messed up. We can fix this by going one step further and changing
&gt; +        it to return a std::pair&lt;WebCore::ResourceLoaderIdentifier, WebPageProxyIdentifier&gt;, which

This fixes the bug for me locally. I want to see if it works for EWS, too.

But it&apos;s a little weird, and I&apos;m not sure whether I like it or not, so I haven&apos;t set r? yet. I&apos;ll try an alternate version where WebURLSchemeTask just uses its own ObjectIdentifier instead of a std::pair next.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795731</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 13:38:23 -0700</bug_when>
    <thetext>There&apos;s a third, more minimal option: rename WebURLSchemeTask::identifier to WebURLSchemeTask::resourceLoaderIdentifier, to break the expectation that WebURLSchemeTask::identifier can be used to identify a WebURLSchemeTask. Then just update WebKitWebContext to use std::pair&lt;WebCore::ResourceLoaderIdentifier, WebPageProxyIdentifier&gt; like WebURLSchemeHandler already does since.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795762</commentid>
    <comment_count>8</comment_count>
      <attachid>438856</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 14:13:07 -0700</bug_when>
    <thetext>Created attachment 438856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795763</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 14:14:01 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; There&apos;s a third, more minimal option: rename WebURLSchemeTask::identifier to
&gt; WebURLSchemeTask::resourceLoaderIdentifier, to break the expectation that
&gt; WebURLSchemeTask::identifier can be used to identify a WebURLSchemeTask.
&gt; Then just update WebKitWebContext to use
&gt; std::pair&lt;WebCore::ResourceLoaderIdentifier, WebPageProxyIdentifier&gt; like
&gt; WebURLSchemeHandler already does since.

Alex, I think you&apos;ll like this approach since it doesn&apos;t change the cross-platform code except for renaming WebURLSchemeTask::identifier -&gt; WebURLSchemeTask::resourceLoaderID. OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795764</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-21 14:14:49 -0700</bug_when>
    <thetext>looks great</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795765</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 14:15:27 -0700</bug_when>
    <thetext>Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795792</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-21 14:43:28 -0700</bug_when>
    <thetext>Committed r282843 (241974@main): &lt;https://commits.webkit.org/241974@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438856.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795846</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-21 16:24:14 -0700</bug_when>
    <thetext>Looks like this test is still timing out on the WPE release bot. But the GTK release bot is happy. The stderr on the bot has a bunch of errors coming from wpebackend-fdo:

WPE-FDO-WARNING **: 15:39:18.371: Failed to send message 67 to socket: Error sending data: Broken pipe

My guess is WPE port just cannot handle 50 web views at once. When I tried 100 web views with the GTK port, it died due to errors in wpebackend-fdo, so could be something similar. Dunno.

At least I think the URI scheme handler bug is fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438845</attachid>
            <date>2021-09-21 12:51:46 -0700</date>
            <delta_ts>2021-09-21 14:13:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230556-20210921145145.patch</filename>
            <type>text/plain</type>
            <size>16805</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRhNGE3ZGJmOGMxNmRhYjk1
N2IzNjViZjQ1ZjEyZGU0N2Q0NjFjYTQuLjJmNjhkN2IxZDQzZjRkM2EwMmRiYzczYTBhNTJhZWI5
NTI0ZWNkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDktMjEgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTigy
NDE5MThAbWFpbik6IFtXUEVdW0dUS10gTmV3IHRlc3QgaXMgdGltaW5nIG91dCBvbiBib3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA1NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBp
cyB0aW1pbmcgb3V0IGJlY2F1c2UgV2ViVVJMU2NoZW1lVGFzazo6aWRlbnRpZmllciBpcyByZXR1
cm5pbmcgYW4gaWRlbnRpZmllciB0aGF0CisgICAgICAgIGlzIG5vdCB1bmlxdWUgaW4gdGhlIFVJ
IHByb2Nlc3MsIGNhdXNpbmcgV2ViS2l0V2ViQ29udGV4dCdzIG1hcCBvZiBvdXRzdGFuZGluZwor
ICAgICAgICBXZWJVUkxTY2hlbWVUYXNrcyB0byBnZXQgbWVzc2VkIHVwLiBXZSBjYW4gZml4IHRo
aXMgYnkgZ29pbmcgb25lIHN0ZXAgZnVydGhlciBhbmQgY2hhbmdpbmcKKyAgICAgICAgaXQgdG8g
cmV0dXJuIGEgc3RkOjpwYWlyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciwgV2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4sIHdoaWNoCisgICAgICAgIGlzIG5pY2VyIHRoYW4gZXhwZWN0
aW5nIFdlYlVSTFNjaGVtZUhhbmRsZXIgYW5kIFdlYktpdFdlYkNvbnRleHQgdG8ga25vdyB0aGlz
IGlzIHRoZSBzZWNyZXQKKyAgICAgICAgc2F1Y2UgZm9yIHByb3Blcmx5IGlkZW50aWZ5aW5nIHRo
ZSBXZWJVUkxTY2hlbWVUYXNrLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BVUkxTY2hlbWVUYXNrKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYlVS
TFNjaGVtZUhhbmRsZXI6OnByb2Nlc3NGb3JUYXNrSWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI6OnN0b3BBbGxUYXNrc0ZvclBhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdG9wVGFzayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI6OnRhc2tDb21wbGV0ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyOjpyZW1vdmVUYXNrRnJvbVBhZ2VNYXApOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNr
OjpXZWJVUkxTY2hlbWVUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6
d2lsbFBlcmZvcm1SZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRh
c2s6OmRpZFBlcmZvcm1SZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFz
azo6ZGlkQ29tcGxldGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpwYWdl
RGVzdHJveWVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cmVzb3VyY2VMb2FkZXJJRCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2s6OnBhZ2VQcm94eUlEIGNvbnN0KToKKwog
MjAyMS0wOS0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVzZSB0eXBlZCBpZGVudGlmaWVyIGZvciBXZWJTb2NrZXRDaGFubmVsIGlkZW50
aWZpZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwCmluZGV4IGUwYThlZWEzNmM5ZWE2Y2RhNjQzZDYyMWU5NzhmN2M4N2Q2
ZTE0MzguLmZkOWEzZjQ0ZTliZWQ5N2UzYTQ1ZmFiMjNkMGQ4ZmYyZWE1ZTkwNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQu
Y3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgcHJpdmF0ZToKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1
ZXN0Q2FsbGJhY2sgbV9jYWxsYmFjayB7IG51bGxwdHIgfTsKICAgICB2b2lkKiBtX3VzZXJEYXRh
IHsgbnVsbHB0ciB9OwogICAgIEdEZXN0cm95Tm90aWZ5IG1fZGVzdHJveU5vdGlmeSB7IG51bGxw
dHIgfTsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciwgR1Jl
ZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdl
YlVSTFNjaGVtZVRhc2tJZGVudGlmaWVyLCBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+
PiBtX3JlcXVlc3RzOwogfTsKIAogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYktp
dFVSSVNjaGVtZUhhbmRsZXI+ID4gVVJJU2NoZW1lSGFuZGxlck1hcDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI3N2JjYjJmYzUwN2ZhMjcwYWRlZjY2NWUy
ZWY1NTE0OGZmYWU2N2QuLjBhMTdkNDU5M2I0MTE5ZGM1YThkMzZmM2FhM2M4Y2FlY2JkNDkyZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTAwMTEsNyAr
MTAwMTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcFVSTFNjaGVtZVRhc2soV2ViVVJMU2No
ZW1lSGFuZGxlcklkZW50aWZpZXIgaGFuZGxlcklkZW50aQogICAgIGF1dG8gaXRlcmF0b3IgPSBt
X3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmZpbmQoaGFuZGxlcklkZW50aWZpZXIpOwog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhhbmRs
ZXJzQnlJZGVudGlmaWVyLmVuZCgpKTsKIAotICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RvcFRhc2so
KnRoaXMsIHRhc2tJZGVudGlmaWVyKTsKKyAgICBpdGVyYXRvci0+dmFsdWUtPnN0b3BUYXNrKCp0
aGlzLCBzdGQ6Om1ha2VfcGFpcih0YXNrSWRlbnRpZmllciwgaWRlbnRpZmllcigpKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9h
ZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzazo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IDRhYTUy
NGQ4MTQxYTlmZDYwOGE2YThkZTU3NTc2NjAxMzljMWI4YjMuLmMzZjg2YTI0NzMxY2RjMjk0NjE1
MzE4MDM3NDIwODI5OGEzMTUyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC00NSwyMyArNDUsMjIgQEAgV2ViVVJMU2NoZW1lSGFu
ZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRsZXIoKQogCiB2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6
OnN0YXJ0VGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
LSAgICBhdXRvIHRhc2tJZGVudGlmaWVyID0gcGFyYW1ldGVycy50YXNrSWRlbnRpZmllcjsKLSAg
ICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKHsgdGFza0lkZW50aWZpZXIsIHBhZ2UuaWRlbnRp
ZmllcigpIH0sIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcHJvY2Vzcywg
d2ViUGFnZUlELCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSkpOworICAgIGF1dG8gdGFza0lkZW50aWZpZXIgPSBzdGQ6Om1ha2VfcGFpcihwYXJhbWV0ZXJz
LnRhc2tJZGVudGlmaWVyLCBwYWdlLmlkZW50aWZpZXIoKSk7CisgICAgYXV0byByZXN1bHQgPSBt
X3Rhc2tzLmFkZCh0YXNrSWRlbnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKCp0aGlz
LCBwYWdlLCBwcm9jZXNzLCB3ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycyksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKIAot
ICAgIGF1dG8gcGFnZUVudHJ5ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRkKHBhZ2UuaWRl
bnRpZmllcigpLCBIYXNoU2V0PFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4oKSk7
CisgICAgYXV0byBwYWdlRW50cnkgPSBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5hZGQocGFnZS5p
ZGVudGlmaWVyKCksIEhhc2hTZXQ8V2ViVVJMU2NoZW1lVGFza0lkZW50aWZpZXI+KCkpOwogICAg
IEFTU0VSVCghcGFnZUVudHJ5Lml0ZXJhdG9yLT52YWx1ZS5jb250YWlucyh0YXNrSWRlbnRpZmll
cikpOwogICAgIHBhZ2VFbnRyeS5pdGVyYXRvci0+dmFsdWUuYWRkKHRhc2tJZGVudGlmaWVyKTsK
IAogICAgIHBsYXRmb3JtU3RhcnRUYXNrKHBhZ2UsIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwog
fQogCi1XZWJQcm9jZXNzUHJveHkqIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnByb2Nlc3NGb3JUYXNr
SWRlbnRpZmllcihXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRl
bnRpZmllciB0YXNrSWRlbnRpZmllcikgY29uc3QKK1dlYlByb2Nlc3NQcm94eSogV2ViVVJMU2No
ZW1lSGFuZGxlcjo6cHJvY2Vzc0ZvclRhc2tJZGVudGlmaWVyKFdlYlVSTFNjaGVtZVRhc2tJZGVu
dGlmaWVyIHRhc2tJZGVudGlmaWVyKSBjb25zdAogewotICAgIGF1dG8ga2V5ID0gc3RkOjptYWtl
X3BhaXIodGFza0lkZW50aWZpZXIsIHBhZ2UuaWRlbnRpZmllcigpKTsKLSAgICBpZiAoIWRlY2x0
eXBlKG1fdGFza3MpOjppc1ZhbGlkS2V5KGtleSkpCisgICAgaWYgKCFkZWNsdHlwZShtX3Rhc2tz
KTo6aXNWYWxpZEtleSh0YXNrSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Rhc2tzLmZpbmQoa2V5KTsKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gbV90YXNrcy5maW5kKHRhc2tJZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0gbV90
YXNrcy5lbmQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGl0ZXJhdG9y
LT52YWx1ZS0+cHJvY2VzcygpOwpAQCAtNzQsNDYgKzczLDQ0IEBAIHZvaWQgV2ViVVJMU2NoZW1l
SGFuZGxlcjo6c3RvcEFsbFRhc2tzRm9yUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nl
c3NQcm94CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIHRhc2tzQnlQYWdlID0gaXRlcmF0
b3ItPnZhbHVlOwotICAgIFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXI+
IHRhc2tJZGVudGlmaWVyc1RvU3RvcDsKKyAgICBWZWN0b3I8V2ViVVJMU2NoZW1lVGFza0lkZW50
aWZpZXI+IHRhc2tJZGVudGlmaWVyc1RvU3RvcDsKICAgICB0YXNrSWRlbnRpZmllcnNUb1N0b3Au
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0YXNrc0J5UGFnZS5zaXplKCkpOwogICAgIGZvciAoYXV0
byB0YXNrSWRlbnRpZmllciA6IHRhc2tzQnlQYWdlKSB7Ci0gICAgICAgIGlmICghcHJvY2VzcyB8
fCBwcm9jZXNzRm9yVGFza0lkZW50aWZpZXIocGFnZSwgdGFza0lkZW50aWZpZXIpID09IHByb2Nl
c3MpCisgICAgICAgIGlmICghcHJvY2VzcyB8fCBwcm9jZXNzRm9yVGFza0lkZW50aWZpZXIodGFz
a0lkZW50aWZpZXIpID09IHByb2Nlc3MpCiAgICAgICAgICAgICB0YXNrSWRlbnRpZmllcnNUb1N0
b3AudW5jaGVja2VkQXBwZW5kKHRhc2tJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBmb3IgKGF1
dG8mIHRhc2tJZGVudGlmaWVyIDogdGFza0lkZW50aWZpZXJzVG9TdG9wKQogICAgICAgICBzdG9w
VGFzayhwYWdlLCB0YXNrSWRlbnRpZmllcik7Ci0KIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5k
bGVyOjpzdG9wVGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
SWRlbnRpZmllciB0YXNrSWRlbnRpZmllcikKK3ZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6c3Rv
cFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJVUkxTY2hlbWVUYXNrSWRlbnRpZmllciB0YXNr
SWRlbnRpZmllcikKIHsKLSAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHRhc2tJZGVudGlm
aWVyLCBwYWdlLmlkZW50aWZpZXIoKSk7Ci0gICAgaWYgKCFkZWNsdHlwZShtX3Rhc2tzKTo6aXNW
YWxpZEtleShrZXkpKQorICAgIGlmICghZGVjbHR5cGUobV90YXNrcyk6OmlzVmFsaWRLZXkodGFz
a0lkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fdGFz
a3MuZmluZChrZXkpOworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Rhc2tzLmZpbmQodGFza0lkZW50
aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3Rhc2tzLmVuZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBpdGVyYXRvci0+dmFsdWUtPnN0b3AoKTsKICAgICBwbGF0Zm9ybVN0b3BUYXNr
KHBhZ2UsIGl0ZXJhdG9yLT52YWx1ZSk7CiAKLSAgICByZW1vdmVUYXNrRnJvbVBhZ2VNYXAocGFn
ZS5pZGVudGlmaWVyKCksIHRhc2tJZGVudGlmaWVyKTsKKyAgICByZW1vdmVUYXNrRnJvbVBhZ2VN
YXAodGFza0lkZW50aWZpZXIpOwogICAgIG1fdGFza3MucmVtb3ZlKGl0ZXJhdG9yKTsKIH0KIAot
dm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjp0YXNrQ29tcGxldGVkKFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIgcGFnZUlELCBXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQordm9pZCBXZWJVUkxTY2hlbWVI
YW5kbGVyOjp0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smIHRhc2spCiB7Ci0gICAgYXV0
byB0YWtlblRhc2sgPSBtX3Rhc2tzLnRha2UoeyB0YXNrLmlkZW50aWZpZXIoKSwgcGFnZUlEIH0p
OworICAgIGF1dG8gdGFrZW5UYXNrID0gbV90YXNrcy50YWtlKHRhc2suaWRlbnRpZmllcigpKTsK
ICAgICBBU1NFUlRfVU5VU0VEKHRha2VuVGFzaywgdGFrZW5UYXNrID09ICZ0YXNrKTsKLSAgICBy
ZW1vdmVUYXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlUHJveHlJRCgpLCB0YXNrLmlkZW50aWZpZXIo
KSk7CisgICAgcmVtb3ZlVGFza0Zyb21QYWdlTWFwKHRhc2suaWRlbnRpZmllcigpKTsKIAogICAg
IHBsYXRmb3JtVGFza0NvbXBsZXRlZCh0YXNrKTsKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVIYW5k
bGVyOjpyZW1vdmVUYXNrRnJvbVBhZ2VNYXAoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQs
IFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciB0YXNrSUQpCit2b2lkIFdlYlVSTFNj
aGVtZUhhbmRsZXI6OnJlbW92ZVRhc2tGcm9tUGFnZU1hcChXZWJVUkxTY2hlbWVUYXNrSWRlbnRp
ZmllciB0YXNrSUQpCiB7Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fdGFza3NCeVBhZ2VJZGVudGlm
aWVyLmZpbmQocGFnZUlEKTsKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV90YXNrc0J5UGFnZUlkZW50
aWZpZXIuZmluZCh0YXNrSUQuc2Vjb25kKTsKICAgICBBU1NFUlQoaXRlcmF0b3IgIT0gbV90YXNr
c0J5UGFnZUlkZW50aWZpZXIuZW5kKCkpOwogICAgIEFTU0VSVChpdGVyYXRvci0+dmFsdWUuY29u
dGFpbnModGFza0lEKSk7CiAgICAgaWYgKCFkZWNsdHlwZShpdGVyYXRvci0+dmFsdWUpOjppc1Zh
bGlkVmFsdWUodGFza0lEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZUhhbmRsZXIuaAppbmRleCA5OWI2ODI0ODcyZGFjNGJmNDM0ZTdjZmJkNzVlODNkZDJjMGRkMWIy
Li4xZjllNmE2ZTBhNGQ5YmQ0YzM1MWJhNmM4ODhkY2E1MGQ1NjQ2OTZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCkBAIC01Myw5ICs1Myw5IEBA
IHB1YmxpYzoKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICB2b2lkIHN0YXJ0VGFzayhXZWJQ
YWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKLSAg
ICB2b2lkIHN0b3BUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRl
bnRpZmllciB0YXNrSWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wVGFzayhXZWJQYWdlUHJveHkm
LCBXZWJVUkxTY2hlbWVUYXNrSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wQWxsVGFza3NGb3JQ
YWdlKFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSopOwotICAgIHZvaWQgdGFza0NvbXBs
ZXRlZChXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrJik7CisgICAgdm9p
ZCB0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smKTsKIAogcHJvdGVjdGVkOgogICAgIFdl
YlVSTFNjaGVtZUhhbmRsZXIoKTsKQEAgLTY1LDEzICs2NSwxMyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBwbGF0Zm9ybVN0b3BUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFNjaGVtZVRh
c2smKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtVGFza0NvbXBsZXRlZChXZWJVUkxT
Y2hlbWVUYXNrJikgeyB9OwogCi0gICAgdm9pZCByZW1vdmVUYXNrRnJvbVBhZ2VNYXAoV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyKTsKLSAg
ICBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3NGb3JUYXNrSWRlbnRpZmllcihXZWJQYWdlUHJveHkm
LCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIpIGNvbnN0OworICAgIHZvaWQgcmVt
b3ZlVGFza0Zyb21QYWdlTWFwKFdlYlVSTFNjaGVtZVRhc2tJZGVudGlmaWVyKTsKKyAgICBXZWJQ
cm9jZXNzUHJveHkqIHByb2Nlc3NGb3JUYXNrSWRlbnRpZmllcihXZWJVUkxTY2hlbWVUYXNrSWRl
bnRpZmllcikgY29uc3Q7CiAKICAgICBXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7CiAKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cklkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+LCBSZWY8V2ViVVJMU2NoZW1lVGFz
az4+IG1fdGFza3M7Ci0gICAgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBIYXNoU2V0
PFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4+IG1fdGFza3NCeVBhZ2VJZGVudGlm
aWVyOworICAgIEhhc2hNYXA8V2ViVVJMU2NoZW1lVGFza0lkZW50aWZpZXIsIFJlZjxXZWJVUkxT
Y2hlbWVUYXNrPj4gbV90YXNrczsKKyAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIs
IEhhc2hTZXQ8V2ViVVJMU2NoZW1lVGFza0lkZW50aWZpZXI+PiBtX3Rhc2tzQnlQYWdlSWRlbnRp
ZmllcjsKICAgICAKICAgICBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyIG1fc3luY0xvYWRDb21w
bGV0aW9uSGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmNwcAppbmRleCAyNjhiMWY2NTBlOGU0YzdlNGRhMjAyN2Y3ZjY3ZjBjN2MzM2JhZDQ5Li4x
YjY5ZTljYmViZDcxZmE0MjU3YjYxZmYwN2Y2YjMyNDY4NDA0ZmI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcApAQCAtNDUsOCArNDUsNyBAQCBSZWY8
V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKFdlYlVSTFNjaGVtZUhh
bmRsZXImIGhhbmRsZXIsIFdlYgogV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayhX
ZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5j
Q29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX3VybFNjaGVtZUhhbmRsZXIoaGFuZGxlcikKICAg
ICAsIG1fcHJvY2VzcyhtYWtlUmVmKHByb2Nlc3MpKQotICAgICwgbV9pZGVudGlmaWVyKHBhcmFt
ZXRlcnMudGFza0lkZW50aWZpZXIpCi0gICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmll
cigpKQorICAgICwgbV9pZGVudGlmaWVyKHN0ZDo6bWFrZV9wYWlyKHBhcmFtZXRlcnMudGFza0lk
ZW50aWZpZXIsIHBhZ2UuaWRlbnRpZmllcigpKSkKICAgICAsIG1fd2ViUGFnZUlEKHdlYlBhZ2VJ
RCkKICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCkpCiAgICAgLCBt
X2ZyYW1lSW5mbyhBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUocGFyYW1ldGVycy5mcmFt
ZUluZm8pLCAmcGFnZSkpCkBAIC05NCw3ICs5Myw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6
d2lsbFBlcmZvcm1SZWRpcmVjdGlvbihSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIFJlc291
CiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgfQogCi0gICAgYXV0byogcGFnZSA9
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShtX3BhZ2VQcm94eUlEKTsKKyAgICBhdXRvKiBwYWdl
ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VQcm94eUlEKCkpOwogICAgIGlmICghcGFn
ZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiAKQEAgLTEwNiw3ICsxMDUs
NyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OndpbGxQZXJmb3JtUmVkaXJlY3Rpb24oUmVzb3Vy
Y2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNvdQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgfTsKIAotICAgIHBhZ2UtPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rp
b24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9u
c2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBwYWdl
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tXaWxs
UGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCByZXNv
dXJjZUxvYWRlcklEKCksIHJlc3BvbnNlLCByZXF1ZXN0KSwgV1RGTW92ZShpbm5lckNvbXBsZXRp
b25IYW5kbGVyKSk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTEz
OCw3ICsxMzcsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFBlcmZvcm1SZWRpcmVjdGlv
bihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9ucwogICAgICAgICBtX3JlcXVlc3Qg
PSByZXF1ZXN0OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXIt
PmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSwgcmVxdWVzdCksIG1fd2ViUGFn
ZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRh
c2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IHJlc291cmNlTG9hZGVySUQoKSwgcmVzcG9uc2UsIHJlcXVlc3QpLCBtX3dlYlBhZ2VJRCk7CiAK
ICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTE2NCw3ICsxNjMsNyBAQCBh
dXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkgLT4gRQogICAgIGlmIChpc1N5bmMoKSkKICAgICAgICAgbV9zeW5j
UmVzcG9uc2UgPSByZXNwb25zZTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZShtX3VybFNjaGVtZUhhbmRsZXIt
PmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSksIG1fd2ViUGFnZUlEKTsKKyAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNl
aXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIHJlc291cmNlTG9h
ZGVySUQoKSwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5
cGU6Ok5vbmU7CiB9CiAKQEAgLTE5NCw3ICsxOTMsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6
OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRpb25U
eQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0
YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBidWZmZXIu
Z2V0KCkpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVu
dGlmaWVyKCksIHJlc291cmNlTG9hZGVySUQoKSwgYnVmZmVyLmdldCgpKSwgbV93ZWJQYWdlSUQp
OwogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0yMjUsOCArMjI0LDgg
QEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogICAgICAgICBtX3N5bmNEYXRhID0gbnVsbHB0cjsK
ICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVu
dGlmaWVyLCBlcnJvciksIG1fd2ViUGFnZUlEKTsKLSAgICBtX3VybFNjaGVtZUhhbmRsZXItPnRh
c2tDb21wbGV0ZWQocGFnZVByb3h5SUQoKSwgKnRoaXMpOworICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFu
ZGxlci0+aWRlbnRpZmllcigpLCByZXNvdXJjZUxvYWRlcklEKCksIGVycm9yKSwgbV93ZWJQYWdl
SUQpOworICAgIG1fdXJsU2NoZW1lSGFuZGxlci0+dGFza0NvbXBsZXRlZCgqdGhpcyk7CiAKICAg
ICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTIzNSw3ICsyMzQsNiBAQCB2b2lk
IFdlYlVSTFNjaGVtZVRhc2s6OnBhZ2VEZXN0cm95ZWQoKQogewogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAKLSAgICBtX3BhZ2VQcm94eUlEID0geyB9OwogICAgIG1fd2ViUGFnZUlE
ID0geyB9OwogICAgIG1fcHJvY2VzcyA9IG51bGxwdHI7CiAgICAgbV9zdG9wcGVkID0gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAppbmRleCAyYTllMDZh
MmEyYjBmZDJkNmNkZTQ0NjUxOTNiNmRmOGM4MDI2NGM1Li43MmQwMWVmOWVhZDIyY2JlMjYxZTJk
MTc3YjUxNDNlNjdhMzI4OTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2No
ZW1lVGFzay5oCkBAIC01Myw2ICs1Myw3IEBAIGNsYXNzIFdlYlVSTFNjaGVtZUhhbmRsZXI7CiBj
bGFzcyBXZWJQYWdlUHJveHk7CiAKIHVzaW5nIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXIgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik+Owor
dXNpbmcgV2ViVVJMU2NoZW1lVGFza0lkZW50aWZpZXIgPSBzdGQ6OnBhaXI8V2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXJJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyPjsKIAogY2xhc3Mg
V2ViVVJMU2NoZW1lVGFzayA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5
cGU6OlVSTFNjaGVtZVRhc2s+LCBwdWJsaWMgSW5zdGFuY2VDb3VudGVkPFdlYlVSTFNjaGVtZVRh
c2s+IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJVUkxTY2hlbWVUYXNrKTsKQEAgLTYx
LDggKzYyLDkgQEAgcHVibGljOgogCiAgICAgfldlYlVSTFNjaGVtZVRhc2soKTsKIAotICAgIFdl
YkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgV2ViUGFn
ZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJVUkxTY2hlbWVUYXNrSWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlm
aWVyIHJlc291cmNlTG9hZGVySUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
IHJldHVybiBtX2lkZW50aWZpZXIuZmlyc3Q7IH0KKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHBhZ2VQcm94eUlEKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4g
bV9pZGVudGlmaWVyLnNlY29uZDsgfQogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fd2ViUGFn
ZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKCkgeyBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoKSBjb25zdDsKQEAgLTEwMSw4ICsxMDMsNyBAQCBwcml2YXRlOgog
CiAgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcjsKICAgICBS
ZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVy
IG1fcGFnZVByb3h5SUQ7CisgICAgV2ViVVJMU2NoZW1lVGFza0lkZW50aWZpZXIgbV9pZGVudGlm
aWVyOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fd2ViUGFnZUlEOwogICAgIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3QgV1RGX0dVQVJERURfQllfTE9DSyhtX3JlcXVl
c3RMb2NrKTsKICAgICBSZWY8QVBJOjpGcmFtZUluZm8+IG1fZnJhbWVJbmZvOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438856</attachid>
            <date>2021-09-21 14:13:07 -0700</date>
            <delta_ts>2021-09-21 14:43:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230556-20210921161306.patch</filename>
            <type>text/plain</type>
            <size>9355</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRhNGE3ZGJmOGMxNmRhYjk1
N2IzNjViZjQ1ZjEyZGU0N2Q0NjFjYTQuLmFmMWIxNmQ4NzMyNWZhNWE0NjkxNTZiYjVlN2YxNzNi
ZmI5NGEyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDktMjEgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTigy
NDE5MThAbWFpbik6IFtXUEVdW0dUS10gTmV3IHRlc3QgaXMgdGltaW5nIG91dCBvbiBib3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA1NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2ggV2Vi
S2l0V2ViQ29udGV4dCB0byB1c2UgYm90aCBSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgYW5kIFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgYXMKKyAgICAgICAgdGhlIGtleSBmb3IgdHJhY2tpbmcgb3V0
c3RhbmRpbmcgdGFza3MsIHNpbmNlIHRoZSBSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgaXMgbm90
IHVuaXF1ZS4KKworICAgICAgICBSZW5hbWUgV2ViVVJMU2NoZW1lVGFzazo6aWRlbnRpZmllciB0
byBXZWJVUkxTY2hlbWVUYXNrOjpyZXNvdXJjZUxvYWRlcklEIGJlY2F1c2UgdGhpcyBpcworICAg
ICAgICByZWFsbHkgb25seSBvbmUgY29tcG9uZW50IG9mIHRoZSBJRCBmb3IgdGhlIFdlYlVSTFNj
aGVtZVRhc2ssIGFuZCBjYW5ub3QgYmUgdXNlZCBvbiBpdHMgb3duCisgICAgICAgIHRvIGlkZW50
aWZ5IHRoZSBXZWJVUkxTY2hlbWVUYXNrLiBJdCBtdXN0IGFsd2F5cyBiZSBwYWlyZWQgd2l0aCB0
aGUgV2ViUGFnZVByb3h5SWRlbnRpZmllci4KKworICAgICAgICBUaGlzIGZpeGVzIFdQRS9HVEsg
VGVzdFdlYktpdFdlYkNvbnRleHQgL3dlYmtpdC9XZWJLaXRXZWJDb250ZXh0L3VyaS1zY2hlbWUK
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI6OnRhc2tDb21wbGV0ZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1l
VGFzazo6V2ViVVJMU2NoZW1lVGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRh
c2s6OndpbGxQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxT
Y2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxT
Y2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFz
ay5oOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjpyZXNvdXJjZUxvYWRlcklE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6aWRlbnRpZmllciBj
b25zdCk6IERlbGV0ZWQuCisKIDIwMjEtMDktMjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgdHlwZWQgaWRlbnRpZmllciBmb3IgV2Vi
U29ja2V0Q2hhbm5lbCBpZGVudGlmaWVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBlMGE4ZWVhMzZjOWVhNmNk
YTY0M2Q2MjFlOTc4ZjdjODdkNmUxNDM4Li4xYjEyOGE0YzY4MjVkZTlmOTM1NTA3MjVjNTE5NWY0
YWIwNDQzNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTcxLDE0ICsxNzEsMTQgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVl
c3Q+IHJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZShtX2Nv
bnRleHQsIHBhZ2UsIHRhc2spKTsKLSAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3JlcXVlc3Rz
LmFkZCh0YXNrLmlkZW50aWZpZXIoKSwgV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgICAgIGF1dG8g
YWRkUmVzdWx0ID0gbV9yZXF1ZXN0cy5hZGQoeyB0YXNrLnJlc291cmNlTG9hZGVySUQoKSwgdGFz
ay5wYWdlUHJveHlJRCgpIH0sIFdURk1vdmUocmVxdWVzdCkpOwogICAgICAgICBBU1NFUlQoYWRk
UmVzdWx0LmlzTmV3RW50cnkpOwogICAgICAgICBtX2NhbGxiYWNrKGFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUuZ2V0KCksIG1fdXNlckRhdGEpOwogICAgIH0KIAogICAgIHZvaWQgcGxhdGZvcm1T
dG9wVGFzayhXZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKSBmaW5hbAogICAg
IHsKLSAgICAgICAgYXV0byBpdCA9IG1fcmVxdWVzdHMuZmluZCh0YXNrLmlkZW50aWZpZXIoKSk7
CisgICAgICAgIGF1dG8gaXQgPSBtX3JlcXVlc3RzLmZpbmQoeyB0YXNrLnJlc291cmNlTG9hZGVy
SUQoKSwgdGFzay5wYWdlUHJveHlJRCgpIH0pOwogICAgICAgICBpZiAoaXQgPT0gbV9yZXF1ZXN0
cy5lbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTg4LDE0ICsxODgsMTQgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1UYXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2sm
IHRhc2spIGZpbmFsCiAgICAgewotICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZSh0YXNrLmlkZW50
aWZpZXIoKSk7CisgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKHsgdGFzay5yZXNvdXJjZUxvYWRl
cklEKCksIHRhc2sucGFnZVByb3h5SUQoKSB9KTsKICAgICB9CiAKICAgICBXZWJLaXRXZWJDb250
ZXh0KiBtX2NvbnRleHQgeyBudWxscHRyIH07CiAgICAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENh
bGxiYWNrIG1fY2FsbGJhY2sgeyBudWxscHRyIH07CiAgICAgdm9pZCogbV91c2VyRGF0YSB7IG51
bGxwdHIgfTsKICAgICBHRGVzdHJveU5vdGlmeSBtX2Rlc3Ryb3lOb3RpZnkgeyBudWxscHRyIH07
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIsIEdSZWZQdHI8
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdD4+IG1fcmVxdWVzdHM7CisgICAgSGFzaE1hcDxzdGQ6OnBh
aXI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlm
aWVyPiwgR1JlZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKIH07CiAK
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiA+
IFVSSVNjaGVtZUhhbmRsZXJNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVS
TFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IDRhYTUyNGQ4MTQxYTlmZDYwOGE2YThkZTU3NTc2NjAx
MzljMWI4YjMuLmVhMmJhNWFkNTU2NTA5OWE1NmRjODkzMDM1MTg1YjVjZGIzMDcyMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC0x
MDQsOSArMTA0LDkgQEAgdm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdG9wVGFzayhXZWJQYWdl
UHJveHkmIHBhZ2UsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWQKIAogdm9pZCBXZWJVUkxTY2hl
bWVIYW5kbGVyOjp0YXNrQ29tcGxldGVkKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQogewotICAgIGF1dG8gdGFrZW5UYXNrID0gbV90YXNrcy50
YWtlKHsgdGFzay5pZGVudGlmaWVyKCksIHBhZ2VJRCB9KTsKKyAgICBhdXRvIHRha2VuVGFzayA9
IG1fdGFza3MudGFrZSh7IHRhc2sucmVzb3VyY2VMb2FkZXJJRCgpLCBwYWdlSUQgfSk7CiAgICAg
QVNTRVJUX1VOVVNFRCh0YWtlblRhc2ssIHRha2VuVGFzayA9PSAmdGFzayk7Ci0gICAgcmVtb3Zl
VGFza0Zyb21QYWdlTWFwKHRhc2sucGFnZVByb3h5SUQoKSwgdGFzay5pZGVudGlmaWVyKCkpOwor
ICAgIHJlbW92ZVRhc2tGcm9tUGFnZU1hcCh0YXNrLnBhZ2VQcm94eUlEKCksIHRhc2sucmVzb3Vy
Y2VMb2FkZXJJRCgpKTsKIAogICAgIHBsYXRmb3JtVGFza0NvbXBsZXRlZCh0YXNrKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggMjY4YjFm
NjUwZThlNGM3ZTRkYTIwMjdmN2Y2N2YwYzdjMzNiYWQ0OS4uMWMwMjZiNWEyZDhjOWI3Y2RkYjBk
ZWJlMmQ5ZTVlOTAxZjNhNDI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViVVJMU2NoZW1lVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJM
U2NoZW1lVGFzay5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgUmVmPFdlYlVSTFNjaGVtZVRhc2s+IFdl
YlVSTFNjaGVtZVRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWIK
IFdlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYg
aGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQog
ICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJl
Zihwcm9jZXNzKSkKLSAgICAsIG1faWRlbnRpZmllcihwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVy
KQorICAgICwgbV9yZXNvdXJjZUxvYWRlcklEKHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIpCiAg
ICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmllcigpKQogICAgICwgbV93ZWJQYWdlSUQo
d2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0KFdURk1vdmUocGFyYW1ldGVycy5yZXF1ZXN0KSkK
QEAgLTEwNiw3ICsxMDYsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OndpbGxQZXJmb3JtUmVk
aXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNvdQogICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgfTsKIAotICAgIHBhZ2Ut
PnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza1dpbGxQ
ZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRl
bnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBXVEZNb3ZlKGlubmVyQ29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICBwYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlVS
TFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRl
bnRpZmllcigpLCBtX3Jlc291cmNlTG9hZGVySUQsIHJlc3BvbnNlLCByZXF1ZXN0KSwgV1RGTW92
ZShpbm5lckNvbXBsZXRpb25IYW5kbGVyKSk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6
Tm9uZTsKIH0KQEAgLTEzOCw3ICsxMzgsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFBl
cmZvcm1SZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9ucwogICAg
ICAgICBtX3JlcXVlc3QgPSByZXF1ZXN0OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbihtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSwgcmVx
dWVzdCksIG1fd2ViUGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlVSTFNjaGVtZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVy
LT5pZGVudGlmaWVyKCksIG1fcmVzb3VyY2VMb2FkZXJJRCwgcmVzcG9uc2UsIHJlcXVlc3QpLCBt
X3dlYlBhZ2VJRCk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTE2
NCw3ICsxNjQsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgLT4gRQogICAgIGlmIChpc1N5bmMoKSkK
ICAgICAgICAgbV9zeW5jUmVzcG9uc2UgPSByZXNwb25zZTsKIAotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZShtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSksIG1f
d2ViUGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNj
aGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1fcmVzb3VyY2VMb2FkZXJJRCwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0
dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCBhdXRvIFdl
YlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVy
KSAtPiBFeGNlcHRpb25UeQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAg
ICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRh
c2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVu
dGlmaWVyLCBidWZmZXIuZ2V0KCkpLCBtX3dlYlBhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hl
bWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1fcmVzb3VyY2VMb2FkZXJJRCwgYnVmZmVyLmdldCgp
KSwgbV93ZWJQYWdlSUQpOwogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBA
IC0yMjUsNyArMjI1LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogICAgICAgICBtX3N5bmNE
YXRhID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50
aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvciksIG1fd2ViUGFnZUlEKTsKKyAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3Vy
bFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9yZXNvdXJjZUxvYWRlcklELCBlcnJvciks
IG1fd2ViUGFnZUlEKTsKICAgICBtX3VybFNjaGVtZUhhbmRsZXItPnRhc2tDb21wbGV0ZWQocGFn
ZVByb3h5SUQoKSwgKnRoaXMpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKaW5kZXggMmE5ZTA2YTJh
MmIwZmQyZDZjZGU0NDY1MTkzYjZkZjhjODAyNjRjNS4uNmE4NTYwMjFiMTI5OTI0NmM3MDAwOTNk
ZDBhNDdmMmMxMzA4NTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZVRhc2suaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAKICAgICB+V2ViVVJMU2NoZW1lVGFz
aygpOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KKyAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgcmVzb3VyY2VMb2FkZXJJ
RCgpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcmVzb3VyY2VM
b2FkZXJJRDsgfQogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQoKSBjb25z
dCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3BhZ2VQcm94eUlEOyB9CiAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKCkgY29uc3QgeyBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV93ZWJQYWdlSUQ7IH0KICAgICBXZWJQcm9jZXNzUHJv
eHkqIHByb2Nlc3MoKSB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3Byb2Nl
c3MuZ2V0KCk7IH0KQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYlVS
TFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcjsKICAgICBSZWZQdHI8V2ViUHJvY2Vz
c1Byb3h5PiBtX3Byb2Nlc3M7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgbV9y
ZXNvdXJjZUxvYWRlcklEOwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlUHJveHlJ
RDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3dlYlBhZ2VJRDsKICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0IFdURl9HVUFSREVEX0JZX0xPQ0sobV9yZXF1ZXN0
TG9jayk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>