<?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>220665</bug_id>
          
          <creation_ts>2021-01-15 12:35:21 -0800</creation_ts>
          <short_desc>Safari says &quot;Blocked Plug-in&quot; instead showing a PDF</short_desc>
          <delta_ts>2021-03-23 11:57:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alexandre.robuchon</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>mkwst</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1719952</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 12:35:21 -0800</bug_when>
    <thetext>WebKit&apos;s PDFPlugin is a browser implementation detail and should probably bypass this CSP check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719953</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 12:36:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/64372944&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719965</commentid>
    <comment_count>2</comment_count>
      <attachid>417725</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 13:02:10 -0800</bug_when>
    <thetext>Created attachment 417725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719967</commentid>
    <comment_count>3</comment_count>
      <attachid>417725</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-01-15 13:06:02 -0800</bug_when>
    <thetext>Comment on attachment 417725
Patch

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

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:278
&gt; +        for (auto&amp; pluginInfo : document().page()-&gt;pluginData().plugins()) {
&gt; +            if (pluginInfo.bundleIdentifier == &quot;com.apple.webkit.builtinpdfplugin&quot;_s)
&gt; +                return true;
&gt; +        }

Kinda confused. is pluginData().plugins() not the set of installed plugins? Wouldn&apos;t this always evaluate to true? (even if, say, Adobe Reader plugin were being used to load the PDF)? Or is it actually the set of plugins being used for this page?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719969</commentid>
    <comment_count>4</comment_count>
      <attachid>417725</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 13:09:38 -0800</bug_when>
    <thetext>Comment on attachment 417725
Patch

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

Seems really important to fix this, very good that we will have a regression test now!

I’m going to say review+ even though I have concerns about the content of the patch.

&gt; Source/WebCore/ChangeLog:3
&gt; +        Safari says &quot;Blocked Plug-in&quot; instead showing a PDF

instead *of* showing a PDF

Shouldn’t the bug title pinpoint where/when we regressed? I assume this is a regression.

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:281
&gt; +bool HTMLPlugInImageElement::shouldBypassCSPForPDFPlugin() const
&gt; +{
&gt; +    if (document().frame()-&gt;isMainFrame() &amp;&amp; document().loader()-&gt;writer().mimeType() == &quot;application/pdf&quot;) {
&gt; +        for (auto&amp; pluginInfo : document().page()-&gt;pluginData().plugins()) {
&gt; +            if (pluginInfo.bundleIdentifier == &quot;com.apple.webkit.builtinpdfplugin&quot;_s)
&gt; +                return true;
&gt; +        }
&gt; +    }
&gt; +    return false;
&gt; +}

This seems loosely coupled. We don’t want another plug-in to be able to claim application/pdf and get run because the built-in PDF plug-in is present. But that’s what this code says, and so it relies on code elsewhere.

Is there a way to target this more precisely, so it only targets the one plug-in rather than all plug-ins. It’s not great that this counts on the fact that this plug-in if present always &quot;wins&quot;.

I suppose given this, I’d like to at least eventually see a test that proves that trick doesn’t work, with a test plug-in that claims application/pdf and prove that it doesn&apos;t run.

It’s *critical* to quickly fix this regression; I don’t have good insight how it was introduced and how important it is to use this fix we have here even if it’s not perfectly target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719970</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-01-15 13:10:29 -0800</bug_when>
    <thetext>&gt; It’s not great that this counts on the fact that this plug-in if present always &quot;wins&quot;.

I don&apos;t even think this is true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719972</commentid>
    <comment_count>6</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 13:18:26 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; Comment on attachment 417725 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417725&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:278
&gt; &gt; +        for (auto&amp; pluginInfo : document().page()-&gt;pluginData().plugins()) {
&gt; &gt; +            if (pluginInfo.bundleIdentifier == &quot;com.apple.webkit.builtinpdfplugin&quot;_s)
&gt; &gt; +                return true;
&gt; &gt; +        }
&gt; 
&gt; Kinda confused. is pluginData().plugins() not the set of installed plugins?
&gt; Wouldn&apos;t this always evaluate to true? (even if, say, Adobe Reader plugin
&gt; were being used to load the PDF)? Or is it actually the set of plugins being
&gt; used for this page?

I think it is only added to the list of plugins if an additional PDF plugin is not being used (see the comment in WebProcessProxy::getPlugins()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719973</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-01-15 13:20:50 -0800</bug_when>
    <thetext>(In reply to katherine_cheney from comment #6)
&gt; (In reply to Tim Horton from comment #3)
&gt; &gt; Comment on attachment 417725 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=417725&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:278
&gt; &gt; &gt; +        for (auto&amp; pluginInfo : document().page()-&gt;pluginData().plugins()) {
&gt; &gt; &gt; +            if (pluginInfo.bundleIdentifier == &quot;com.apple.webkit.builtinpdfplugin&quot;_s)
&gt; &gt; &gt; +                return true;
&gt; &gt; &gt; +        }
&gt; &gt; 
&gt; &gt; Kinda confused. is pluginData().plugins() not the set of installed plugins?
&gt; &gt; Wouldn&apos;t this always evaluate to true? (even if, say, Adobe Reader plugin
&gt; &gt; were being used to load the PDF)? Or is it actually the set of plugins being
&gt; &gt; used for this page?
&gt; 
&gt; I think it is only added to the list of plugins if an additional PDF plugin
&gt; is not being used (see the comment in WebProcessProxy::getPlugins()).

I don&apos;t think that&apos;s what the comment says? omitPDFSupport isn&apos;t about if there are other PDF plugins, it&apos;s about a secret default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719986</commentid>
    <comment_count>8</comment_count>
      <attachid>417725</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 13:45:00 -0800</bug_when>
    <thetext>Comment on attachment 417725
Patch

Seems like there is probably a better way to do this, maybe by checking to make sure the client is Safari or is explicitly using the WebKit PDFPlugin (not just has it installed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720072</commentid>
    <comment_count>9</comment_count>
      <attachid>417747</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 16:24:09 -0800</bug_when>
    <thetext>Created attachment 417747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720073</commentid>
    <comment_count>10</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 16:24:40 -0800</bug_when>
    <thetext>Ok, round 2. I figured out that the PDFPlugin object isn’t created until after the CSP check, so we can’t use that. This patch checks for disabled plugins and then performs the same check as WebPage::createPlugin() to see if we will create a PDFPlugin. This prevents the case where another plugin tries to claim application/pdf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720076</commentid>
    <comment_count>11</comment_count>
      <attachid>417748</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-15 16:37:16 -0800</bug_when>
    <thetext>Created attachment 417748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720077</commentid>
    <comment_count>12</comment_count>
      <attachid>417747</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 16:39:28 -0800</bug_when>
    <thetext>Comment on attachment 417747
Patch

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

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:272
&gt; +bool HTMLPlugInImageElement::shouldBypassCSPForPDFPlugin(const String&amp; mimeType) const

Sometimes we use the more elegant term &quot;content type&quot; instead of &quot;MIME type&quot;; I prefer that term almost always. But this file has a lot of mimeType.

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:278
&gt; +    // We only consider bypassing this CSP check if plugins are disabled. In that case we know that
&gt; +    // any plugin used is a browser implementation detail.
&gt; +    if (document().frame()-&gt;arePluginsEnabled())
&gt; +        return false;

This explains why it’s safe to bypass CSP when plug-ins are disabled, but does not explain why it’s unnecessary to bypass CSP when plug-ins are enabled.

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:281
&gt; +    if (document().frame()-&gt;loader().client().shouldUsePDFPlugin() &amp;&amp; (MIMETypeRegistry::isPDFOrPostScriptMIMEType(mimeType) || (mimeType.isEmpty() &amp;&amp; (path.endsWithIgnoringASCIICase(&quot;.pdf&quot;) || path.endsWithIgnoringASCIICase(&quot;.ps&quot;)))))

Is there a way to share some of this logic with the PDF plug-in code? Seems like this must be echoing a rule implemented elsewhere.

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:283
&gt; +#endif

#else
    UNUSED_PARAM(mimeType);
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720078</commentid>
    <comment_count>13</comment_count>
      <attachid>417747</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 16:41:05 -0800</bug_when>
    <thetext>Comment on attachment 417747
Patch

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

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:281
&gt;&gt; +    if (document().frame()-&gt;loader().client().shouldUsePDFPlugin() &amp;&amp; (MIMETypeRegistry::isPDFOrPostScriptMIMEType(mimeType) || (mimeType.isEmpty() &amp;&amp; (path.endsWithIgnoringASCIICase(&quot;.pdf&quot;) || path.endsWithIgnoringASCIICase(&quot;.ps&quot;)))))
&gt; 
&gt; Is there a way to share some of this logic with the PDF plug-in code? Seems like this must be echoing a rule implemented elsewhere.

Reading the comments in more detail, wondering specifically if can we refactor so we share the code to check the rule with WebPage::createPlugin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720080</commentid>
    <comment_count>14</comment_count>
      <attachid>417747</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 16:44:34 -0800</bug_when>
    <thetext>Comment on attachment 417747
Patch

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

&gt;&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:281
&gt;&gt;&gt; +    if (document().frame()-&gt;loader().client().shouldUsePDFPlugin() &amp;&amp; (MIMETypeRegistry::isPDFOrPostScriptMIMEType(mimeType) || (mimeType.isEmpty() &amp;&amp; (path.endsWithIgnoringASCIICase(&quot;.pdf&quot;) || path.endsWithIgnoringASCIICase(&quot;.ps&quot;)))))
&gt;&gt; 
&gt;&gt; Is there a way to share some of this logic with the PDF plug-in code? Seems like this must be echoing a rule implemented elsewhere.
&gt; 
&gt; Reading the comments in more detail, wondering specifically if can we refactor so we share the code to check the rule with WebPage::createPlugin.

Maybe the way to achieve this is to give shouldUsePDFPlugin a different name and pass in the content type, then share the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720131</commentid>
    <comment_count>15</comment_count>
      <attachid>417765</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-16 09:23:46 -0800</bug_when>
    <thetext>Created attachment 417765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720132</commentid>
    <comment_count>16</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-16 09:25:46 -0800</bug_when>
    <thetext>New patch uploaded. Let me know if this is what you meant by making the code shared. Otherwise this patch addresses your comments, including noting in the comment that we should consider actually looking for alternative installed PDF plugins instead of only checking the disabled plugins case. This is hard right now because this info lives in PluginInfoStore.cpp in the UIProcess. This is fine for Safari which will always have plugins disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720667</commentid>
    <comment_count>17</comment_count>
      <attachid>417765</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-01-19 13:37:04 -0800</bug_when>
    <thetext>Comment on attachment 417765
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1070
&gt; +        || path.endsWithIgnoringASCIICase(&quot;.ps&quot;))));

This indentation is a little misleading, since the &apos;contentType.isEmpty()&apos; applies to both the PDF and PS cases. I&apos;d almost prefer having the pdf and ps cases on the same line, but maybe indenting would also make it clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720686</commentid>
    <comment_count>18</comment_count>
      <attachid>417911</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-19 14:05:41 -0800</bug_when>
    <thetext>Created attachment 417911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720689</commentid>
    <comment_count>19</comment_count>
      <attachid>417765</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-19 14:08:39 -0800</bug_when>
    <thetext>Comment on attachment 417765
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1070
&gt;&gt; +        || path.endsWithIgnoringASCIICase(&quot;.ps&quot;))));
&gt; 
&gt; This indentation is a little misleading, since the &apos;contentType.isEmpty()&apos; applies to both the PDF and PS cases. I&apos;d almost prefer having the pdf and ps cases on the same line, but maybe indenting would also make it clear.

You&apos;re right, this is a strange indent situation. I uploaded a new patch with everything in the second part (starting with MIMETypeRegistry::) on the same line. It is a long line but I think more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720694</commentid>
    <comment_count>20</comment_count>
      <attachid>417765</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-19 14:16:51 -0800</bug_when>
    <thetext>Comment on attachment 417765
Patch

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

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:272
&gt; +bool HTMLPlugInImageElement::shouldBypassCSPForPDFPlugin(const String&amp; contentType) const

It’s cool to have call the shouldUsePDFPlugin in the client, but I still think there’s a bit of a logic gap given these checks that are in WebPage::createPlugin:

    if (isUnsupported || isBlockedPlugin || !pluginProcessToken)

Not sure I totally understand the significance of not having these checks or their equivalent. Seems like we would get it wrong with PDF plug-ins.

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:278
&gt; +    // FIXME: Check for alternative PDF plugins here so we know whether we will use PDFPlugin.

Is it OK to land without resolving this? I suppose it is for Safari, but what about non-Safari WebKit clients? Are we doing damage to CSP by adding this bypass?

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:282
&gt; +    if (document().frame()-&gt;loader().client().shouldUsePDFPlugin(contentType,  document().url().path()))

Stray space here after the comma.

I’d also suggest just doing a return here instead of an if statement and moving the &quot;return false&quot; inside the #else, but not critical.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1958
&gt; +    if (!webPage)
&gt; +        return false;
&gt; +
&gt; +    return webPage-&gt;shouldUsePDFPlugin(contentType, path);

I like to use the &quot;&amp;&amp;&quot; style for these:

    auto page = m_frame-&gt;page();
    return page &amp;&amp; page-&gt;shouldUsePDFPlugin(contentType, path);

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1070
&gt;&gt; +        || path.endsWithIgnoringASCIICase(&quot;.ps&quot;))));
&gt; 
&gt; This indentation is a little misleading, since the &apos;contentType.isEmpty()&apos; applies to both the PDF and PS cases. I&apos;d almost prefer having the pdf and ps cases on the same line, but maybe indenting would also make it clear.

I agree that we could improve the indenting. Generally we try to show the structure with indentation with the &quot;||&quot; be further in.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1086
&gt; +    bool canUsePDFPlugin() const;

Should also make this private since it’s now only called by shouldUsePDFPlugin. Or even possibly just move the two checks into the new function (and put the whole thing into the .mm file instead of the .cpp).

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1383
&gt; +    bool shouldUsePDFPlugin(const String&amp; contentType, const StringView&amp; path) const;

Should just be StringView, not &quot;const StringView&amp;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720704</commentid>
    <comment_count>21</comment_count>
      <attachid>417765</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-19 14:52:35 -0800</bug_when>
    <thetext>Comment on attachment 417765
Patch

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

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:272
&gt;&gt; +bool HTMLPlugInImageElement::shouldBypassCSPForPDFPlugin(const String&amp; contentType) const
&gt; 
&gt; It’s cool to have call the shouldUsePDFPlugin in the client, but I still think there’s a bit of a logic gap given these checks that are in WebPage::createPlugin:
&gt; 
&gt;     if (isUnsupported || isBlockedPlugin || !pluginProcessToken)
&gt; 
&gt; Not sure I totally understand the significance of not having these checks or their equivalent. Seems like we would get it wrong with PDF plug-ins.

You&apos;re right that this part of the check is missing from the new check in CSP, but checking for disabled plugins in the CSP check is stronger than this because in that case pluginProcessToken would always be 0, so it is not loosening any existing requirements. 

In order to get these exact results here we would need a sync IPC call to the UIProcess to check for a compatible plugin, and I wasn&apos;t sure about perf repercussions.

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:278
&gt;&gt; +    // FIXME: Check for alternative PDF plugins here so we know whether we will use PDFPlugin.
&gt; 
&gt; Is it OK to land without resolving this? I suppose it is for Safari, but what about non-Safari WebKit clients? Are we doing damage to CSP by adding this bypass?

My thought process is this: currently this doesn&apos;t work for any WebKit clients. This patch adds support for Safari and many other clients who completely disable plugins. It does not damage CSP because any plugin that is not a browser implementation detail will still be blocked, as expected. So this patch won&apos;t hurt anything, and will help in many cases. Sending sync IPC to the UIProcess and delaying the load did not seem like a great thing to do here, maybe I am wrong about that.

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:282
&gt;&gt; +    if (document().frame()-&gt;loader().client().shouldUsePDFPlugin(contentType,  document().url().path()))
&gt; 
&gt; Stray space here after the comma.
&gt; 
&gt; I’d also suggest just doing a return here instead of an if statement and moving the &quot;return false&quot; inside the #else, but not critical.

