<?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>188764</bug_id>
          
          <creation_ts>2018-08-20 16:12:22 -0700</creation_ts>
          <short_desc>WKNavigationDelegate needs to allow clients to specify a custom blocked plug-in message</short_desc>
          <delta_ts>2018-11-16 10:05:57 -0800</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 API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>191753</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeff Miller">jeffm</reporter>
          <assigned_to name="Jeff Miller">jeffm</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>jeffm</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1451785</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-20 16:12:22 -0700</bug_when>
    <thetext>In https://bugs.webkit.org/show_bug.cgi?id=181073, WebKit added the following WKNavigationDelegate SPI:

- (_WKPluginModuleLoadPolicy)_webView:(WKWebView *)webView decidePolicyForPluginLoadWithCurrentPolicy:(_WKPluginModuleLoadPolicy)policy pluginInfo:(NSDictionary *)info unavailabilityDescription:(NSString *)unavailabilityDescription API_AVAILABLE(macosx(10.14));

One intent of this SPI was to allow clients to return a custom unavailabilityDescription, but they can&apos;t do that currently because this parameter is an NSString * instead of an NSString **.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451818</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-20 16:49:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/43534382&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451836</commentid>
    <comment_count>2</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-20 16:53:58 -0700</bug_when>
    <thetext>The original bug was actually https://bugs.webkit.org/show_bug.cgi?id=181413.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451872</commentid>
    <comment_count>3</comment_count>
      <attachid>347586</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-20 17:43:47 -0700</bug_when>
    <thetext>Created attachment 347586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451881</commentid>
    <comment_count>4</comment_count>
      <attachid>347586</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-20 17:52:40 -0700</bug_when>
    <thetext>Comment on attachment 347586
Patch

Give it a CompletionHandler that has two parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451888</commentid>
    <comment_count>5</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-20 18:14:05 -0700</bug_when>
    <thetext>That makes much more sense than blindly following the old SPI. Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451909</commentid>
    <comment_count>6</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-20 18:47:36 -0700</bug_when>
    <thetext>I&apos;m not sure how to implement your suggestion easily. WebPage::createPlugin() in the web process sends a synchronous IPC message that&apos;s handled by WebPageProxy::findPlugin() in the UI process, which ends up calling the navigation delegate synchronously.

If we wanted to make the navigation delegate method asynchronous with a completion handler, I think this would require rearchitecting how plug-ins are created in the web process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452123</commentid>
    <comment_count>7</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-21 09:37:39 -0700</bug_when>
    <thetext>I followed the chain back from WebPage::createPlugin() a bit more in the WebProcess, and the fact that plugin creation is synchronous seems pretty integral. I don&apos;t think I should attempt to change this.

In theory, I guess we could still use a CompletionHandler with the WKNavigationDelegate method, with an implied contract that the client has to call the completion handler before returning from the method so WebPageProxy::findPlugin() can return synchronously, but that seems like a clear antipattern to me.

I&apos;m going to reupload my original patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452125</commentid>
    <comment_count>8</comment_count>
      <attachid>347651</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-21 09:38:20 -0700</bug_when>
    <thetext>Created attachment 347651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452126</commentid>
    <comment_count>9</comment_count>
      <attachid>347651</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-21 09:42:30 -0700</bug_when>
    <thetext>Comment on attachment 347651
Patch

If you add &quot;Delayed&quot; after FindPlugin(...)-&gt;(...) in WebPageProxy.messages.in you should be able to accomplish this the right way.  This way causes problems with arc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452315</commentid>
    <comment_count>10</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-21 14:48:29 -0700</bug_when>
    <thetext>That&apos;s the bit I was missing, thanks. I have a working patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452351</commentid>
    <comment_count>11</comment_count>
      <attachid>347713</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-21 15:33:23 -0700</bug_when>
    <thetext>Created attachment 347713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452360</commentid>
    <comment_count>12</comment_count>
      <attachid>347713</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-21 15:48:40 -0700</bug_when>
    <thetext>Comment on attachment 347713
Patch

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

Looks much better!

&gt; Source/WebKit/UIProcess/API/APINavigationClient.h:120
&gt; +    virtual void decidePolicyForPluginLoad(WebKit::WebPageProxy&amp;, WebKit::PluginModuleLoadPolicy currentPluginLoadPolicy, Dictionary&amp;, WTF::Function&lt;void(WebKit::PluginModuleLoadPolicy, const WTF::String&amp;)&gt;&amp;&amp; completionHandler)

WTF::Function -&gt; CompletionHandler here and everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452402</commentid>
    <comment_count>13</comment_count>
      <attachid>347726</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-21 16:48:11 -0700</bug_when>
    <thetext>Created attachment 347726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452436</commentid>
    <comment_count>14</comment_count>
      <attachid>347726</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-21 17:18:05 -0700</bug_when>
    <thetext>Comment on attachment 347726
Patch

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

&gt; Source/WebKit/UIProcess/API/APINavigationClient.h:122
&gt; +        completionHandler(currentPluginLoadPolicy, WTF::String());

{ } here and elsewhere where we create an empty String.  The type isn&apos;t important.  The fact that we have nothing is all we need to represent in the code.

&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:374
&gt; +            completionHandler(pluginModuleLoadPolicy(policy), String(unavailabilityDescription));