Will change.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1958
&gt;&gt; +    return webPage-&gt;shouldUsePDFPlugin(contentType, path);
&gt; 
&gt; I like to use the &quot;&amp;&amp;&quot; style for these:
&gt; 
&gt;     auto page = m_frame-&gt;page();
&gt;     return page &amp;&amp; page-&gt;shouldUsePDFPlugin(contentType, path);

Will change.

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1086
&gt;&gt; +    bool canUsePDFPlugin() const;
&gt; 
&gt; Should also make this private since it’s now only called by shouldUsePDFPlugin. Or even possibly just move the two checks into the new function (and put the whole thing into the .mm file instead of the .cpp).

Yes, I can do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720739</commentid>
    <comment_count>22</comment_count>
      <attachid>417765</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-19 16:18:47 -0800</bug_when>
    <thetext>Comment on attachment 417765
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1383
&gt;&gt; +    bool shouldUsePDFPlugin(const String&amp; contentType, const StringView&amp; path) const;
&gt; 
&gt; Should just be StringView, not &quot;const StringView&amp;&quot;.

Why copy here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720742</commentid>
    <comment_count>23</comment_count>
      <attachid>417765</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-19 16:23:36 -0800</bug_when>
    <thetext>Comment on attachment 417765
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1383
&gt;&gt;&gt; +    bool shouldUsePDFPlugin(const String&amp; contentType, const StringView&amp; path) const;
&gt;&gt; 
&gt;&gt; Should just be StringView, not &quot;const StringView&amp;&quot;.
&gt; 
&gt; Why copy here?

The StringView object fits into machine registers, is really small, and has no cost to copy except in debug builds. It’s a pointer plus an integer/boolean. For more complex types, using &quot;const X&amp;&quot; optimizes performance, but for StringView does that instead has a net effect that hurts performance.

That’s different from classes like String where copying does reference count manipulation and is to be avoided when possible.

That’s not obvious, and I’m sorry that’s so!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720770</commentid>
    <comment_count>24</comment_count>
      <attachid>417929</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-19 17:20:17 -0800</bug_when>
    <thetext>Created attachment 417929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720771</commentid>
    <comment_count>25</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-19 17:22:36 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #23)
&gt; Comment on attachment 417765 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417765&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1383
&gt; &gt;&gt;&gt; +    bool shouldUsePDFPlugin(const String&amp; contentType, const StringView&amp; path) const;
&gt; &gt;&gt; 
&gt; &gt;&gt; Should just be StringView, not &quot;const StringView&amp;&quot;.
&gt; &gt; 
&gt; &gt; Why copy here?
&gt; 
&gt; The StringView object fits into machine registers, is really small, and has
&gt; no cost to copy except in debug builds. It’s a pointer plus an
&gt; integer/boolean. For more complex types, using &quot;const X&amp;&quot; optimizes
&gt; performance, but for StringView does that instead has a net effect that
&gt; hurts performance.
&gt; 
&gt; That’s different from classes like String where copying does reference count
&gt; manipulation and is to be avoided when possible.
&gt; 
&gt; That’s not obvious, and I’m sorry that’s so!

Thank you for explaining!

I updated the Changelog in the most recent patch to clarify some of what we talked about in the comments, and why I think it is a good idea to land this even if it doesn&apos;t cover 100% of cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720784</commentid>
    <comment_count>26</comment_count>
      <attachid>417929</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-19 18:35:41 -0800</bug_when>
    <thetext>Comment on attachment 417929
Patch

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

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1955
&gt; +    auto* webPage = m_frame-&gt;page();
&gt; +    return webPage &amp;&amp; webPage-&gt;shouldUsePDFPlugin(contentType, path);

I slightly prefer the name &quot;page&quot; for this local variable, but I won’t insist. I really like single word variable names when they work grammatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720900</commentid>
    <comment_count>27</comment_count>
      <attachid>417973</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-20 09:09:05 -0800</bug_when>
    <thetext>Created attachment 417973
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720901</commentid>
    <comment_count>28</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-01-20 09:09:44 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #26)
&gt; Comment on attachment 417929 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417929&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1955
&gt; &gt; +    auto* webPage = m_frame-&gt;page();
&gt; &gt; +    return webPage &amp;&amp; webPage-&gt;shouldUsePDFPlugin(contentType, path);
&gt; 
&gt; I slightly prefer the name &quot;page&quot; for this local variable, but I won’t
&gt; insist. I really like single word variable names when they work
&gt; grammatically.

I fixed this in the patch-for-landing. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720912</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-20 09:44:21 -0800</bug_when>
    <thetext>Committed r271650: &lt;https://trac.webkit.org/changeset/271650&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417973.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720913</commentid>
    <comment_count>30</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-20 09:45:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73408146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742932</commentid>
    <comment_count>31</comment_count>
    <who name="alexandre robuchon">alexandre.robuchon</who>
    <bug_when>2021-03-23 11:57:23 -0700</bug_when>
    <thetext>*** Bug 223576 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417725</attachid>
            <date>2021-01-15 13:02:10 -0800</date>
            <delta_ts>2021-01-15 16:24:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220665-20210115130210.patch</filename>
            <type>text/plain</type>
            <size>5637</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3ZDc2NzY0MDMwNjZi
N2IwM2NiMDRiYzE2MTZhYzA3ZTIyZmZkZS4uZDE0YjI1NDQzMzFhM2MxNDMzMWJiNWY4Mjg0MjM2
MTgyN2YzMGI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAxLTE1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBz
YXlzICJCbG9ja2VkIFBsdWctaW4iIGluc3RlYWQgc2hvd2luZyBhIFBERgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDM3Mjk0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQncyBQREZQbHVnaW4gaXMgYSBicm93c2VyIGltcGxlbWVudGF0
aW9uIGRldGFpbCBhbmQgc2hvdWxkCisgICAgICAgIGJ5cGFzcyB0aGUgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoKSBjaGVjaworICAgICAgICBpbiBvcmRlciB0
byBub3QgYmUgYmxvY2tlZCBhbG9uZyB3aXRoIG90aGVyIHBsdWdpbnMuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6c2hvdWxkQnlwYXNzQ1NQRm9yUERGUGx1Z2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250
ZW50IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDoKKwog
MjAyMS0wMS0xMyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ3Jhc2ggQVNTRVJUIGluIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRl
ckVsZW1lbnQgZHVyaW5nIEFYSXNvbGF0ZWRPYmplY3QgaW5pdGlhbGl6YXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCAyZTFiZTY3
ZTYwNWQyNjQyNzYxYjExNWNlNzk3YmU1MGNhNTFiMTExLi4yMDdlMGRiYWZkNmE4NzNmZjY5ZWEy
OTlkZjJjYjA3NThlYTQ5OWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
QEAgLTI2OCw2ICsyNjksMTcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZXN1bWVG
cm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkKICAgICBIVE1MUGx1Z0luRWxlbWVudDo6cmVzdW1lRnJv
bURvY3VtZW50U3VzcGVuc2lvbigpOwogfQogCitib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OnNob3VsZEJ5cGFzc0NTUEZvclBERlBsdWdpbigpIGNvbnN0Cit7CisgICAgaWYgKGRvY3VtZW50
KCkuZnJhbWUoKS0+aXNNYWluRnJhbWUoKSAmJiBkb2N1bWVudCgpLmxvYWRlcigpLT53cml0ZXIo
KS5taW1lVHlwZSgpID09ICJhcHBsaWNhdGlvbi9wZGYiKSB7CisgICAgICAgIGZvciAoYXV0byYg
cGx1Z2luSW5mbyA6IGRvY3VtZW50KCkucGFnZSgpLT5wbHVnaW5EYXRhKCkucGx1Z2lucygpKSB7
CisgICAgICAgICAgICBpZiAocGx1Z2luSW5mby5idW5kbGVJZGVudGlmaWVyID09ICJjb20uYXBw
bGUud2Via2l0LmJ1aWx0aW5wZGZwbHVnaW4iX3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50KGNvbnN0IFN0cmluZyYgcmVs
YXRpdmVVUkwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgLy8gRWxlbWVu
dHMgaW4gdXNlciBhZ2VudCBzaG93IHRyZWUgc2hvdWxkIGxvYWQgd2hhdGV2ZXIgdGhlIGVtYmVk
ZGluZyBkb2N1bWVudCBwb2xpY3kgaXMuCkBAIC0yODMsNyArMjk1LDcgQEAgYm9vbCBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50OjpjYW5Mb2FkUGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0
aXZlVVJMLCBjb24KIAogICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS51cGdyYWRlSW5zZWN1cmVS
ZXF1ZXN0SWZOZWVkZWQoY29tcGxldGVkVVJMLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2Vj
dXJlUmVxdWVzdFR5cGU6OkxvYWQpOwogCi0gICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3ku
YWxsb3dPYmplY3RGcm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCisgICAgaWYgKCFzaG91bGRCeXBh
c3NDU1BGb3JQREZQbHVnaW4oKSAmJiAhY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93T2JqZWN0
RnJvbVNvdXJjZShjb21wbGV0ZWRVUkwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBh
dXRvJiBkZWNsYXJlZE1pbWVUeXBlID0gZG9jdW1lbnQoKS5pc1BsdWdpbkRvY3VtZW50KCkgJiYg
ZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKSA/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oCmluZGV4IDk2NDJhYmMwMjRhYWUyZDU4MmZlNjRhZWMyMDZkNTU1
MGE5NzVlODcuLmM0NDQ5OWIxMjc3ZWZkZDUyNWExNDBhNzk1MGU4YTdiYjlkNDk0YjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC02OCw2ICs2
OCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1BsdWdJbkltYWdlRWxlbWVu
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIGJvb2wgc2hvdWxkQnlwYXNz
Q1NQRm9yUERGUGx1Z2luKCkgY29uc3Q7CiAgICAgYm9vbCBjYW5Mb2FkUGx1Z0luQ29udGVudChj
b25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsK
ICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZTQ5ZDNhMWNlODkyYWU3MDAx
ZjA5NmRlYTQ0MGM4OWExOWIzYjRlLi5iMjQ1MjMwMTBmNjUwNDk5MTJkMmE5YzM2YTk5YjY5Nzk3
NWIwYTllIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDEtMTUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIHNheXMgIkJsb2NrZWQgUGx1Zy1pbiIg
aW5zdGVhZCBzaG93aW5nIGEgUERGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjA2NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MzcyOTQ0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFQSSB0ZXN0
IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1BERlZpZXcubW06CisgICAgICAgIChURVNUKToKKwogMjAyMS0wMS0xMyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBkZXByZWNh
dGVkIHNjcmlwdCBhbmQgc3R5bGVzaGVldCBTUEksIHJlcGxhY2VkIHdpdGggbW9yZSBpbmNsdXNp
dmVseS1uYW1lZCBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tQREZWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1BERlZpZXcubW0KaW5kZXggMzcwY2Q2ZTkyYTJkZjhlMmE2MjFjZmFmODQzNmMyZTE2
NTU4NTk2OC4uNzBmY2Q3YWViMDgxMjU3ZTQ2YWFiOTJhZDE4ZmUyMTk2M2ZhYTBhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0K
QEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlRlc3RVSURlbGVnYXRlLmgiCiAjaW1wb3J0ICJU
ZXN0VVJMU2NoZW1lSGFuZGxlci5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJW
aWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgpAQCAtMzU5LDQg
KzM2MCwxNiBAQCBURVNUKFBERkhVRCwgTXVsdGlwbGVJRnJhbWVzKQogICAgIEVYUEVDVF9UUlVF
KGhhZFJpZ2h0RnJhbWUpOwogfQogCitURVNUKFBERkhVRCwgTG9hZFBERlR5cGVXaXRoUGx1Z2lu
c0Jsb2NrZWQpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbY29uZmlndXJhdGlvbiBfc2V0T3Zl
cnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6QCJvYmplY3Qtc3JjICdub25lJyJdOworICAgIFRl
c3RXS1dlYlZpZXcgKndlYlZpZXcgPSBbW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0gYXV0b3JlbGVhc2VdOworICAgIFt3ZWJWaWV3IGxvYWREYXRhOnBkZkRhdGEoKSBN
SU1FVHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOkAiIiBiYXNl
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBwbGUuY29tL3Rlc3RQYXRo
Il1dOworICAgIEVYUEVDVF9FUSh3ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAwdSk7CisgICAgW3dl
YlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworICAgIEVYUEVDVF9FUSh3
ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAxdSk7CisgICAgY2hlY2tGcmFtZSh3ZWJWaWV3Ll9wZGZI
VURzLmFueU9iamVjdC5mcmFtZSwgMCwgMCwgODAwLCA2MDApOworfQorCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417747</attachid>
            <date>2021-01-15 16:24:09 -0800</date>
            <delta_ts>2021-01-16 09:23:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220665-20210115162408.patch</filename>
            <type>text/plain</type>
            <size>9033</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3ZDc2NzY0MDMwNjZi