String has a non-explicit NSString* constructor, so you shouldn&apos;t need the &quot;String(&quot; and &quot;)&quot;

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2168
&gt; +    auto findPluginCompletion = [processType, &amp;reply, &amp;newMimeType, &amp;plugin] (uint32_t pluginLoadPolicy, const String&amp; unavailabilityDescription) {

reply = WTFMove(reply), newMimeType = WTFMove(newMimeType), plugin = WTFMove(plugin)
It is unsafe to capture pointers to stack variables in a lambda that might be called after this stack frame returns.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2190
&gt; +        m_navigationClient-&gt;decidePolicyForPluginLoad(*this, static_cast&lt;PluginModuleLoadPolicy&gt;(pluginLoadPolicy), pluginInformation.get(), [findPluginCompletion = WTFMove(findPluginCompletion)] (PluginModuleLoadPolicy pluginLoadPolicy, const String&amp; unavailabilityDescription) mutable {

You should just be able to WTFMove(findPluginCompletion) into the function call as a parameter instead of creating a lambda does nothing but call it.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2195
&gt;          pluginLoadPolicy = m_loaderClient-&gt;pluginLoadPolicy(*this, static_cast&lt;PluginModuleLoadPolicy&gt;(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription);

It would probably be cleaner if you passed the CompletionHandler to the loader client, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452707</commentid>
    <comment_count>15</comment_count>
      <attachid>347726</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-22 10:33:25 -0700</bug_when>
    <thetext>Comment on attachment 347726
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/APINavigationClient.h:122
&gt;&gt; +        completionHandler(currentPluginLoadPolicy, WTF::String());
&gt; 
&gt; { } here and elsewhere where we create an empty String.  The type isn&apos;t important.  The fact that we have nothing is all we need to represent in the code.

Done.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:374
&gt;&gt; +            completionHandler(pluginModuleLoadPolicy(policy), String(unavailabilityDescription));
&gt; 
&gt; String has a non-explicit NSString* constructor, so you shouldn&apos;t need the &quot;String(&quot; and &quot;)&quot;

I confirmed that works, done.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2168
&gt;&gt; +    auto findPluginCompletion = [processType, &amp;reply, &amp;newMimeType, &amp;plugin] (uint32_t pluginLoadPolicy, const String&amp; unavailabilityDescription) {
&gt; 
&gt; reply = WTFMove(reply), newMimeType = WTFMove(newMimeType), plugin = WTFMove(plugin)
&gt; It is unsafe to capture pointers to stack variables in a lambda that might be called after this stack frame returns.

Fixed. I had to move the initialization of pluginInformation before the lambda, since it depends on plugin.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2190
&gt;&gt; +        m_navigationClient-&gt;decidePolicyForPluginLoad(*this, static_cast&lt;PluginModuleLoadPolicy&gt;(pluginLoadPolicy), pluginInformation.get(), [findPluginCompletion = WTFMove(findPluginCompletion)] (PluginModuleLoadPolicy pluginLoadPolicy, const String&amp; unavailabilityDescription) mutable {
&gt; 
&gt; You should just be able to WTFMove(findPluginCompletion) into the function call as a parameter instead of creating a lambda does nothing but call it.

Nice optimization, fixed.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2195
&gt;&gt;          pluginLoadPolicy = m_loaderClient-&gt;pluginLoadPolicy(*this, static_cast&lt;PluginModuleLoadPolicy&gt;(pluginLoadPolicy), pluginInformation.get(), unavailabilityDescription);
&gt; 
&gt; It would probably be cleaner if you passed the CompletionHandler to the loader client, too.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452708</commentid>
    <comment_count>16</comment_count>
      <attachid>347816</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-22 10:39:06 -0700</bug_when>
    <thetext>Created attachment 347816
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452726</commentid>
    <comment_count>17</comment_count>
      <attachid>347816</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-22 11:41:58 -0700</bug_when>
    <thetext>Comment on attachment 347816
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:366
&gt; +        completionHandler(currentPluginLoadPolicy, String());

{ }

&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:373
&gt; +        [(id &lt;WKNavigationDelegatePrivate&gt;)navigationDelegate _webView:m_navigationState.m_webView decidePolicyForPluginLoadWithCurrentPolicy:wkPluginModuleLoadPolicy(currentPluginLoadPolicy) pluginInfo:wrapper(pluginInformation) completionHandler:^(_WKPluginModuleLoadPolicy policy, NSString *unavailabilityDescription) {

I&apos;m surprised this compiles without using BlockPtr because CompletionHandler is not copyable and blocks are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452729</commentid>
    <comment_count>18</comment_count>
      <attachid>347816</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-22 11:51:18 -0700</bug_when>
    <thetext>Comment on attachment 347816
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:366
&gt;&gt; +        completionHandler(currentPluginLoadPolicy, String());
&gt; 
&gt; { }

Oops, missed this. Fixed.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:373
&gt;&gt; +        [(id &lt;WKNavigationDelegatePrivate&gt;)navigationDelegate _webView:m_navigationState.m_webView decidePolicyForPluginLoadWithCurrentPolicy:wkPluginModuleLoadPolicy(currentPluginLoadPolicy) pluginInfo:wrapper(pluginInformation) completionHandler:^(_WKPluginModuleLoadPolicy policy, NSString *unavailabilityDescription) {
&gt; 
&gt; I&apos;m surprised this compiles without using BlockPtr because CompletionHandler is not copyable and blocks are.

Interesting. I&apos;ll add this.

It also occurred to me that I should use a CompletionHandlerCallChecker here as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452802</commentid>
    <comment_count>19</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2018-08-22 14:09:11 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/235200/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479468</commentid>
    <comment_count>20</comment_count>
      <attachid>347816</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-16 10:05:40 -0800</bug_when>
    <thetext>Comment on attachment 347816
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:366
&gt;&gt;&gt; +        completionHandler(currentPluginLoadPolicy, String());
&gt;&gt; 
&gt;&gt; { }
&gt; 
&gt; Oops, missed this. Fixed.

This is missing a return statement..

&gt; Source/WebKit/UIProcess/Cocoa/NavigationState.mm:370
&gt; +        completionHandler(currentPluginLoadPolicy, { });

ditto..

-&gt; https://bugs.webkit.org/show_bug.cgi?id=191753</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347586</attachid>
            <date>2018-08-20 17:43:47 -0700</date>
            <delta_ts>2018-08-21 09:38:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188764-20180820174346.patch</filename>
            <type>text/plain</type>
            <size>6732</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY1ZjRmMTAyYWM1ZjIzZDBi
YmFhYjQ2YzA1YjQwNmViMGVkNGE5YmIuLmM2OGQzZjAzNmNjZjYzZjQwYzA2MzBlNmExZTZhY2M0
OTFhNjEwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDgtMjAgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFdLTmF2aWdhdGlvbkRlbGVnYXRlIG5l
ZWRzIHRvIGFsbG93IGNsaWVudHMgdG8gc3BlY2lmeSBhIGN1c3RvbSBibG9ja2VkIHBsdWctaW4g
bWVzc2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg4NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oOgorICAg
ICAgICBBZGQgYWx0ZXJuYXRlIHZlcnNpb24gb2YgLWRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRX
aXRoQ3VycmVudFBvbGljeTogdGhhdCBhbGxvd3MgY2xpZW50cyB0bworICAgICAgICByZXR1cm4g
dGhlIHVuYXZhaWxpYmlsaXR5IGRlc2NyaXB0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5oOgorICAgICAgICBBZGQgZmxhZyBmb3IgbmV3IGRlbGVnYXRl
IG1ldGhvZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06
CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRl
KToKKyAgICAgICAgQ2FsY3VsYXRlIGZsYWcgZm9yIG5ldyBkZWxlZ2F0ZSBtZXRob2QuCisKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JQbHVnaW5Mb2FkKToKKyAgICAgICAgUHJlZmVyIG5ldyBkZWxlZ2F0ZSBtZXRob2Qs
IGlmIGF2YWlsYWJsZS4KKwogMjAxOC0wOC0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdUSy9XUEUgY29va2ll
IEFQSSB0ZXN0cyBhZnRlciByMjM0Mzk2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCmlu
ZGV4IGZlYTJhZTc1MWFmNTk1YjJiNDAxZWQ3YTI4MGI3Yjk0YjhjMWJmNWMuLmM5MGY0MjU5ZmEw
NTg4ZDE2NTgxN2NiNzk5MDA4YjM1MTAxZmQ1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2
YXRlLmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9u
c2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0lu
V2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMuNCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRCbG9ja0lu
c2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xp
Y3kpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9h
ZFdpdGhDdXJyZW50UG9saWN5OihfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KXBvbGljeSBwbHVn
aW5JbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb246KE5T
U3RyaW5nICopdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7CistIChfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBv
bGljeTooX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSlwb2xpY3kgcGx1Z2luSW5mbzooTlNEaWN0
aW9uYXJ5ICopaW5mbyBvdXRVbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOihOU1N0cmluZyAqKilv
dXRVbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYmFja0Zvcndh
cmRMaXN0SXRlbUFkZGVkOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtQWRkZWQgcmVtb3Zl
ZDooTlNBcnJheTxXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKj4gKilpdGVtc1JlbW92ZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKaW5kZXggZDE2ZDJhOWY5YmMyMTVi
ZDcwNTU3NDkzMTZmOTBhODBjYTA2NTdkZS4uYzMxODJmZjk3MzJmN2M4ZmQwMWMwZjg0M2Y3NGI2
MWZjNjdmY2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLmgKQEAgLTIzMCw2ICsyMzAsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdl
YlZpZXdEaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3V2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtSW5QYWdlQ2FjaGUgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQ
b2xpY3lQbHVnaW5JbmZvVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiA6IDE7CisgICAgICAgIGJv
b2wgd2ViVmlld0RlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdp
bkluZm9PdXRVbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uIDogMTsKICNlbmRpZgogICAgIH0gbV9u
YXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggOGY2MGMzNjk3YjFhM2RkYTRhZmY0ZmEz
NDgwMTA3YmI3M2I5MjMyMy4uYzliMmM2YjEwMjliNGYzMmQ0ZGFiNThkOTJkMTI5Mjc5NzA3Zjlh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbQpAQCAtMTg3LDYgKzE4Nyw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0
aW9uRGVsZWdhdGUoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJz
aW9uV2l0aEluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvOildOwogICAgIG1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QmFja0ZvcndhcmRMaXN0SXRlbUFkZGVkUmVt
b3ZlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmJh
Y2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDpyZW1vdmVkOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9s
aWN5UGx1Z2luSW5mb1VuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24gPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2Fk
V2l0aEN1cnJlbnRQb2xpY3k6cGx1Z2luSW5mbzp1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOild
OworICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9y
UGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb091dFVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6cGx1Z2luSW5mbzpv
dXRVbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOildOwogI2VuZGlmCiB9CiAKQEAgLTM2MSwxMyAr
MzYyLDIzIEBAIHN0YXRpYyBfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHdrUGx1Z2luTW9kdWxl
TG9hZFBvbGljeShXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvCiAKIFdlYktpdDo6UGx1Z2luTW9kdWxl
TG9hZFBvbGljeSBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGlj
eUZvclBsdWdpbkxvYWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVs
ZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEFQSTo6RGljdGlvbmFyeSYgcGx1
Z2luSW5mb3JtYXRpb24sIFdURjo6U3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKQog
ewotICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5J
bmZvVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikKKyAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRl
Lm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2lu
TG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24g
JiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb091dFVu
YXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybiBjdXJyZW50UGx1Z2luTG9h
ZFBvbGljeTsKICAgICAKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlv
blN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRl
bGVnYXRlKQogICAgICAgICByZXR1cm4gY3VycmVudFBsdWdpbkxvYWRQb2xpY3k7CiAKKyAgICBp
ZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvT3V0VW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbikgeworICAgICAgICBOU1N0cmluZyAqdW5hdmFpbGFiaWxp
dHlEZXNjcmlwdGlvbk91dCA9IG5pbDsKKyAgICAgICAgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2Fk
UG9saWN5IHBvbGljeSA9IHBsdWdpbk1vZHVsZUxvYWRQb2xpY3koWyhpZCA8V0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9u
U3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGlj
eTp3a1BsdWdpbk1vZHVsZUxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxvYWRQb2xpY3kpIHBsdWdp
bkluZm86d3JhcHBlcihwbHVnaW5JbmZvcm1hdGlvbikgb3V0VW5hdmFpbGFiaWxpdHlEZXNjcmlw
dGlvbjomdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dF0pOworCisgICAgICAgIGlmICh1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0KQorICAgICAgICAgICAgdW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbiA9IFdURjo6U3RyaW5nKHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb25PdXQpOworCisg
ICAgICAgIHJldHVybiBwb2xpY3k7CisgICAgfQorCiAgICAgcmV0dXJuIHBsdWdpbk1vZHVsZUxv
YWRQb2xpY3koWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZv
clBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeTp3a1BsdWdpbk1vZHVsZUxvYWRQb2xpY3koY3Vy
cmVudFBsdWdpbkxvYWRQb2xpY3kpIHBsdWdpbkluZm86d3JhcHBlcihwbHVnaW5JbmZvcm1hdGlv
bikgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbjp1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uXSk7
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347651</attachid>
            <date>2018-08-21 09:38:20 -0700</date>
            <delta_ts>2018-08-21 15:33:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188764-20180821093819.patch</filename>
            <type>text/plain</type>
            <size>6706</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3ZDIzZGFiYjhhMzRhYTkz
MmE1ZGQ2MzE5YmNmZmJiYTFhNzgzOGQuLmFhM2U5YjEwNDRmZWExNzBjMmI0N2I4MGZkMDZlM2Rk
YzVhZTJkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDgtMjAgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFdLTmF2aWdhdGlvbkRlbGVnYXRlIG5l
ZWRzIHRvIGFsbG93IGNsaWVudHMgdG8gc3BlY2lmeSBhIGN1c3RvbSBibG9ja2VkIHBsdWctaW4g
bWVzc2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg4NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oOgorICAg
ICAgICBBZGQgYWx0ZXJuYXRlIHZlcnNpb24gb2YgLWRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRX
aXRoQ3VycmVudFBvbGljeTogdGhhdCBhbGxvd3MgY2xpZW50cyB0bworICAgICAgICByZXR1cm4g
dGhlIHVuYXZhaWxpYmlsaXR5IGRlc2NyaXB0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5oOgorICAgICAgICBBZGQgZmxhZyBmb3IgbmV3IGRlbGVnYXRl
IG1ldGhvZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06
CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRl
KToKKyAgICAgICAgQ2FsY3VsYXRlIGZsYWcgZm9yIG5ldyBkZWxlZ2F0ZSBtZXRob2QuCisKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JQbHVnaW5Mb2FkKToKKyAgICAgICAgUHJlZmVyIG5ldyBkZWxlZ2F0ZSBtZXRob2Qs
IGlmIGF2YWlsYWJsZS4KKwogMjAxOC0wOC0yMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzNDk4MS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBmZWEyYWU3NTFhZjU5NWIyYjQwMWVk
N2EyODBiN2I5NGI4YzFiZjVjLi5jOTBmNDI1OWZhMDU4OGQxNjU4MTdjYjc5OTAwOGIzNTEwMWZk
NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDcsNiArMTA3LDcgQEAg
c3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNw
b25zZVBvbGljeUJlY29tZURvd25sb2EKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdJbldpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilp
bmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb25XaXRoSW5m
bzooTlNEaWN0aW9uYXJ5ICopaW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSk7CiAtIChfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeTooX1dLUGx1
Z2luTW9kdWxlTG9hZFBvbGljeSlwb2xpY3kgcGx1Z2luSW5mbzooTlNEaWN0aW9uYXJ5ICopaW5m
byB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOihOU1N0cmluZyAqKXVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAoX1dLUGx1
Z2luTW9kdWxlTG9hZFBvbGljeSlfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQ
b2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6KF9XS1BsdWdpbk1vZHVsZUxvYWRQ
b2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gb3V0VW5hdmFpbGFi
aWxpdHlEZXNjcmlwdGlvbjooTlNTdHJpbmcgKiopb3V0VW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
biBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDooV0tCYWNrRm9y
d2FyZExpc3RJdGVtICopaXRlbUFkZGVkIHJlbW92ZWQ6KE5TQXJyYXk8V0tCYWNrRm9yd2FyZExp
c3RJdGVtICo+ICopaXRlbXNSZW1vdmVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQp
KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5oCmluZGV4IGQxNmQyYTlmOWJjMjE1YmQ3MDU1NzQ5MzE2ZjkwYTgwY2EwNjU3ZGUu
LmMzMTgyZmY5NzMyZjdjOGZkMDFjMGY4NDNmNzRiNjFmYzY3ZmNiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCkBAIC0yMzAsNiArMjMw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmxvY2tJbnNlY3VyZVBsdWdp
blZlcnNpb25XaXRoSW5mbyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1dpbGxHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbUluUGFnZUNhY2hlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRl
UG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb24gOiAxOworICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQ
bHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvT3V0VW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbiA6IDE7CiAjZW5kaWYKICAgICB9IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CmluZGV4IDhmNjBjMzY5N2IxYTNkZGE0YWZmNGZhMzQ4MDEwN2JiNzNiOTIzMjMuLmM5YjJjNmIx
MDI5YjRmMzJkNGRhYjU4ZDkyZDEyOTI3OTcwN2Y5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTE4Nyw2ICsxODcsNyBAQCB2
b2lkIE5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKGlkIDxXS05hdmlnYXRp
b25EZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQmxvY2tJbnNlY3VyZVBsdWdp
blZlcnNpb25XaXRoSW5mbzopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0JhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZFJlbW92ZWQgPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpiYWNrRm9yd2FyZExpc3RJdGVtQWRkZWQ6cmVt
b3ZlZDopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdpbkluZm9VbmF2YWlsYWJpbGl0
eURlc2NyaXB0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OnBsdWdpbklu
Zm86dW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbjopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGlj
eVBsdWdpbkluZm9PdXRVbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9h
ZFdpdGhDdXJyZW50UG9saWN5OnBsdWdpbkluZm86b3V0VW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
bjopXTsKICNlbmRpZgogfQogCkBAIC0zNjEsMTMgKzM2MiwyMyBAQCBzdGF0aWMgX1dLUGx1Z2lu
TW9kdWxlTG9hZFBvbGljeSB3a1BsdWdpbk1vZHVsZUxvYWRQb2xpY3koV2ViS2l0OjpQbHVnaW5N
b2R1bGVMbwogCiBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgTmF2aWdhdGlvblN0YXRl
OjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5M
b2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9uLCBXVEY6OlN0cmlu
ZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikKIHsKLSAgICBpZiAoIW1fbmF2aWdhdGlvblN0
YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1
Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b24pCisgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdp
bkluZm9VbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uICYmICFtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRX
aXRoQ3VycmVudFBvbGljeVBsdWdpbkluZm9PdXRVbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKQog
ICAgICAgICByZXR1cm4gY3VycmVudFBsdWdpbkxvYWRQb2xpY3k7CiAgICAgCiAgICAgYXV0byBu
YXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0
ZS5nZXQoKTsKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuIGN1
cnJlbnRQbHVnaW5Mb2FkUG9saWN5OwogCisgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdp
dGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb091dFVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pIHsK
KyAgICAgICAgTlNTdHJpbmcgKnVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb25PdXQgPSBuaWw7Cisg
ICAgICAgIFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSBwb2xpY3kgPSBwbHVnaW5Nb2R1
bGVMb2FkUG9saWN5KFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlv
bkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xp
Y3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6d2tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5
KGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5KSBwbHVnaW5JbmZvOndyYXBwZXIocGx1Z2luSW5mb3Jt
YXRpb24pIG91dFVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb246JnVuYXZhaWxhYmlsaXR5RGVzY3Jp
cHRpb25PdXRdKTsKKworICAgICAgICBpZiAodW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dCkK
KyAgICAgICAgICAgIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24gPSBXVEY6OlN0cmluZyh1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0KTsKKworICAgICAgICByZXR1cm4gcG9saWN5OworICAg
IH0KKwogICAgIHJldHVybiBwbHVnaW5Nb2R1bGVMb2FkUG9saWN5KFsoaWQgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlv
blN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xp
Y3k6d2tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5KSBwbHVn
aW5JbmZvOndyYXBwZXIocGx1Z2luSW5mb3JtYXRpb24pIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b246dW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbl0pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347713</attachid>
            <date>2018-08-21 15:33:23 -0700</date>
            <delta_ts>2018-08-21 16:48:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188764-20180821153323.patch</filename>
            <type>text/plain</type>
            <size>20129</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3ZDIzZGFiYjhhMzRhYTkz
MmE1ZGQ2MzE5YmNmZmJiYTFhNzgzOGQuLmUxYWVjOGEwYmJhNTY4ODY0NzFjN2U3NTQ4ODhlZWJm
YmJjODYwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTgtMDgtMjEgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFdLTmF2aWdhdGlvbkRlbGVnYXRlIG5l
ZWRzIHRvIGFsbG93IGNsaWVudHMgdG8gc3BlY2lmeSBhIGN1c3RvbSBibG9ja2VkIHBsdWctaW4g
bWVzc2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg4NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgbmV3IHByaXZhdGUgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgbWV0aG9kIHRoYXQgdGFrZXMg
YSBjb21wbGV0aW9uIGhhbmRsZXIgc28gY2xpZW50cyBjYW4gcmV0dXJuCisgICAgICAgIGEgY3Vz
dG9tIHVuYXZhaWxhYmlsaXR5IGRlc2NyaXB0aW9uIGluIGFkZGl0aW9uIHRvIHRoZSBwb2xpY3ku
IENoYW5nZSBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oKSB0bworICAgICAgICBzZW5kIGEgZGVs
YXllZCByZXBseSBhbmQgQVBJOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JQbHVn
aW5Mb2FkKCkgdG8gdGFrZSBhIGNvbXBsZXRpb24KKyAgICAgICAgaGFuZGxlciB0byBzdXBwb3J0
IHRoaXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoK
KyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9h
ZCk6CisgICAgICAgIENoYW5nZWQgdG8gdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlci4gVGhlIGRl
ZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXR1cm4gYSBjdXN0b20KKyAgICAgICAgdW5h
dmFpbGFiaWxpdHkgZGVzY3JpcHRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KToKKyAgICAg
ICAgQ2hhbmdlZCBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKCkgdG8gdGFrZSBhIGNvbXBsZXRp
b24gaGFuZGxlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgIEFkZCBhbHRlcm5hdGUgdmVyc2lvbiBvZiAtZGVj
aWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OiB0aGF0IGFsbG93cyBjbGll
bnRzIHRvIHJldHVybgorICAgICAgICB0aGUgdW5hdmFpbGliaWxpdHkgZGVzY3JpcHRpb24uCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6CisgICAgICAgIEFk
ZCBmbGFnIGZvciBuZXcgZGVsZWdhdGUgbWV0aG9kLgorICAgICAgICBDaGFuZ2VkIGRlY2lkZVBv
bGljeUZvclBsdWdpbkxvYWQoKSB0byB0YWtlIGEgY29tcGxldGlvbiBoYW5kbGVyLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktp
dDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgICAgICBDYWxj
dWxhdGUgZmxhZyBmb3IgbmV3IGRlbGVnYXRlIG1ldGhvZC4KKworICAgICAgICAoV2ViS2l0OjpO
YXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvclBsdWdpbkxv
YWQpOgorICAgICAgICBDaGFuZ2VkIHRvIHRha2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisgICAg
ICAgIFByZWZlciBuZXcgZGVsZWdhdGUgbWV0aG9kLCBpZiBhdmFpbGFibGUuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpmaW5kUGx1Z2luKToKKyAgICAgICAgQ2hhbmdlZCB0byBzZW5kIGEgZGVsYXllZCByZXBs
eS4KKyAgICAgICAgUmVmYWN0b3JlZCBzb21lIGNvZGUgaW50byBhIGxhbWJkYSBzbyBpdCBjYW4g
YmUgc2hhcmVkIHdoZW4gdXNpbmcgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JQ
bHVnaW5Mb2FkKCkuCisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgVU5VU0VEX1BBUkFNKCkgbWFj
cm9zLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICBDaGFu
Z2VkIGZpbmRQbHVnaW4oKSB0byBzZW5kIGEgZGVsYXllZCByZXBseS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIERpdHRvLgorCiAyMDE4
LTA4LTIxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjM0OTgxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggNDVjMTllNmIwNjI4ZTNi
NTU2ZWEzYjFlMDZhZGFmMjRjMjRmMjU3YS4uMGZjZWUwZGU0YmU2ODkxNDExYWQ2YzhjNWQwMTNl
MGQ4M2NkNjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5h
dmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oCkBAIC0xMTcsOSArMTE3LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZpcnR1YWwgYm9vbCBkaWRGYWlsVG9Jbml0aWFsaXpl
UGx1Z0luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24o
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OkRpY3Rpb25hcnkmKSB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGRlY2lkZVBvbGlj
eUZvclBsdWdpbkxvYWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVs
ZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIERpY3Rpb25hcnkmLCBXVEY6OlN0
cmluZyYpCisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoV2ViS2l0
OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBs
dWdpbkxvYWRQb2xpY3ksIERpY3Rpb25hcnkmLCBXVEY6OkZ1bmN0aW9uPHZvaWQoV2ViS2l0OjpQ
bHVnaW5Nb2R1bGVMb2FkUG9saWN5LCBjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5Owor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV1RGOjpT
dHJpbmcoKSk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCmluZGV4IDVhMmI5ZmY0OGI5MGEzZWUwMjNkM2I1NmE3YTUyYzhlMTkwZDRkYzIu
LmU5NmUwMzI3YzI0MzNiMGVhMWY4MmUxMmNlNWZkZDk5NWI0YTBjZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjQwNSw3ICsyNDA1LDcgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQ
YWdlTmF2aWdhdGlvbkNsaWUKICAgICAgICAgICAgIG1fY2xpZW50LmNvbnRlbnRSdWxlTGlzdE5v
dGlmaWNhdGlvbih0b0FQSSgmcGFnZSksIHRvVVJMUmVmKHVybC5zdHJpbmcoKS5pbXBsKCkpLCB0
b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShhcGlMaXN0SWRlbnRpZmllcnMpKS5wdHIo
KSksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKGFwaU5vdGlmaWNhdGlvbnMpKS5w
dHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICAgICAgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBkZWNp
ZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdlYlBhZ2VQcm94eSYgcGFnZSwgUGx1Z2luTW9kdWxlTG9h
ZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgQVBJOjpEaWN0aW9uYXJ5JiBwbHVnaW5J
bmZvcm1hdGlvbiwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSBvdmVycmlkZQor
ICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoV2ViUGFnZVByb3h5JiBwYWdl
LCBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBBUEk6OkRp
Y3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9uLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUGx1Z2luTW9k
dWxlTG9hZFBvbGljeSwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJy
aWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIFdLU3RyaW5nUmVmIHVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb25PdXQgPSAwOwogICAgICAgICAgICAgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBsb2Fk
UG9saWN5ID0gY3VycmVudFBsdWdpbkxvYWRQb2xpY3k7CkBAIC0yNDEzLDEyICsyNDEzLDEzIEBA
IHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZU5hdmlnYXRpb25DbGllCiAgICAgICAgICAgICBpZiAobV9jbGllbnQuZGVjaWRl
UG9saWN5Rm9yUGx1Z2luTG9hZCkKICAgICAgICAgICAgICAgICBsb2FkUG9saWN5ID0gdG9QbHVn
aW5Nb2R1bGVMb2FkUG9saWN5KG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQodG9B
UEkoJnBhZ2UpLCB0b1dLUGx1Z2luTG9hZFBvbGljeShjdXJyZW50UGx1Z2luTG9hZFBvbGljeSks
IHRvQVBJKCZwbHVnaW5JbmZvcm1hdGlvbiksICZ1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pKTsKICAgICAgICAgICAgIAorICAgICAgICAgICAg
U3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb247CiAgICAgICAgICAgICBpZiAodW5hdmFp
bGFiaWxpdHlEZXNjcmlwdGlvbk91dCkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxBUEk6OlN0
cmluZz4gd2ViVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiA9IGFkb3B0UmVmKHRvSW1wbCh1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0KSk7CiAgICAgICAgICAgICAgICAgdW5hdmFpbGFiaWxp
dHlEZXNjcmlwdGlvbiA9IHdlYlVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24tPnN0cmluZygpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICByZXR1cm4gbG9hZFBvbGlj
eTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGxvYWRQb2xpY3ksIHVuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb24pOwogICAgICAgICB9CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRl
bGVnYXRlUHJpdmF0ZS5oCmluZGV4IGZlYTJhZTc1MWFmNTk1YjJiNDAxZWQ3YTI4MGI3Yjk0Yjhj
MWJmNWMuLmVkYWY4NDA2MWUyNDBjZjViYjJmOGY4ODlhNjM0ZTk5YjQ4NzZlMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBzdGF0aWMgY29uc3Qg
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVj
b21lRG93bmxvYQogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWls
VG9Jbml0aWFsaXplUGx1Z0luV2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvOihOU0RpY3Rpb25h
cnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKF9XS1Bs
dWdpbk1vZHVsZUxvYWRQb2xpY3kpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OihfV0tQbHVnaW5Nb2R1bGVMb2Fk
UG9saWN5KXBvbGljeSBwbHVnaW5JbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIHVuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb246KE5TU3RyaW5nICopdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGlj
eTooX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSlwb2xpY3kgcGx1Z2luSW5mbzooTlNEaWN0aW9u
YXJ5ICopaW5mbyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLUGx1Z2luTW9kdWxlTG9h
ZFBvbGljeSBwb2xpY3ksIE5TU3RyaW5nICogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRk
ZWQ6KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdL
QmFja0ZvcndhcmRMaXN0SXRlbSAqPiAqKWl0ZW1zUmVtb3ZlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMy40KSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCBkMTZkMmE5ZjliYzIxNWJkNzA1NTc0OTMxNmY5
MGE4MGNhMDY1N2RlLi4zMzU4MWZhN2NiMjM1MGQ3YjExZDVkNWM5NTdhYmZkN2JkODRlZTk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApA
QCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBib29s
IGluUGFnZUNhY2hlLCBBUEk6Ok9iamVjdCopIGZpbmFsOwogICAgICAgICBib29sIGRpZEZhaWxU
b0luaXRpYWxpemVQbHVnSW4oV2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7
CiAgICAgICAgIGJvb2wgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oV2ViUGFnZVByb3h5
JiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7Ci0gICAgICAgIFdlYktpdDo6UGx1Z2luTW9kdWxl
TG9hZFBvbGljeSBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmLCBXVEY6
OlN0cmluZyYpIGZpbmFsOworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3ksIEFQ
STo6RGljdGlvbmFyeSYsIFdURjo6RnVuY3Rpb248dm9pZChXZWJLaXQ6OlBsdWdpbk1vZHVsZUxv
YWRQb2xpY3ksIGNvbnN0IFdURjo6U3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
OwogICAgICAgICBib29sIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkmLCBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKiwgY29uc3QgVmVjdG9yPFJlZjxXZWJCYWNrRm9yd2FyZExp
c3RJdGVtPj4mKSBmaW5hbDsKICNlbmRpZgogCkBAIC0yMzAsNiArMjMwLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb25XaXRoSW5m
byA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1dpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUlu
UGFnZUNhY2hlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2lu
TG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24g
OiAxOworICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1
cnJlbnRQb2xpY3lQbHVnaW5JbmZvQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAgICAg
fSBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA4ZjYwYzM2OTdiMWEzZGRhNGFm
ZjRmYTM0ODAxMDdiYjczYjkyMzIzLi4zMGFiNzU4NDU4ZjkxOWU2MTljZTFjOTk5YmYyMjU4MDEx
ODYwYzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tCkBAIC0xODcsNiArMTg3LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5h
dmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogICAg
IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQmxvY2tJbnNlY3VyZVBsdWdp
blZlcnNpb25XaXRoSW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uV2l0aEluZm86KV07CiAgICAg
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdCYWNrRm9yd2FyZExpc3RJdGVtQWRk
ZWRSZW1vdmVkID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6YmFja0ZvcndhcmRMaXN0SXRlbUFkZGVkOnJlbW92ZWQ6KV07CiAgICAgbV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJl
bnRQb2xpY3lQbHVnaW5JbmZvVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvclBsdWdp
bkxvYWRXaXRoQ3VycmVudFBvbGljeTpwbHVnaW5JbmZvOnVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b246KV07CisgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvQ29tcGxldGlvbkhhbmRs
ZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNp
ZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6cGx1Z2luSW5mbzpjb21wbGV0
aW9uSGFuZGxlcjopXTsKICNlbmRpZgogfQogCkBAIC0zNTksMTYgKzM2MCwyMyBAQCBzdGF0aWMg
X1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSB3a1BsdWdpbk1vZHVsZUxvYWRQb2xpY3koV2ViS2l0
OjpQbHVnaW5Nb2R1bGVMbwogICAgIHJldHVybiBfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5TG9h
ZE5vcm1hbGx5OwogfQogCi1XZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgTmF2aWdhdGlv
blN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQ
bHVnaW5Mb2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9uLCBXVEY6
OlN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikKK3ZvaWQgTmF2aWdhdGlvblN0YXRl
OjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5M
b2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9uLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5LCBjb25zdCBTdHJpbmcmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdp
dGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pCi0gICAg
ICAgIHJldHVybiBjdXJyZW50UGx1Z2luTG9hZFBvbGljeTsKKyAgICBpZiAoIW1fbmF2aWdhdGlv
blN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9y
UGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZhaWxhYmlsaXR5RGVzY3Jp
cHRpb24gJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5m
b0NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50UGx1
Z2luTG9hZFBvbGljeSwgU3RyaW5nKCkpOwogICAgIAogICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVn
YXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CiAgICAg
aWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCi0gICAgICAgIHJldHVybiBjdXJyZW50UGx1Z2luTG9h
ZFBvbGljeTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFBsdWdpbkxvYWRQb2xp
Y3ksIFN0cmluZygpKTsKIAotICAgIHJldHVybiBwbHVnaW5Nb2R1bGVMb2FkUG9saWN5KFsoaWQg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0
aEN1cnJlbnRQb2xpY3k6d2tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KGN1cnJlbnRQbHVnaW5Mb2Fk
UG9saWN5KSBwbHVnaW5JbmZvOndyYXBwZXIocGx1Z2luSW5mb3JtYXRpb24pIHVuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb246dW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbl0pOworICAgIGlmIChtX25h
dmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdpbkluZm9Db21wbGV0aW9uSGFu
ZGxlcikgeworICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmln
YXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OndrUGx1Z2luTW9kdWxlTG9hZFBv
bGljeShjdXJyZW50UGx1Z2luTG9hZFBvbGljeSkgcGx1Z2luSW5mbzp3cmFwcGVyKHBsdWdpbklu
Zm9ybWF0aW9uKSBjb21wbGV0aW9uSGFuZGxlcjpeKF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kg
cG9saWN5LCBOU1N0cmluZyAqdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikgeworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIocGx1Z2luTW9kdWxlTG9hZFBvbGljeShwb2xpY3kpLCBTdHJp
bmcodW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikpOworICAgICAgICB9XTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsdWdpbk1vZHVsZUxvYWRQb2xp
Y3koWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUg
X3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdp
bkxvYWRXaXRoQ3VycmVudFBvbGljeTp3a1BsdWdpbk1vZHVsZUxvYWRQb2xpY3koY3VycmVudFBs
dWdpbkxvYWRQb2xpY3kpIHBsdWdpbkluZm86d3JhcHBlcihwbHVnaW5JbmZvcm1hdGlvbikgdW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbjpuaWxdKSwgU3RyaW5nKCkpOwogfQogCiBpbmxpbmUgV2Vi
Q29yZTo6V2ViR0xMb2FkUG9saWN5IHRvV2ViQ29yZVdlYkdMTG9hZFBvbGljeShfV0tXZWJHTExv
YWRQb2xpY3kgcG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggOGFjZDFiMjU3NGYyMTBlNjlkMjM1MzQ3NmZhZDRhZWY0MjJlNWQxYS4uMjA1MGIyYjNl
OGQ3YmVkZjM2OGMyOGZkODAzMzQxMGY2Y2MwOTk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTQwLDYyICsyMTQwLDY0IEBAIFdlYlByZWZlcmVuY2Vz
U3RvcmUgV2ViUGFnZVByb3h5OjpwcmVmZXJlbmNlc1N0b3JlKCkgY29uc3QKIH0KIAogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotdm9pZCBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4o
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCB1aW50NjRf
dCYgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcmIG5ld01pbWVUeXBlLCB1aW50MzJfdCYgcGx1
Z2luTG9hZFBvbGljeSwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBib29sJiBp
c1Vuc3VwcG9ydGVkKQordm9pZCBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJp
bmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpGaW5kUGx1Z2luOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBQYWdlQ2xpZW50
UHJvdGVjdG9yIHByb3RlY3RvcihtX3BhZ2VDbGllbnQpOwogCiAgICAgTUVTU0FHRV9DSEVDS19V
UkwodXJsU3RyaW5nKTsKIAogICAgIFVSTCBwbHVnaW5VUkwgPSBVUkwgeyBVUkwoKSwgdXJsU3Ry
aW5nIH07Ci0gICAgbmV3TWltZVR5cGUgPSBtaW1lVHlwZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2Fz
ZSgpOworICAgIFN0cmluZyBuZXdNaW1lVHlwZSA9IG1pbWVUeXBlLmNvbnZlcnRUb0FTQ0lJTG93
ZXJjYXNlKCk7CiAKICAgICBQbHVnaW5EYXRhOjpBbGxvd2VkUGx1Z2luVHlwZXMgYWxsb3dlZFBs
dWdpblR5cGVzID0gYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID8gUGx1Z2luRGF0YTo6T25s
eUFwcGxpY2F0aW9uUGx1Z2lucyA6IFBsdWdpbkRhdGE6OkFsbFBsdWdpbnM7CiAKICAgICBVUkwg
cGFnZVVSTCA9IFVSTCB7IFVSTCgpLCBwYWdlVVJMU3RyaW5nIH07CiAgICAgaWYgKCFtX3Byb2Nl
c3MtPnByb2Nlc3NQb29sKCkucGx1Z2luSW5mb1N0b3JlKCkuaXNTdXBwb3J0ZWRQbHVnaW4obWlt
ZVR5cGUsIHBsdWdpblVSTCwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkwpKSB7Ci0gICAgICAgIGlz
VW5zdXBwb3J0ZWQgPSB0cnVlOwotICAgICAgICBwbHVnaW5Qcm9jZXNzVG9rZW4gPSAwOworICAg
ICAgICByZXBseSgwLCBuZXdNaW1lVHlwZSwgUGx1Z2luTW9kdWxlTG9hZE5vcm1hbGx5LCBTdHJp
bmcoKSwgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpc1Vuc3VwcG9ydGVk
ID0gZmFsc2U7Ci0gICAgcGx1Z2luTG9hZFBvbGljeSA9IFBsdWdpbk1vZHVsZUxvYWROb3JtYWxs
eTsKICAgICBQbHVnaW5Nb2R1bGVJbmZvIHBsdWdpbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2wo
KS5wbHVnaW5JbmZvU3RvcmUoKS5maW5kUGx1Z2luKG5ld01pbWVUeXBlLCBwbHVnaW5VUkwsIGFs
bG93ZWRQbHVnaW5UeXBlcyk7CiAgICAgaWYgKCFwbHVnaW4ucGF0aCkgewotICAgICAgICBwbHVn
aW5Qcm9jZXNzVG9rZW4gPSAwOworICAgICAgICByZXBseSgwLCBuZXdNaW1lVHlwZSwgUGx1Z2lu
TW9kdWxlTG9hZE5vcm1hbGx5LCBTdHJpbmcoKSwgZmFsc2UpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgcGx1Z2luTG9hZFBvbGljeSA9IFBsdWdpbkluZm9TdG9yZTo6ZGVmYXVsdExv
YWRQb2xpY3lGb3JQbHVnaW4ocGx1Z2luKTsKKyAgICB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5
ID0gUGx1Z2luSW5mb1N0b3JlOjpkZWZhdWx0TG9hZFBvbGljeUZvclBsdWdpbihwbHVnaW4pOwor
CisgICAgYXV0byBmaW5kUGx1Z2luQ29tcGxldGlvbiA9IFtwcm9jZXNzVHlwZSwgJnJlcGx5LCAm
bmV3TWltZVR5cGUsICZwbHVnaW5dICh1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5LCBjb25zdCBT
dHJpbmcmIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pIHsKKyAgICAgICAgUGx1Z2luUHJvY2Vz
c1NhbmRib3hQb2xpY3kgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNz
U2FuZGJveFBvbGljeU5vcm1hbDsKKyAgICAgICAgc3dpdGNoIChwbHVnaW5Mb2FkUG9saWN5KSB7
CisgICAgICAgIGNhc2UgUGx1Z2luTW9kdWxlTG9hZE5vcm1hbGx5OgorICAgICAgICAgICAgcGx1
Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeU5vcm1h
bDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWRVbnNh
bmRib3hlZDoKKyAgICAgICAgICAgIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5ID0gUGx1Z2lu
UHJvY2Vzc1NhbmRib3hQb2xpY3lVbnNhbmRib3hlZDsKKyAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgIGNhc2UgUGx1Z2luTW9kdWxlQmxvY2tlZEZvclNlY3VyaXR5OgorICAgICAgICBjYXNl
IFBsdWdpbk1vZHVsZUJsb2NrZWRGb3JDb21wYXRpYmlsaXR5OgorICAgICAgICAgICAgcmVwbHko
MCwgbmV3TWltZVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b24sIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHJl
cGx5KFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5wbHVnaW5Qcm9jZXNzVG9rZW4o
cGx1Z2luLCBzdGF0aWNfY2FzdDxQbHVnaW5Qcm9jZXNzVHlwZT4ocHJvY2Vzc1R5cGUpLCBwbHVn
aW5Qcm9jZXNzU2FuZGJveFBvbGljeSksIG5ld01pbWVUeXBlLCBwbHVnaW5Mb2FkUG9saWN5LCB1
bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBmYWxzZSk7CisgICAgfTsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGF1dG8gcGx1Z2luSW5mb3JtYXRpb24gPSBjcmVhdGVQbHVnaW5JbmZvcm1h
dGlvbkRpY3Rpb25hcnkocGx1Z2luLCBmcmFtZVVSTFN0cmluZywgU3RyaW5nKCksIHBhZ2VVUkxT
dHJpbmcsIFN0cmluZygpLCBTdHJpbmcoKSk7Ci0gICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkK
LSAgICAgICAgcGx1Z2luTG9hZFBvbGljeSA9IG1fbmF2aWdhdGlvbkNsaWVudC0+ZGVjaWRlUG9s
aWN5Rm9yUGx1Z2luTG9hZCgqdGhpcywgc3RhdGljX2Nhc3Q8UGx1Z2luTW9kdWxlTG9hZFBvbGlj
eT4ocGx1Z2luTG9hZFBvbGljeSksIHBsdWdpbkluZm9ybWF0aW9uLmdldCgpLCB1bmF2YWlsYWJp
bGl0eURlc2NyaXB0aW9uKTsKLSAgICBlbHNlCisgICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkg
eworICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQo
KnRoaXMsIHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xp
Y3kpLCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQoKSwgW2ZpbmRQbHVnaW5Db21wbGV0aW9uID0gV1RG
TW92ZShmaW5kUGx1Z2luQ29tcGxldGlvbildIChQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHBsdWdp
bkxvYWRQb2xpY3ksIGNvbnN0IFN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikgbXV0
YWJsZSB7CisgICAgICAgICAgICBmaW5kUGx1Z2luQ29tcGxldGlvbihwbHVnaW5Mb2FkUG9saWN5
LCB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb247CiAgICAgICAgIHBsdWdp
bkxvYWRQb2xpY3kgPSBtX2xvYWRlckNsaWVudC0+cGx1Z2luTG9hZFBvbGljeSgqdGhpcywgc3Rh
dGljX2Nhc3Q8UGx1Z2luTW9kdWxlTG9hZFBvbGljeT4ocGx1Z2luTG9hZFBvbGljeSksIHBsdWdp
bkluZm9ybWF0aW9uLmdldCgpLCB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKTsKKyAgICAgICAg
ZmluZFBsdWdpbkNvbXBsZXRpb24ocGx1Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbik7CisgICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZnJhbWVVUkxTdHJpbmcp
OwotICAgIFVOVVNFRF9QQVJBTShwYWdlVVJMU3RyaW5nKTsKLSAgICBVTlVTRURfUEFSQU0odW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7CisgICAgZmluZFBsdWdpbkNvbXBsZXRpb24ocGx1Z2lu
TG9hZFBvbGljeSwgU3RyaW5nKCkpOwogI2VuZGlmCi0KLSAgICBQbHVnaW5Qcm9jZXNzU2FuZGJv
eFBvbGljeSBwbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSA9IFBsdWdpblByb2Nlc3NTYW5kYm94
UG9saWN5Tm9ybWFsOwotICAgIHN3aXRjaCAocGx1Z2luTG9hZFBvbGljeSkgewotICAgIGNhc2Ug
UGx1Z2luTW9kdWxlTG9hZE5vcm1hbGx5OgotICAgICAgICBwbHVnaW5Qcm9jZXNzU2FuZGJveFBv
bGljeSA9IFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5Tm9ybWFsOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWRVbnNhbmRib3hlZDoKLSAgICAgICAgcGx1Z2luUHJv
Y2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeVVuc2FuZGJveGVk
OwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgUGx1Z2luTW9kdWxlQmxvY2tlZEZvclNlY3Vy
aXR5OgotICAgIGNhc2UgUGx1Z2luTW9kdWxlQmxvY2tlZEZvckNvbXBhdGliaWxpdHk6Ci0gICAg
ICAgIHBsdWdpblByb2Nlc3NUb2tlbiA9IDA7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBwbHVnaW5Qcm9jZXNzVG9rZW4gPSBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCku
cGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgc3RhdGljX2Nhc3Q8UGx1Z2luUHJvY2Vzc1R5cGU+
KHByb2Nlc3NUeXBlKSwgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kpOwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDlmNjI1ZGRmYjkwYzkxNTcyM2RiMzViMTdhMGE2MTU1YjY3MGIxNGMu
LjcyNGJlYWZjOGY5ZTk4NzM3NzI0ZDFjMWQyMWY5ZDU3MTdkOTc5ZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNzUzLDcgKzE3NTMsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGZpbmRQ
bHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCB1
aW50NjRfdCYgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcmIG5ld01JTUVUeXBlLCB1aW50MzJf
dCYgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBi
b29sJiBpc1Vuc3VwcG9ydGVkKTsKKyAgICB2b2lkIGZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcs
IGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpGaW5kUGx1Z2luOjpEZWxheWVkUmVwbHkmJik7CiAjZW5kaWYKIAogI2lmIFVTRShRVUlDS19M
T09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDg5Y2FmYWVhNWY1ODZkODM5N2VlYjhlMmM0M2JkNGZjODVhYmY5MzAuLmE2NjEz
MjUyZWY1NjA0NWQwNTZmOGFlM2FhZjk0YmY5MDUzYTI2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQzNSw3ICs0MzUsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKLSAgICBGaW5kUGx1Z2luKFN0cmluZyBtaW1lVHlwZSwgdWludDMyX3Qg
cHJvY2Vzc1R5cGUsIFN0cmluZyB1cmxTdHJpbmcsIFN0cmluZyBmcmFtZVVSTFN0cmluZywgU3Ry
aW5nIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zKSAtPiAo
dWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcgbmV3TUlNRVR5cGUsIHVpbnQzMl90
IHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBib29s
IGlzVW5zdXBwb3J0ZWQpCisgICAgRmluZFBsdWdpbihTdHJpbmcgbWltZVR5cGUsIHVpbnQzMl90
IHByb2Nlc3NUeXBlLCBTdHJpbmcgdXJsU3RyaW5nLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0
cmluZyBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucykgLT4g
KHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgU3RyaW5nIG5ld01JTUVUeXBlLCB1aW50MzJf
dCBwbHVnaW5Mb2FkUG9saWN5LCBTdHJpbmcgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgYm9v
bCBpc1Vuc3VwcG9ydGVkKSBEZWxheWVkCiAjZW5kaWYKIAogICAgIERpZFVwZGF0ZUFjdGl2aXR5
U3RhdGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347726</attachid>
            <date>2018-08-21 16:48:11 -0700</date>
            <delta_ts>2018-08-22 10:39:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188764-20180821164811.patch</filename>
            <type>text/plain</type>
            <size>20031</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ3ZDIzZGFiYjhhMzRhYTkz
MmE1ZGQ2MzE5YmNmZmJiYTFhNzgzOGQuLmZjOTliZWFhMjgwZmU1Y2EwOTRjMjE4NjQzZjcwMjQ0
NDIyYjM3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTgtMDgtMjEgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgbmVlZHMg
dG8gYWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgY3VzdG9tIGJsb2NrZWQgcGx1Zy1pbiBtZXNz
YWdlCisgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODc2NAor
ICAgIAorICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgIAorICAgIEFkZCBhIG5l
dyBwcml2YXRlIFdLTmF2aWdhdGlvbkRlbGVnYXRlIG1ldGhvZCB0aGF0IHRha2VzIGEgY29tcGxl
dGlvbiBoYW5kbGVyIHNvIGNsaWVudHMgY2FuIHJldHVybgorICAgIGEgY3VzdG9tIHVuYXZhaWxh
YmlsaXR5IGRlc2NyaXB0aW9uIGluIGFkZGl0aW9uIHRvIHRoZSBwb2xpY3kuIENoYW5nZSBXZWJQ
YWdlUHJveHk6OmZpbmRQbHVnaW4oKSB0bworICAgIHNlbmQgYSBkZWxheWVkIHJlcGx5IGFuZCBB
UEk6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoKSB0byB0YWtl
IGEgY29tcGxldGlvbgorICAgIGhhbmRsZXIgdG8gc3VwcG9ydCB0aGlzLgorICAgIAorICAgICog
VUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAgKEFQSTo6TmF2aWdhdGlv
bkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZCk6CisgICAgQ2hhbmdlZCB0byB0YWtl
IGEgY29tcGxldGlvbiBoYW5kbGVyLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0
IHJldHVybiBhIGN1c3RvbQorICAgIHVuYXZhaWxhYmlsaXR5IGRlc2NyaXB0aW9uLgorICAgIAor
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgKFdLUGFnZVNldFBhZ2VOYXZp
Z2F0aW9uQ2xpZW50KToKKyAgICBDaGFuZ2VkIGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoKSB0
byB0YWtlIGEgY29tcGxldGlvbiBoYW5kbGVyLgorICAgIAorICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICBBZGQgYWx0ZXJuYXRlIHZl
cnNpb24gb2YgLWRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeTogdGhh
dCBhbGxvd3MgY2xpZW50cyB0byByZXR1cm4KKyAgICB0aGUgdW5hdmFpbGliaWxpdHkgZGVzY3Jp
cHRpb24uCisgICAgCisgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6Cisg
ICAgQWRkIGZsYWcgZm9yIG5ldyBkZWxlZ2F0ZSBtZXRob2QuCisgICAgQ2hhbmdlZCBkZWNpZGVQ
b2xpY3lGb3JQbHVnaW5Mb2FkKCkgdG8gdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlci4KKyAgICAK
KyAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgKFdlYktpdDo6
TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgIENhbGN1bGF0ZSBm
bGFnIGZvciBuZXcgZGVsZWdhdGUgbWV0aG9kLgorICAgIAorICAgIChXZWJLaXQ6Ok5hdmlnYXRp
b25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZCk6Cisg
ICAgQ2hhbmdlZCB0byB0YWtlIGEgY29tcGxldGlvbiBoYW5kbGVyLgorICAgIFByZWZlciBuZXcg
ZGVsZWdhdGUgbWV0aG9kLCBpZiBhdmFpbGFibGUuCisgICAgCisgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4pOgor
ICAgIENoYW5nZWQgdG8gc2VuZCBhIGRlbGF5ZWQgcmVwbHkuCisgICAgUmVmYWN0b3JlZCBzb21l
IGNvZGUgaW50byBhIGxhbWJkYSBzbyBpdCBjYW4gYmUgc2hhcmVkIHdoZW4gdXNpbmcgbV9uYXZp
Z2F0aW9uQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKCkuCisgICAgUmVtb3ZlZCB1
bm5lZWRlZCBVTlVTRURfUEFSQU0oKSBtYWNyb3MuCisgICAgCisgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgQ2hhbmdlZCBmaW5kUGx1Z2luKCkgdG8gc2VuZCBhIGRlbGF5ZWQg
cmVwbHkuCisgICAgCisgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgIERpdHRvLgorCiAyMDE4LTA4LTIxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjM0OTgxLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5k
ZXggNDVjMTllNmIwNjI4ZTNiNTU2ZWEzYjFlMDZhZGFmMjRjMjRmMjU3YS4uMjVlNGNmNDY4N2Y2
MjE5YTgzMmM2MDVjYTg2YjcxMjQwMjA1NGZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCkBAIC0xMTcsOSArMTE3LDkgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZpcnR1YWwgYm9vbCBk
aWRGYWlsVG9Jbml0aWFsaXplUGx1Z0luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0
aW9uYXJ5JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgZGlkQmxvY2tJbnNl
Y3VyZVBsdWdpblZlcnNpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OkRpY3Rpb25hcnkm
KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2Fk
UG9saWN5IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIERp
Y3Rpb25hcnkmLCBXVEY6OlN0cmluZyYpCisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZv
clBsdWdpbkxvYWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxv
YWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIERpY3Rpb25hcnkmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwgY29uc3QgV1RGOjpT
dHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBjdXJy
ZW50UGx1Z2luTG9hZFBvbGljeTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFBs
dWdpbkxvYWRQb2xpY3ksIFdURjo6U3RyaW5nKCkpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1YTJiOWZmNDhiOTBhM2VlMDIz
ZDNiNTZhN2E1MmM4ZTE5MGQ0ZGMyLi5kMjE4ZmY1MWMzZDQzMmFkZDRlNGE4YmI2OTIzYTQxOTJk
ZmNhZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI0
MDUsNyArMjQwNSw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQoV0tQYWdl
UmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZU5hdmlnYXRpb25DbGllCiAgICAgICAgICAgICBtX2Ns
aWVudC5jb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24odG9BUEkoJnBhZ2UpLCB0b1VSTFJlZih1
cmwuc3RyaW5nKCkuaW1wbCgpKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1vdmUoYXBp
TGlzdElkZW50aWZpZXJzKSkucHRyKCkpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92
ZShhcGlOb3RpZmljYXRpb25zKSkucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
ICAgICAgICB9CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgICAgIFBsdWdp
bk1vZHVsZUxvYWRQb2xpY3kgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXZWJQYWdlUHJveHkm
IHBhZ2UsIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEFQ
STo6RGljdGlvbmFyeSYgcGx1Z2luSW5mb3JtYXRpb24sIFN0cmluZyYgdW5hdmFpbGFiaWxpdHlE
ZXNjcmlwdGlvbikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JQbHVnaW5M
b2FkKFdlYlBhZ2VQcm94eSYgcGFnZSwgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBjdXJyZW50UGx1
Z2luTG9hZFBvbGljeSwgQVBJOjpEaWN0aW9uYXJ5JiBwbHVnaW5JbmZvcm1hdGlvbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChQbHVnaW5Nb2R1bGVMb2FkUG9saWN5LCBjb25zdCBTdHJpbmcmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgV0tT
dHJpbmdSZWYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dCA9IDA7CiAgICAgICAgICAgICBQ
bHVnaW5Nb2R1bGVMb2FkUG9saWN5IGxvYWRQb2xpY3kgPSBjdXJyZW50UGx1Z2luTG9hZFBvbGlj
eTsKQEAgLTI0MTMsMTIgKzI0MTMsMTMgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNs
aWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWUKICAgICAg
ICAgICAgIGlmIChtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKQogICAgICAgICAg
ICAgICAgIGxvYWRQb2xpY3kgPSB0b1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kobV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yUGx1Z2luTG9hZCh0b0FQSSgmcGFnZSksIHRvV0tQbHVnaW5Mb2FkUG9saWN5
KGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5KSwgdG9BUEkoJnBsdWdpbkluZm9ybWF0aW9uKSwgJnVu
YXZhaWxhYmlsaXR5RGVzY3JpcHRpb25PdXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwog
ICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
bjsKICAgICAgICAgICAgIGlmICh1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0KSB7CiAgICAg
ICAgICAgICAgICAgUmVmUHRyPEFQSTo6U3RyaW5nPiB3ZWJVbmF2YWlsYWJpbGl0eURlc2NyaXB0
aW9uID0gYWRvcHRSZWYodG9JbXBsKHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb25PdXQpKTsKICAg
ICAgICAgICAgICAgICB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uID0gd2ViVW5hdmFpbGFiaWxp
dHlEZXNjcmlwdGlvbi0+c3RyaW5nKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIHJldHVybiBsb2FkUG9saWN5OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIobG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7CiAgICAgICAgIH0KICNl
bmRpZgogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZmVhMmFlNzUx
YWY1OTViMmI0MDFlZDdhMjgwYjdiOTRiOGMxYmY1Yy4uZWRhZjg0MDYxZTI0MGNmNWJiMmY4Zjg4
OWE2MzRlOTliNDg3NmUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTA3
LDYgKzEwNyw3IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBfV0tO
YXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hCiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRoSW5mbzooTlNE
aWN0aW9uYXJ5ICopaW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEJsb2NrSW5zZWN1cmVQbHVnaW5W
ZXJzaW9uV2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOwogLSAoX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSlfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQ
b2xpY3k6KF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGlj
dGlvbmFyeSAqKWluZm8gdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbjooTlNTdHJpbmcgKil1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9y
UGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OihfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5KXBv
bGljeSBwbHVnaW5JbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHBvbGljeSwgTlNTdHJpbmcgKiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRl
bUFkZGVkIHJlbW92ZWQ6KE5TQXJyYXk8V0tCYWNrRm9yd2FyZExpc3RJdGVtICo+ICopaXRlbXNS
ZW1vdmVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCmluZGV4IGQx
NmQyYTlmOWJjMjE1YmQ3MDU1NzQ5MzE2ZjkwYTgwY2EwNjU3ZGUuLmUyYTBiOGJjNjk4MjJlYzQx
YmIyMTJiMjJkYjdhOGU3YmUwOWFjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgYm9vbCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVByb3h5JiwgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYsIGJvb2wgaW5QYWdlQ2FjaGUsIEFQSTo6T2JqZWN0KikgZmlu
YWw7CiAgICAgICAgIGJvb2wgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdJbihXZWJQYWdlUHJveHkm
LCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKICAgICAgICAgYm9vbCBkaWRCbG9ja0luc2VjdXJl
UGx1Z2luVmVyc2lvbihXZWJQYWdlUHJveHkmLCBBUEk6OkRpY3Rpb25hcnkmKSBmaW5hbDsKLSAg
ICAgICAgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGRlY2lkZVBvbGljeUZvclBsdWdp
bkxvYWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xp
Y3ksIEFQSTo6RGljdGlvbmFyeSYsIFdURjo6U3RyaW5nJikgZmluYWw7CisgICAgICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6
UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwgQVBJOjpEaWN0aW9uYXJ5JiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3ksIGNvbnN0IFdURjo6U3RyaW5n
Jik+JiYpIGZpbmFsOwogICAgICAgICBib29sIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJQ
YWdlUHJveHkmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiwgY29uc3QgVmVjdG9yPFJlZjxXZWJC
YWNrRm9yd2FyZExpc3RJdGVtPj4mKSBmaW5hbDsKICNlbmRpZgogCkBAIC0yMzAsNiArMjMwLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmxvY2tJbnNlY3VyZVBsdWdpblZl
cnNpb25XaXRoSW5mbyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1dpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbUluUGFnZUNhY2hlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9s
aWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZhaWxhYmlsaXR5
RGVzY3JpcHRpb24gOiAxOworICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVn
aW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvQ29tcGxldGlvbkhhbmRsZXIgOiAxOwog
I2VuZGlmCiAgICAgfSBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHM7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA4ZjYwYzM2
OTdiMWEzZGRhNGFmZjRmYTM0ODAxMDdiYjczYjkyMzIzLi45NmU5OGNiODllOGVhYjUxM2RmNDUw
ZWUyYzA1ZjcxMjBiNzllOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0xODcsNiArMTg3LDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRl
bGVnYXRlKQogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQmxvY2tJ
bnNlY3VyZVBsdWdpblZlcnNpb25XaXRoSW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uV2l0aElu
Zm86KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdCYWNrRm9yd2Fy
ZExpc3RJdGVtQWRkZWRSZW1vdmVkID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6YmFja0ZvcndhcmRMaXN0SXRlbUFkZGVkOnJlbW92ZWQ6KV07CiAgICAg
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5M
b2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBv
bGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeTpwbHVnaW5JbmZvOnVuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb246KV07CisgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvQ29t
cGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6cGx1Z2lu
SW5mbzpjb21wbGV0aW9uSGFuZGxlcjopXTsKICNlbmRpZgogfQogCkBAIC0zNTksMTYgKzM2MCwy
MyBAQCBzdGF0aWMgX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSB3a1BsdWdpbk1vZHVsZUxvYWRQ
b2xpY3koV2ViS2l0OjpQbHVnaW5Nb2R1bGVMbwogICAgIHJldHVybiBfV0tQbHVnaW5Nb2R1bGVM
b2FkUG9saWN5TG9hZE5vcm1hbGx5OwogfQogCi1XZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xp
Y3kgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JQbHVn
aW5Mb2FkKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9s
aWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9y
bWF0aW9uLCBXVEY6OlN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikKK3ZvaWQgTmF2
aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2Fk
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGN1
cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0aW9u
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwg
Y29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFtX25hdmln
YXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGlj
eUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdpbkluZm9VbmF2YWlsYWJpbGl0eURl
c2NyaXB0aW9uKQotICAgICAgICByZXR1cm4gY3VycmVudFBsdWdpbkxvYWRQb2xpY3k7CisgICAg
aWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdpbkluZm9VbmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uICYmICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVu
dFBvbGljeVBsdWdpbkluZm9Db21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZygpKTsKICAgICAKICAgICBhdXRv
IG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVn
YXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQotICAgICAgICByZXR1cm4g
Y3VycmVudFBsdWdpbkxvYWRQb2xpY3k7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJl
bnRQbHVnaW5Mb2FkUG9saWN5LCBTdHJpbmcoKSk7CiAKLSAgICByZXR1cm4gcGx1Z2luTW9kdWxl
TG9hZFBvbGljeShbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25E
ZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OndrUGx1Z2luTW9kdWxlTG9hZFBvbGljeShj
dXJyZW50UGx1Z2luTG9hZFBvbGljeSkgcGx1Z2luSW5mbzp3cmFwcGVyKHBsdWdpbkluZm9ybWF0
aW9uKSB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOnVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb25d
KTsKKyAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5J
bmZvQ29tcGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdh
dGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUu
bV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeTp3a1Bs
dWdpbk1vZHVsZUxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxvYWRQb2xpY3kpIHBsdWdpbkluZm86
d3JhcHBlcihwbHVnaW5JbmZvcm1hdGlvbikgY29tcGxldGlvbkhhbmRsZXI6XihfV0tQbHVnaW5N
b2R1bGVMb2FkUG9saWN5IHBvbGljeSwgTlNTdHJpbmcgKnVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b24pIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsdWdpbk1vZHVsZUxvYWRQb2xp
Y3kocG9saWN5KSwgU3RyaW5nKHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pKTsKKyAgICAgICAg
fV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihwbHVn
aW5Nb2R1bGVMb2FkUG9saWN5KFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2
aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6d2tQbHVnaW5Nb2R1bGVMb2Fk
UG9saWN5KGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5KSBwbHVnaW5JbmZvOndyYXBwZXIocGx1Z2lu
SW5mb3JtYXRpb24pIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb246bmlsXSksIFN0cmluZygpKTsK
IH0KIAogaW5saW5lIFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSB0b1dlYkNvcmVXZWJHTExvYWRQ
b2xpY3koX1dLV2ViR0xMb2FkUG9saWN5IHBvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDhhY2QxYjI1NzRmMjEwZTY5ZDIzNTM0NzZmYWQ0YWVmNDIy
ZTVkMWEuLjIwNTBiMmIzZThkN2JlZGYzNjhjMjhmZDgwMzM0MTBmNmNjMDk5NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjE0MCw2MiArMjE0MCw2NCBA
QCBXZWJQcmVmZXJlbmNlc1N0b3JlIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNTdG9yZSgpIGNv
bnN0CiB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLXZvaWQgV2ViUGFnZVBy
b3h5OjpmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NU
eXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9u
UGx1Z2lucywgdWludDY0X3QmIHBsdWdpblByb2Nlc3NUb2tlbiwgU3RyaW5nJiBuZXdNaW1lVHlw
ZSwgdWludDMyX3QmIHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbiwgYm9vbCYgaXNVbnN1cHBvcnRlZCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpmaW5kUGx1
Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucywgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IobV9wYWdlQ2xpZW50KTsKIAogICAg
IE1FU1NBR0VfQ0hFQ0tfVVJMKHVybFN0cmluZyk7CiAKICAgICBVUkwgcGx1Z2luVVJMID0gVVJM
IHsgVVJMKCksIHVybFN0cmluZyB9OwotICAgIG5ld01pbWVUeXBlID0gbWltZVR5cGUuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICBTdHJpbmcgbmV3TWltZVR5cGUgPSBtaW1lVHlwZS5j
b252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogCiAgICAgUGx1Z2luRGF0YTo6QWxsb3dlZFBsdWdp
blR5cGVzIGFsbG93ZWRQbHVnaW5UeXBlcyA9IGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA/
IFBsdWdpbkRhdGE6Ok9ubHlBcHBsaWNhdGlvblBsdWdpbnMgOiBQbHVnaW5EYXRhOjpBbGxQbHVn
aW5zOwogCiAgICAgVVJMIHBhZ2VVUkwgPSBVUkwgeyBVUkwoKSwgcGFnZVVSTFN0cmluZyB9Owog
ICAgIGlmICghbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnBsdWdpbkluZm9TdG9yZSgpLmlzU3Vw
cG9ydGVkUGx1Z2luKG1pbWVUeXBlLCBwbHVnaW5VUkwsIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJM
KSkgewotICAgICAgICBpc1Vuc3VwcG9ydGVkID0gdHJ1ZTsKLSAgICAgICAgcGx1Z2luUHJvY2Vz
c1Rva2VuID0gMDsKKyAgICAgICAgcmVwbHkoMCwgbmV3TWltZVR5cGUsIFBsdWdpbk1vZHVsZUxv
YWROb3JtYWxseSwgU3RyaW5nKCksIHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaXNVbnN1cHBvcnRlZCA9IGZhbHNlOwotICAgIHBsdWdpbkxvYWRQb2xpY3kgPSBQbHVnaW5N
b2R1bGVMb2FkTm9ybWFsbHk7CiAgICAgUGx1Z2luTW9kdWxlSW5mbyBwbHVnaW4gPSBtX3Byb2Nl
c3MtPnByb2Nlc3NQb29sKCkucGx1Z2luSW5mb1N0b3JlKCkuZmluZFBsdWdpbihuZXdNaW1lVHlw
ZSwgcGx1Z2luVVJMLCBhbGxvd2VkUGx1Z2luVHlwZXMpOwogICAgIGlmICghcGx1Z2luLnBhdGgp
IHsKLSAgICAgICAgcGx1Z2luUHJvY2Vzc1Rva2VuID0gMDsKKyAgICAgICAgcmVwbHkoMCwgbmV3
TWltZVR5cGUsIFBsdWdpbk1vZHVsZUxvYWROb3JtYWxseSwgU3RyaW5nKCksIGZhbHNlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBsdWdpbkxvYWRQb2xpY3kgPSBQbHVnaW5JbmZv
U3RvcmU6OmRlZmF1bHRMb2FkUG9saWN5Rm9yUGx1Z2luKHBsdWdpbik7CisgICAgdWludDMyX3Qg
cGx1Z2luTG9hZFBvbGljeSA9IFBsdWdpbkluZm9TdG9yZTo6ZGVmYXVsdExvYWRQb2xpY3lGb3JQ
bHVnaW4ocGx1Z2luKTsKKworICAgIGF1dG8gZmluZFBsdWdpbkNvbXBsZXRpb24gPSBbcHJvY2Vz
c1R5cGUsICZyZXBseSwgJm5ld01pbWVUeXBlLCAmcGx1Z2luXSAodWludDMyX3QgcGx1Z2luTG9h
ZFBvbGljeSwgY29uc3QgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSB7CisgICAg
ICAgIFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5IHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5
ID0gUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3lOb3JtYWw7CisgICAgICAgIHN3aXRjaCAocGx1
Z2luTG9hZFBvbGljeSkgeworICAgICAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWROb3JtYWxseToK
KyAgICAgICAgICAgIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5ID0gUGx1Z2luUHJvY2Vzc1Nh
bmRib3hQb2xpY3lOb3JtYWw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQbHVn
aW5Nb2R1bGVMb2FkVW5zYW5kYm94ZWQ6CisgICAgICAgICAgICBwbHVnaW5Qcm9jZXNzU2FuZGJv
eFBvbGljeSA9IFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5VW5zYW5kYm94ZWQ7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIFBsdWdpbk1vZHVsZUJsb2NrZWRGb3JTZWN1cml0
eToKKyAgICAgICAgY2FzZSBQbHVnaW5Nb2R1bGVCbG9ja2VkRm9yQ29tcGF0aWJpbGl0eToKKyAg
ICAgICAgICAgIHJlcGx5KDAsIG5ld01pbWVUeXBlLCBwbHVnaW5Mb2FkUG9saWN5LCB1bmF2YWls
YWJpbGl0eURlc2NyaXB0aW9uLCBmYWxzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICByZXBseShQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkucGx1
Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgc3RhdGljX2Nhc3Q8UGx1Z2luUHJvY2Vzc1R5cGU+KHBy
b2Nlc3NUeXBlKSwgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kpLCBuZXdNaW1lVHlwZSwgcGx1
Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgZmFsc2UpOworICAgIH07
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBhdXRvIHBsdWdpbkluZm9ybWF0aW9uID0gY3Jl
YXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIFN0
cmluZygpLCBwYWdlVVJMU3RyaW5nLCBTdHJpbmcoKSwgU3RyaW5nKCkpOwotICAgIGlmIChtX25h
dmlnYXRpb25DbGllbnQpCi0gICAgICAgIHBsdWdpbkxvYWRQb2xpY3kgPSBtX25hdmlnYXRpb25D
bGllbnQtPmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoKnRoaXMsIHN0YXRpY19jYXN0PFBsdWdp
bk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kpLCBwbHVnaW5JbmZvcm1hdGlvbi5n
ZXQoKSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7Ci0gICAgZWxzZQorICAgIGlmIChtX25h
dmlnYXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kZWNpZGVQb2xp
Y3lGb3JQbHVnaW5Mb2FkKCp0aGlzLCBzdGF0aWNfY2FzdDxQbHVnaW5Nb2R1bGVMb2FkUG9saWN5
PihwbHVnaW5Mb2FkUG9saWN5KSwgcGx1Z2luSW5mb3JtYXRpb24uZ2V0KCksIFtmaW5kUGx1Z2lu
Q29tcGxldGlvbiA9IFdURk1vdmUoZmluZFBsdWdpbkNvbXBsZXRpb24pXSAoUGx1Z2luTW9kdWxl
TG9hZFBvbGljeSBwbHVnaW5Mb2FkUG9saWN5LCBjb25zdCBTdHJpbmcmIHVuYXZhaWxhYmlsaXR5
RGVzY3JpcHRpb24pIG11dGFibGUgeworICAgICAgICAgICAgZmluZFBsdWdpbkNvbXBsZXRpb24o
cGx1Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7CisgICAgICAgIH0p
OworICAgIH0gZWxzZSB7CisgICAgICAgIFN0cmluZyB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9u
OwogICAgICAgICBwbHVnaW5Mb2FkUG9saWN5ID0gbV9sb2FkZXJDbGllbnQtPnBsdWdpbkxvYWRQ
b2xpY3koKnRoaXMsIHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxv
YWRQb2xpY3kpLCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQoKSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlw
dGlvbik7CisgICAgICAgIGZpbmRQbHVnaW5Db21wbGV0aW9uKHBsdWdpbkxvYWRQb2xpY3ksIHVu
YXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pOworICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFN
KGZyYW1lVVJMU3RyaW5nKTsKLSAgICBVTlVTRURfUEFSQU0ocGFnZVVSTFN0cmluZyk7Ci0gICAg
VU5VU0VEX1BBUkFNKHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pOworICAgIGZpbmRQbHVnaW5D
b21wbGV0aW9uKHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZygpKTsKICNlbmRpZgotCi0gICAgUGx1
Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVn
aW5Qcm9jZXNzU2FuZGJveFBvbGljeU5vcm1hbDsKLSAgICBzd2l0Y2ggKHBsdWdpbkxvYWRQb2xp
Y3kpIHsKLSAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWROb3JtYWxseToKLSAgICAgICAgcGx1Z2lu
UHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeU5vcm1hbDsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkVW5zYW5kYm94ZWQ6Ci0g
ICAgICAgIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5ID0gUGx1Z2luUHJvY2Vzc1NhbmRib3hQ
b2xpY3lVbnNhbmRib3hlZDsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIFBsdWdpbk1vZHVs
ZUJsb2NrZWRGb3JTZWN1cml0eToKLSAgICBjYXNlIFBsdWdpbk1vZHVsZUJsb2NrZWRGb3JDb21w
YXRpYmlsaXR5OgotICAgICAgICBwbHVnaW5Qcm9jZXNzVG9rZW4gPSAwOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgcGx1Z2luUHJvY2Vzc1Rva2VuID0gUGx1Z2luUHJvY2Vzc01hbmFn
ZXI6OnNpbmdsZXRvbigpLnBsdWdpblByb2Nlc3NUb2tlbihwbHVnaW4sIHN0YXRpY19jYXN0PFBs
dWdpblByb2Nlc3NUeXBlPihwcm9jZXNzVHlwZSksIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5
KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5ZjYyNWRkZmI5MGM5MTU3MjNkYjM1YjE3
YTBhNjE1NWI2NzBiMTRjLi43MjRiZWFmYzhmOWU5ODczNzcyNGQxYzFkMjFmOWQ1NzE3ZDk3OWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc1Myw3ICsxNzUz
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
Ci0gICAgdm9pZCBmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHBy
b2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVS
TFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxp
Y2F0aW9uUGx1Z2lucywgdWludDY0X3QmIHBsdWdpblByb2Nlc3NUb2tlbiwgU3RyaW5nJiBuZXdN
SU1FVHlwZSwgdWludDMyX3QmIHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyYgdW5hdmFpbGFiaWxp
dHlEZXNjcmlwdGlvbiwgYm9vbCYgaXNVbnN1cHBvcnRlZCk7CisgICAgdm9pZCBmaW5kUGx1Z2lu
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucywgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbjo6RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAK
ICNpZiBVU0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4OWNhZmFlYTVmNTg2ZDgzOTdlZWI4ZTJjNDNiZDRm
Yzg1YWJmOTMwLi5hNjYxMzI1MmVmNTYwNDVkMDU2ZjhhZTNhYWY5NGJmOTA1M2EyNjcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC00MzUsNyArNDM1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgRmluZFBsdWdpbihTdHJpbmcgbWlt
ZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBTdHJpbmcgdXJsU3RyaW5nLCBTdHJpbmcgZnJh
bWVVUkxTdHJpbmcsIFN0cmluZyBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0
aW9uUGx1Z2lucykgLT4gKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgU3RyaW5nIG5ld01J
TUVUeXBlLCB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5LCBTdHJpbmcgdW5hdmFpbGFiaWxpdHlE
ZXNjcmlwdGlvbiwgYm9vbCBpc1Vuc3VwcG9ydGVkKQorICAgIEZpbmRQbHVnaW4oU3RyaW5nIG1p
bWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgU3RyaW5nIHVybFN0cmluZywgU3RyaW5nIGZy
YW1lVVJMU3RyaW5nLCBTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNh
dGlvblBsdWdpbnMpIC0+ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmluZyBuZXdN
SU1FVHlwZSwgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nIHVuYXZhaWxhYmlsaXR5
RGVzY3JpcHRpb24sIGJvb2wgaXNVbnN1cHBvcnRlZCkgRGVsYXllZAogI2VuZGlmCiAKICAgICBE
aWRVcGRhdGVBY3Rpdml0eVN0YXRlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347816</attachid>
            <date>2018-08-22 10:39:06 -0700</date>
            <delta_ts>2018-08-22 11:41:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188764-20180822103905.patch</filename>
            <type>text/plain</type>
            <size>23230</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxN2VlMjMxNjAzYzk3YzY5
MDIwZDU0OWJlMDQ4YzA5Njg1MjI2YmMuLmNjYWJiZmRkMDM1Yzc0Mzg5MTI3N2VmODUzMWUwMTk0
NmQxMGU5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTgtMDgtMjIgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFdLTmF2aWdhdGlvbkRlbGVnYXRlIG5l
ZWRzIHRvIGFsbG93IGNsaWVudHMgdG8gc3BlY2lmeSBhIGN1c3RvbSBibG9ja2VkIHBsdWctaW4g
bWVzc2FnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg4NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgbmV3IHByaXZhdGUgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgbWV0aG9kIHRoYXQgdGFrZXMg
YSBjb21wbGV0aW9uIGhhbmRsZXIgc28gY2xpZW50cyBjYW4gcmV0dXJuCisgICAgICAgIGEgY3Vz
dG9tIHVuYXZhaWxhYmlsaXR5IGRlc2NyaXB0aW9uIGluIGFkZGl0aW9uIHRvIHRoZSBwb2xpY3ku
IENoYW5nZSBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oKSB0bworICAgICAgICBzZW5kIGEgZGVs
YXllZCByZXBseSBhbmQgQVBJOjpMb2FkZXJDbGllbnQ6OnBsdWdpbkxvYWRQb2xpY3koKS9BUEk6
Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoKQorICAgICAgICB0
byB0YWtlIGEgY29tcGxldGlvbiBoYW5kbGVyIHRvIHN1cHBvcnQgdGhpcy4KKyAgICAKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0FQSUxvYWRlckNsaWVudC5oOgorICAgICAgICAoQVBJOjpMb2Fk
ZXJDbGllbnQ6OnBsdWdpbkxvYWRQb2xpY3kpOgorICAgICAgICBDaGFuZ2VkIHRvIHRha2UgYSBj
b21wbGV0aW9uIGhhbmRsZXIuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmV0
dXJuIGEgY3VzdG9tCisgICAgICAgIHVuYXZhaWxhYmlsaXR5IGRlc2NyaXB0aW9uLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAgICAgIChBUEk6
Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQpOgorICAgICAgICBE
aXR0by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCk6CisgICAgICAgIENoYW5nZWQgcGx1Z2luTG9hZFBv
bGljeSgpIHRvIHRha2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisKKyAgICAgICAgKFdLUGFnZVNl
dFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KToKKyAgICAgICAgQ2hhbmdlZCBkZWNpZGVQb2xpY3lGb3JQ
bHVnaW5Mb2FkKCkgdG8gdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlci4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
IEFkZCBhbHRlcm5hdGUgdmVyc2lvbiBvZiAtZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhD
dXJyZW50UG9saWN5OiB0aGF0IGFsbG93cyBjbGllbnRzIHRvIHJldHVybgorICAgICAgICB0aGUg
dW5hdmFpbGliaWxpdHkgZGVzY3JpcHRpb24uCisgICAgCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5oOgorICAgICAgICBBZGQgZmxhZyBmb3IgbmV3IGRlbGVnYXRl
IG1ldGhvZC4KKyAgICAgICAgQ2hhbmdlZCBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKCkgdG8g
dGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlci4KKyAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6
OnNldE5hdmlnYXRpb25EZWxlZ2F0ZSk6CisgICAgICAgIENhbGN1bGF0ZSBmbGFnIGZvciBuZXcg
ZGVsZWdhdGUgbWV0aG9kLgorICAgIAorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6
Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQpOgorICAgICAgICBD
aGFuZ2VkIHRvIHRha2UgYSBjb21wbGV0aW9uIGhhbmRsZXIuCisgICAgICAgIFByZWZlciBuZXcg
ZGVsZWdhdGUgbWV0aG9kLCBpZiBhdmFpbGFibGUuCisgICAgCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluZFBs
dWdpbik6CisgICAgICAgIENoYW5nZWQgdG8gc2VuZCBhIGRlbGF5ZWQgcmVwbHkuCisgICAgICAg
IFJlZmFjdG9yZWQgc29tZSBjb2RlIGludG8gYSBsYW1iZGEgc28gaXQgY2FuIGJlIHNoYXJlZCB3
aGVuIHVzaW5nIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZCgp
LgorICAgICAgICBSZW1vdmVkIHVubmVlZGVkIFVOVVNFRF9QQVJBTSgpIG1hY3Jvcy4KKyAgICAK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIENoYW5nZWQgZmlu
ZFBsdWdpbigpIHRvIHNlbmQgYSBkZWxheWVkIHJlcGx5LgorICAgIAorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIERpdHRvLgorCiAyMDE4LTA4
LTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0
aW9uU2V0IGZvciBOZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OlRyYXZlcnNlRmxhZ3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElMb2FkZXJDbGllbnQuaAppbmRleCAyOWU4Yzk0NTU3
MjUxMWM3YmYzNDA0ZmIyNjNjZjBmOWQzZGJlNTM4Li43NTFkNWNlYmFlNDFkMjYzNzE3MjlhMzM3
MTgyYjRhMzNjMjUzYmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUxv
YWRlckNsaWVudC5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEVuZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGJvb2wgd2ls
bE5hdmlnYXRlLCBXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKSB7IH0KIAogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIHZpcnR1YWwgV2ViS2l0OjpQbHVnaW5Nb2R1
bGVMb2FkUG9saWN5IHBsdWdpbkxvYWRQb2xpY3koV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEFQSTo6
RGljdGlvbmFyeSYsIFdURjo6U3RyaW5nJiAvKiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uICov
KSB7IHJldHVybiBjdXJyZW50UGx1Z2luTG9hZFBvbGljeTsgfQorICAgIHZpcnR1YWwgdm9pZCBw
bHVnaW5Mb2FkUG9saWN5KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpQbHVnaW5Nb2R1
bGVMb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwgY29u
c3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxl
cihjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgeyB9KTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsVG9Jbml0aWFsaXplUGx1Z2luKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9u
YXJ5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9u
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgeyB9CiAjZW5kaWYgLy8g
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAppbmRleCA0NWMxOWU2YjA2MjhlM2I1NTZlYTNi
MWUwNmFkYWYyNGMyNGYyNTdhLi42Mzk4YWM3YzFjYzlhNGNjMGRlMWEzYWEyNWU0ZTc2NDg3NjI5
NzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9u
Q2xpZW50LmgKQEAgLTExNyw5ICsxMTcsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAgICAgdmlydHVhbCBib29sIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW4o
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBBUEk6OkRpY3Rpb25hcnkmKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIEFQSTo6RGljdGlvbmFyeSYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgZGVjaWRlUG9saWN5Rm9yUGx1
Z2luTG9hZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBv
bGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgRGljdGlvbmFyeSYsIFdURjo6U3RyaW5nJikK
KyAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9h
ZFBvbGljeSwgRGljdGlvbmFyeSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpQbHVn
aW5Nb2R1bGVMb2FkUG9saWN5LCBjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5OworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgeyB9KTsKICAg
ICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5k
ZXggNWEyYjlmZjQ4YjkwYTNlZTAyM2QzYjU2YTdhNTJjOGUxOTBkNGRjMi4uZTc1OWRiMmZmNzgy
NmY3NjJmYTgyZjhjNDNmYjdkMjRhNGFmM2QyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCkBAIC0xMzAyLDcgKzEzMDIsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VM
b2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUxvYWRlckNsaWVudEJh
c2UqCiAgICAgICAgICAgICAgICAgbV9jbGllbnQucGx1Z2luRGlkRmFpbCh0b0FQSSgmcGFnZSks
IGtXS0Vycm9yQ29kZUluc2VjdXJlUGx1Z0luVmVyc2lvbiwgdG9BUEkoJnBsdWdpbkluZm9ybWF0
aW9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIFBs
dWdpbk1vZHVsZUxvYWRQb2xpY3kgcGx1Z2luTG9hZFBvbGljeShXZWJQYWdlUHJveHkmIHBhZ2Us
IFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEFQSTo6RGlj
dGlvbmFyeSYgcGx1Z2luSW5mb3JtYXRpb24sIFN0cmluZyYgdW5hdmFpbGFiaWxpdHlEZXNjcmlw
dGlvbikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBwbHVnaW5Mb2FkUG9saWN5KFdlYlBhZ2VQcm94
eSYgcGFnZSwgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwg
QVBJOjpEaWN0aW9uYXJ5JiBwbHVnaW5JbmZvcm1hdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3ksIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBXS1N0cmluZ1Jl
ZiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0ID0gMDsKICAgICAgICAgICAgIFBsdWdpbk1v
ZHVsZUxvYWRQb2xpY3kgbG9hZFBvbGljeSA9IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5OwpAQCAt
MTMxMiwxMiArMTMxMiwxMyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdl
UmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUxvYWRlckNsaWVudEJhc2UqCiAgICAgICAgICAgICBl
bHNlIGlmIChtX2NsaWVudC5wbHVnaW5Mb2FkUG9saWN5KQogICAgICAgICAgICAgICAgIGxvYWRQ
b2xpY3kgPSB0b1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kobV9jbGllbnQucGx1Z2luTG9hZFBvbGlj
eSh0b0FQSSgmcGFnZSksIHRvV0tQbHVnaW5Mb2FkUG9saWN5KGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5KSwgdG9BUEkoJnBsdWdpbkluZm9ybWF0aW9uKSwgJnVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b25PdXQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbykpOwogCisgICAgICAgICAgICBTdHJpbmcg
dW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbjsKICAgICAgICAgICAgIGlmICh1bmF2YWlsYWJpbGl0
eURlc2NyaXB0aW9uT3V0KSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyPEFQSTo6U3RyaW5nPiB3
ZWJVbmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uID0gYWRvcHRSZWYodG9JbXBsKHVuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb25PdXQpKTsKICAgICAgICAgICAgICAgICB1bmF2YWlsYWJpbGl0eURlc2Ny
aXB0aW9uID0gd2ViVW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbi0+c3RyaW5nKCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHJldHVybiBsb2FkUG9saWN5OworICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNj
cmlwdGlvbik7CiAgICAgICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKIApAQCAtMjQwNSw3ICsyNDA2LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNs
aWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWUKICAgICAg
ICAgICAgIG1fY2xpZW50LmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbih0b0FQSSgmcGFnZSks
IHRvVVJMUmVmKHVybC5zdHJpbmcoKS5pbXBsKCkpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUo
V1RGTW92ZShhcGlMaXN0SWRlbnRpZmllcnMpKS5wdHIoKSksIHRvQVBJKEFQSTo6QXJyYXk6OmNy
ZWF0ZShXVEZNb3ZlKGFwaU5vdGlmaWNhdGlvbnMpKS5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAg
ICAgICAgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdl
YlBhZ2VQcm94eSYgcGFnZSwgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9h
ZFBvbGljeSwgQVBJOjpEaWN0aW9uYXJ5JiBwbHVnaW5JbmZvcm1hdGlvbiwgU3RyaW5nJiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uKSBvdmVycmlkZQorICAgICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclBsdWdpbkxvYWQoV2ViUGFnZVByb3h5JiBwYWdlLCBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5
IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmIHBsdWdpbkluZm9ybWF0
aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBsdWdpbk1vZHVsZUxvYWRQb2xpY3ksIGNvbnN0
IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZQogICAgICAgICB7CiAgICAg
ICAgICAgICBXS1N0cmluZ1JlZiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uT3V0ID0gMDsKICAg
ICAgICAgICAgIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgbG9hZFBvbGljeSA9IGN1cnJlbnRQbHVn
aW5Mb2FkUG9saWN5OwpAQCAtMjQxMywxMiArMjQxNCwxMyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VO
YXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZQogICAgICAgICAgICAgaWYgKG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQp
CiAgICAgICAgICAgICAgICAgbG9hZFBvbGljeSA9IHRvUGx1Z2luTW9kdWxlTG9hZFBvbGljeSht
X2NsaWVudC5kZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKHRvQVBJKCZwYWdlKSwgdG9XS1BsdWdp
bkxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxvYWRQb2xpY3kpLCB0b0FQSSgmcGx1Z2luSW5mb3Jt
YXRpb24pLCAmdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbk91dCwgbV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKSk7CiAgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB1bmF2YWlsYWJpbGl0
eURlc2NyaXB0aW9uOwogICAgICAgICAgICAgaWYgKHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb25P
dXQpIHsKICAgICAgICAgICAgICAgICBSZWZQdHI8QVBJOjpTdHJpbmc+IHdlYlVuYXZhaWxhYmls
aXR5RGVzY3JpcHRpb24gPSBhZG9wdFJlZih0b0ltcGwodW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlv
bk91dCkpOwogICAgICAgICAgICAgICAgIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24gPSB3ZWJV
bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLT5zdHJpbmcoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAotICAgICAgICAgICAgcmV0dXJuIGxvYWRQb2xpY3k7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihsb2FkUG9saWN5LCB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKTsKICAg
ICAgICAgfQogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAppbmRl
eCBmZWEyYWU3NTFhZjU5NWIyYjQwMWVkN2EyODBiN2I5NGI4YzFiZjVjLi5lZGFmODQwNjFlMjQw
Y2Y1YmIyZjhmODg5YTYzNGU5OWI0ODc2ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZS5oCkBAIC0xMDcsNiArMTA3LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNl
UG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdJbldp
dGhJbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEz
LjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQmxvY2tJbnNl
Y3VyZVBsdWdpblZlcnNpb25XaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopaW5mbyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtIChfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRX
aXRoQ3VycmVudFBvbGljeTooX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSlwb2xpY3kgcGx1Z2lu
SW5mbzooTlNEaWN0aW9uYXJ5ICopaW5mbyB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOihOU1N0
cmluZyAqKXVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6KF9XS1BsdWdpbk1vZHVsZUxv
YWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kgcG9saWN5LCBOU1N0
cmluZyAqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgYmFja0ZvcndhcmRMaXN0SXRlbUFkZGVkOihXS0JhY2tGb3J3YXJkTGlz
dEl0ZW0gKilpdGVtQWRkZWQgcmVtb3ZlZDooTlNBcnJheTxXS0JhY2tGb3J3YXJkTGlzdEl0ZW0g
Kj4gKilpdGVtc1JlbW92ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCkpOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
LmgKaW5kZXggZDE2ZDJhOWY5YmMyMTViZDcwNTU3NDkzMTZmOTBhODBjYTA2NTdkZS4uZTJhMGI4
YmM2OTgyMmVjNDFiYjIxMmIyMmRiN2E4ZTdiZTA5YWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBw
cml2YXRlOgogICAgICAgICBib29sIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXZWJQYWdl
UHJveHkmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpblBhZ2VDYWNoZSwgQVBJOjpP
YmplY3QqKSBmaW5hbDsKICAgICAgICAgYm9vbCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0luKFdl
YlBhZ2VQcm94eSYsIEFQSTo6RGljdGlvbmFyeSYpIGZpbmFsOwogICAgICAgICBib29sIGRpZEJs
b2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6RGljdGlvbmFyeSYp
IGZpbmFsOwotICAgICAgICBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgZGVjaWRlUG9s
aWN5Rm9yUGx1Z2luTG9hZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UGx1Z2luTW9k
dWxlTG9hZFBvbGljeSwgQVBJOjpEaWN0aW9uYXJ5JiwgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAg
ICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViS2l0OjpQbHVnaW5Nb2R1bGVMb2FkUG9saWN5LCBBUEk6OkRpY3Rpb25hcnkmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwgY29uc3Qg
V1RGOjpTdHJpbmcmKT4mJikgZmluYWw7CiAgICAgICAgIGJvb2wgZGlkQ2hhbmdlQmFja0Zvcndh
cmRMaXN0KFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qLCBjb25zdCBWZWN0
b3I8UmVmPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+PiYpIGZpbmFsOwogI2VuZGlmCiAKQEAgLTIz
MCw2ICsyMzAsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdEaWRCbG9ja0luc2Vj
dXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtSW5QYWdlQ2FjaGUgOiAxOwogICAgICAgICBib29sIHdlYlZp
ZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvVW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbiA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBv
bGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdpbkluZm9Db21wbGV0aW9uSGFu
ZGxlciA6IDE7CiAjZW5kaWYKICAgICB9IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kczsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmlu
ZGV4IDhmNjBjMzY5N2IxYTNkZGE0YWZmNGZhMzQ4MDEwN2JiNzNiOTIzMjMuLjc2Y2ZhNWUyZGY2
YzY5MTBkNWUwYTdlNzZjNWY3MmQ3YWZiMGFjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTE4Nyw2ICsxODcsNyBAQCB2b2lk
IE5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKGlkIDxXS05hdmlnYXRpb25E
ZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZl
cnNpb25XaXRoSW5mbzopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0JhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZFJlbW92ZWQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpiYWNrRm9yd2FyZExpc3RJdGVtQWRkZWQ6cmVtb3Zl
ZDopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGlj
eUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBsdWdpbkluZm9VbmF2YWlsYWJpbGl0eURl
c2NyaXB0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6ZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OnBsdWdpbkluZm86
dW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbjopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeVBs
dWdpbkluZm9Db21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBv
bGljeTpwbHVnaW5JbmZvOmNvbXBsZXRpb25IYW5kbGVyOildOwogI2VuZGlmCiB9CiAKQEAgLTM1
OSwxNiArMzYwLDIzIEBAIHN0YXRpYyBfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHdrUGx1Z2lu
TW9kdWxlTG9hZFBvbGljeShXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvCiAgICAgcmV0dXJuIF9XS1Bs
dWdpbk1vZHVsZUxvYWRQb2xpY3lMb2FkTm9ybWFsbHk7CiB9CiAKLVdlYktpdDo6UGx1Z2luTW9k
dWxlTG9hZFBvbGljeSBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBv
bGljeUZvclBsdWdpbkxvYWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1v
ZHVsZUxvYWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEFQSTo6RGljdGlvbmFyeSYg
cGx1Z2luSW5mb3JtYXRpb24sIFdURjo6U3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9u
KQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZv
clBsdWdpbkxvYWQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OlBsdWdpbk1vZHVsZUxv
YWRQb2xpY3kgY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIEFQSTo6RGljdGlvbmFyeSYgcGx1Z2lu
SW5mb3JtYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpQbHVnaW5Nb2R1bGVM
b2FkUG9saWN5LCBjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBp
ZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb1VuYXZh
aWxhYmlsaXR5RGVzY3JpcHRpb24pCi0gICAgICAgIHJldHVybiBjdXJyZW50UGx1Z2luTG9hZFBv
bGljeTsKKyAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5UGx1
Z2luSW5mb1VuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24gJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9h
ZFdpdGhDdXJyZW50UG9saWN5UGx1Z2luSW5mb0NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nKCkpOwogICAg
IAogICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZp
Z2F0aW9uRGVsZWdhdGUuZ2V0KCk7CiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCi0gICAg
ICAgIHJldHVybiBjdXJyZW50UGx1Z2luTG9hZFBvbGljeTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoY3VycmVudFBsdWdpbkxvYWRQb2xpY3ksIHsgfSk7CiAKLSAgICByZXR1cm4gcGx1Z2lu
TW9kdWxlTG9hZFBvbGljeShbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmln
YXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OndrUGx1Z2luTW9kdWxlTG9hZFBv
bGljeShjdXJyZW50UGx1Z2luTG9hZFBvbGljeSkgcGx1Z2luSW5mbzp3cmFwcGVyKHBsdWdpbklu
Zm9ybWF0aW9uKSB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOnVuYXZhaWxhYmlsaXR5RGVzY3Jp
cHRpb25dKTsKKyAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQ
bHVnaW5JbmZvQ29tcGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9u
U3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGlj
eTp3a1BsdWdpbk1vZHVsZUxvYWRQb2xpY3koY3VycmVudFBsdWdpbkxvYWRQb2xpY3kpIHBsdWdp
bkluZm86d3JhcHBlcihwbHVnaW5JbmZvcm1hdGlvbikgY29tcGxldGlvbkhhbmRsZXI6XihfV0tQ
bHVnaW5Nb2R1bGVMb2FkUG9saWN5IHBvbGljeSwgTlNTdHJpbmcgKnVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb24pIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHBsdWdpbk1vZHVsZUxv
YWRQb2xpY3kocG9saWN5KSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7CisgICAgICAgIH1d
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIocGx1Z2lu
TW9kdWxlTG9hZFBvbGljeShbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmln
YXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OndrUGx1Z2luTW9kdWxlTG9hZFBv
bGljeShjdXJyZW50UGx1Z2luTG9hZFBvbGljeSkgcGx1Z2luSW5mbzp3cmFwcGVyKHBsdWdpbklu
Zm9ybWF0aW9uKSB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uOm5pbF0pLCB7IH0pOwogfQogCiBp
bmxpbmUgV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IHRvV2ViQ29yZVdlYkdMTG9hZFBvbGljeShf
V0tXZWJHTExvYWRQb2xpY3kgcG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggOWUzNmIxYjJlMGE4Yjk2MTMxYWRlOTcxNDhlYWVkN2JiMjJjOWU0ZS4u
MDYyMTkwNmQ2OWMxYjRjMmU2ZmFhNTg3OTY0Y2ZkOGMzZTgzOGVjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMTQwLDYyICsyMTQwLDYyIEBAIFdlYlBy
ZWZlcmVuY2VzU3RvcmUgV2ViUGFnZVByb3h5OjpwcmVmZXJlbmNlc1N0b3JlKCkgY29uc3QKIH0K
IAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotdm9pZCBXZWJQYWdlUHJveHk6OmZp
bmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5z
LCB1aW50NjRfdCYgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcmIG5ld01pbWVUeXBlLCB1aW50
MzJfdCYgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9u
LCBib29sJiBpc1Vuc3VwcG9ydGVkKQordm9pZCBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYg
dXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBh
Z2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihtX3BhZ2VDbGllbnQpOwogCiAgICAgTUVTU0FH
RV9DSEVDS19VUkwodXJsU3RyaW5nKTsKIAogICAgIFVSTCBwbHVnaW5VUkwgPSBVUkwgeyBVUkwo
KSwgdXJsU3RyaW5nIH07Ci0gICAgbmV3TWltZVR5cGUgPSBtaW1lVHlwZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOworICAgIFN0cmluZyBuZXdNaW1lVHlwZSA9IG1pbWVUeXBlLmNvbnZlcnRU
b0FTQ0lJTG93ZXJjYXNlKCk7CiAKICAgICBQbHVnaW5EYXRhOjpBbGxvd2VkUGx1Z2luVHlwZXMg
YWxsb3dlZFBsdWdpblR5cGVzID0gYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID8gUGx1Z2lu
RGF0YTo6T25seUFwcGxpY2F0aW9uUGx1Z2lucyA6IFBsdWdpbkRhdGE6OkFsbFBsdWdpbnM7CiAK
ICAgICBVUkwgcGFnZVVSTCA9IFVSTCB7IFVSTCgpLCBwYWdlVVJMU3RyaW5nIH07CiAgICAgaWYg
KCFtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucGx1Z2luSW5mb1N0b3JlKCkuaXNTdXBwb3J0ZWRQ
bHVnaW4obWltZVR5cGUsIHBsdWdpblVSTCwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkwpKSB7Ci0g
ICAgICAgIGlzVW5zdXBwb3J0ZWQgPSB0cnVlOwotICAgICAgICBwbHVnaW5Qcm9jZXNzVG9rZW4g
PSAwOworICAgICAgICByZXBseSgwLCBuZXdNaW1lVHlwZSwgUGx1Z2luTW9kdWxlTG9hZE5vcm1h
bGx5LCB7IH0sIHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaXNVbnN1cHBv
cnRlZCA9IGZhbHNlOwotICAgIHBsdWdpbkxvYWRQb2xpY3kgPSBQbHVnaW5Nb2R1bGVMb2FkTm9y
bWFsbHk7CiAgICAgUGx1Z2luTW9kdWxlSW5mbyBwbHVnaW4gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQ
b29sKCkucGx1Z2luSW5mb1N0b3JlKCkuZmluZFBsdWdpbihuZXdNaW1lVHlwZSwgcGx1Z2luVVJM
LCBhbGxvd2VkUGx1Z2luVHlwZXMpOwogICAgIGlmICghcGx1Z2luLnBhdGgpIHsKLSAgICAgICAg
cGx1Z2luUHJvY2Vzc1Rva2VuID0gMDsKKyAgICAgICAgcmVwbHkoMCwgbmV3TWltZVR5cGUsIFBs
dWdpbk1vZHVsZUxvYWROb3JtYWxseSwgeyB9LCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBwbHVnaW5Mb2FkUG9saWN5ID0gUGx1Z2luSW5mb1N0b3JlOjpkZWZhdWx0TG9h
ZFBvbGljeUZvclBsdWdpbihwbHVnaW4pOworICAgIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3kg
PSBQbHVnaW5JbmZvU3RvcmU6OmRlZmF1bHRMb2FkUG9saWN5Rm9yUGx1Z2luKHBsdWdpbik7CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBhdXRvIHBsdWdpbkluZm9ybWF0aW9uID0gY3JlYXRl
UGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KHBsdWdpbiwgZnJhbWVVUkxTdHJpbmcsIFN0cmlu
ZygpLCBwYWdlVVJMU3RyaW5nLCBTdHJpbmcoKSwgU3RyaW5nKCkpOwotICAgIGlmIChtX25hdmln
YXRpb25DbGllbnQpCi0gICAgICAgIHBsdWdpbkxvYWRQb2xpY3kgPSBtX25hdmlnYXRpb25DbGll
bnQtPmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoKnRoaXMsIHN0YXRpY19jYXN0PFBsdWdpbk1v
ZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kpLCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQo
KSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7Ci0gICAgZWxzZQotICAgICAgICBwbHVnaW5M
b2FkUG9saWN5ID0gbV9sb2FkZXJDbGllbnQtPnBsdWdpbkxvYWRQb2xpY3koKnRoaXMsIHN0YXRp
Y19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kpLCBwbHVnaW5J
bmZvcm1hdGlvbi5nZXQoKSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShmcmFtZVVSTFN0cmluZyk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhZ2VVUkxT
dHJpbmcpOwotICAgIFVOVVNFRF9QQVJBTSh1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKTsKICNl
bmRpZgogCi0gICAgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgcGx1Z2luUHJvY2Vzc1NhbmRi
b3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeU5vcm1hbDsKLSAgICBzd2l0Y2gg
KHBsdWdpbkxvYWRQb2xpY3kpIHsKLSAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWROb3JtYWxseToK
LSAgICAgICAgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJv
eFBvbGljeU5vcm1hbDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2Fk
VW5zYW5kYm94ZWQ6Ci0gICAgICAgIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5ID0gUGx1Z2lu
UHJvY2Vzc1NhbmRib3hQb2xpY3lVbnNhbmRib3hlZDsKLSAgICAgICAgYnJlYWs7CisgICAgYXV0
byBmaW5kUGx1Z2luQ29tcGxldGlvbiA9IFtwcm9jZXNzVHlwZSwgcmVwbHkgPSBXVEZNb3ZlKHJl
cGx5KSwgbmV3TWltZVR5cGUgPSBXVEZNb3ZlKG5ld01pbWVUeXBlKSwgcGx1Z2luID0gV1RGTW92
ZShwbHVnaW4pXSAodWludDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgY29uc3QgU3RyaW5nJiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgUGx1Z2luUHJvY2Vzc1Nh
bmRib3hQb2xpY3kgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2Fu
ZGJveFBvbGljeU5vcm1hbDsKKyAgICAgICAgc3dpdGNoIChwbHVnaW5Mb2FkUG9saWN5KSB7Cisg
ICAgICAgIGNhc2UgUGx1Z2luTW9kdWxlTG9hZE5vcm1hbGx5OgorICAgICAgICAgICAgcGx1Z2lu
UHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeU5vcm1hbDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWRVbnNhbmRi
b3hlZDoKKyAgICAgICAgICAgIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5ID0gUGx1Z2luUHJv
Y2Vzc1NhbmRib3hQb2xpY3lVbnNhbmRib3hlZDsKKyAgICAgICAgICAgIGJyZWFrOwogCi0gICAg
Y2FzZSBQbHVnaW5Nb2R1bGVCbG9ja2VkRm9yU2VjdXJpdHk6Ci0gICAgY2FzZSBQbHVnaW5Nb2R1
bGVCbG9ja2VkRm9yQ29tcGF0aWJpbGl0eToKLSAgICAgICAgcGx1Z2luUHJvY2Vzc1Rva2VuID0g
MDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgY2FzZSBQbHVnaW5Nb2R1bGVCbG9j
a2VkRm9yU2VjdXJpdHk6CisgICAgICAgIGNhc2UgUGx1Z2luTW9kdWxlQmxvY2tlZEZvckNvbXBh
dGliaWxpdHk6CisgICAgICAgICAgICByZXBseSgwLCBuZXdNaW1lVHlwZSwgcGx1Z2luTG9hZFBv
bGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgZmFsc2UpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CiAKLSAgICBwbHVnaW5Qcm9jZXNzVG9rZW4gPSBQbHVnaW5Qcm9jZXNz
TWFuYWdlcjo6c2luZ2xldG9uKCkucGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgc3RhdGljX2Nh
c3Q8UGx1Z2luUHJvY2Vzc1R5cGU+KHByb2Nlc3NUeXBlKSwgcGx1Z2luUHJvY2Vzc1NhbmRib3hQ
b2xpY3kpOworICAgICAgICByZXBseShQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCku
cGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgc3RhdGljX2Nhc3Q8UGx1Z2luUHJvY2Vzc1R5cGU+
KHByb2Nlc3NUeXBlKSwgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kpLCBuZXdNaW1lVHlwZSwg
cGx1Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgZmFsc2UpOworICAg
IH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAobV9uYXZpZ2F0aW9uQ2xpZW50KQor
ICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWQoKnRo
aXMsIHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kp
LCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQoKSwgV1RGTW92ZShmaW5kUGx1Z2luQ29tcGxldGlvbikp
OworICAgIGVsc2UKKyAgICAgICAgbV9sb2FkZXJDbGllbnQtPnBsdWdpbkxvYWRQb2xpY3koKnRo
aXMsIHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kp
LCBwbHVnaW5JbmZvcm1hdGlvbi5nZXQoKSwgV1RGTW92ZShmaW5kUGx1Z2luQ29tcGxldGlvbikp
OworI2Vsc2UKKyAgICBmaW5kUGx1Z2luQ29tcGxldGlvbihwbHVnaW5Mb2FkUG9saWN5LCB7IH0p
OworI2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDg4ZjE3YTVkZTNkOGIxMTU2
NjIzMjQ1YWQ4MWEzZDNlNDdmNTlkYy4uMTE3YjZhNzAxNGRhYmE1ODcwNzY2ZTYwYjY4YTE0Zjdi
M2QwMWFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3NDgs
NyArMTc0OCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQotICAgIHZvaWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50
MzJfdCBwcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09u
bHlBcHBsaWNhdGlvblBsdWdpbnMsIHVpbnQ2NF90JiBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmlu
ZyYgbmV3TUlNRVR5cGUsIHVpbnQzMl90JiBwbHVnaW5Mb2FkUG9saWN5LCBTdHJpbmcmIHVuYXZh
aWxhYmlsaXR5RGVzY3JpcHRpb24sIGJvb2wmIGlzVW5zdXBwb3J0ZWQpOworICAgIHZvaWQgZmlu
ZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OkRlbGF5ZWRSZXBseSYmKTsKICNl
bmRpZgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOTcwNDhlOTAyNGJlNTNjMjM5NDAwOWVm
MGQwY2Q1MTk0MjNmZjFmYS4uYjhjMDFjMDJlNzk4YmIwNzA2MmE1MGI4NjE2MGU0OGEwNmU4MTVk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNDMyLDcgKzQzMiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIEZpbmRQbHVnaW4oU3Ry
aW5nIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgU3RyaW5nIHVybFN0cmluZywgU3Ry
aW5nIGZyYW1lVVJMU3RyaW5nLCBTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlB
cHBsaWNhdGlvblBsdWdpbnMpIC0+ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmlu
ZyBuZXdNSU1FVHlwZSwgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nIHVuYXZhaWxh
YmlsaXR5RGVzY3JpcHRpb24sIGJvb2wgaXNVbnN1cHBvcnRlZCkKKyAgICBGaW5kUGx1Z2luKFN0
cmluZyBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIFN0cmluZyB1cmxTdHJpbmcsIFN0
cmluZyBmcmFtZVVSTFN0cmluZywgU3RyaW5nIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5
QXBwbGljYXRpb25QbHVnaW5zKSAtPiAodWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJp
bmcgbmV3TUlNRVR5cGUsIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3ksIFN0cmluZyB1bmF2YWls
YWJpbGl0eURlc2NyaXB0aW9uLCBib29sIGlzVW5zdXBwb3J0ZWQpIERlbGF5ZWQKICNlbmRpZgog
CiAgICAgRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZSgpCg==
</data>
<flag name="review"
          id="365529"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>