N2IwM2NiMDRiYzE2MTZhYzA3ZTIyZmZkZS4uM2UzMzM1ZTdmZGRhMjQ4MTRlZGM2ODUxODI1YWI2
OThmM2JmNGM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAxLTE1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBz
YXlzICJCbG9ja2VkIFBsdWctaW4iIGluc3RlYWQgc2hvd2luZyBhIFBERgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDM3Mjk0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQncyBQREZQbHVnaW4gaXMgYSBicm93c2VyIGltcGxlbWVudGF0
aW9uIGRldGFpbCBhbmQgc2hvdWxkCisgICAgICAgIGJ5cGFzcyB0aGUgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoKSBjaGVjaworICAgICAgICBpbiBvcmRlciB0
byBub3QgYmUgYmxvY2tlZCBhbG9uZyB3aXRoIG90aGVyIHBsdWdpbnMuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6c2hvdWxkQnlwYXNzQ1NQRm9yUERGUGx1Z2luIGNvbnN0KToKKyAg
ICAgICAgT25seSBjb25zaWRlciB0aGlzIGlmIHBsdWdpbnMgYXJlIGRpc2FibGVkLCB0aGlzIHdh
eSB3ZSBjYW4gYmUKKyAgICAgICAgc3VyZSB0aGF0IGFueSBwbHVnaW4gdXNlZCB3aWxsIGJlIGJ1
aWx0LWluLiBUaGVuIG1hdGNoIHRoZSBjaGVjayBpbgorICAgICAgICBXZWJQYWdlOjpjcmVhdGVQ
bHVnaW4oKSB0byBkZXRlcm1pbmUgaWYgUERGUGx1Z2luIHdpbGwgYmUgdXNlZC4KKworICAgICAg
ICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y2FuTG9hZFBsdWdJbkNvbnRlbnQg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTAxLTEzICBBbmRyZXMgR29u
emFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBBU1NFUlQgaW4g
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBkdXJpbmcgQVhJc29s
YXRlZE9iamVjdCBpbml0aWFsaXphdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODgyNjAzNTIwNTNiMzZjN2Q0
YzYyYTIzMWM3NjdiY2Y1MmY1ODEwNy4uMWI0YjM0YTUzYWMwMTYwODA0OWM3MDA2ODI0MGIwYTVk
MDcyZmVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMS0xNSAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgc2F5cyAi
QmxvY2tlZCBQbHVnLWluIiBpbnN0ZWFkIHNob3dpbmcgYSBQREYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDY2NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjQzNzI5NDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBE
RlBsdWdpbiBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTAxLTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjcwOTYxKTogRmxpcGdyaWQgY2FuIG5v
IGxvbmdlciBjYXB0dXJlIHZpZGVvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcAppbmRleCAyZTFiZTY3ZTYwNWQyNjQyNzYxYjExNWNlNzk3YmU1MGNh
NTFiMTExLi4wM2EyMjg4Njc0MTRmY2QxZmUwMTg5ZjYxM2VlODBhN2YzOGUzZDJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTI1LDYg
KzI1LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb21tb25WTS5o
IgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKQEAgLTI2OCw2ICsyNjksMjEgQEAgdm9pZCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkKICAg
ICBIVE1MUGx1Z0luRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigpOwogfQog
Citib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnNob3VsZEJ5cGFzc0NTUEZvclBERlBsdWdp
bihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAoreworI2lmIEVOQUJMRShQREZLSVRfUExV
R0lOKQorICAgIC8vIFdlIG9ubHkgY29uc2lkZXIgYnlwYXNzaW5nIHRoaXMgQ1NQIGNoZWNrIGlm
IHBsdWdpbnMgYXJlIGRpc2FibGVkLiBJbiB0aGF0IGNhc2Ugd2Uga25vdyB0aGF0CisgICAgLy8g
YW55IHBsdWdpbiB1c2VkIGlzIGEgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuCisgICAg
aWYgKGRvY3VtZW50KCkuZnJhbWUoKS0+YXJlUGx1Z2luc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBwYXRoID0gZG9jdW1lbnQoKS51cmwoKS5wYXRoKCk7Cisg
ICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuc2hvdWxkVXNlUERG
UGx1Z2luKCkgJiYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGT3JQb3N0U2NyaXB0TUlNRVR5cGUo
bWltZVR5cGUpIHx8IChtaW1lVHlwZS5pc0VtcHR5KCkgJiYgKHBhdGguZW5kc1dpdGhJZ25vcmlu
Z0FTQ0lJQ2FzZSgiLnBkZiIpIHx8IHBhdGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBz
IikpKSkpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50KGNv
bnN0IFN0cmluZyYgcmVsYXRpdmVVUkwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7
CiAgICAgLy8gRWxlbWVudHMgaW4gdXNlciBhZ2VudCBzaG93IHRyZWUgc2hvdWxkIGxvYWQgd2hh
dGV2ZXIgdGhlIGVtYmVkZGluZyBkb2N1bWVudCBwb2xpY3kgaXMuCkBAIC0yODMsNyArMjk5LDcg
QEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjYW5Mb2FkUGx1Z0luQ29udGVudChjb25z
dCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb24KIAogICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS51
cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQoY29tcGxldGVkVVJMLCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwogCi0gICAgaWYgKCFjb250ZW50
U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmplY3RGcm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCisgICAg
aWYgKCFzaG91bGRCeXBhc3NDU1BGb3JQREZQbHVnaW4obWltZVR5cGUpICYmICFjb250ZW50U2Vj
dXJpdHlQb2xpY3kuYWxsb3dPYmplY3RGcm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8mIGRlY2xhcmVkTWltZVR5cGUgPSBkb2N1bWVudCgp
LmlzUGx1Z2luRG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLm93bmVyRWxlbWVudCgpID8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggOTY0MmFiYzAy
NGFhZTJkNTgyZmU2NGFlYzIwNmQ1NTUwYTk3NWU4Ny4uNTM4N2U5YjFiZjNkZjJlMTgzYWI3YTk2
MDg3YzMwODAwZmM3MjBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmgKQEAgLTY4LDYgKzY4LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBi
b29sIGlzUGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
CisgICAgYm9vbCBzaG91bGRCeXBhc3NDU1BGb3JQREZQbHVnaW4oY29uc3QgU3RyaW5nJikgY29u
c3Q7CiAgICAgYm9vbCBjYW5Mb2FkUGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZl
VVJMLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsKICAgICBib29sIGNhbkxvYWRVUkwo
Y29uc3QgVVJMJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggMThhMWYxZTA4N2IzYTdlYWVhYTQ2M2YzNDlkMWFhN2VlYjk0YWFiOC4uZTg1
OGYwZGM3MDhlNjAxNDIzZTg3MDY0NmRiOTFjZmViZTQ5OGI1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM4MCw2ICszODAsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5UHJvdGVjdGlv
bnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdl
T2ZBcHBCb3VuZEJlaGF2aW9yKCkgeyB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShQREZLSVRfUExV
R0lOKQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQREZQbHVnaW4oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAwZmNjOGNkZjc5MmRkNzFiYzhmNDRiYjM3MDNj
NmU2ZDNkMDM4ODQzLi44Y2NjM2IxYWEzNDczMzIzYjgxOTdlY2U2ZGUyNWIwZGIyYjQwMzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE5NDgsNiArMTk0OCwxNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkK
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBERktJVF9QTFVHSU4pCitib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpzaG91bGRVc2VQREZQbHVnaW4oKSBjb25zdAoreworICAgIGF1dG8qIHdlYlBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gd2ViUGFnZS0+c2hvdWxkVXNlUERGUGx1Z2luKCk7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBQUkVGSVhfUEFSQU1FVEVS
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5ZDlkOTljYzRhNWNhNjUwNDNhYjVj
MmUwOTM2MTE4NTc2MTA4OWEwLi41YjI0MTRhNDA3NjdiZjhiODdmMThlYzY0NzNiNzQwZWU0ZTdi
OGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjg5LDYgKzI4OSwxMSBAQCBw
cml2YXRlOgogICAgIGJvb2wgc2hvdWxkRW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeVByb3RlY3Rp
b25zKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9y
KCkgZmluYWw7CiAjZW5kaWYKKworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIGJvb2wg
c2hvdWxkVXNlUERGUGx1Z2luKCkgY29uc3QgZmluYWw7CisjZW5kaWYKKwogfTsKIAogLy8gQXMg
bG9uZyBhcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGV4aXN0cyBpbiBXZWJDb3JlLCB0aGlzIGNh
biByZXR1cm4gbnVsbHB0ci4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBjZTQ5ZDNhMWNlODkyYWU3MDAxZjA5NmRlYTQ0MGM4OWExOWIzYjRlLi5i
MjQ1MjMwMTBmNjUwNDk5MTJkMmE5YzM2YTk5YjY5Nzk3NWIwYTllIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEt
MDEtMTUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2FmYXJpIHNheXMgIkJsb2NrZWQgUGx1Zy1pbiIgaW5zdGVhZCBzaG93aW5nIGEgUERGCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA2NjUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MzcyOTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW06CisgICAgICAgIChU
RVNUKToKKwogMjAyMS0wMS0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBkZXByZWNhdGVkIHNjcmlwdCBhbmQgc3R5bGVzaGVl
dCBTUEksIHJlcGxhY2VkIHdpdGggbW9yZSBpbmNsdXNpdmVseS1uYW1lZCBTUEkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KaW5kZXgg
MzcwY2Q2ZTkyYTJkZjhlMmE2MjFjZmFmODQzNmMyZTE2NTU4NTk2OC4uNzBmY2Q3YWViMDgxMjU3
ZTQ2YWFiOTJhZDE4ZmUyMTk2M2ZhYTBhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBv
cnQgIlRlc3RVSURlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgog
I2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oPgpAQCAtMzU5LDQgKzM2MCwxNiBAQCBURVNUKFBERkhVRCwg
TXVsdGlwbGVJRnJhbWVzKQogICAgIEVYUEVDVF9UUlVFKGhhZFJpZ2h0RnJhbWUpOwogfQogCitU
RVNUKFBERkhVRCwgTG9hZFBERlR5cGVXaXRoUGx1Z2luc0Jsb2NrZWQpCit7CisgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBbY29uZmlndXJhdGlvbiBfc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xp
Y3k6QCJvYmplY3Qtc3JjICdub25lJyJdOworICAgIFRlc3RXS1dlYlZpZXcgKndlYlZpZXcgPSBb
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOwor
ICAgIFt3ZWJWaWV3IGxvYWREYXRhOnBkZkRhdGEoKSBNSU1FVHlwZTpAImFwcGxpY2F0aW9uL3Bk
ZiIgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOkAiIiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiaHR0cHM6Ly93d3cuYXBwbGUuY29tL3Rlc3RQYXRoIl1dOworICAgIEVYUEVDVF9FUSh3ZWJW
aWV3Ll9wZGZIVURzLmNvdW50LCAwdSk7CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZp
bmlzaE5hdmlnYXRpb25dOworICAgIEVYUEVDVF9FUSh3ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAx
dSk7CisgICAgY2hlY2tGcmFtZSh3ZWJWaWV3Ll9wZGZIVURzLmFueU9iamVjdC5mcmFtZSwgMCwg
MCwgODAwLCA2MDApOworfQorCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417748</attachid>
            <date>2021-01-15 16:37:16 -0800</date>
            <delta_ts>2021-01-16 09:23:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220665-20210115163715.patch</filename>
            <type>text/plain</type>
            <size>9069</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3ZDc2NzY0MDMwNjZi
N2IwM2NiMDRiYzE2MTZhYzA3ZTIyZmZkZS4uM2UzMzM1ZTdmZGRhMjQ4MTRlZGM2ODUxODI1YWI2
OThmM2JmNGM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAxLTE1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBz
YXlzICJCbG9ja2VkIFBsdWctaW4iIGluc3RlYWQgc2hvd2luZyBhIFBERgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDM3Mjk0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQncyBQREZQbHVnaW4gaXMgYSBicm93c2VyIGltcGxlbWVudGF0
aW9uIGRldGFpbCBhbmQgc2hvdWxkCisgICAgICAgIGJ5cGFzcyB0aGUgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoKSBjaGVjaworICAgICAgICBpbiBvcmRlciB0
byBub3QgYmUgYmxvY2tlZCBhbG9uZyB3aXRoIG90aGVyIHBsdWdpbnMuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6c2hvdWxkQnlwYXNzQ1NQRm9yUERGUGx1Z2luIGNvbnN0KToKKyAg
ICAgICAgT25seSBjb25zaWRlciB0aGlzIGlmIHBsdWdpbnMgYXJlIGRpc2FibGVkLCB0aGlzIHdh
eSB3ZSBjYW4gYmUKKyAgICAgICAgc3VyZSB0aGF0IGFueSBwbHVnaW4gdXNlZCB3aWxsIGJlIGJ1
aWx0LWluLiBUaGVuIG1hdGNoIHRoZSBjaGVjayBpbgorICAgICAgICBXZWJQYWdlOjpjcmVhdGVQ
bHVnaW4oKSB0byBkZXRlcm1pbmUgaWYgUERGUGx1Z2luIHdpbGwgYmUgdXNlZC4KKworICAgICAg
ICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y2FuTG9hZFBsdWdJbkNvbnRlbnQg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTAxLTEzICBBbmRyZXMgR29u
emFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBBU1NFUlQgaW4g
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBkdXJpbmcgQVhJc29s
YXRlZE9iamVjdCBpbml0aWFsaXphdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODgyNjAzNTIwNTNiMzZjN2Q0
YzYyYTIzMWM3NjdiY2Y1MmY1ODEwNy4uMWI0YjM0YTUzYWMwMTYwODA0OWM3MDA2ODI0MGIwYTVk
MDcyZmVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMS0xNSAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgc2F5cyAi
QmxvY2tlZCBQbHVnLWluIiBpbnN0ZWFkIHNob3dpbmcgYSBQREYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDY2NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjQzNzI5NDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBE
RlBsdWdpbiBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTAxLTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjcwOTYxKTogRmxpcGdyaWQgY2FuIG5v
IGxvbmdlciBjYXB0dXJlIHZpZGVvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcAppbmRleCAyZTFiZTY3ZTYwNWQyNjQyNzYxYjExNWNlNzk3YmU1MGNh
NTFiMTExLi5hODg5YTYxMDAwMTcxNjYxMmQ5Mjk3YWM2OTY1NjVkZDZhNTE4N2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTI1LDYg
KzI1LDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb21tb25WTS5o
IgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKQEAgLTI2OCw2ICsyNjksMjMgQEAgdm9pZCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpyZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9uKCkKICAg
ICBIVE1MUGx1Z0luRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigpOwogfQog
Citib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnNob3VsZEJ5cGFzc0NTUEZvclBERlBsdWdp
bihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAoreworI2lmIEVOQUJMRShQREZLSVRfUExV
R0lOKQorICAgIC8vIFdlIG9ubHkgY29uc2lkZXIgYnlwYXNzaW5nIHRoaXMgQ1NQIGNoZWNrIGlm
IHBsdWdpbnMgYXJlIGRpc2FibGVkLiBJbiB0aGF0IGNhc2Ugd2Uga25vdyB0aGF0CisgICAgLy8g
YW55IHBsdWdpbiB1c2VkIGlzIGEgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuCisgICAg
aWYgKGRvY3VtZW50KCkuZnJhbWUoKS0+YXJlUGx1Z2luc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBwYXRoID0gZG9jdW1lbnQoKS51cmwoKS5wYXRoKCk7Cisg
ICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuc2hvdWxkVXNlUERG
UGx1Z2luKCkgJiYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzUERGT3JQb3N0U2NyaXB0TUlNRVR5cGUo
bWltZVR5cGUpIHx8IChtaW1lVHlwZS5pc0VtcHR5KCkgJiYgKHBhdGguZW5kc1dpdGhJZ25vcmlu
Z0FTQ0lJQ2FzZSgiLnBkZiIpIHx8IHBhdGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBz
IikpKSkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWlt
ZVR5cGUpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50KGNvbnN0IFN0cmluZyYgcmVsYXRpdmVV
UkwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgLy8gRWxlbWVudHMgaW4g
dXNlciBhZ2VudCBzaG93IHRyZWUgc2hvdWxkIGxvYWQgd2hhdGV2ZXIgdGhlIGVtYmVkZGluZyBk
b2N1bWVudCBwb2xpY3kgaXMuCkBAIC0yODMsNyArMzAxLDcgQEAgYm9vbCBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50OjpjYW5Mb2FkUGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJM
LCBjb24KIAogICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0
SWZOZWVkZWQoY29tcGxldGVkVVJMLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVx
dWVzdFR5cGU6OkxvYWQpOwogCi0gICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dP
YmplY3RGcm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCisgICAgaWYgKCFzaG91bGRCeXBhc3NDU1BG
b3JQREZQbHVnaW4obWltZVR5cGUpICYmICFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmpl
Y3RGcm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGF1dG8mIGRlY2xhcmVkTWltZVR5cGUgPSBkb2N1bWVudCgpLmlzUGx1Z2luRG9jdW1lbnQoKSAm
JiBkb2N1bWVudCgpLm93bmVyRWxlbWVudCgpID8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggOTY0MmFiYzAyNGFhZTJkNTgyZmU2NGFlYzIwNmQ1
NTUwYTk3NWU4Ny4uNTM4N2U5YjFiZjNkZjJlMTgzYWI3YTk2MDg3YzMwODAwZmM3MjBjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTY4LDYg
KzY4LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBib29sIGlzUGx1Z0luSW1hZ2VFbGVt
ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgYm9vbCBzaG91bGRCeXBh
c3NDU1BGb3JQREZQbHVnaW4oY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBjYW5Mb2Fk
UGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKSBjb25zdDsKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJikgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMThhMWYxZTA4
N2IzYTdlYWVhYTQ2M2YzNDlkMWFhN2VlYjk0YWFiOC4uZTg1OGYwZGM3MDhlNjAxNDIzZTg3MDY0
NmRiOTFjZmViZTQ5OGI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTM4MCw2ICszODAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRFbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5UHJvdGVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkg
eyB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRVc2VQREZQbHVnaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCAwZmNjOGNkZjc5MmRkNzFiYzhmNDRiYjM3MDNjNmU2ZDNkMDM4ODQzLi44Y2NjM2Ix
YWEzNDczMzIzYjgxOTdlY2U2ZGUyNWIwZGIyYjQwMzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTE5NDgsNiArMTk0OCwxNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50Ojpub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKFBERktJVF9QTFVHSU4pCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VQ
REZQbHVnaW4oKSBjb25zdAoreworICAgIGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7
CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
d2ViUGFnZS0+c2hvdWxkVXNlUERGUGx1Z2luKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICN1bmRlZiBQUkVGSVhfUEFSQU1FVEVSUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCA5ZDlkOTljYzRhNWNhNjUwNDNhYjVjMmUwOTM2MTE4NTc2MTA4OWEwLi41
YjI0MTRhNDA3NjdiZjhiODdmMThlYzY0NzNiNzQwZWU0ZTdiOGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMjg5LDYgKzI4OSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hv
dWxkRW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeVByb3RlY3Rpb25zKCkgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkgZmluYWw7CiAjZW5kaWYKKwor
I2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIGJvb2wgc2hvdWxkVXNlUERGUGx1Z2luKCkg
Y29uc3QgZmluYWw7CisjZW5kaWYKKwogfTsKIAogLy8gQXMgbG9uZyBhcyBFbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50IGV4aXN0cyBpbiBXZWJDb3JlLCB0aGlzIGNhbiByZXR1cm4gbnVsbHB0ci4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZTQ5ZDNh
MWNlODkyYWU3MDAxZjA5NmRlYTQ0MGM4OWExOWIzYjRlLi5iMjQ1MjMwMTBmNjUwNDk5MTJkMmE5
YzM2YTk5YjY5Nzk3NWIwYTllIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDEtMTUgIEthdGUgQ2hlbmV5ICA8
a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIHNheXMgIkJsb2Nr
ZWQgUGx1Zy1pbiIgaW5zdGVhZCBzaG93aW5nIGEgUERGCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA2NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0MzcyOTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1BERlZpZXcubW06CisgICAgICAgIChURVNUKToKKwogMjAyMS0wMS0xMyAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
bW92ZSBkZXByZWNhdGVkIHNjcmlwdCBhbmQgc3R5bGVzaGVldCBTUEksIHJlcGxhY2VkIHdpdGgg
bW9yZSBpbmNsdXNpdmVseS1uYW1lZCBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KaW5kZXggMzcwY2Q2ZTkyYTJkZjhlMmE2MjFj
ZmFmODQzNmMyZTE2NTU4NTk2OC4uNzBmY2Q3YWViMDgxMjU3ZTQ2YWFiOTJhZDE4ZmUyMTk2M2Zh
YTBhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1BERlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1BERlZpZXcubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlRlc3RVSURlbGVnYXRlLmgi
CiAjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmll
dy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlv
blByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
PgpAQCAtMzU5LDQgKzM2MCwxNiBAQCBURVNUKFBERkhVRCwgTXVsdGlwbGVJRnJhbWVzKQogICAg
IEVYUEVDVF9UUlVFKGhhZFJpZ2h0RnJhbWUpOwogfQogCitURVNUKFBERkhVRCwgTG9hZFBERlR5
cGVXaXRoUGx1Z2luc0Jsb2NrZWQpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbY29uZmlndXJh
dGlvbiBfc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6QCJvYmplY3Qtc3JjICdub25l
JyJdOworICAgIFRlc3RXS1dlYlZpZXcgKndlYlZpZXcgPSBbW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOworICAgIFt3ZWJWaWV3IGxvYWREYXRh
OnBkZkRhdGEoKSBNSU1FVHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgY2hhcmFjdGVyRW5jb2RpbmdO
YW1lOkAiIiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBwbGUu
Y29tL3Rlc3RQYXRoIl1dOworICAgIEVYUEVDVF9FUSh3ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAw
dSk7CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworICAg
IEVYUEVDVF9FUSh3ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAxdSk7CisgICAgY2hlY2tGcmFtZSh3
ZWJWaWV3Ll9wZGZIVURzLmFueU9iamVjdC5mcmFtZSwgMCwgMCwgODAwLCA2MDApOworfQorCiAj
ZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417765</attachid>
            <date>2021-01-16 09:23:46 -0800</date>
            <delta_ts>2021-01-19 17:20:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220665-20210116092345.patch</filename>
            <type>text/plain</type>
            <size>13385</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3ZDc2NzY0MDMwNjZi
N2IwM2NiMDRiYzE2MTZhYzA3ZTIyZmZkZS4uN2I1ZDYwODY1ZDkzOTg0MWEwOTE3MzZkMWI3MDE4
ZjUwYjU0M2Q5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAxLTE1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBz
YXlzICJCbG9ja2VkIFBsdWctaW4iIGluc3RlYWQgc2hvd2luZyBhIFBERgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDM3Mjk0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQncyBQREZQbHVnaW4gaXMgYSBicm93c2VyIGltcGxlbWVudGF0
aW9uIGRldGFpbCBhbmQgc2hvdWxkCisgICAgICAgIGJ5cGFzcyB0aGUgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoKSBjaGVjaworICAgICAgICBpbiBvcmRlciB0
byBub3QgYmUgYmxvY2tlZCBhbG9uZyB3aXRoIG90aGVyIHBsdWdpbnMuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6c2hvdWxkQnlwYXNzQ1NQRm9yUERGUGx1Z2luIGNvbnN0KToKKyAg
ICAgICAgT25seSBjb25zaWRlciB0aGlzIGlmIHBsdWdpbnMgYXJlIGRpc2FibGVkLCB0aGlzIHdh
eSB3ZSBjYW4gYmUKKyAgICAgICAgc3VyZSB0aGF0IGFueSBwbHVnaW4gdXNlZCB3aWxsIGJlIGJ1
aWx0LWluLiBUaGVuIG1hdGNoIHRoZSBjaGVjayBpbgorICAgICAgICBXZWJQYWdlOjpjcmVhdGVQ
bHVnaW4oKSB0byBkZXRlcm1pbmUgaWYgUERGUGx1Z2luIHdpbGwgYmUgdXNlZC4KKworICAgICAg
ICBJdCB3b3VsZCBiZSBpZGVhbCB0byBjaGVjayBmb3IgYW4gYWx0ZXJuYXRpdmUgUERGIHBsdWdp
biBpbiB0aGUgY2FzZQorICAgICAgICB3aGVyZSBwbHVnaW5zIGFyZSBub3QgZGlzYWJsZWQsIGJ1
dCB0aGlzIGluZm9ybWF0aW9uIGN1cnJlbnRseSBsaXZlcworICAgICAgICBpbiB0aGUgVUlQcm9j
ZXNzLiBUaGlzIHBhdGNoIHdpbGwgZGVmaW5pdGVseSBmaXggU2FmYXJpLCB3aGVyZSBwbHVnaW5z
CisgICAgICAgIGFyZSBhbHdheXMgZGlzYWJsZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50IGNvbnN0KToKKyAgICAgICAg
KiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaDoKKwogMjAyMS0wMS0xMyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18y
MkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggQVNTRVJUIGluIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgZHVyaW5nIEFYSXNvbGF0ZWRPYmplY3QgaW5pdGlh
bGl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4MjYwMzUyMDUzYjM2YzdkNGM2MmEyMzFjNzY3YmNmNTJm
NTgxMDcuLjQ3NzI5OTllMDhkYzRjN2ZjMTRkNjg4ODNmMGJiMjNmZDdhMTc3NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDEtMTUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIHNheXMgIkJsb2NrZWQgUGx1Zy1pbiIg
aW5zdGVhZCBzaG93aW5nIGEgUERGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjA2NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MzcyOTQ0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdGVk
IG5hbWluZyB0byBiZXR0ZXIgbWF0Y2ggZnVuY3Rpb25hbGl0eS4gV2ViUGFnZTo6Y2FuVXNlUERG
UGx1Z2luCisgICAgICAgIG5vdyBjaGVja3MgaWYgUERGUGx1Z2luIGlzIGVuYWJsZWQgYW5kIHRo
ZSBjbGFzcyBmcm9tIFBERktpdCBleGlzdHMuCisgICAgICAgIFdlYlBhZ2U6OnNob3VsZFVzZVBE
RlBsdWdpbiBjaGVja3MgY2FuVXNlUERGUGx1Z2luKCkgYW5kIHRoZSBjb250ZW50CisgICAgICAg
IHR5cGUsIGFuZCBpcyBub3cgdXNlZCB0byBjaGVjayBpZiB3ZSBzaG91bGQgYnlwYXNzIHRoZSBD
U1AgY2hlY2sgZm9yCisgICAgICAgIGJsb2NrZWQgcGx1Z2lucyBpbiB0aGUgY2FzZSBvZiBQREZQ
bHVnaW4uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNo
b3VsZFVzZVBERlBsdWdpbiBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkVXNlUERGUGx1
Z2luIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y2FuVXNlUERGUGx1Z2luIGNvbnN0KToKKwogMjAyMS0wMS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3MDk2MSk6IEZsaXBncmlkIGNh
biBubyBsb25nZXIgY2FwdHVyZSB2aWRlbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggMmUxYmU2N2U2MDVkMjY0Mjc2MWIxMTVjZTc5N2Jl
NTBjYTUxYjExMS4uODEwMGEyOTZkZWQ0YWI5YjNlN2RlNWE1NjEwYjViODRlMmZmOTAwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0y
NSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29tbW9u
Vk0uaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0yNjgsNiArMjY5LDI0IEBAIHZv
aWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigp
CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKTsK
IH0KIAorYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzaG91bGRCeXBhc3NDU1BGb3JQREZQ
bHVnaW4oY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoUERG
S0lUX1BMVUdJTikKKyAgICAvLyBXZSBvbmx5IGNvbnNpZGVyIGJ5cGFzc2luZyB0aGlzIENTUCBj
aGVjayBpZiBwbHVnaW5zIGFyZSBkaXNhYmxlZC4gSW4gdGhhdCBjYXNlIHdlIGtub3cgdGhhdAor
ICAgIC8vIGFueSBwbHVnaW4gdXNlZCBpcyBhIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gZGV0YWls
LiBJdCBpcyBub3Qgc2FmZSB0byBza2lwIHRoaXMgY2hlY2sKKyAgICAvLyBpZiBwbHVnaW5zIGFy
ZSBlbmFibGVkIGluIGNhc2UgYW4gZXh0ZXJuYWwgcGx1Z2luIGlzIHVzZWQgdG8gbG9hZCBQREYg
Y29udGVudC4KKyAgICAvLyBGSVhNRTogQ2hlY2sgZm9yIGFsdGVybmF0aXZlIFBERiBwbHVnaW5z
IGhlcmUgc28gd2Uga25vdyB3aGV0aGVyIHdlIHdpbGwgdXNlIFBERlBsdWdpbi4KKyAgICBpZiAo
ZG9jdW1lbnQoKS5mcmFtZSgpLT5hcmVQbHVnaW5zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5z
aG91bGRVc2VQREZQbHVnaW4oY29udGVudFR5cGUsICBkb2N1bWVudCgpLnVybCgpLnBhdGgoKSkp
CisgICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGVudFR5
cGUpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50KGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkws
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgLy8gRWxlbWVudHMgaW4gdXNl
ciBhZ2VudCBzaG93IHRyZWUgc2hvdWxkIGxvYWQgd2hhdGV2ZXIgdGhlIGVtYmVkZGluZyBkb2N1
bWVudCBwb2xpY3kgaXMuCkBAIC0yODMsNyArMzAyLDcgQEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50OjpjYW5Mb2FkUGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBj
b24KIAogICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZO
ZWVkZWQoY29tcGxldGVkVVJMLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVz
dFR5cGU6OkxvYWQpOwogCi0gICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmpl
Y3RGcm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCisgICAgaWYgKCFzaG91bGRCeXBhc3NDU1BGb3JQ
REZQbHVnaW4obWltZVR5cGUpICYmICFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmplY3RG
cm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1
dG8mIGRlY2xhcmVkTWltZVR5cGUgPSBkb2N1bWVudCgpLmlzUGx1Z2luRG9jdW1lbnQoKSAmJiBk
b2N1bWVudCgpLm93bmVyRWxlbWVudCgpID8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggOTY0MmFiYzAyNGFhZTJkNTgyZmU2NGFlYzIwNmQ1NTUw
YTk3NWU4Ny4uNTM4N2U5YjFiZjNkZjJlMTgzYWI3YTk2MDg3YzMwODAwZmM3MjBjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTY4LDYgKzY4
LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBib29sIGlzUGx1Z0luSW1hZ2VFbGVtZW50
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgYm9vbCBzaG91bGRCeXBhc3ND
U1BGb3JQREZQbHVnaW4oY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBjYW5Mb2FkUGx1
Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKSBjb25zdDsKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJikgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMThhMWYxZTA4N2Iz
YTdlYWVhYTQ2M2YzNDlkMWFhN2VlYjk0YWFiOC4uZWM3MjNhY2UxZGMyNzFmYzcwZTk2ZGE1YTZm
NmY3NzFkZWFiNWMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTM4MCw2ICszODAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRF
bmFibGVJbkFwcEJyb3dzZXJQcml2YWN5UHJvdGVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkgeyB9
CiAjZW5kaWYKKworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDBmY2M4Y2RmNzkyZGQ3MWJjOGY0
NGJiMzcwM2M2ZTZkM2QwMzg4NDMuLjA5ZDc2Y2ZjN2RmZTQwNzE3ODk3M2RjZDZmYmM5M2VmYjkw
ZmQ2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTk0OCw2ICsxOTQ4
LDE3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om5vdGlmeVBhZ2VPZkFwcEJvdW5kQmVo
YXZpb3IoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKK2Jvb2wgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBERlBsdWdpbihjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlLCBjb25zdCBTdHJpbmdWaWV3JiBwYXRoKSBjb25zdAoreworICAgIGF1dG8qIHdlYlBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gd2ViUGFnZS0+c2hvdWxkVXNlUERGUGx1Z2luKGNvbnRlbnRU
eXBlLCBwYXRoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFBSRUZJWF9QQVJBTUVURVJTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDlkOWQ5
OWNjNGE1Y2E2NTA0M2FiNWMyZTA5MzYxMTg1NzYxMDg5YTAuLmM2ZDZmZjQ2ZWMyOWVkM2UxODkw
OGRkNTgzZmNkMmU0YWIzNDgwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0y
ODksNiArMjg5LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRFbmFibGVJbkFwcEJyb3dz
ZXJQcml2YWN5UHJvdGVjdGlvbnMoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG5vdGlmeVBhZ2VP
ZkFwcEJvdW5kQmVoYXZpb3IoKSBmaW5hbDsKICNlbmRpZgorCisjaWYgRU5BQkxFKFBERktJVF9Q
TFVHSU4pCisgICAgYm9vbCBzaG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgY29uc3QgU3RyaW5nVmlldyYgcGF0aCkgY29uc3QgZmluYWw7CisjZW5kaWYKKwogfTsK
IAogLy8gQXMgbG9uZyBhcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGV4aXN0cyBpbiBXZWJDb3Jl
LCB0aGlzIGNhbiByZXR1cm4gbnVsbHB0ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjg5MGI4Y2I2YTRhNmI2NjU2OGFhM2ZlYWI4ZTU2MWNi
ODNiZWUxOS4uNjI2Y2VmMTk5OWFkZjJiNDJkNTg2MDAzY2QyNzBjYWMxMjlmMTllOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEwNjEsNiAr
MTA2MSwxNiBAQCB2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxTY3Jl
ZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaQogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoUERGS0lUX1BMVUdJTikKK2Jvb2wgV2ViUGFnZTo6c2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZ1ZpZXcmIHBhdGgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGNhblVzZVBERlBsdWdpbigpCisgICAgICAgICYmIChNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1BERk9yUG9zdFNjcmlwdE1JTUVUeXBlKGNvbnRlbnRUeXBlKQorICAgICAgICB8fCAoY29u
dGVudFR5cGUuaXNFbXB0eSgpICYmIChwYXRoLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5w
ZGYiKQorICAgICAgICB8fCBwYXRoLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5wcyIpKSkp
OworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogUmVmUHRy
PFBsdWdpbj4gV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgSFRNTFBsdWdJ
bkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1l
dGVycywgU3RyaW5nJiBuZXdNSU1FVHlwZSkKQEAgLTEwODIsOCArMTA5Miw3IEBAIFJlZlB0cjxQ
bHVnaW4+IFdlYlBhZ2U6OmNyZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIEhUTUxQbHVnSW5F
bGVtZW50KiBwbHVnaW5FCiAKICAgICBpZiAoaXNVbnN1cHBvcnRlZCB8fCBpc0Jsb2NrZWRQbHVn
aW4gfHwgIXBsdWdpblByb2Nlc3NUb2tlbikgewogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQot
ICAgICAgICBhdXRvIHBhdGggPSBwYXJhbWV0ZXJzLnVybC5wYXRoKCk7Ci0gICAgICAgIGlmIChz
aG91bGRVc2VQREZQbHVnaW4oKSAmJiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBvc3RTY3Jp
cHRNSU1FVHlwZShwYXJhbWV0ZXJzLm1pbWVUeXBlKSB8fCAocGFyYW1ldGVycy5taW1lVHlwZS5p
c0VtcHR5KCkgJiYgKHBhdGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBkZiIpIHx8IHBh
dGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBzIikpKSkpCisgICAgICAgIGlmIChzaG91
bGRVc2VQREZQbHVnaW4ocGFyYW1ldGVycy5taW1lVHlwZSwgcGFyYW1ldGVycy51cmwucGF0aCgp
KSkKICAgICAgICAgICAgIHJldHVybiBQREZQbHVnaW46OmNyZWF0ZSgqZnJhbWUpOwogI2VuZGlm
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDExMzQ5MjJkNTBkNGY5NTgzM2EwMjA1MTIxNjQ5NjdhYTdhNzIzMzIuLmQ5MjQ3YThiODNmOTky
NDMwNTZkZDdkNzJhMGEwNjM0Y2JlYzNmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwODMsNyArMTA4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChib29sIGVuYWJs
ZWQpIHsgbV9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgPSBlbmFi
bGVkOyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBib29sIHNob3VsZFVzZVBERlBsdWdp
bigpIGNvbnN0OworICAgIGJvb2wgY2FuVXNlUERGUGx1Z2luKCkgY29uc3Q7CiAgICAgYm9vbCBw
ZGZQbHVnaW5FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wZGZQbHVnaW5FbmFibGVkOyB9CiAg
ICAgdm9pZCBzZXRQREZQbHVnaW5FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BkZlBsdWdpbkVu
YWJsZWQgPSBlbmFibGVkOyB9CiAKQEAgLTEzNzksNiArMTM3OSwxMCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGRpc3BhdGNoV2hlZWxFdmVudFdpdGhvdXRTY3JvbGxpbmcoY29uc3QgV2ViV2hlZWxF
dmVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCisjaWYgRU5BQkxFKFBE
RktJVF9QTFVHSU4pCisgICAgYm9vbCBzaG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSwgY29uc3QgU3RyaW5nVmlldyYgcGF0aCkgY29uc3Q7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGU1NGY2NDY2YjgyNDlhMDNjZWYxZWExZWNjMTAy
Mzk5YmEwZmNiMzYuLmZmYzQwMDk1Yjg4Zjg2ZDYyMTBhOTliZTM0YWY2OTIyNTVlM2FiZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCkBAIC0xOTYsNyArMTk2LDcgQEAgTlNPYmplY3QgKldlYlBhZ2U6OmFjY2Vzc2liaWxpdHlP
YmplY3RGb3JNYWluRnJhbWVQbHVnaW4oKQogICAgIHJldHVybiBuaWw7CiB9CiAKLWJvb2wgV2Vi
UGFnZTo6c2hvdWxkVXNlUERGUGx1Z2luKCkgY29uc3QKK2Jvb2wgV2ViUGFnZTo6Y2FuVXNlUERG
UGx1Z2luKCkgY29uc3QKIHsKICAgICByZXR1cm4gcGRmUGx1Z2luRW5hYmxlZCgpICYmIGNsYXNz
RnJvbVBERktpdChAIlBERkxheWVyQ29udHJvbGxlciIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNlNDlkM2ExY2U4OTJhZTcwMDFmMDk2
ZGVhNDQwYzg5YTE5YjNiNGUuLmIyNDUyMzAxMGY2NTA0OTkxMmQyYTljMzZhOTliNjk3OTc1YjBh
OWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wMS0xNSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgc2F5cyAiQmxvY2tlZCBQbHVnLWluIiBpbnN0
ZWFkIHNob3dpbmcgYSBQREYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMDY2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNzI5NDQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVBJIHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERG
Vmlldy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIxLTAxLTEzICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQg
c2NyaXB0IGFuZCBzdHlsZXNoZWV0IFNQSSwgcmVwbGFjZWQgd2l0aCBtb3JlIGluY2x1c2l2ZWx5
LW5hbWVkIFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1BERlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLUERGVmlldy5tbQppbmRleCAzNzBjZDZlOTJhMmRmOGUyYTYyMWNmYWY4NDM2YzJlMTY1NTg1
OTY4Li43MGZjZDdhZWIwODEyNTdlNDZhYWI5MmFkMThmZTIxOTYzZmFhMGFmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQpAQCAt
MzMsNiArMzMsNyBAQAogI2ltcG9ydCAiVGVzdFVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RV
UkxTY2hlbWVIYW5kbGVyLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxX
ZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcu
aD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CkBAIC0zNTksNCArMzYw
LDE2IEBAIFRFU1QoUERGSFVELCBNdWx0aXBsZUlGcmFtZXMpCiAgICAgRVhQRUNUX1RSVUUoaGFk
UmlnaHRGcmFtZSk7CiB9CiAKK1RFU1QoUERGSFVELCBMb2FkUERGVHlwZVdpdGhQbHVnaW5zQmxv
Y2tlZCkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIF9zZXRPdmVycmlk
ZUNvbnRlbnRTZWN1cml0eVBvbGljeTpAIm9iamVjdC1zcmMgJ25vbmUnIl07CisgICAgVGVzdFdL
V2ViVmlldyAqd2ViVmlldyA9IFtbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSBhdXRvcmVsZWFzZV07CisgICAgW3dlYlZpZXcgbG9hZERhdGE6cGRmRGF0YSgpIE1JTUVU
eXBlOkAiYXBwbGljYXRpb24vcGRmIiBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6QCIiIGJhc2VVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3d3dy5hcHBsZS5jb20vdGVzdFBhdGgiXV07
CisgICAgRVhQRUNUX0VRKHdlYlZpZXcuX3BkZkhVRHMuY291bnQsIDB1KTsKKyAgICBbd2ViVmll
dyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgRVhQRUNUX0VRKHdlYlZp
ZXcuX3BkZkhVRHMuY291bnQsIDF1KTsKKyAgICBjaGVja0ZyYW1lKHdlYlZpZXcuX3BkZkhVRHMu
YW55T2JqZWN0LmZyYW1lLCAwLCAwLCA4MDAsIDYwMCk7Cit9CisKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417911</attachid>
            <date>2021-01-19 14:05:41 -0800</date>
            <delta_ts>2021-01-19 17:20:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220665-20210119140540.patch</filename>
            <type>text/plain</type>
            <size>13367</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3ZDc2NzY0MDMwNjZi
N2IwM2NiMDRiYzE2MTZhYzA3ZTIyZmZkZS4uN2I1ZDYwODY1ZDkzOTg0MWEwOTE3MzZkMWI3MDE4
ZjUwYjU0M2Q5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAxLTE1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBz
YXlzICJCbG9ja2VkIFBsdWctaW4iIGluc3RlYWQgc2hvd2luZyBhIFBERgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDM3Mjk0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQncyBQREZQbHVnaW4gaXMgYSBicm93c2VyIGltcGxlbWVudGF0
aW9uIGRldGFpbCBhbmQgc2hvdWxkCisgICAgICAgIGJ5cGFzcyB0aGUgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoKSBjaGVjaworICAgICAgICBpbiBvcmRlciB0
byBub3QgYmUgYmxvY2tlZCBhbG9uZyB3aXRoIG90aGVyIHBsdWdpbnMuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6c2hvdWxkQnlwYXNzQ1NQRm9yUERGUGx1Z2luIGNvbnN0KToKKyAg
ICAgICAgT25seSBjb25zaWRlciB0aGlzIGlmIHBsdWdpbnMgYXJlIGRpc2FibGVkLCB0aGlzIHdh
eSB3ZSBjYW4gYmUKKyAgICAgICAgc3VyZSB0aGF0IGFueSBwbHVnaW4gdXNlZCB3aWxsIGJlIGJ1
aWx0LWluLiBUaGVuIG1hdGNoIHRoZSBjaGVjayBpbgorICAgICAgICBXZWJQYWdlOjpjcmVhdGVQ
bHVnaW4oKSB0byBkZXRlcm1pbmUgaWYgUERGUGx1Z2luIHdpbGwgYmUgdXNlZC4KKworICAgICAg
ICBJdCB3b3VsZCBiZSBpZGVhbCB0byBjaGVjayBmb3IgYW4gYWx0ZXJuYXRpdmUgUERGIHBsdWdp
biBpbiB0aGUgY2FzZQorICAgICAgICB3aGVyZSBwbHVnaW5zIGFyZSBub3QgZGlzYWJsZWQsIGJ1
dCB0aGlzIGluZm9ybWF0aW9uIGN1cnJlbnRseSBsaXZlcworICAgICAgICBpbiB0aGUgVUlQcm9j
ZXNzLiBUaGlzIHBhdGNoIHdpbGwgZGVmaW5pdGVseSBmaXggU2FmYXJpLCB3aGVyZSBwbHVnaW5z
CisgICAgICAgIGFyZSBhbHdheXMgZGlzYWJsZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50IGNvbnN0KToKKyAgICAgICAg
KiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaDoKKwogMjAyMS0wMS0xMyAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18y
MkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggQVNTRVJUIGluIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQgZHVyaW5nIEFYSXNvbGF0ZWRPYmplY3QgaW5pdGlh
bGl6YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4MjYwMzUyMDUzYjM2YzdkNGM2MmEyMzFjNzY3YmNmNTJm
NTgxMDcuLjQ3NzI5OTllMDhkYzRjN2ZjMTRkNjg4ODNmMGJiMjNmZDdhMTc3NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDEtMTUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIHNheXMgIkJsb2NrZWQgUGx1Zy1pbiIg
aW5zdGVhZCBzaG93aW5nIGEgUERGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjA2NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MzcyOTQ0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdGVk
IG5hbWluZyB0byBiZXR0ZXIgbWF0Y2ggZnVuY3Rpb25hbGl0eS4gV2ViUGFnZTo6Y2FuVXNlUERG
UGx1Z2luCisgICAgICAgIG5vdyBjaGVja3MgaWYgUERGUGx1Z2luIGlzIGVuYWJsZWQgYW5kIHRo
ZSBjbGFzcyBmcm9tIFBERktpdCBleGlzdHMuCisgICAgICAgIFdlYlBhZ2U6OnNob3VsZFVzZVBE
RlBsdWdpbiBjaGVja3MgY2FuVXNlUERGUGx1Z2luKCkgYW5kIHRoZSBjb250ZW50CisgICAgICAg
IHR5cGUsIGFuZCBpcyBub3cgdXNlZCB0byBjaGVjayBpZiB3ZSBzaG91bGQgYnlwYXNzIHRoZSBD
U1AgY2hlY2sgZm9yCisgICAgICAgIGJsb2NrZWQgcGx1Z2lucyBpbiB0aGUgY2FzZSBvZiBQREZQ
bHVnaW4uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNo
b3VsZFVzZVBERlBsdWdpbiBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkVXNlUERGUGx1
Z2luIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y2FuVXNlUERGUGx1Z2luIGNvbnN0KToKKwogMjAyMS0wMS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3MDk2MSk6IEZsaXBncmlkIGNh
biBubyBsb25nZXIgY2FwdHVyZSB2aWRlbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggMmUxYmU2N2U2MDVkMjY0Mjc2MWIxMTVjZTc5N2Jl
NTBjYTUxYjExMS4uODEwMGEyOTZkZWQ0YWI5YjNlN2RlNWE1NjEwYjViODRlMmZmOTAwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0y
NSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29tbW9u
Vk0uaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCkBAIC0yNjgsNiArMjY5LDI0IEBAIHZv
aWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigp
CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKTsK
IH0KIAorYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzaG91bGRCeXBhc3NDU1BGb3JQREZQ
bHVnaW4oY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoUERG
S0lUX1BMVUdJTikKKyAgICAvLyBXZSBvbmx5IGNvbnNpZGVyIGJ5cGFzc2luZyB0aGlzIENTUCBj
aGVjayBpZiBwbHVnaW5zIGFyZSBkaXNhYmxlZC4gSW4gdGhhdCBjYXNlIHdlIGtub3cgdGhhdAor
ICAgIC8vIGFueSBwbHVnaW4gdXNlZCBpcyBhIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gZGV0YWls
LiBJdCBpcyBub3Qgc2FmZSB0byBza2lwIHRoaXMgY2hlY2sKKyAgICAvLyBpZiBwbHVnaW5zIGFy
ZSBlbmFibGVkIGluIGNhc2UgYW4gZXh0ZXJuYWwgcGx1Z2luIGlzIHVzZWQgdG8gbG9hZCBQREYg
Y29udGVudC4KKyAgICAvLyBGSVhNRTogQ2hlY2sgZm9yIGFsdGVybmF0aXZlIFBERiBwbHVnaW5z
IGhlcmUgc28gd2Uga25vdyB3aGV0aGVyIHdlIHdpbGwgdXNlIFBERlBsdWdpbi4KKyAgICBpZiAo
ZG9jdW1lbnQoKS5mcmFtZSgpLT5hcmVQbHVnaW5zRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5z
aG91bGRVc2VQREZQbHVnaW4oY29udGVudFR5cGUsICBkb2N1bWVudCgpLnVybCgpLnBhdGgoKSkp
CisgICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGVudFR5
cGUpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50KGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkws
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgLy8gRWxlbWVudHMgaW4gdXNl
ciBhZ2VudCBzaG93IHRyZWUgc2hvdWxkIGxvYWQgd2hhdGV2ZXIgdGhlIGVtYmVkZGluZyBkb2N1
bWVudCBwb2xpY3kgaXMuCkBAIC0yODMsNyArMzAyLDcgQEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50OjpjYW5Mb2FkUGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBj
b24KIAogICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZO
ZWVkZWQoY29tcGxldGVkVVJMLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVz
dFR5cGU6OkxvYWQpOwogCi0gICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmpl
Y3RGcm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCisgICAgaWYgKCFzaG91bGRCeXBhc3NDU1BGb3JQ
REZQbHVnaW4obWltZVR5cGUpICYmICFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmplY3RG
cm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1
dG8mIGRlY2xhcmVkTWltZVR5cGUgPSBkb2N1bWVudCgpLmlzUGx1Z2luRG9jdW1lbnQoKSAmJiBk
b2N1bWVudCgpLm93bmVyRWxlbWVudCgpID8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggOTY0MmFiYzAyNGFhZTJkNTgyZmU2NGFlYzIwNmQ1NTUw
YTk3NWU4Ny4uNTM4N2U5YjFiZjNkZjJlMTgzYWI3YTk2MDg3YzMwODAwZmM3MjBjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTY4LDYgKzY4
LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBib29sIGlzUGx1Z0luSW1hZ2VFbGVtZW50
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgYm9vbCBzaG91bGRCeXBhc3ND
U1BGb3JQREZQbHVnaW4oY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBjYW5Mb2FkUGx1
Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKSBjb25zdDsKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJikgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMThhMWYxZTA4N2Iz
YTdlYWVhYTQ2M2YzNDlkMWFhN2VlYjk0YWFiOC4uZWM3MjNhY2UxZGMyNzFmYzcwZTk2ZGE1YTZm
NmY3NzFkZWFiNWMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTM4MCw2ICszODAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRF
bmFibGVJbkFwcEJyb3dzZXJQcml2YWN5UHJvdGVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkgeyB9
CiAjZW5kaWYKKworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nVmlldyYpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDBmY2M4Y2RmNzkyZGQ3MWJjOGY0
NGJiMzcwM2M2ZTZkM2QwMzg4NDMuLjA5ZDc2Y2ZjN2RmZTQwNzE3ODk3M2RjZDZmYmM5M2VmYjkw
ZmQ2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTk0OCw2ICsxOTQ4
LDE3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om5vdGlmeVBhZ2VPZkFwcEJvdW5kQmVo
YXZpb3IoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKK2Jvb2wgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBERlBsdWdpbihjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlLCBjb25zdCBTdHJpbmdWaWV3JiBwYXRoKSBjb25zdAoreworICAgIGF1dG8qIHdlYlBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gd2ViUGFnZS0+c2hvdWxkVXNlUERGUGx1Z2luKGNvbnRlbnRU
eXBlLCBwYXRoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFBSRUZJWF9QQVJBTUVURVJTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDlkOWQ5
OWNjNGE1Y2E2NTA0M2FiNWMyZTA5MzYxMTg1NzYxMDg5YTAuLmM2ZDZmZjQ2ZWMyOWVkM2UxODkw
OGRkNTgzZmNkMmU0YWIzNDgwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0y
ODksNiArMjg5LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRFbmFibGVJbkFwcEJyb3dz
ZXJQcml2YWN5UHJvdGVjdGlvbnMoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG5vdGlmeVBhZ2VP
ZkFwcEJvdW5kQmVoYXZpb3IoKSBmaW5hbDsKICNlbmRpZgorCisjaWYgRU5BQkxFKFBERktJVF9Q
TFVHSU4pCisgICAgYm9vbCBzaG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgY29uc3QgU3RyaW5nVmlldyYgcGF0aCkgY29uc3QgZmluYWw7CisjZW5kaWYKKwogfTsK
IAogLy8gQXMgbG9uZyBhcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGV4aXN0cyBpbiBXZWJDb3Jl
LCB0aGlzIGNhbiByZXR1cm4gbnVsbHB0ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjg5MGI4Y2I2YTRhNmI2NjU2OGFhM2ZlYWI4ZTU2MWNi
ODNiZWUxOS4uNjJkN2U5NThiNzI0NjE3MjM5NGI0ZTgwMjhkZjUyOTg5ZmJlMmM4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEwNjEsNiAr
MTA2MSwxNCBAQCB2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxTY3Jl
ZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaQogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoUERGS0lUX1BMVUdJTikKK2Jvb2wgV2ViUGFnZTo6c2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0
IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZ1ZpZXcmIHBhdGgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGNhblVzZVBERlBsdWdpbigpCisgICAgICAgICYmIChNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1BERk9yUG9zdFNjcmlwdE1JTUVUeXBlKGNvbnRlbnRUeXBlKSB8fCAoY29udGVudFR5cGUu
aXNFbXB0eSgpICYmIChwYXRoLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5wZGYiKSB8fCBw
YXRoLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5wcyIpKSkpOworfQorI2VuZGlmCisKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogUmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6
Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVs
ZW1lbnQsIGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgU3RyaW5nJiBuZXdN
SU1FVHlwZSkKQEAgLTEwODIsOCArMTA5MCw3IEBAIFJlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FCiAK
ICAgICBpZiAoaXNVbnN1cHBvcnRlZCB8fCBpc0Jsb2NrZWRQbHVnaW4gfHwgIXBsdWdpblByb2Nl
c3NUb2tlbikgewogI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQotICAgICAgICBhdXRvIHBhdGgg
PSBwYXJhbWV0ZXJzLnVybC5wYXRoKCk7Ci0gICAgICAgIGlmIChzaG91bGRVc2VQREZQbHVnaW4o
KSAmJiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBvc3RTY3JpcHRNSU1FVHlwZShwYXJhbWV0
ZXJzLm1pbWVUeXBlKSB8fCAocGFyYW1ldGVycy5taW1lVHlwZS5pc0VtcHR5KCkgJiYgKHBhdGgu
ZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBkZiIpIHx8IHBhdGguZW5kc1dpdGhJZ25vcmlu
Z0FTQ0lJQ2FzZSgiLnBzIikpKSkpCisgICAgICAgIGlmIChzaG91bGRVc2VQREZQbHVnaW4ocGFy
YW1ldGVycy5taW1lVHlwZSwgcGFyYW1ldGVycy51cmwucGF0aCgpKSkKICAgICAgICAgICAgIHJl
dHVybiBQREZQbHVnaW46OmNyZWF0ZSgqZnJhbWUpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDExMzQ5MjJkNTBkNGY5NTgz
M2EwMjA1MTIxNjQ5NjdhYTdhNzIzMzIuLmQ5MjQ3YThiODNmOTkyNDMwNTZkZDdkNzJhMGEwNjM0
Y2JlYzNmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTEwODMsNyArMTA4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFydGlmaWNpYWxQbHVn
aW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hcnRpZmljaWFs
UGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgPSBlbmFibGVkOyB9CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBib29sIHNob3VsZFVzZVBERlBsdWdpbigpIGNvbnN0OworICAgIGJv
b2wgY2FuVXNlUERGUGx1Z2luKCkgY29uc3Q7CiAgICAgYm9vbCBwZGZQbHVnaW5FbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9wZGZQbHVnaW5FbmFibGVkOyB9CiAgICAgdm9pZCBzZXRQREZQbHVn
aW5FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BkZlBsdWdpbkVuYWJsZWQgPSBlbmFibGVkOyB9
CiAKQEAgLTEzNzksNiArMTM3OSwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc3BhdGNoV2hl
ZWxFdmVudFdpdGhvdXRTY3JvbGxpbmcoY29uc3QgV2ViV2hlZWxFdmVudCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCisjaWYgRU5BQkxFKFBERktJVF9QTFVHSU4pCisgICAg
Ym9vbCBzaG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3Qg
U3RyaW5nVmlldyYgcGF0aCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCmluZGV4IGU1NGY2NDY2YjgyNDlhMDNjZWYxZWExZWNjMTAyMzk5YmEwZmNiMzYuLmZmYzQw
MDk1Yjg4Zjg2ZDYyMTBhOTliZTM0YWY2OTIyNTVlM2FiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xOTYsNyArMTk2
LDcgQEAgTlNPYmplY3QgKldlYlBhZ2U6OmFjY2Vzc2liaWxpdHlPYmplY3RGb3JNYWluRnJhbWVQ
bHVnaW4oKQogICAgIHJldHVybiBuaWw7CiB9CiAKLWJvb2wgV2ViUGFnZTo6c2hvdWxkVXNlUERG
UGx1Z2luKCkgY29uc3QKK2Jvb2wgV2ViUGFnZTo6Y2FuVXNlUERGUGx1Z2luKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gcGRmUGx1Z2luRW5hYmxlZCgpICYmIGNsYXNzRnJvbVBERktpdChAIlBERkxh
eWVyQ29udHJvbGxlciIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGNlNDlkM2ExY2U4OTJhZTcwMDFmMDk2ZGVhNDQwYzg5YTE5YjNiNGUu
LmIyNDUyMzAxMGY2NTA0OTkxMmQyYTljMzZhOTliNjk3OTc1YjBhOWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0wMS0xNSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAg
ICAgICBTYWZhcmkgc2F5cyAiQmxvY2tlZCBQbHVnLWluIiBpbnN0ZWFkIHNob3dpbmcgYSBQREYK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDY2NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNzI5NDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbToKKyAgICAgICAg
KFRFU1QpOgorCiAyMDIxLTAxLTEzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgc2NyaXB0IGFuZCBzdHlsZXNo
ZWV0IFNQSSwgcmVwbGFjZWQgd2l0aCBtb3JlIGluY2x1c2l2ZWx5LW5hbWVkIFNQSQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQppbmRl
eCAzNzBjZDZlOTJhMmRmOGUyYTYyMWNmYWY4NDM2YzJlMTY1NTg1OTY4Li43MGZjZDdhZWIwODEy
NTdlNDZhYWI5MmFkMThmZTIxOTYzZmFhMGFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2lt
cG9ydCAiVGVzdFVJRGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RVUkxTY2hlbWVIYW5kbGVyLmgi
CiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CkBAIC0zNTksNCArMzYwLDE2IEBAIFRFU1QoUERGSFVE
LCBNdWx0aXBsZUlGcmFtZXMpCiAgICAgRVhQRUNUX1RSVUUoaGFkUmlnaHRGcmFtZSk7CiB9CiAK
K1RFU1QoUERGSFVELCBMb2FkUERGVHlwZVdpdGhQbHVnaW5zQmxvY2tlZCkKK3sKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIF9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBv
bGljeTpAIm9iamVjdC1zcmMgJ25vbmUnIl07CisgICAgVGVzdFdLV2ViVmlldyAqd2ViVmlldyA9
IFtbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFzZV07
CisgICAgW3dlYlZpZXcgbG9hZERhdGE6cGRmRGF0YSgpIE1JTUVUeXBlOkAiYXBwbGljYXRpb24v
cGRmIiBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6QCIiIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJodHRwczovL3d3dy5hcHBsZS5jb20vdGVzdFBhdGgiXV07CisgICAgRVhQRUNUX0VRKHdl
YlZpZXcuX3BkZkhVRHMuY291bnQsIDB1KTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlk
RmluaXNoTmF2aWdhdGlvbl07CisgICAgRVhQRUNUX0VRKHdlYlZpZXcuX3BkZkhVRHMuY291bnQs
IDF1KTsKKyAgICBjaGVja0ZyYW1lKHdlYlZpZXcuX3BkZkhVRHMuYW55T2JqZWN0LmZyYW1lLCAw
LCAwLCA4MDAsIDYwMCk7Cit9CisKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417929</attachid>
            <date>2021-01-19 17:20:17 -0800</date>
            <delta_ts>2021-01-20 09:09:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220665-20210119172017.patch</filename>
            <type>text/plain</type>
            <size>12957</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3ZDc2NzY0MDMwNjZi
N2IwM2NiMDRiYzE2MTZhYzA3ZTIyZmZkZS4uYjgxYWI1MTBlYjlhOWI2NzU5YWEyMTIzZTE0MDY2
MjNkOWYxZTU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAxLTE1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBz
YXlzICJCbG9ja2VkIFBsdWctaW4iIGluc3RlYWQgc2hvd2luZyBhIFBERgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDM3Mjk0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQncyBQREZQbHVnaW4gaXMgYSBicm93c2VyIGltcGxlbWVudGF0
aW9uIGRldGFpbCBhbmQgc2hvdWxkCisgICAgICAgIGJ5cGFzcyB0aGUgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoKSBjaGVjaworICAgICAgICBpbiBvcmRlciB0
byBub3QgYmUgYmxvY2tlZCBhbG9uZyB3aXRoIG90aGVyIHBsdWdpbnMuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6c2hvdWxkQnlwYXNzQ1NQRm9yUERGUGx1Z2luIGNvbnN0KToKKyAg
ICAgICAgVGhlIGNoZWNrIGZvciB3aGV0aGVyIHRvIHVzZSBQREZQbHVnaW4gaGFwcGVucyBpbgor
ICAgICAgICBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oKS4gU29tZSBpbmZvcm1hdGlvbiB0aGVyZSBs
aWtlIGlzVW5zdXBwb3J0ZWQsCisgICAgICAgIGlzQmxvY2tlZFBsdWdpbiBhbmQgcGx1Z2luUHJv
Y2Vzc1Rva2VuIGFyZSBzZW50IGZyb20gdGhlIFVJUHJvY2VzcworICAgICAgICBhZnRlciB0aGUg
Q1NQIGNoZWNrIHNvIHRoZXkgYXJlIHVuYXZhaWxhYmxlIGhlcmUsIGJ1dCB3ZSBrbm93IHRoYXQg
UERGUGx1Z2luCisgICAgICAgIHdpbGwgYWx3YXlzIGJlIHVzZWQgd2hlbiBwbHVnaW5zIGFyZSBk
aXNhYmxlZCBhbmQgY2FuIHVzZSB0aGF0IGluZm9ybWF0aW9uCisgICAgICAgIHRvIGtub3cgd2hl
dGhlciB0byBieXBhc3MgQ1NQIGhlcmUgaW4gbWFueSBjYXNlcy4gVGhpcyB3aWxsIG5vdCByZWxh
eAorICAgICAgICBDU1Agb3IgY2hhbmdlIGJlaGF2aW9yIGluIG90aGVyIGNhc2VzLgorCisgICAg
ICAgIEl0IHdvdWxkIGJlIGlkZWFsIHRvIGNoZWNrIGZvciBhbiBhbHRlcm5hdGl2ZSBQREYgcGx1
Z2luIGluIHRoZSBjYXNlCisgICAgICAgIHdoZXJlIHBsdWdpbnMgYXJlIG5vdCBkaXNhYmxlZCwg
YnV0IHRoaXMgaW5mb3JtYXRpb24gY3VycmVudGx5IGxpdmVzCisgICAgICAgIGluIHRoZSBVSVBy
b2Nlc3MgYW5kIGlzIG5vdCBzZW50IHRvIHRoZSBXZWJQcm9jZXNzIHVudGlsIGFmdGVyIHRoaXMK
KyAgICAgICAgY2hlY2suIFRoaXMgcGF0Y2ggd2lsbCBkZWZpbml0ZWx5IGZpeCBTYWZhcmksIHdo
ZXJlIHBsdWdpbnMgYXJlIGFsd2F5cyBkaXNhYmxlZC4KKworICAgICAgICAoV2ViQ29yZTo6SFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6Y2FuTG9hZFBsdWdJbkNvbnRlbnQgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTAxLTEzICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNn
XzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBBU1NFUlQgaW4gQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBkdXJpbmcgQVhJc29sYXRlZE9iamVjdCBpbml0
aWFsaXphdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODgyNjAzNTIwNTNiMzZjN2Q0YzYyYTIzMWM3NjdiY2Y1
MmY1ODEwNy4uZjM2NWJhMzA2MTVmZmQwODA0Y2I5MzBlMTc3MWRlOTJkMDM2YmQ2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wMS0xNSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVf
Y2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgc2F5cyAiQmxvY2tlZCBQbHVnLWlu
IiBpbnN0ZWFkIHNob3dpbmcgYSBQREYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMDY2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNzI5NDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBERlBsdWdpbiBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkVXNlUERGUGx1Z2luIGNv
bnN0KToKKwogMjAyMS0wMS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjI3MDk2MSk6IEZsaXBncmlkIGNhbiBubyBsb25nZXIgY2FwdHVy
ZSB2aWRlbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKaW5kZXggMmUxYmU2N2U2MDVkMjY0Mjc2MWIxMTVjZTc5N2JlNTBjYTUxYjExMS4uMzNkNzRm
ODYxOGNiYmY5NTNjYmZiNzMzYjE1YmI3OWYwM2E0MTVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29tbW9uVk0uaCIKICNpbmNsdWRlICJD
b250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCkBAIC0yNjgsNiArMjY5LDIzIEBAIHZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigpCiAgICAgSFRNTFBsdWdJbkVs
ZW1lbnQ6OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKTsKIH0KIAorYm9vbCBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50OjpzaG91bGRCeXBhc3NDU1BGb3JQREZQbHVnaW4oY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKKyAgICAv
LyBXZSBvbmx5IGNvbnNpZGVyIGJ5cGFzc2luZyB0aGlzIENTUCBjaGVjayBpZiBwbHVnaW5zIGFy
ZSBkaXNhYmxlZC4gSW4gdGhhdCBjYXNlIHdlIGtub3cgdGhhdAorICAgIC8vIGFueSBwbHVnaW4g
dXNlZCBpcyBhIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gZGV0YWlsLiBJdCBpcyBub3Qgc2FmZSB0
byBza2lwIHRoaXMgY2hlY2sKKyAgICAvLyBpZiBwbHVnaW5zIGFyZSBlbmFibGVkIGluIGNhc2Ug
YW4gZXh0ZXJuYWwgcGx1Z2luIGlzIHVzZWQgdG8gbG9hZCBQREYgY29udGVudC4KKyAgICAvLyBG
SVhNRTogQ2hlY2sgZm9yIGFsdGVybmF0aXZlIFBERiBwbHVnaW5zIGhlcmUgc28gd2UgY2FuIGJ5
cGFzcyB0aGlzIENTUCBjaGVjayBmb3IgUERGUGx1Z2luIGV2ZW4gd2hlbiBwbHVnaW5zIGFyZSBl
bmFibGVkLgorICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCktPmFyZVBsdWdpbnNFbmFibGVkKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCkt
PmxvYWRlcigpLmNsaWVudCgpLnNob3VsZFVzZVBERlBsdWdpbihjb250ZW50VHlwZSwgZG9jdW1l
bnQoKS51cmwoKS5wYXRoKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGVudFR5cGUp
OworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBib29sIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmNhbkxvYWRQbHVnSW5Db250ZW50KGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgLy8gRWxlbWVudHMgaW4gdXNlciBh
Z2VudCBzaG93IHRyZWUgc2hvdWxkIGxvYWQgd2hhdGV2ZXIgdGhlIGVtYmVkZGluZyBkb2N1bWVu
dCBwb2xpY3kgaXMuCkBAIC0yODMsNyArMzAxLDcgQEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpjYW5Mb2FkUGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb24K
IAogICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeS51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVk
ZWQoY29tcGxldGVkVVJMLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5
cGU6OkxvYWQpOwogCi0gICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmplY3RG
cm9tU291cmNlKGNvbXBsZXRlZFVSTCkpCisgICAgaWYgKCFzaG91bGRCeXBhc3NDU1BGb3JQREZQ
bHVnaW4obWltZVR5cGUpICYmICFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmplY3RGcm9t
U291cmNlKGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8m
IGRlY2xhcmVkTWltZVR5cGUgPSBkb2N1bWVudCgpLmlzUGx1Z2luRG9jdW1lbnQoKSAmJiBkb2N1
bWVudCgpLm93bmVyRWxlbWVudCgpID8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmgKaW5kZXggOTY0MmFiYzAyNGFhZTJkNTgyZmU2NGFlYzIwNmQ1NTUwYTk3
NWU4Ny4uNTM4N2U5YjFiZjNkZjJlMTgzYWI3YTk2MDg3YzMwODAwZmM3MjBjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTY4LDYgKzY4LDcg
QEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBib29sIGlzUGx1Z0luSW1hZ2VFbGVtZW50KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgYm9vbCBzaG91bGRCeXBhc3NDU1BG
b3JQREZQbHVnaW4oY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBjYW5Mb2FkUGx1Z0lu
Q29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSBjb25zdDsKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJikgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMThhMWYxZTA4N2IzYTdl
YWVhYTQ2M2YzNDlkMWFhN2VlYjk0YWFiOC4uYTIzMWY4MDQ3ZmUzZmJjZjdmNTdmNDU2MTk0NzQw
YmE3MTJmZDNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
QEAgLTM4MCw2ICszODAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbmFi
bGVJbkFwcEJyb3dzZXJQcml2YWN5UHJvdGVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkgeyB9CiAj
ZW5kaWYKKworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRVc2VQREZQbHVnaW4oY29uc3QgU3RyaW5nJiwgU3RyaW5nVmlldykgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMGZjYzhjZGY3OTJkZDcxYmM4ZjQ0YmIzNzAzYzZl
NmQzZDAzODg0My4uNjhmZDY2MWU0MWJlMmRmM2ZkM2FhMzgxODgwNGMyZjZlMjFmYjNmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xOTQ4LDYgKzE5NDgsMTQgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6bm90aWZ5UGFnZU9mQXBwQm91bmRCZWhhdmlvcigpCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorYm9vbCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0
cmluZ1ZpZXcgcGF0aCkgY29uc3QKK3sKKyAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFn
ZSgpOworICAgIHJldHVybiB3ZWJQYWdlICYmIHdlYlBhZ2UtPnNob3VsZFVzZVBERlBsdWdpbihj
b250ZW50VHlwZSwgcGF0aCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICN1bmRlZiBQUkVGSVhfUEFSQU1FVEVSUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCA5ZDlkOTljYzRhNWNhNjUwNDNhYjVjMmUwOTM2MTE4NTc2MTA4OWEwLi4yMzQ3ZGI5YTg5ZTFh
NjhhMDk2YTA5YTE0ZWM0Nzk1OGEwOTFhODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMjg5LDYgKzI4OSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkRW5hYmxlSW5B
cHBCcm93c2VyUHJpdmFjeVByb3RlY3Rpb25zKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBub3Rp
ZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkgZmluYWw7CiAjZW5kaWYKKworI2lmIEVOQUJMRShQ
REZLSVRfUExVR0lOKQorICAgIGJvb2wgc2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUsIFN0cmluZ1ZpZXcgcGF0aCkgY29uc3QgZmluYWw7CisjZW5kaWYKKwogfTsK
IAogLy8gQXMgbG9uZyBhcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGV4aXN0cyBpbiBXZWJDb3Jl
LCB0aGlzIGNhbiByZXR1cm4gbnVsbHB0ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjg5MGI4Y2I2YTRhNmI2NjU2OGFhM2ZlYWI4ZTU2MWNi
ODNiZWUxOS4uMjgzYzRhNzYzMjRhOGIzZDNjYjQ2NGZmNWE0NjJjYWE1MmFjNjY2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEwODIsOCAr
MTA4Miw3IEBAIFJlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNyZWF0ZVBsdWdpbihXZWJGcmFtZSog
ZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FCiAKICAgICBpZiAoaXNVbnN1cHBvcnRl
ZCB8fCBpc0Jsb2NrZWRQbHVnaW4gfHwgIXBsdWdpblByb2Nlc3NUb2tlbikgewogI2lmIEVOQUJM
RShQREZLSVRfUExVR0lOKQotICAgICAgICBhdXRvIHBhdGggPSBwYXJhbWV0ZXJzLnVybC5wYXRo
KCk7Ci0gICAgICAgIGlmIChzaG91bGRVc2VQREZQbHVnaW4oKSAmJiAoTUlNRVR5cGVSZWdpc3Ry
eTo6aXNQREZPclBvc3RTY3JpcHRNSU1FVHlwZShwYXJhbWV0ZXJzLm1pbWVUeXBlKSB8fCAocGFy
YW1ldGVycy5taW1lVHlwZS5pc0VtcHR5KCkgJiYgKHBhdGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJ
Q2FzZSgiLnBkZiIpIHx8IHBhdGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBzIikpKSkp
CisgICAgICAgIGlmIChzaG91bGRVc2VQREZQbHVnaW4ocGFyYW1ldGVycy5taW1lVHlwZSwgcGFy
YW1ldGVycy51cmwucGF0aCgpKSkKICAgICAgICAgICAgIHJldHVybiBQREZQbHVnaW46OmNyZWF0
ZSgqZnJhbWUpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDExMzQ5MjJkNTBkNGY5NTgzM2EwMjA1MTIxNjQ5NjdhYTdhNzIz
MzIuLmE0NDc3ZGM3ZWVkMmQxYWU3OTFiZjc1MTViOTY0NGYzZjYxMzNkN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwODMsNyArMTA4Myw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25E
ZWxheUVuYWJsZWQgPSBlbmFibGVkOyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBib29s
IHNob3VsZFVzZVBERlBsdWdpbigpIGNvbnN0OwogICAgIGJvb2wgcGRmUGx1Z2luRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGRmUGx1Z2luRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0UERGUGx1
Z2luRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9wZGZQbHVnaW5FbmFibGVkID0gZW5hYmxlZDsg
fQogCkBAIC0xMzc5LDYgKzEzNzgsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaFdo
ZWVsRXZlbnRXaXRob3V0U2Nyb2xsaW5nKGNvbnN0IFdlYldoZWVsRXZlbnQmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAg
IGJvb2wgc2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmlu
Z1ZpZXcgcGF0aCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmlu
ZGV4IGU1NGY2NDY2YjgyNDlhMDNjZWYxZWExZWNjMTAyMzk5YmEwZmNiMzYuLjI1Y2U2NDhhYWI1
MTQ5YzgxZDllMmIzYzU4ODZiNmY1Mzg5NDMxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xOTYsOSArMTk2LDEzIEBA
IE5TT2JqZWN0ICpXZWJQYWdlOjphY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yTWFpbkZyYW1lUGx1Z2lu
KCkKICAgICByZXR1cm4gbmlsOwogfQogCi1ib29sIFdlYlBhZ2U6OnNob3VsZFVzZVBERlBsdWdp
bigpIGNvbnN0Citib29sIFdlYlBhZ2U6OnNob3VsZFVzZVBERlBsdWdpbihjb25zdCBTdHJpbmcm
IGNvbnRlbnRUeXBlLCBTdHJpbmdWaWV3IHBhdGgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBkZlBs
dWdpbkVuYWJsZWQoKSAmJiBjbGFzc0Zyb21QREZLaXQoQCJQREZMYXllckNvbnRyb2xsZXIiKTsK
KyAgICByZXR1cm4gcGRmUGx1Z2luRW5hYmxlZCgpCisgICAgICAgICYmIGNsYXNzRnJvbVBERktp
dChAIlBERkxheWVyQ29udHJvbGxlciIpCisgICAgICAgICYmIChNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1BERk9yUG9zdFNjcmlwdE1JTUVUeXBlKGNvbnRlbnRUeXBlKQorICAgICAgICAgICAgfHwgKGNv
bnRlbnRUeXBlLmlzRW1wdHkoKQorICAgICAgICAgICAgICAgICYmIChwYXRoLmVuZHNXaXRoSWdu
b3JpbmdBU0NJSUNhc2UoIi5wZGYiKSB8fCBwYXRoLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2Uo
Ii5wcyIpKSkpOwogfQogCiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IFNlbGVjdG9y
TmFtZU1hcDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBjZTQ5ZDNhMWNlODkyYWU3MDAxZjA5NmRlYTQ0MGM4OWExOWIzYjRlLi5iMjQ1MjMwMTBm
NjUwNDk5MTJkMmE5YzM2YTk5YjY5Nzk3NWIwYTllIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDEtMTUgIEth
dGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJp
IHNheXMgIkJsb2NrZWQgUGx1Zy1pbiIgaW5zdGVhZCBzaG93aW5nIGEgUERGCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA2NjUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY0MzcyOTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW06CisgICAgICAgIChURVNUKToKKwog
MjAyMS0wMS0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSBkZXByZWNhdGVkIHNjcmlwdCBhbmQgc3R5bGVzaGVldCBTUEksIHJl
cGxhY2VkIHdpdGggbW9yZSBpbmNsdXNpdmVseS1uYW1lZCBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KaW5kZXggMzcwY2Q2ZTky
YTJkZjhlMmE2MjFjZmFmODQzNmMyZTE2NTU4NTk2OC4uNzBmY2Q3YWViMDgxMjU3ZTQ2YWFiOTJh
ZDE4ZmUyMTk2M2ZhYTBhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlRlc3RV
SURlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgogI2ltcG9ydCAi
VGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oPgpAQCAtMzU5LDQgKzM2MCwxNiBAQCBURVNUKFBERkhVRCwgTXVsdGlwbGVJ
RnJhbWVzKQogICAgIEVYUEVDVF9UUlVFKGhhZFJpZ2h0RnJhbWUpOwogfQogCitURVNUKFBERkhV
RCwgTG9hZFBERlR5cGVXaXRoUGx1Z2luc0Jsb2NrZWQpCit7CisgICAgYXV0byBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAg
ICBbY29uZmlndXJhdGlvbiBfc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6QCJvYmpl
Y3Qtc3JjICdub25lJyJdOworICAgIFRlc3RXS1dlYlZpZXcgKndlYlZpZXcgPSBbW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOworICAgIFt3ZWJW
aWV3IGxvYWREYXRhOnBkZkRhdGEoKSBNSU1FVHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgY2hhcmFj
dGVyRW5jb2RpbmdOYW1lOkAiIiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6
Ly93d3cuYXBwbGUuY29tL3Rlc3RQYXRoIl1dOworICAgIEVYUEVDVF9FUSh3ZWJWaWV3Ll9wZGZI
VURzLmNvdW50LCAwdSk7CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25dOworICAgIEVYUEVDVF9FUSh3ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAxdSk7CisgICAg
Y2hlY2tGcmFtZSh3ZWJWaWV3Ll9wZGZIVURzLmFueU9iamVjdC5mcmFtZSwgMCwgMCwgODAwLCA2
MDApOworfQorCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417973</attachid>
            <date>2021-01-20 09:09:05 -0800</date>
            <delta_ts>2021-01-20 09:44:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220665-20210120090904.patch</filename>
            <type>text/plain</type>
            <size>12939</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY3ZDc2NzY0MDMwNjZi
N2IwM2NiMDRiYzE2MTZhYzA3ZTIyZmZkZS4uNmYyZTZiMjM5YjhmYmI3Y2M3MzMzZDExMzA5NTRm
ZDAxYjM3OGQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAxLTE1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBz
YXlzICJCbG9ja2VkIFBsdWctaW4iIGluc3RlYWQgc2hvd2luZyBhIFBERgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjY1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDM3Mjk0ND4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBXZWJLaXQncyBQREZQbHVnaW4gaXMgYSBicm93c2VyIGltcGxlbWVudGF0aW9u
IGRldGFpbCBhbmQgc2hvdWxkCisgICAgICAgIGJ5cGFzcyB0aGUgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoKSBjaGVjaworICAgICAgICBpbiBvcmRlciB0byBu
b3QgYmUgYmxvY2tlZCBhbG9uZyB3aXRoIG90aGVyIHBsdWdpbnMuCisKKyAgICAgICAgKiBodG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJ
bkltYWdlRWxlbWVudDo6c2hvdWxkQnlwYXNzQ1NQRm9yUERGUGx1Z2luIGNvbnN0KToKKyAgICAg
ICAgVGhlIGNoZWNrIGZvciB3aGV0aGVyIHRvIHVzZSBQREZQbHVnaW4gaGFwcGVucyBpbgorICAg
ICAgICBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oKS4gU29tZSBpbmZvcm1hdGlvbiB0aGVyZSBsaWtl
IGlzVW5zdXBwb3J0ZWQsCisgICAgICAgIGlzQmxvY2tlZFBsdWdpbiBhbmQgcGx1Z2luUHJvY2Vz
c1Rva2VuIGFyZSBzZW50IGZyb20gdGhlIFVJUHJvY2VzcworICAgICAgICBhZnRlciB0aGUgQ1NQ
IGNoZWNrIHNvIHRoZXkgYXJlIHVuYXZhaWxhYmxlIGhlcmUsIGJ1dCB3ZSBrbm93IHRoYXQgUERG
UGx1Z2luCisgICAgICAgIHdpbGwgYWx3YXlzIGJlIHVzZWQgd2hlbiBwbHVnaW5zIGFyZSBkaXNh
YmxlZCBhbmQgY2FuIHVzZSB0aGF0IGluZm9ybWF0aW9uCisgICAgICAgIHRvIGtub3cgd2hldGhl
ciB0byBieXBhc3MgQ1NQIGhlcmUgaW4gbWFueSBjYXNlcy4gVGhpcyB3aWxsIG5vdCByZWxheAor
ICAgICAgICBDU1Agb3IgY2hhbmdlIGJlaGF2aW9yIGluIG90aGVyIGNhc2VzLgorCisgICAgICAg
IEl0IHdvdWxkIGJlIGlkZWFsIHRvIGNoZWNrIGZvciBhbiBhbHRlcm5hdGl2ZSBQREYgcGx1Z2lu
IGluIHRoZSBjYXNlCisgICAgICAgIHdoZXJlIHBsdWdpbnMgYXJlIG5vdCBkaXNhYmxlZCwgYnV0
IHRoaXMgaW5mb3JtYXRpb24gY3VycmVudGx5IGxpdmVzCisgICAgICAgIGluIHRoZSBVSVByb2Nl
c3MgYW5kIGlzIG5vdCBzZW50IHRvIHRoZSBXZWJQcm9jZXNzIHVudGlsIGFmdGVyIHRoaXMKKyAg
ICAgICAgY2hlY2suIFRoaXMgcGF0Y2ggd2lsbCBkZWZpbml0ZWx5IGZpeCBTYWZhcmksIHdoZXJl
IHBsdWdpbnMgYXJlIGFsd2F5cyBkaXNhYmxlZC4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6Y2FuTG9hZFBsdWdJbkNvbnRlbnQgY29uc3QpOgorICAgICAgICAq
IGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oOgorCiAyMDIxLTAxLTEzICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIy
QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBBU1NFUlQgaW4gQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCBkdXJpbmcgQVhJc29sYXRlZE9iamVjdCBpbml0aWFs
aXphdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggODgyNjAzNTIwNTNiMzZjN2Q0YzYyYTIzMWM3NjdiY2Y1MmY1
ODEwNy4uNmEzNDEyYzE1MzQxM2RlNDlhZjA2ZDRhNDBiYmRkMTU0NjRjMzdiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0wMS0xNSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hl
bmV5QGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgc2F5cyAiQmxvY2tlZCBQbHVnLWluIiBp
bnN0ZWFkIHNob3dpbmcgYSBQREYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMDY2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQzNzI5NDQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBERlBsdWdpbiBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkVXNlUERGUGx1Z2luIGNvbnN0KToK
KwogMjAyMS0wMS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjI3MDk2MSk6IEZsaXBncmlkIGNhbiBubyBsb25nZXIgY2FwdHVyZSB2aWRl
bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5k
ZXggMmUxYmU2N2U2MDVkMjY0Mjc2MWIxMTVjZTc5N2JlNTBjYTUxYjExMS4uMzNkNzRmODYxOGNi
YmY5NTNjYmZiNzMzYjE1YmI3OWYwM2E0MTVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29tbW9uVk0uaCIKICNpbmNsdWRlICJDb250ZW50
U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCkBAIC0yNjgsNiArMjY5LDIzIEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6cmVzdW1lRnJvbURvY3VtZW50U3VzcGVuc2lvbigpCiAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6
OnJlc3VtZUZyb21Eb2N1bWVudFN1c3BlbnNpb24oKTsKIH0KIAorYm9vbCBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50OjpzaG91bGRCeXBhc3NDU1BGb3JQREZQbHVnaW4oY29uc3QgU3RyaW5nJiBjb250
ZW50VHlwZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKKyAgICAvLyBXZSBv
bmx5IGNvbnNpZGVyIGJ5cGFzc2luZyB0aGlzIENTUCBjaGVjayBpZiBwbHVnaW5zIGFyZSBkaXNh
YmxlZC4gSW4gdGhhdCBjYXNlIHdlIGtub3cgdGhhdAorICAgIC8vIGFueSBwbHVnaW4gdXNlZCBp
cyBhIGJyb3dzZXIgaW1wbGVtZW50YXRpb24gZGV0YWlsLiBJdCBpcyBub3Qgc2FmZSB0byBza2lw
IHRoaXMgY2hlY2sKKyAgICAvLyBpZiBwbHVnaW5zIGFyZSBlbmFibGVkIGluIGNhc2UgYW4gZXh0
ZXJuYWwgcGx1Z2luIGlzIHVzZWQgdG8gbG9hZCBQREYgY29udGVudC4KKyAgICAvLyBGSVhNRTog
Q2hlY2sgZm9yIGFsdGVybmF0aXZlIFBERiBwbHVnaW5zIGhlcmUgc28gd2UgY2FuIGJ5cGFzcyB0
aGlzIENTUCBjaGVjayBmb3IgUERGUGx1Z2luIGV2ZW4gd2hlbiBwbHVnaW5zIGFyZSBlbmFibGVk
LgorICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCktPmFyZVBsdWdpbnNFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmxvYWRl
cigpLmNsaWVudCgpLnNob3VsZFVzZVBERlBsdWdpbihjb250ZW50VHlwZSwgZG9jdW1lbnQoKS51
cmwoKS5wYXRoKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGVudFR5cGUpOworICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OmNhbkxvYWRQbHVnSW5Db250ZW50KGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgLy8gRWxlbWVudHMgaW4gdXNlciBhZ2VudCBz
aG93IHRyZWUgc2hvdWxkIGxvYWQgd2hhdGV2ZXIgdGhlIGVtYmVkZGluZyBkb2N1bWVudCBwb2xp
Y3kgaXMuCkBAIC0yODMsNyArMzAxLDcgQEAgYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpj
YW5Mb2FkUGx1Z0luQ29udGVudChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb24KIAogICAg
IGNvbnRlbnRTZWN1cml0eVBvbGljeS51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQoY29t
cGxldGVkVVJMLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Okxv
YWQpOwogCi0gICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmplY3RGcm9tU291
cmNlKGNvbXBsZXRlZFVSTCkpCisgICAgaWYgKCFzaG91bGRCeXBhc3NDU1BGb3JQREZQbHVnaW4o
bWltZVR5cGUpICYmICFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dPYmplY3RGcm9tU291cmNl
KGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8mIGRlY2xh
cmVkTWltZVR5cGUgPSBkb2N1bWVudCgpLmlzUGx1Z2luRG9jdW1lbnQoKSAmJiBkb2N1bWVudCgp
Lm93bmVyRWxlbWVudCgpID8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmgKaW5kZXggOTY0MmFiYzAyNGFhZTJkNTgyZmU2NGFlYzIwNmQ1NTUwYTk3NWU4Ny4u
NTM4N2U5YjFiZjNkZjJlMTgzYWI3YTk2MDg3YzMwODAwZmM3MjBjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTY4LDYgKzY4LDcgQEAgcHJv
dGVjdGVkOgogcHJpdmF0ZToKICAgICBib29sIGlzUGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgYm9vbCBzaG91bGRCeXBhc3NDU1BGb3JQREZQ
bHVnaW4oY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBjYW5Mb2FkUGx1Z0luQ29udGVu
dChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25z
dDsKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMThhMWYxZTA4N2IzYTdlYWVhYTQ2
M2YzNDlkMWFhN2VlYjk0YWFiOC4uYTIzMWY4MDQ3ZmUzZmJjZjdmNTdmNDU2MTk0NzQwYmE3MTJm
ZDNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM4
MCw2ICszODAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbmFibGVJbkFw
cEJyb3dzZXJQcml2YWN5UHJvdGVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3VuZEJlaGF2aW9yKCkgeyB9CiAjZW5kaWYK
KworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQ
REZQbHVnaW4oY29uc3QgU3RyaW5nJiwgU3RyaW5nVmlldykgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggMGZjYzhjZGY3OTJkZDcxYmM4ZjQ0YmIzNzAzYzZlNmQzZDAz
ODg0My4uYzg3MDVlNWRjZjc4MDQ3NzUzOWUwMjFkNDdiYWNjOWIzYTAxNGJlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xOTQ4LDYgKzE5NDgsMTQgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6bm90aWZ5UGFnZU9mQXBwQm91bmRCZWhhdmlvcigpCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6c2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmluZ1Zp
ZXcgcGF0aCkgY29uc3QKK3sKKyAgICBhdXRvKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAg
IHJldHVybiBwYWdlICYmIHBhZ2UtPnNob3VsZFVzZVBERlBsdWdpbihjb250ZW50VHlwZSwgcGF0
aCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBQUkVGSVhf
UEFSQU1FVEVSUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5ZDlkOTljYzRhNWNh
NjUwNDNhYjVjMmUwOTM2MTE4NTc2MTA4OWEwLi4yMzQ3ZGI5YTg5ZTFhNjhhMDk2YTA5YTE0ZWM0
Nzk1OGEwOTFhODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjg5LDYgKzI4
OSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkRW5hYmxlSW5BcHBCcm93c2VyUHJpdmFj
eVByb3RlY3Rpb25zKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBub3RpZnlQYWdlT2ZBcHBCb3Vu
ZEJlaGF2aW9yKCkgZmluYWw7CiAjZW5kaWYKKworI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQor
ICAgIGJvb2wgc2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0
cmluZ1ZpZXcgcGF0aCkgY29uc3QgZmluYWw7CisjZW5kaWYKKwogfTsKIAogLy8gQXMgbG9uZyBh
cyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGV4aXN0cyBpbiBXZWJDb3JlLCB0aGlzIGNhbiByZXR1
cm4gbnVsbHB0ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggZjg5MGI4Y2I2YTRhNmI2NjU2OGFhM2ZlYWI4ZTU2MWNiODNiZWUxOS4uMjgzYzRh
NzYzMjRhOGIzZDNjYjQ2NGZmNWE0NjJjYWE1MmFjNjY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEwODIsOCArMTA4Miw3IEBAIFJlZlB0
cjxQbHVnaW4+IFdlYlBhZ2U6OmNyZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIEhUTUxQbHVn
SW5FbGVtZW50KiBwbHVnaW5FCiAKICAgICBpZiAoaXNVbnN1cHBvcnRlZCB8fCBpc0Jsb2NrZWRQ
bHVnaW4gfHwgIXBsdWdpblByb2Nlc3NUb2tlbikgewogI2lmIEVOQUJMRShQREZLSVRfUExVR0lO
KQotICAgICAgICBhdXRvIHBhdGggPSBwYXJhbWV0ZXJzLnVybC5wYXRoKCk7Ci0gICAgICAgIGlm
IChzaG91bGRVc2VQREZQbHVnaW4oKSAmJiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBvc3RT
Y3JpcHRNSU1FVHlwZShwYXJhbWV0ZXJzLm1pbWVUeXBlKSB8fCAocGFyYW1ldGVycy5taW1lVHlw
ZS5pc0VtcHR5KCkgJiYgKHBhdGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBkZiIpIHx8
IHBhdGguZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLnBzIikpKSkpCisgICAgICAgIGlmIChz
aG91bGRVc2VQREZQbHVnaW4ocGFyYW1ldGVycy5taW1lVHlwZSwgcGFyYW1ldGVycy51cmwucGF0
aCgpKSkKICAgICAgICAgICAgIHJldHVybiBQREZQbHVnaW46OmNyZWF0ZSgqZnJhbWUpOwogI2Vu
ZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDExMzQ5MjJkNTBkNGY5NTgzM2EwMjA1MTIxNjQ5NjdhYTdhNzIzMzIuLmE0NDc3ZGM3ZWVk
MmQxYWU3OTFiZjc1MTViOTY0NGYzZjYxMzNkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwODMsNyArMTA4Myw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgPSBl
bmFibGVkOyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBib29sIHNob3VsZFVzZVBERlBs
dWdpbigpIGNvbnN0OwogICAgIGJvb2wgcGRmUGx1Z2luRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGRmUGx1Z2luRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0UERGUGx1Z2luRW5hYmxlZChib29s
IGVuYWJsZWQpIHsgbV9wZGZQbHVnaW5FbmFibGVkID0gZW5hYmxlZDsgfQogCkBAIC0xMzc5LDYg
KzEzNzgsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaFdoZWVsRXZlbnRXaXRob3V0
U2Nyb2xsaW5nKGNvbnN0IFdlYldoZWVsRXZlbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKIAorI2lmIEVOQUJMRShQREZLSVRfUExVR0lOKQorICAgIGJvb2wgc2hvdWxkVXNl
UERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIFN0cmluZ1ZpZXcgcGF0aCkgY29u
c3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGU1NGY2NDY2Yjgy
NDlhMDNjZWYxZWExZWNjMTAyMzk5YmEwZmNiMzYuLjI1Y2U2NDhhYWI1MTQ5YzgxZDllMmIzYzU4
ODZiNmY1Mzg5NDMxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xOTYsOSArMTk2LDEzIEBAIE5TT2JqZWN0ICpXZWJQ
YWdlOjphY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yTWFpbkZyYW1lUGx1Z2luKCkKICAgICByZXR1cm4g
bmlsOwogfQogCi1ib29sIFdlYlBhZ2U6OnNob3VsZFVzZVBERlBsdWdpbigpIGNvbnN0Citib29s
IFdlYlBhZ2U6OnNob3VsZFVzZVBERlBsdWdpbihjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBT
dHJpbmdWaWV3IHBhdGgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBkZlBsdWdpbkVuYWJsZWQoKSAm
JiBjbGFzc0Zyb21QREZLaXQoQCJQREZMYXllckNvbnRyb2xsZXIiKTsKKyAgICByZXR1cm4gcGRm
UGx1Z2luRW5hYmxlZCgpCisgICAgICAgICYmIGNsYXNzRnJvbVBERktpdChAIlBERkxheWVyQ29u
dHJvbGxlciIpCisgICAgICAgICYmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1BERk9yUG9zdFNjcmlw
dE1JTUVUeXBlKGNvbnRlbnRUeXBlKQorICAgICAgICAgICAgfHwgKGNvbnRlbnRUeXBlLmlzRW1w
dHkoKQorICAgICAgICAgICAgICAgICYmIChwYXRoLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2Uo
Ii5wZGYiKSB8fCBwYXRoLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5wcyIpKSkpOwogfQog
CiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IFNlbGVjdG9yTmFtZU1hcDsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZTQ5ZDNhMWNl
ODkyYWU3MDAxZjA5NmRlYTQ0MGM4OWExOWIzYjRlLi43NzE3ZmE3ZWE3ZGQ2MWFhODU3YTIwNmFk
NjdkYTI2MDY3MGMzYjliIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDEtMTUgIEthdGUgQ2hlbmV5ICA8a2F0
aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgU2FmYXJpIHNheXMgIkJsb2NrZWQg
UGx1Zy1pbiIgaW5zdGVhZCBzaG93aW5nIGEgUERGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA2NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0
MzcyOTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFQ
SSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1BERlZpZXcubW06CisgICAgICAgIChURVNUKToKKwogMjAyMS0wMS0xMyAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBk
ZXByZWNhdGVkIHNjcmlwdCBhbmQgc3R5bGVzaGVldCBTUEksIHJlcGxhY2VkIHdpdGggbW9yZSBp
bmNsdXNpdmVseS1uYW1lZCBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KaW5kZXggMzcwY2Q2ZTkyYTJkZjhlMmE2MjFjZmFmODQz
NmMyZTE2NTU4NTk2OC4uNzBmY2Q3YWViMDgxMjU3ZTQ2YWFiOTJhZDE4ZmUyMTk2M2ZhYTBhZiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZp
ZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZp
ZXcubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlRlc3RVSURlbGVnYXRlLmgiCiAjaW1w
b3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgor
I2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgpAQCAt
MzU5LDQgKzM2MCwxNiBAQCBURVNUKFBERkhVRCwgTXVsdGlwbGVJRnJhbWVzKQogICAgIEVYUEVD
VF9UUlVFKGhhZFJpZ2h0RnJhbWUpOwogfQogCitURVNUKFBERkhVRCwgTG9hZFBERlR5cGVXaXRo
UGx1Z2luc0Jsb2NrZWQpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbY29uZmlndXJhdGlvbiBf
c2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6QCJvYmplY3Qtc3JjICdub25lJyJdOwor
ICAgIFRlc3RXS1dlYlZpZXcgKndlYlZpZXcgPSBbW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOworICAgIFt3ZWJWaWV3IGxvYWREYXRhOnBkZkRh
dGEoKSBNSU1FVHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOkAi
IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuYXBwbGUuY29tL3Rl
c3RQYXRoIl1dOworICAgIEVYUEVDVF9FUSh3ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAwdSk7Cisg
ICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworICAgIEVYUEVD
VF9FUSh3ZWJWaWV3Ll9wZGZIVURzLmNvdW50LCAxdSk7CisgICAgY2hlY2tGcmFtZSh3ZWJWaWV3
Ll9wZGZIVURzLmFueU9iamVjdC5mcmFtZSwgMCwgMCwgODAwLCA2MDApOworfQorCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>