<?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>224197</bug_id>
          
          <creation_ts>2021-04-05 12:25:21 -0700</creation_ts>
          <short_desc>Safari not computing image aspect ratios from width and height attributes for lazy loaded images</short_desc>
          <delta_ts>2021-05-28 06:05:52 -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>Images</component>
          <version>Safari 14</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201641</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>224748</dependson>
    
    <dependson>224911</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Owen Sullivan">sulliops</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>cathiechen</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kyle.bavender</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>smoley</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747054</commentid>
    <comment_count>0</comment_count>
    <who name="Owen Sullivan">sulliops</who>
    <bug_when>2021-04-05 12:25:21 -0700</bug_when>
    <thetext>Safari is not reserving space in the painted page for images with set width and height attributes, with or without a src attribute. This is despite the fact that AspectRatioOfImgFromWidthAndHeightEnabled is supported with Safari 14 and newer, and enabled by default. This causes reflow when images are loaded via lazy-loading plugins/features.

Codepen with a demonstration of the issue (click on &quot;Nav 4&quot; to see the issue in practice, the anchor link should take you to the &quot;Nav 4&quot; section but you end up closer to the &quot;Nav 3&quot; section due to image reflow): https://codepen.io/sulliops/full/QWdwRxx

Screen recording demonstrating issue: https://gyazo.com/da76046282965f7a32ed3d85cc7423df

Bug report created at the request of Simon Fraser (smfr) at https://bugs.webkit.org/show_bug.cgi?id=201641#c58.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748013</commentid>
    <comment_count>1</comment_count>
    <who name="Smoley">smoley</who>
    <bug_when>2021-04-07 12:22:00 -0700</bug_when>
    <thetext>Thanks, this reproduces on Safari 13.1.2 as well as TOT 14.2 using the provided codepen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748014</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-07 12:23:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/76359912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750580</commentid>
    <comment_count>3</comment_count>
      <attachid>426098</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-04-15 05:37:09 -0700</bug_when>
    <thetext>Created attachment 426098
error-image-test

Thanks! I can reproduce it.

This seems related to error images.
Because the src attribute is empty, so &lt;img&gt; is treated as an error image.
The current implementation does not map width height attribute to aspect ratio for error image.
However, as this feature developed, looks like it should apply to the empty src &lt;img&gt; without alt. And the wpt test img-aspect-ratio.html has updated.
See, https://github.com/whatwg/html/pull/6032

So I think it makes sense to update the behavior of error images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750583</commentid>
    <comment_count>4</comment_count>
    <who name="Owen Sullivan">sulliops</who>
    <bug_when>2021-04-15 05:43:42 -0700</bug_when>
    <thetext>(In reply to cathiechen from comment #3)
&gt; Created attachment 426098 [details]
&gt; error-image-test
&gt; 
&gt; Thanks! I can reproduce it.
&gt; 
&gt; This seems related to error images.
&gt; Because the src attribute is empty, so &lt;img&gt; is treated as an error image.
&gt; The current implementation does not map width height attribute to aspect
&gt; ratio for error image.
&gt; However, as this feature developed, looks like it should apply to the empty
&gt; src &lt;img&gt; without alt. And the wpt test img-aspect-ratio.html has updated.
&gt; See, https://github.com/whatwg/html/pull/6032
&gt; 
&gt; So I think it makes sense to update the behavior of error images.

Interestingly, I still experienced the issue after including an alt for each image. Could be a cache issue on my end, as I had previously been testing on a production website before I whipped up that CodePen, but figured I ought to add that information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750595</commentid>
    <comment_count>5</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-04-15 06:21:55 -0700</bug_when>
    <thetext>(In reply to Owen Sullivan from comment #4)
&gt; Interestingly, I still experienced the issue after including an alt for each
&gt; image. Could be a cache issue on my end, as I had previously been testing on
&gt; a production website before I whipped up that CodePen, but figured I ought
&gt; to add that information.

Yeah, I analyzed the page a bit.
After this page is loaded, &lt;img&gt;s don&apos;t have src attribute(use data-src instead). For instance,
`&lt;img class=&quot;lazyload img-fluid&quot; data-src=&quot;https://placehold.jp/1000x2000.png&quot; width=&quot;1000&quot; height=&quot;2000&quot;&gt;`

So the browser think this &lt;img&gt; is an error image, and doesn&apos;t apply the feature (mapping width height attributes to aspect-ratio)

After clicking &quot;Nav 4&quot;, &lt;img&gt; will get the src attribute.

`&lt;img class=&quot;img-fluid ls-is-cached lazyloaded&quot; data-src=&quot;https://placehold.jp/1000x2000.png&quot; width=&quot;1000&quot; height=&quot;2000&quot; src=&quot;https://placehold.jp/1000x2000.png&quot;&gt;`

So &lt;img&gt; is not an error image now.

And I don&apos;t think &lt;img&gt; should have alt in this case, because an error image with alt won&apos;t apply the feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751068</commentid>
    <comment_count>6</comment_count>
    <who name="Owen Sullivan">sulliops</who>
    <bug_when>2021-04-16 07:33:07 -0700</bug_when>
    <thetext>Probably a dumb question, but simply because I&apos;m new to WebKit bugs: 

Smoley mentioned that the issue reproduces on Safari 13.1.2 in addition to Safari 14, although I wasn&apos;t aware the feature existed before Safari 14. 

In any case, can the fix be retroactively merged into existing versions of Safari through a library update? Or does it require a full application update? I&apos;m not at all aware of what processes you all have in place to apply fixes, but if it can somehow be done retroactively it would really help with browser cross-compatibility and web design for users that don&apos;t frequently update their browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752212</commentid>
    <comment_count>7</comment_count>
      <attachid>426536</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-04-20 03:46:23 -0700</bug_when>
    <thetext>Created attachment 426536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752243</commentid>
    <comment_count>8</comment_count>
      <attachid>426536</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-04-20 06:47:07 -0700</bug_when>
    <thetext>Comment on attachment 426536
Patch

Hi,
I think this patch is ready for review:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752248</commentid>
    <comment_count>9</comment_count>
      <attachid>426536</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-20 07:11:56 -0700</bug_when>
    <thetext>Comment on attachment 426536
Patch

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

&gt; Source/WebCore/rendering/RenderReplaced.cpp:477
&gt; +bool RenderReplaced::getAspectRatioFromWidthHeight(double&amp; intrinsicRatio) const

This should probably return Optional&lt;double&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752262</commentid>
    <comment_count>10</comment_count>
      <attachid>426536</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-20 08:04:02 -0700</bug_when>
    <thetext>Comment on attachment 426536
Patch

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

This is OK, but I think it could be made better. Suggestions below.

&gt; Source/WebCore/rendering/RenderImage.cpp:854
&gt; +    if (!element() || !is&lt;HTMLImageElement&gt;(*element()))
&gt; +        return false;
&gt; +
&gt; +    if (isShowingAltText())
&gt; +        return false;
&gt; +
&gt; +    return true;

The is&lt;&gt; function includes built-in null checking, so this can be written like this:

    return is&lt;HTMLIMageElement&gt;(element()) &amp;&amp; isShowingAltText();

I think that’s clearer than the multiple return statements.

&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:477
&gt;&gt; +bool RenderReplaced::getAspectRatioFromWidthHeight(double&amp; intrinsicRatio) const
&gt; 
&gt; This should probably return Optional&lt;double&gt;.

Yes!

And to follow WebKIt coding style we’d then remove the word &quot;get&quot; from the name. Not even sure that &quot;FromWidthHeight&quot; is a good way to name this. I think it should be named intrinsicAspectRatio.

&gt; Source/WebCore/rendering/RenderReplaced.h:61
&gt; +    virtual bool canMapWidthHeightAsAspectRatio() const { return false; }

I don’t understand the name of this function. I don’t know what &quot;map width height as aspect ratio&quot; means. Maybe this should be named hasIntrinsicAspectRatio?

I am not 100% sure what the concept is. For example, if this returns false does that mean we have no intrinsic aspect ratio at all? Or does it just mean it should be ignored in RenderImage::computeIntrinsicRatioInformation?

&gt; LayoutTests/imported/w3c/ChangeLog:9
&gt; +        The test cases for error images and images without src in img-aspect-ratio.html are passed. This patch
&gt; +        doesn&apos;t change the behavior of the original aspect ratio case, so it&apos;s failed like before.

Before doing more work here, I think we should take the time to restructure this test so it does multiple PASS/FAIL and not just a single FAIL. I expect that won’t be too difficult.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752694</commentid>
    <comment_count>11</comment_count>
      <attachid>426536</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-04-21 03:51:06 -0700</bug_when>
    <thetext>Comment on attachment 426536
Patch

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

Hi Darin and Rob,
Thanks for the review!

&gt;&gt; Source/WebCore/rendering/RenderImage.cpp:854
&gt;&gt; +    return true;
&gt; 
&gt; The is&lt;&gt; function includes built-in null checking, so this can be written like this:
&gt; 
&gt;     return is&lt;HTMLIMageElement&gt;(element()) &amp;&amp; isShowingAltText();
&gt; 
&gt; I think that’s clearer than the multiple return statements.

Done, thanks! Changed to:

return is&lt;HTMLIMageElement&gt;(element()) &amp;&amp; !isShowingAltText();

&gt;&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:477
&gt;&gt;&gt; +bool RenderReplaced::getAspectRatioFromWidthHeight(double&amp; intrinsicRatio) const
&gt;&gt; 
&gt;&gt; This should probably return Optional&lt;double&gt;.
&gt; 
&gt; Yes!
&gt; 
&gt; And to follow WebKIt coding style we’d then remove the word &quot;get&quot; from the name. Not even sure that &quot;FromWidthHeight&quot; is a good way to name this. I think it should be named intrinsicAspectRatio.

Done, thanks!

intrinsicAspectRatioFromWidthHeight? I think maybe it&apos;s good to have &quot;FromWidthHeight&quot; to indicate that the aspect ratio is calculated by attributes width and height?

&gt;&gt; Source/WebCore/rendering/RenderReplaced.h:61
&gt;&gt; +    virtual bool canMapWidthHeightAsAspectRatio() const { return false; }
&gt; 
&gt; I don’t understand the name of this function. I don’t know what &quot;map width height as aspect ratio&quot; means. Maybe this should be named hasIntrinsicAspectRatio?
&gt; 
&gt; I am not 100% sure what the concept is. For example, if this returns false does that mean we have no intrinsic aspect ratio at all? Or does it just mean it should be ignored in RenderImage::computeIntrinsicRatioInformation?

Sorry for the terribly naming.
It means we can compute the aspect ratio from attribute width / attribute height before image loaded. It is defined here https://html.spec.whatwg.org/#map-to-the-aspect-ratio-property
Currently, only img is allowed. I think next step we can expend it to more elements, like canvas, video, input with image type and picture etc.
This function determines which element is allowed to get aspect ratio from width and height.
So canMapWidthHeightToAspectRatio?

I added some explanations to this function.

&gt;&gt; LayoutTests/imported/w3c/ChangeLog:9
&gt;&gt; +        doesn&apos;t change the behavior of the original aspect ratio case, so it&apos;s failed like before.
&gt; 
&gt; Before doing more work here, I think we should take the time to restructure this test so it does multiple PASS/FAIL and not just a single FAIL. I expect that won’t be too difficult.

Sure, I think I can work on this:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752695</commentid>
    <comment_count>12</comment_count>
      <attachid>426667</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-04-21 03:52:05 -0700</bug_when>
    <thetext>Created attachment 426667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753611</commentid>
    <comment_count>13</comment_count>
      <attachid>426917</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-04-23 09:32:43 -0700</bug_when>
    <thetext>Created attachment 426917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753749</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-23 15:00:19 -0700</bug_when>
    <thetext>Committed r276521 (236975@main): &lt;https://commits.webkit.org/236975@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426917.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755022</commentid>
    <comment_count>15</comment_count>
    <who name="Owen Sullivan">sulliops</who>
    <bug_when>2021-04-28 07:56:05 -0700</bug_when>
    <thetext>Downloaded nightly build 276521 from https://s3-us-west-2.amazonaws.com/minified-archives.webkit.org/mac-bigsur-x86_64%20arm64-release/276521.zip (as well as the most recent nightly) to try and test this fix, and I&apos;m still experiencing the original problem. Should I be expect this and wait for a later commit, or is this a problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757808</commentid>
    <comment_count>16</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-05-07 01:28:34 -0700</bug_when>
    <thetext>(In reply to Owen Sullivan from comment #15)
&gt; Downloaded nightly build 276521 from
&gt; https://s3-us-west-2.amazonaws.com/minified-archives.webkit.org/mac-bigsur-
&gt; x86_64%20arm64-release/276521.zip (as well as the most recent nightly) to
&gt; try and test this fix, and I&apos;m still experiencing the original problem.
&gt; Should I be expect this and wait for a later commit, or is this a problem?

Hi Owen,
Sorry, for some reason I can&apos;t install the nightly build in my Mac.
I tried it in my local build(commit: f630ca6238 May 3rd 2021), it works as expected in https://codepen.io/sulliops/full/QWdwRxx
As for error-image-test in Attachments, there&apos;s a nit(not `width=&quot;1000px&quot; height=&quot;2000px&quot;`, should be `width=&quot;1000&quot; height=&quot;2000&quot;` instead). After fixing this, it works as expected too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757809</commentid>
    <comment_count>17</comment_count>
      <attachid>427979</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-05-07 01:29:16 -0700</bug_when>
    <thetext>Created attachment 427979
error-image-test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764740</commentid>
    <comment_count>18</comment_count>
    <who name="Kyle Bavender">kyle.bavender</who>
    <bug_when>2021-05-28 06:05:52 -0700</bug_when>
    <thetext>(In reply to Owen Sullivan from comment #15)
&gt; Downloaded nightly build 276521 ... to try and test this fix, and I&apos;m still experiencing the original problem

I came here by way of Safari Technology Preview v125 release notes. I can verify that Safari TP 125 no longer has the error (while I can reproduce the error in Safari 14.1.1). Great CodePen test case! We&apos;ll have to look forward to a future Safari update to see this hit Safari proper.

Thank you @cathiechen for addressing this! 🙇‍♂️</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>426098</attachid>
            <date>2021-04-15 05:37:09 -0700</date>
            <delta_ts>2021-05-07 01:29:16 -0700</delta_ts>
            <desc>error-image-test</desc>
            <filename>tmp.html</filename>
            <type>text/html</type>
            <size>277</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aGVhZD4KPG1ldGEgY2hhcnNldD0iVVRGLTgiPgo8c3R5bGU+Ci5p
bWctZmx1aWQgewogIG1heC13aWR0aDogMTAwJTsKICBoZWlnaHQ6IGF1dG87CiAgYm9yZGVyOiAy
cHggc29saWQgZ3JlZW47Cn0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8aW1nIGNsYXNzPSIg
aW1nLWZsdWlkIiBkYXRhLXNyYz0iaHR0cHM6Ly9wbGFjZWhvbGQuanAvMTAwMHgyMDAwLnBuZyIg
d2lkdGg9IjEwMDBweCIgaGVpZ2h0PSIyMDAwcHgiIC8+CjwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426536</attachid>
            <date>2021-04-20 03:46:23 -0700</date>
            <delta_ts>2021-04-21 03:51:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224197-20210420184622.patch</filename>
            <type>text/plain</type>
            <size>9405</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU5OWRiNzNjYzA3OTFj
YWZjYzIwYTc2MThiYTE5MmE0MDMwMGY5My4uZTJhM2VlZmVkNGRkM2QzNjM3MzJiNzhjZjU3OTk1
ODMyODhkOWZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA0LTE5ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBOb3QgY29tcHV0aW5n
IGltYWdlIGFzcGVjdCByYXRpb3MgZnJvbSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgZm9y
IGxhenkgbG9hZGVkIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBzdXBwb3J0cyBlcnJvciBpbWFnZXMgYW5kIGxhenkgbG9h
ZGVkIGltYWdlcyAod2l0aG91dCBzcmMgYXR0cmlidXRlKSB0byBjb21wdXRlCisgICAgICAgIGlt
cGxpY2l0IGFzcGVjdCByYXRpb3MgZnJvbSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMuIFJl
ZmFjdG9yIHRoZSBjb2RlIGEgYml0LiBBZGRlZAorICAgICAgICBnZXRBc3BlY3RSYXRpb0Zyb21X
aWR0aEhlaWdodCgpIHRvIGNvbXB1dGUgYXNwZWN0IHJhdGlvIGZyb20gd2lkdGggYW5kIGhlaWdo
dCBhdHRyaWJ1dGVzIHdoZW4KKyAgICAgICAgdGhlIG9iamVjdCBpcyBhbGxvd2VkIHRvIHdoaWNo
IGlzIGRlY2lkZWQgYnkgY2FuTWFwV2lkdGhIZWlnaHRBc0FzcGVjdFJhdGlvKCkuCisgICAgICAg
IFJlbW92ZSBgIWRvd25jYXN0PFJlbmRlckltYWdlPigqdGhpcykuY2FjaGVkSW1hZ2UoKWAgY29u
c3RyYWludCwgc28gdGhhdCBpbWFnZXMgd2l0aG91dCBzcmMgYXR0cmlidXRlcworICAgICAgICBp
cyBhbGxvd2VkLiBBcyB0byBlcnJvciBpbWFnZXMsIGNvbXB1dGUgdGhlIGFzcGVjdCByYXRpbyB3
aGVuIHRoZSBpbWFnZSBzaG91bGREaXNwbGF5QnJva2VuSW1hZ2VJY29uKCkuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1h
Z2U6OmNhbk1hcFdpZHRoSGVpZ2h0QXNBc3BlY3RSYXRpbyBjb25zdCk6IFRvIGluZGljYXRlIHRo
YXQgdGhlIG9iamVjdCBpcyBhbGxvd2VkCisgICAgICAgIHRvIGNvbXB1dGUgYXNwZWN0IHJhdGlv
IGZyb20gd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmdldEFzcGVj
dFJhdGlvRnJvbVdpZHRoSGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJl
cGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbiBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJS
ZXBsYWNlZDo6Y2FuTWFwV2lkdGhIZWlnaHRBc0FzcGVjdFJhdGlvIGNvbnN0KToKKwogMjAyMS0w
NC0yMCAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgRG9uJ3QgdXNl
IHRoZSBmdWxsIENTUyBwYXJzZXIgZm9yIENTU0ZvbnRGYWNlU2V0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCA3ODMwMWU2MGM5MTUxN2U3NDdiOWM4ZjE4ZDhi
YmJkNDc4YTU3NDkxLi45MTFjMGEzMGE2ZjBmZGQzYjA3YWYxNTYwMDc5MWIyYjQ4YjQ2ZjBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTg0Miw2ICs4NDIs
MTggQEAgdm9pZCBSZW5kZXJJbWFnZTo6bGF5b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRT
aXplJiBvbGRTaXplKQogICAgIGNsZWFyQ2hpbGROZWVkc0xheW91dCgpOwogfQogCitib29sIFJl
bmRlckltYWdlOjpjYW5NYXBXaWR0aEhlaWdodEFzQXNwZWN0UmF0aW8oKSBjb25zdAoreworICAg
IC8vIFRoZSBhc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0IG9ubHkgYXBwbGllcyB0
byA8aW1nPi4KKyAgICBpZiAoIWVsZW1lbnQoKSB8fCAhaXM8SFRNTEltYWdlRWxlbWVudD4oKmVs
ZW1lbnQoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpc1Nob3dpbmdBbHRU
ZXh0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB2
b2lkIFJlbmRlckltYWdlOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNp
emUmIGludHJpbnNpY1NpemUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0CiB7CiAgICAg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKGludHJpbnNp
Y1NpemUsIGludHJpbnNpY1JhdGlvKTsKQEAgLTg1OCw2ICs4NzAsOCBAQCB2b2lkIFJlbmRlcklt
YWdlOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNpemUmIGludHJpbnNp
Y1NpemUsIGRvdQogCiAgICAgLy8gRG9uJ3QgY29tcHV0ZSBhbiBpbnRyaW5zaWMgcmF0aW8gdG8g
cHJlc2VydmUgaGlzdG9yaWNhbCBXZWJLaXQgYmVoYXZpb3IgaWYgd2UncmUgcGFpbnRpbmcgYWx0
IHRleHQgYW5kL29yIGEgYnJva2VuIGltYWdlLgogICAgIGlmIChzaG91bGREaXNwbGF5QnJva2Vu
SW1hZ2VJY29uKCkpIHsKKyAgICAgICAgaWYgKCFzdHlsZSgpLmhhc0FzcGVjdFJhdGlvKCkgJiYg
Z2V0QXNwZWN0UmF0aW9Gcm9tV2lkdGhIZWlnaHQoaW50cmluc2ljUmF0aW8pKQorICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBpbnRyaW5zaWNSYXRpbyA9IDE7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IDI1N2UxYzAw
NDI1OWMwOWRhMzJlMjEzNTUzN2VkYzdhZjIzODE2ZjIuLjA4NGZjZmZhN2ZmYzFkYjc2Y2Y4MGQ1
MzcwMDNkZDM4NzExNDExOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5o
CkBAIC0xMDMsNiArMTAzLDggQEAgcHJvdGVjdGVkOgogICAgICAgICBpbWFnZUNoYW5nZWQoaW1h
Z2VSZXNvdXJjZSgpLmltYWdlUHRyKCkpOwogICAgIH0KIAorICAgIGJvb2wgY2FuTWFwV2lkdGhI
ZWlnaHRBc0FzcGVjdFJhdGlvKCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJJbWFn
ZSI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5k
ZXggODU2YmEyMjc1OTMwNTVjNjBiOWI0NzI5MGZkMmY0MGUyN2RiYzY5YS4uOTBiOWI1MGZmMzll
ZjUzZGI3Mzc1NjYzNDMzYWE1OGE3OWEwY2YwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC00NzQsNiArNDc0LDI0IEBAIFJvdW5kZWRSZWN0IFJl
bmRlclJlcGxhY2VkOjpyb3VuZGVkQ29udGVudEJveFJlY3QoKSBjb25zdAogICAgICAgICBib3Jk
ZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpLCBib3JkZXJSaWdodCgpICsgcGFkZGluZ1JpZ2h0KCkp
OwogfQogCitib29sIFJlbmRlclJlcGxhY2VkOjpnZXRBc3BlY3RSYXRpb0Zyb21XaWR0aEhlaWdo
dChkb3VibGUmIGludHJpbnNpY1JhdGlvKSBjb25zdAoreworICAgIGlmICghc2V0dGluZ3MoKS5h
c3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAoIWNhbk1hcFdpZHRoSGVpZ2h0QXNBc3BlY3RSYXRpbygpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQoZWxlbWVudCgpKTsKKyAgICBkb3Vi
bGUgYXR0cmlidXRlV2lkdGggPSBwYXJzZVZhbGlkSFRNTEZsb2F0aW5nUG9pbnROdW1iZXIoZWxl
bWVudCgpLT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjp3aWR0aEF0dHIpKS52YWx1ZU9yKDApOwor
ICAgIGRvdWJsZSBhdHRyaWJ1dGVIZWlnaHQgPSBwYXJzZVZhbGlkSFRNTEZsb2F0aW5nUG9pbnRO
dW1iZXIoZWxlbWVudCgpLT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpoZWlnaHRBdHRyKSkudmFs
dWVPcigwKTsKKyAgICBpZiAoYXR0cmlidXRlV2lkdGggPiAwICYmIGF0dHJpYnV0ZUhlaWdodCA+
IDApIHsKKyAgICAgICAgaW50cmluc2ljUmF0aW8gPSBhdHRyaWJ1dGVXaWR0aCAvIGF0dHJpYnV0
ZUhlaWdodDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
K30KKwogdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1JhdGlvSW5mb3JtYXRp
b24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBkb3VibGUmIGludHJpbnNpY1JhdGlvKSBjb25z
dAogewogICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRDb250ZW50Qm94KCkgb2YgYSByZW1v
dGUsIHJlZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQg
bmV2ZXIgYmUgdXNlZC4KQEAgLTQ5MCwyMiArNTA4LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6
Y29tcHV0ZUludHJpbnNpY1JhdGlvSW5mb3JtYXRpb24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXpl
LAogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaW50cmluc2ljU2l6ZS5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaWYgKCFzZXR0aW5ncygpLmFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWln
aHRFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byogbm9kZSA9
IGVsZW1lbnQoKTsKLSAgICAgICAgLy8gVGhlIGFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRI
ZWlnaHQgb25seSBhcHBsaWVzIHRvIDxpbWc+LgotICAgICAgICBpZiAoIW5vZGUgfHwgIWlzPEhU
TUxJbWFnZUVsZW1lbnQ+KCpub2RlKSB8fCAhbm9kZS0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6
d2lkdGhBdHRyKSB8fCAhbm9kZS0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aGVpZ2h0QXR0cikp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkbid0IG92ZXJyaWRl
IHRoZSBhc3BlY3QtcmF0aW8gd2hlbiB0aGUgPGltZz4gZWxlbWVudCBoYXMgYW4gZW1wdHkgc3Jj
IGF0dHJpYnV0ZS4KLSAgICAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4oKnRoaXMpIHx8ICFkb3du
Y2FzdDxSZW5kZXJJbWFnZT4oKnRoaXMpLmNhY2hlZEltYWdlKCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgZG91YmxlIGF0dHJpYnV0ZVdpZHRoID0gcGFyc2VWYWxpZEhUTUxGbG9h
dGluZ1BvaW50TnVtYmVyKG5vZGUtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OndpZHRoQXR0cikp
LnZhbHVlT3IoMCk7Ci0gICAgICAgIGRvdWJsZSBhdHRyaWJ1dGVIZWlnaHQgPSBwYXJzZVZhbGlk
SFRNTEZsb2F0aW5nUG9pbnROdW1iZXIobm9kZS0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aGVp
Z2h0QXR0cikpLnZhbHVlT3IoMCk7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGVXaWR0aCA+IDAgJiYg
YXR0cmlidXRlSGVpZ2h0ID4gMCkKLSAgICAgICAgICAgIGludHJpbnNpY1JhdGlvID0gYXR0cmli
dXRlV2lkdGggLyBhdHRyaWJ1dGVIZWlnaHQ7CisgICAgICAgIGdldEFzcGVjdFJhdGlvRnJvbVdp
ZHRoSGVpZ2h0KGludHJpbnNpY1JhdGlvKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCBjMmUwNjk1YzAzOTM4
MDkyNjVlYzE3NzA0N2YxM2NiNzIyM2ZmM2Y3Li45YjUwNDhjNDdjMWYxY2EwYWJlNWY4ZWVmOTky
MGE2MWMwZTA3MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
aApAQCAtNTgsNiArNTgsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5z
aWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYg
bWF4TG9naWNhbFdpZHRoKSBjb25zdCBmaW5hbDsKIAorICAgIHZpcnR1YWwgYm9vbCBjYW5NYXBX
aWR0aEhlaWdodEFzQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJv
b2wgZ2V0QXNwZWN0UmF0aW9Gcm9tV2lkdGhIZWlnaHQoZG91YmxlJiBpbnRyaW5zaWNSYXRpbykg
Y29uc3Q7CisKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluaW11bVJlcGxhY2VkSGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gMF9sdTsgfQogCiAgICAgYm9vbCBpc1NlbGVjdGVkKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBlZjUwMTFiM2Y0NmFhODk4MTdlMDQzZDYz
MzE5MDEwZDc1OWY2MzA2Li41MWZiMGExNmIzMjM5YWVlYjU2NDAzNmEwMjk5Y2JkZjcxZTlkYmJh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0w
NC0xOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgTm90
IGNvbXB1dGluZyBpbWFnZSBhc3BlY3QgcmF0aW9zIGZyb20gd2lkdGggYW5kIGhlaWdodCBhdHRy
aWJ1dGVzIGZvciBsYXp5IGxvYWRlZCBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDE5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGNhc2VzIGZvciBlcnJvciBpbWFnZXMgYW5k
IGltYWdlcyB3aXRob3V0IHNyYyBpbiBpbWctYXNwZWN0LXJhdGlvLmh0bWwgYXJlIHBhc3NlZC4g
VGhpcyBwYXRjaAorICAgICAgICBkb2Vzbid0IGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIG9y
aWdpbmFsIGFzcGVjdCByYXRpbyBjYXNlLCBzbyBpdCdzIGZhaWxlZCBsaWtlIGJlZm9yZS4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVt
ZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvaW1nLWFzcGVj
dC1yYXRpby1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDQtMjAgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVwZGF0ZSBodG1sL3JlbmRlcmluZy9yZXBsYWNl
ZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvIHRl
c3RzIGZyb20gV1BUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMt
Zm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy9pbWctYXNwZWN0LXJhdGlvLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9y
ZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVu
dC1hbmQtaW1hZ2VzL2ltZy1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0CmluZGV4IDRjMDE5OGNi
MzczNDE0ZDg2MzhlZjQ2NTViOGI2MWE2YTcxYzczZDYuLjI0ODJmNDM5MDc1YTQwYTA4NzUxM2My
MzAxMWUzMDAwNWQ0NGVmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmli
dXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzL2ltZy1hc3BlY3QtcmF0aW8tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRk
ZWQtY29udGVudC1hbmQtaW1hZ2VzL2ltZy1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0CkBAIC0x
LDYgKzEsNiBAQAogCiAKLUZBSUwgSW1hZ2Ugd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIGFy
ZSB1c2VkIHRvIGluZmVyIGFzcGVjdC1yYXRpbyBhc3NlcnRfYXBwcm94X2VxdWFsczogYXNwZWN0
LXJhdGlvIHNob3VsZCBvdmVycmlkZSBpbnRyaW5zaWMgc2l6ZSBvZiBpbWFnZXMgdGhhdCBkb24n
dCBoYXZlIGFueSBzcmMuIGV4cGVjdGVkIDAuOCArLy0gMC4wMDEgYnV0IGdvdCBJbmZpbml0eQor
RkFJTCBJbWFnZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgYXJlIHVzZWQgdG8gaW5mZXIg
YXNwZWN0LXJhdGlvIGFzc2VydF9hcHByb3hfZXF1YWxzOiBUaGUgb3JpZ2luYWwgYXNwZWN0IHJh
dGlvIG9mIGJsdWUucG5nIGV4cGVjdGVkIDEuMjU0NzE2OTgxMTMyMDc1NSArLy0gMC4wMDEgYnV0
IGdvdCAxLjI1CiBGQUlMIGltZyB3aXRoIHsid2lkdGgiOiIxMCIsImhlaWdodCI6IjIwIn0gYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImF1dG8gMTAgLyAyMCIgYnV0IGdvdCAiYXV0byIKIEZBSUwg
aW5wdXQgd2l0aCB7InR5cGUiOiJpbWFnZSIsIndpZHRoIjoiMTAiLCJoZWlnaHQiOiIyMCJ9IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJhdXRvIDEwIC8gMjAiIGJ1dCBnb3QgImF1dG8iCiBQQVNT
IGlucHV0IHdpdGggeyJ0eXBlIjoic3VibWl0Iiwid2lkdGgiOiIxMCIsImhlaWdodCI6IjIwIn0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426667</attachid>
            <date>2021-04-21 03:52:05 -0700</date>
            <delta_ts>2021-04-23 09:32:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224197-20210421185203.patch</filename>
            <type>text/plain</type>
            <size>9670</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2Mjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU5OWRiNzNjYzA3OTFj
YWZjYzIwYTc2MThiYTE5MmE0MDMwMGY5My4uMmQxYmZmY2FhYWYxZjM4Y2QzMWNlNTcwMDFkNjgy
MmVjMWYxYWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA0LTIxICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBOb3QgY29tcHV0aW5n
IGltYWdlIGFzcGVjdCByYXRpb3MgZnJvbSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgZm9y
IGxhenkgbG9hZGVkIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBzdXBwb3J0cyBlcnJvciBpbWFnZXMgYW5kIGxhenkgbG9hZGVk
IGltYWdlcyAod2l0aG91dCBzcmMgYXR0cmlidXRlKSB0byBjb21wdXRlCisgICAgICAgIGltcGxp
Y2l0IGFzcGVjdCByYXRpb3MgZnJvbSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMuIFJlZmFj
dG9yIHRoZSBjb2RlIGEgYml0LiBBZGRlZAorICAgICAgICBnZXRBc3BlY3RSYXRpb0Zyb21XaWR0
aEhlaWdodCgpIHRvIGNvbXB1dGUgYXNwZWN0IHJhdGlvIGZyb20gd2lkdGggYW5kIGhlaWdodCBh
dHRyaWJ1dGVzIHdoZW4KKyAgICAgICAgdGhlIG9iamVjdCBpcyBhbGxvd2VkIHRvIHdoaWNoIGlz
IGRlY2lkZWQgYnkgY2FuTWFwV2lkdGhIZWlnaHRBc0FzcGVjdFJhdGlvKCkuCisgICAgICAgIFJl
bW92ZSBgIWRvd25jYXN0PFJlbmRlckltYWdlPigqdGhpcykuY2FjaGVkSW1hZ2UoKWAgY29uc3Ry
YWludCwgc28gdGhhdCBpbWFnZXMgd2l0aG91dCBzcmMgYXR0cmlidXRlcworICAgICAgICBpcyBh
bGxvd2VkLiBBcyB0byBlcnJvciBpbWFnZXMsIGNvbXB1dGUgdGhlIGFzcGVjdCByYXRpbyB3aGVu
IHRoZSBpbWFnZSBzaG91bGREaXNwbGF5QnJva2VuSW1hZ2VJY29uKCkuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6
OmNhbk1hcFdpZHRoSGVpZ2h0VG9Bc3BlY3RSYXRpbyBjb25zdCk6IFRvIGluZGljYXRlIHRoYXQg
dGhlIG9iamVjdCBpcyBhbGxvd2VkCisgICAgICAgIHRvIGNvbXB1dGUgYXNwZWN0IHJhdGlvIGZy
b20gd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uIGNvbnN0KTogV2hlbiBzaG91
bGREaXNwbGF5QnJva2VuSW1hZ2VJY29uKCksCisgICAgICAgIHRyeSB0byBjb21wdXRlIHRoZSBh
c3BlY3QgcmF0aW8gZnJvbSBhdHRyaWJ1dGVzIHdpZHRoIGFuZCBoZWlnaHQuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjppbnRyaW5zaWNBc3Bl
Y3RSYXRpb0Zyb21XaWR0aEhlaWdodCBjb25zdCk6IENvbXB1dGUgdGhlIGFzcGVjdCByYXRpbyBm
cm9tIGF0dHJpYnV0ZXMgd2lkdGggYW5kIGhlaWdodC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbiBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJSZXBsYWNlZDo6Y2FuTWFwV2lkdGhIZWlnaHRUb0FzcGVjdFJhdGlvIGNvbnN0KTogRGl0dG8u
CisKIDIwMjEtMDQtMjAgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAg
IERvbid0IHVzZSB0aGUgZnVsbCBDU1MgcGFyc2VyIGZvciBDU1NGb250RmFjZVNldApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggNzgzMDFlNjBjOTE1MTdlNzQ3
YjljOGYxOGQ4YmJiZDQ3OGE1NzQ5MS4uZjFlYTIxMzdiZTlkOGQ1NTI1MjY4NzYzOTA4MjM0MTdj
YTViYjA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC04
NDIsNiArODQyLDEyIEBAIHZvaWQgUmVuZGVySW1hZ2U6OmxheW91dFNoYWRvd0NvbnRlbnQoY29u
c3QgTGF5b3V0U2l6ZSYgb2xkU2l6ZSkKICAgICBjbGVhckNoaWxkTmVlZHNMYXlvdXQoKTsKIH0K
IAorYm9vbCBSZW5kZXJJbWFnZTo6Y2FuTWFwV2lkdGhIZWlnaHRUb0FzcGVjdFJhdGlvKCkgY29u
c3QKK3sKKyAgICAvLyBUaGUgYXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodCBvbmx5
IGFwcGxpZXMgdG8gPGltZz4uCisgICAgcmV0dXJuIGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1l
bnQoKSkgJiYgIWlzU2hvd2luZ0FsdFRleHQoKTsKK30KKwogdm9pZCBSZW5kZXJJbWFnZTo6Y29t
cHV0ZUludHJpbnNpY1JhdGlvSW5mb3JtYXRpb24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBk
b3VibGUmIGludHJpbnNpY1JhdGlvKSBjb25zdAogewogICAgIFJlbmRlclJlcGxhY2VkOjpjb21w
dXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihpbnRyaW5zaWNTaXplLCBpbnRyaW5zaWNSYXRp
byk7CkBAIC04NTgsNiArODY0LDEwIEBAIHZvaWQgUmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5z
aWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwgZG91CiAKICAgICAv
LyBEb24ndCBjb21wdXRlIGFuIGludHJpbnNpYyByYXRpbyB0byBwcmVzZXJ2ZSBoaXN0b3JpY2Fs
IFdlYktpdCBiZWhhdmlvciBpZiB3ZSdyZSBwYWludGluZyBhbHQgdGV4dCBhbmQvb3IgYSBicm9r
ZW4gaW1hZ2UuCiAgICAgaWYgKHNob3VsZERpc3BsYXlCcm9rZW5JbWFnZUljb24oKSkgeworICAg
ICAgICBpZiAoIXN0eWxlKCkuaGFzQXNwZWN0UmF0aW8oKSkgeworICAgICAgICAgICAgaW50cmlu
c2ljUmF0aW8gPSBpbnRyaW5zaWNBc3BlY3RSYXRpb0Zyb21XaWR0aEhlaWdodCgpLnZhbHVlT3Io
MSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgaW50cmluc2ljUmF0
aW8gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuaAppbmRleCAyNTdlMWMwMDQyNTljMDlkYTMyZTIxMzU1MzdlZGM3YWYyMzgxNmYy
Li4zOGRhOTdjMzU1OGVmZmFjNmY5M2E4OWI0OTc5MjY2MTc3MWI3NzdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAtMTAzLDYgKzEwMyw4IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgaW1hZ2VDaGFuZ2VkKGltYWdlUmVzb3VyY2UoKS5pbWFnZVB0cigpKTsKICAgICB9
CiAKKyAgICBib29sIGNhbk1hcFdpZHRoSGVpZ2h0VG9Bc3BlY3RSYXRpbygpIGNvbnN0IG92ZXJy
aWRlOworCiBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiUmVuZGVySW1hZ2UiOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDg1NmJhMjI3NTkzMDU1YzYwYjliNDcyOTBmZDJm
NDBlMjdkYmM2OWEuLjlmNDVmZjRkNmQ0ZGM3MmM1YThjMjU4YjlhMGE2ZTZjZjc5MzNmZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtNDc0LDYg
KzQ3NCwyMyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJSZXBsYWNlZDo6cm91bmRlZENvbnRlbnRCb3hS
ZWN0KCkgY29uc3QKICAgICAgICAgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgYm9yZGVy
UmlnaHQoKSArIHBhZGRpbmdSaWdodCgpKTsKIH0KIAorT3B0aW9uYWw8ZG91YmxlPiBSZW5kZXJS
ZXBsYWNlZDo6aW50cmluc2ljQXNwZWN0UmF0aW9Gcm9tV2lkdGhIZWlnaHQoKSBjb25zdAorewor
ICAgIGlmICghc2V0dGluZ3MoKS5hc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5h
YmxlZCgpKQorICAgICAgICByZXR1cm4gT3B0aW9uYWw8ZG91YmxlPigpOworCisgICAgaWYgKCFj
YW5NYXBXaWR0aEhlaWdodFRvQXNwZWN0UmF0aW8oKSkKKyAgICAgICAgcmV0dXJuIE9wdGlvbmFs
PGRvdWJsZT4oKTsKKworICAgIEFTU0VSVChlbGVtZW50KCkpOworICAgIGRvdWJsZSBhdHRyaWJ1
dGVXaWR0aCA9IHBhcnNlVmFsaWRIVE1MRmxvYXRpbmdQb2ludE51bWJlcihlbGVtZW50KCktPmdl
dEF0dHJpYnV0ZShIVE1MTmFtZXM6OndpZHRoQXR0cikpLnZhbHVlT3IoMCk7CisgICAgZG91Ymxl
IGF0dHJpYnV0ZUhlaWdodCA9IHBhcnNlVmFsaWRIVE1MRmxvYXRpbmdQb2ludE51bWJlcihlbGVt
ZW50KCktPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhlaWdodEF0dHIpKS52YWx1ZU9yKDApOwor
ICAgIGlmIChhdHRyaWJ1dGVXaWR0aCA+IDAgJiYgYXR0cmlidXRlSGVpZ2h0ID4gMCkKKyAgICAg
ICAgcmV0dXJuIGF0dHJpYnV0ZVdpZHRoIC8gYXR0cmlidXRlSGVpZ2h0OworCisgICAgcmV0dXJu
IE9wdGlvbmFsPGRvdWJsZT4oKTsKK30KKwogdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUlu
dHJpbnNpY1JhdGlvSW5mb3JtYXRpb24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBkb3VibGUm
IGludHJpbnNpY1JhdGlvKSBjb25zdAogewogICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRD
b250ZW50Qm94KCkgb2YgYSByZW1vdGUsIHJlZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0
aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIgYmUgdXNlZC4KQEAgLTQ5MCwyMiArNTA3LDcgQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1JhdGlvSW5mb3JtYXRpb24oRmxv
YXRTaXplJiBpbnRyaW5zaWNTaXplLAogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaW50cmlu
c2ljU2l6ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKCFzZXR0aW5ncygpLmFzcGVjdFJhdGlv
T2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgYXV0byogbm9kZSA9IGVsZW1lbnQoKTsKLSAgICAgICAgLy8gVGhlIGFzcGVjdFJh
dGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHQgb25seSBhcHBsaWVzIHRvIDxpbWc+LgotICAgICAg
ICBpZiAoIW5vZGUgfHwgIWlzPEhUTUxJbWFnZUVsZW1lbnQ+KCpub2RlKSB8fCAhbm9kZS0+aGFz
QXR0cmlidXRlKEhUTUxOYW1lczo6d2lkdGhBdHRyKSB8fCAhbm9kZS0+aGFzQXR0cmlidXRlKEhU
TUxOYW1lczo6aGVpZ2h0QXR0cikpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8g
V2Ugc2hvdWxkbid0IG92ZXJyaWRlIHRoZSBhc3BlY3QtcmF0aW8gd2hlbiB0aGUgPGltZz4gZWxl
bWVudCBoYXMgYW4gZW1wdHkgc3JjIGF0dHJpYnV0ZS4KLSAgICAgICAgaWYgKCFpczxSZW5kZXJJ
bWFnZT4oKnRoaXMpIHx8ICFkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnRoaXMpLmNhY2hlZEltYWdl
KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZG91YmxlIGF0dHJpYnV0ZVdpZHRo
ID0gcGFyc2VWYWxpZEhUTUxGbG9hdGluZ1BvaW50TnVtYmVyKG5vZGUtPmdldEF0dHJpYnV0ZShI
VE1MTmFtZXM6OndpZHRoQXR0cikpLnZhbHVlT3IoMCk7Ci0gICAgICAgIGRvdWJsZSBhdHRyaWJ1
dGVIZWlnaHQgPSBwYXJzZVZhbGlkSFRNTEZsb2F0aW5nUG9pbnROdW1iZXIobm9kZS0+Z2V0QXR0
cmlidXRlKEhUTUxOYW1lczo6aGVpZ2h0QXR0cikpLnZhbHVlT3IoMCk7Ci0gICAgICAgIGlmIChh
dHRyaWJ1dGVXaWR0aCA+IDAgJiYgYXR0cmlidXRlSGVpZ2h0ID4gMCkKLSAgICAgICAgICAgIGlu
dHJpbnNpY1JhdGlvID0gYXR0cmlidXRlV2lkdGggLyBhdHRyaWJ1dGVIZWlnaHQ7CisgICAgICAg
IGludHJpbnNpY1JhdGlvID0gaW50cmluc2ljQXNwZWN0UmF0aW9Gcm9tV2lkdGhIZWlnaHQoKS52
YWx1ZU9yKDApOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4IGMyZTA2OTVjMDM5MzgwOTI2NWVjMTc3MDQ3ZjEz
Y2I3MjIzZmYzZjcuLjNiNjFmNDlkNWExNzBiYjIzNTBiZGY2NzBjNjE5ODAwNTk2ZGM1MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC01OCw2ICs1OCwx
MCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhz
KExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRo
KSBjb25zdCBmaW5hbDsKIAorICAgIC8vIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyBpZiB0aGUg
b2JqZWN0IGlzIGFsbG93ZWQgdG8gY29tcHV0ZSBhc3BlY3QgcmF0aW8gZnJvbSBhdHRyaWJ1dGVz
IHdpZHRoIGFuZCBoZWlnaHQuCisgICAgdmlydHVhbCBib29sIGNhbk1hcFdpZHRoSGVpZ2h0VG9B
c3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3B0aW9uYWw8ZG91Ymxl
PiBpbnRyaW5zaWNBc3BlY3RSYXRpb0Zyb21XaWR0aEhlaWdodCgpIGNvbnN0OworCiAgICAgdmly
dHVhbCBMYXlvdXRVbml0IG1pbmltdW1SZXBsYWNlZEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIDBf
bHU7IH0KIAogICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggZWY1MDExYjNmNDZhYTg5ODE3ZTA0M2Q2MzMxOTAxMGQ3NTlmNjMwNi4u
NzBiYzg3ZWEzY2YyY2I2YTdjMTk2NTVmZWQ4N2Y2MmU0YjUzNmU4YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDQtMjEgIENhdGhpZSBDaGVu
ICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIE5vdCBjb21wdXRpbmcgaW1hZ2Ug
YXNwZWN0IHJhdGlvcyBmcm9tIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBmb3IgbGF6eSBs
b2FkZWQgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjQxOTcKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICBUaGUgdGVzdCBjYXNlcyBmb3IgZXJyb3IgaW1hZ2VzIGFuZCBpbWFnZXMgd2l0aG91dCBzcmMg
aW4gaW1nLWFzcGVjdC1yYXRpby5odG1sIGFyZSBwYXNzZWQuIFRoaXMgcGF0Y2gKKyAgICAgICAg
ZG9lc24ndCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8g
Y2FzZSwgc28gaXQncyBmYWlsZWQgbGlrZSBiZWZvcmUuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3It
ZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzL2ltZy1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0
OgorCiAyMDIxLTA0LTIwICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRl
cy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzLyB0ZXN0cyBmcm9tIFdQVApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Jl
bmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50
LWFuZC1pbWFnZXMvaW1nLWFzcGVjdC1yYXRpby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVs
ZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy9pbWctYXNw
ZWN0LXJhdGlvLWV4cGVjdGVkLnR4dAppbmRleCA0YzAxOThjYjM3MzQxNGQ4NjM4ZWY0NjU1Yjhi
NjFhNmE3MWM3M2Q2Li4yNDgyZjQzOTA3NWE0MGEwODc1MTNjMjMwMTFlMzAwMDVkNDRlZjFjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNv
bnRlbnQtYW5kLWltYWdlcy9pbWctYXNwZWN0LXJhdGlvLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3Jl
cGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdl
cy9pbWctYXNwZWN0LXJhdGlvLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAogCi1GQUlM
IEltYWdlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBhcmUgdXNlZCB0byBpbmZlciBhc3Bl
Y3QtcmF0aW8gYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGFzcGVjdC1yYXRpbyBzaG91bGQgb3ZlcnJp
ZGUgaW50cmluc2ljIHNpemUgb2YgaW1hZ2VzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgc3JjLiBleHBl
Y3RlZCAwLjggKy8tIDAuMDAxIGJ1dCBnb3QgSW5maW5pdHkKK0ZBSUwgSW1hZ2Ugd2lkdGggYW5k
IGhlaWdodCBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIGluZmVyIGFzcGVjdC1yYXRpbyBhc3NlcnRf
YXBwcm94X2VxdWFsczogVGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpbyBvZiBibHVlLnBuZyBleHBl
Y3RlZCAxLjI1NDcxNjk4MTEzMjA3NTUgKy8tIDAuMDAxIGJ1dCBnb3QgMS4yNQogRkFJTCBpbWcg
d2l0aCB7IndpZHRoIjoiMTAiLCJoZWlnaHQiOiIyMCJ9IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJhdXRvIDEwIC8gMjAiIGJ1dCBnb3QgImF1dG8iCiBGQUlMIGlucHV0IHdpdGggeyJ0eXBlIjoi
aW1hZ2UiLCJ3aWR0aCI6IjEwIiwiaGVpZ2h0IjoiMjAifSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiYXV0byAxMCAvIDIwIiBidXQgZ290ICJhdXRvIgogUEFTUyBpbnB1dCB3aXRoIHsidHlwZSI6
InN1Ym1pdCIsIndpZHRoIjoiMTAiLCJoZWlnaHQiOiIyMCJ9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426917</attachid>
            <date>2021-04-23 09:32:43 -0700</date>
            <delta_ts>2021-04-23 15:00:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224197-20210424003240.patch</filename>
            <type>text/plain</type>
            <size>10200</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhjNWJlNDg5ZWYxZmM5
NWZlNzhlMDEwYjU3OGFmNjg3OTNlMDNkMi4uNjg3OThjNGUxY2M2MGNjZjVmNTZkNzRlOTU1NzNm
MGJlMjY3NDRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA0LTIzICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBOb3QgY29tcHV0aW5n
IGltYWdlIGFzcGVjdCByYXRpb3MgZnJvbSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgZm9y
IGxhenkgbG9hZGVkIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBzdXBwb3J0cyBlcnJvciBpbWFnZXMgYW5kIGxhenkgbG9hZGVk
IGltYWdlcyAod2l0aG91dCBzcmMgYXR0cmlidXRlKSB0byBjb21wdXRlCisgICAgICAgIGltcGxp
Y2l0IGFzcGVjdCByYXRpb3MgZnJvbSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMuIFJlZmFj
dG9yIHRoZSBjb2RlIGEgYml0LiBBZGRlZAorICAgICAgICBpbnRyaW5zaWNBc3BlY3RSYXRpb0Zy
b21XaWR0aEhlaWdodCgpIHRvIGNvbXB1dGUgYXNwZWN0IHJhdGlvIGZyb20gd2lkdGggYW5kIGhl
aWdodCBhdHRyaWJ1dGVzIHdoZW4KKyAgICAgICAgdGhlIG9iamVjdCBpcyBhbGxvd2VkIHRvIHdo
aWNoIGlzIGRlY2lkZWQgYnkgY2FuTWFwV2lkdGhIZWlnaHRUb0FzcGVjdFJhdGlvKCkuCisgICAg
ICAgIFJlbW92ZSBgIWRvd25jYXN0PFJlbmRlckltYWdlPigqdGhpcykuY2FjaGVkSW1hZ2UoKWAg
Y29uc3RyYWludCwgc28gdGhhdCBpbWFnZXMgd2l0aG91dCBzcmMgYXR0cmlidXRlcworICAgICAg
ICBpcyBhbGxvd2VkLiBBcyB0byBlcnJvciBpbWFnZXMsIGNvbXB1dGUgdGhlIGFzcGVjdCByYXRp
byB3aGVuIHRoZSBpbWFnZSBzaG91bGREaXNwbGF5QnJva2VuSW1hZ2VJY29uKCkuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW1hZ2U6OmNhbk1hcFdpZHRoSGVpZ2h0VG9Bc3BlY3RSYXRpbyBjb25zdCk6IFRvIGluZGljYXRl
IHRoYXQgdGhlIG9iamVjdCBpcyBhbGxvd2VkCisgICAgICAgIHRvIGNvbXB1dGUgYXNwZWN0IHJh
dGlvIGZyb20gd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uIGNvbnN0KTogV2hl
biBzaG91bGREaXNwbGF5QnJva2VuSW1hZ2VJY29uKCksCisgICAgICAgIHRyeSB0byBjb21wdXRl
IHRoZSBhc3BlY3QgcmF0aW8gZnJvbSBhdHRyaWJ1dGVzIHdpZHRoIGFuZCBoZWlnaHQuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjppbnRyaW5z
aWNBc3BlY3RSYXRpb0Zyb21XaWR0aEhlaWdodCBjb25zdCk6IENvbXB1dGUgdGhlIGFzcGVjdCBy
YXRpbyBmcm9tIGF0dHJpYnV0ZXMgd2lkdGggYW5kIGhlaWdodC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbiBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJSZXBsYWNlZDo6Y2FuTWFwV2lkdGhIZWlnaHRUb0FzcGVjdFJhdGlvIGNvbnN0KTog
RGl0dG8uCisKIDIwMjEtMDQtMjMgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9t
ZS5vcmc+CiAKICAgICAgICAgSW1wcm92ZSBIYXNoVGFibGVEZWxldGVkVmFsdWUgb2YgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5jcHAKaW5kZXggZGMxODM5N2FiNjk3YWQxZGZhMjI2OWU1MTNlZGQ1MmMyMTE5OTY0MC4uNDI1
NDQzZWUwM2E2NmMzMjc4MTJmYzViMWY2ZjJiYjkzZmYwNWQ3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC04NDIsNiArODQyLDEyIEBAIHZvaWQgUmVuZGVy
SW1hZ2U6OmxheW91dFNoYWRvd0NvbnRlbnQoY29uc3QgTGF5b3V0U2l6ZSYgb2xkU2l6ZSkKICAg
ICBjbGVhckNoaWxkTmVlZHNMYXlvdXQoKTsKIH0KIAorYm9vbCBSZW5kZXJJbWFnZTo6Y2FuTWFw
V2lkdGhIZWlnaHRUb0FzcGVjdFJhdGlvKCkgY29uc3QKK3sKKyAgICAvLyBUaGUgYXNwZWN0UmF0
aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodCBvbmx5IGFwcGxpZXMgdG8gPGltZz4uCisgICAgcmV0
dXJuIGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQoKSkgJiYgIWlzU2hvd2luZ0FsdFRleHQo
KTsKK30KKwogdm9pZCBSZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1JhdGlvSW5mb3JtYXRp
b24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBkb3VibGUmIGludHJpbnNpY1JhdGlvKSBjb25z
dAogewogICAgIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlv
bihpbnRyaW5zaWNTaXplLCBpbnRyaW5zaWNSYXRpbyk7CkBAIC04NTgsNiArODY0LDEwIEBAIHZv
aWQgUmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6
ZSYgaW50cmluc2ljU2l6ZSwgZG91CiAKICAgICAvLyBEb24ndCBjb21wdXRlIGFuIGludHJpbnNp
YyByYXRpbyB0byBwcmVzZXJ2ZSBoaXN0b3JpY2FsIFdlYktpdCBiZWhhdmlvciBpZiB3ZSdyZSBw
YWludGluZyBhbHQgdGV4dCBhbmQvb3IgYSBicm9rZW4gaW1hZ2UuCiAgICAgaWYgKHNob3VsZERp
c3BsYXlCcm9rZW5JbWFnZUljb24oKSkgeworICAgICAgICBpZiAoIXN0eWxlKCkuaGFzQXNwZWN0
UmF0aW8oKSkgeworICAgICAgICAgICAgaW50cmluc2ljUmF0aW8gPSBpbnRyaW5zaWNBc3BlY3RS
YXRpb0Zyb21XaWR0aEhlaWdodCgpLnZhbHVlT3IoMSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KICAgICAgICAgaW50cmluc2ljUmF0aW8gPSAxOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCAxMjk2NzU5MGI0
YzMzODRkM2QxNTQxZTNhZDAwODljY2UzZTEzMmEyLi42NzU3NWM2ZTdmZjJhZWQxMTU0YWMwZjI5
OTk1NmIwZWFkYzJmMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApA
QCAtMTAzLDYgKzEwMyw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgaW1hZ2VDaGFuZ2VkKGltYWdl
UmVzb3VyY2UoKS5pbWFnZVB0cigpKTsKICAgICB9CiAKKyAgICBib29sIGNhbk1hcFdpZHRoSGVp
Z2h0VG9Bc3BlY3RSYXRpbygpIGNvbnN0IG92ZXJyaWRlOworCiBwcml2YXRlOgogICAgIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVySW1hZ2Ui
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4
IDg1NmJhMjI3NTkzMDU1YzYwYjliNDcyOTBmZDJmNDBlMjdkYmM2OWEuLjlmNDVmZjRkNmQ0ZGM3
MmM1YThjMjU4YjlhMGE2ZTZjZjc5MzNmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmNwcApAQCAtNDc0LDYgKzQ3NCwyMyBAQCBSb3VuZGVkUmVjdCBSZW5k
ZXJSZXBsYWNlZDo6cm91bmRlZENvbnRlbnRCb3hSZWN0KCkgY29uc3QKICAgICAgICAgYm9yZGVy
TGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdSaWdodCgpKTsK
IH0KIAorT3B0aW9uYWw8ZG91YmxlPiBSZW5kZXJSZXBsYWNlZDo6aW50cmluc2ljQXNwZWN0UmF0
aW9Gcm9tV2lkdGhIZWlnaHQoKSBjb25zdAoreworICAgIGlmICghc2V0dGluZ3MoKS5hc3BlY3RS
YXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gT3B0
aW9uYWw8ZG91YmxlPigpOworCisgICAgaWYgKCFjYW5NYXBXaWR0aEhlaWdodFRvQXNwZWN0UmF0
aW8oKSkKKyAgICAgICAgcmV0dXJuIE9wdGlvbmFsPGRvdWJsZT4oKTsKKworICAgIEFTU0VSVChl
bGVtZW50KCkpOworICAgIGRvdWJsZSBhdHRyaWJ1dGVXaWR0aCA9IHBhcnNlVmFsaWRIVE1MRmxv
YXRpbmdQb2ludE51bWJlcihlbGVtZW50KCktPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OndpZHRo
QXR0cikpLnZhbHVlT3IoMCk7CisgICAgZG91YmxlIGF0dHJpYnV0ZUhlaWdodCA9IHBhcnNlVmFs
aWRIVE1MRmxvYXRpbmdQb2ludE51bWJlcihlbGVtZW50KCktPmdldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OmhlaWdodEF0dHIpKS52YWx1ZU9yKDApOworICAgIGlmIChhdHRyaWJ1dGVXaWR0aCA+IDAg
JiYgYXR0cmlidXRlSGVpZ2h0ID4gMCkKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVdpZHRoIC8g
YXR0cmlidXRlSGVpZ2h0OworCisgICAgcmV0dXJuIE9wdGlvbmFsPGRvdWJsZT4oKTsKK30KKwog
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1JhdGlvSW5mb3JtYXRpb24oRmxv
YXRTaXplJiBpbnRyaW5zaWNTaXplLCBkb3VibGUmIGludHJpbnNpY1JhdGlvKSBjb25zdAogewog
ICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRDb250ZW50Qm94KCkgb2YgYSByZW1vdGUsIHJl
ZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIg
YmUgdXNlZC4KQEAgLTQ5MCwyMiArNTA3LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0
ZUludHJpbnNpY1JhdGlvSW5mb3JtYXRpb24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLAogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoaW50cmluc2ljU2l6ZS5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgaWYgKCFzZXR0aW5ncygpLmFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFi
bGVkKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byogbm9kZSA9IGVsZW1l
bnQoKTsKLSAgICAgICAgLy8gVGhlIGFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHQg
b25seSBhcHBsaWVzIHRvIDxpbWc+LgotICAgICAgICBpZiAoIW5vZGUgfHwgIWlzPEhUTUxJbWFn
ZUVsZW1lbnQ+KCpub2RlKSB8fCAhbm9kZS0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6d2lkdGhB
dHRyKSB8fCAhbm9kZS0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aGVpZ2h0QXR0cikpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gV2Ugc2hvdWxkbid0IG92ZXJyaWRlIHRoZSBh
c3BlY3QtcmF0aW8gd2hlbiB0aGUgPGltZz4gZWxlbWVudCBoYXMgYW4gZW1wdHkgc3JjIGF0dHJp
YnV0ZS4KLSAgICAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4oKnRoaXMpIHx8ICFkb3duY2FzdDxS
ZW5kZXJJbWFnZT4oKnRoaXMpLmNhY2hlZEltYWdlKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgZG91YmxlIGF0dHJpYnV0ZVdpZHRoID0gcGFyc2VWYWxpZEhUTUxGbG9hdGluZ1Bv
aW50TnVtYmVyKG5vZGUtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OndpZHRoQXR0cikpLnZhbHVl
T3IoMCk7Ci0gICAgICAgIGRvdWJsZSBhdHRyaWJ1dGVIZWlnaHQgPSBwYXJzZVZhbGlkSFRNTEZs
b2F0aW5nUG9pbnROdW1iZXIobm9kZS0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aGVpZ2h0QXR0
cikpLnZhbHVlT3IoMCk7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGVXaWR0aCA+IDAgJiYgYXR0cmli
dXRlSGVpZ2h0ID4gMCkKLSAgICAgICAgICAgIGludHJpbnNpY1JhdGlvID0gYXR0cmlidXRlV2lk
dGggLyBhdHRyaWJ1dGVIZWlnaHQ7CisgICAgICAgIGludHJpbnNpY1JhdGlvID0gaW50cmluc2lj
QXNwZWN0UmF0aW9Gcm9tV2lkdGhIZWlnaHQoKS52YWx1ZU9yKDApOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4
IGMyZTA2OTVjMDM5MzgwOTI2NWVjMTc3MDQ3ZjEzY2I3MjIzZmYzZjcuLjNiNjFmNDlkNWExNzBi
YjIzNTBiZGY2NzBjNjE5ODAwNTk2ZGM1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5oCkBAIC01OCw2ICs1OCwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lk
IGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0
aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBmaW5hbDsKIAorICAgIC8vIFRo
aXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyBpZiB0aGUgb2JqZWN0IGlzIGFsbG93ZWQgdG8gY29tcHV0
ZSBhc3BlY3QgcmF0aW8gZnJvbSBhdHRyaWJ1dGVzIHdpZHRoIGFuZCBoZWlnaHQuCisgICAgdmly
dHVhbCBib29sIGNhbk1hcFdpZHRoSGVpZ2h0VG9Bc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgT3B0aW9uYWw8ZG91YmxlPiBpbnRyaW5zaWNBc3BlY3RSYXRpb0Zyb21X
aWR0aEhlaWdodCgpIGNvbnN0OworCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IG1pbmltdW1SZXBs
YWNlZEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIDBfbHU7IH0KIAogICAgIGJvb2wgaXNTZWxlY3Rl
ZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYjRhMjAyMTdmZmQ2
NmRlZTU4ZTg0YjBhN2MxZjZkYTM0OWVmMjgzNS4uOWNkMGJiZjVlYzRlMDdmNDM3ODBhY2NlYjEw
OTlhYzJkODU2YWQzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjEtMDQtMjMgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgor
CisgICAgICAgIE5vdCBjb21wdXRpbmcgaW1hZ2UgYXNwZWN0IHJhdGlvcyBmcm9tIHdpZHRoIGFu
ZCBoZWlnaHQgYXR0cmlidXRlcyBmb3IgbGF6eSBsb2FkZWQgaW1hZ2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQxOTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBUaGUgdGVzdCBjYXNlcyBmb3IgZXJyb3Ig
aW1hZ2VzIGFuZCBpbWFnZXMgd2l0aG91dCBzcmMgaW4gaW1nLWFzcGVjdC1yYXRpby5odG1sIGFy
ZSBwYXNzZWQuIFRoaXMgcGF0Y2gKKyAgICAgICAgZG9lc24ndCBjaGFuZ2UgdGhlIGJlaGF2aW9y
IG9mIHRoZSBvcmlnaW5hbCBhc3BlY3QgcmF0aW8gY2FzZSwgc28gaXQncyBmYWlsZWQgbGlrZSBi
ZWZvcmUuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVw
bGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2Vz
L2ltZy1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA0LTIzICBDYXRoaWUgQ2hl
biAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBvcnQgdGhlIHVwZGF0ZSB0
byAibWFwcGluZyBhdHRyaWJ1dGUgd2lkdGggYW5kIGhlaWdodCB0byBhc3BlY3QgcmF0aW8iIHRl
c3RzIGZyb20gV1BUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMt
Zm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcy9pbWctYXNwZWN0LXJhdGlvLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9y
ZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVu
dC1hbmQtaW1hZ2VzL2ltZy1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0CmluZGV4IDMxZmI4YmEy
NDNhNjczYTk1OWQ0OTdlOThmN2M2OWI2M2VkMjE5ZGIuLjJlNzMyMjllYzBhNjljZjY3MGQ0OWI1
YzdmMzFkOTQ4ZGUyNWQ3MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmli
dXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzL2ltZy1hc3BlY3QtcmF0aW8tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvYXR0cmlidXRlcy1mb3ItZW1iZWRk
ZWQtY29udGVudC1hbmQtaW1hZ2VzL2ltZy1hc3BlY3QtcmF0aW8tZXhwZWN0ZWQudHh0CkBAIC0z
Niw4ICszNiw4IEBAIFBBU1MgQ29tcHV0ZWQgc3R5bGUgdGVzdDogaW5wdXQgd2l0aCB7InR5cGUi
OiJpbWFnZSIsIndpZHRoIjoiMTAlIiwiaGVpZ2h0IjoiMjAiCiBQQVNTIENvbXB1dGVkIHN0eWxl
IHRlc3Q6IGlucHV0IHdpdGggeyJ0eXBlIjoic3VibWl0Iiwid2lkdGgiOiIxMCUiLCJoZWlnaHQi
OiIyMCJ9CiBQQVNTIExvYWRlZCBpbWFnZXMgdGVzdDogPGltZz4gd2l0aG91dCB3aWR0aCBoZWln
aHQgYXR0cmlidXRlcwogUEFTUyBMb2FkZWQgaW1hZ2VzIHRlc3Q6IDxpbWc+IHdpdGggd2lkdGgg
YW5kIGhlaWdodCBhdHRyaWJ1dGVzLCBidXQgY29uZmxpY3RpbmcgdG8gdGhlIG9yaWdpbmFsIGFz
cGVjdCByYXRpbwotRkFJTCBMb2FkZWQgaW1hZ2VzIHRlc3Q6IDxpbWc+IHdpdGggd2lkdGgsIGhl
aWdodCBhbmQgZW1wdHkgc3JjIGF0dHJpYnV0ZXMgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGFzcGVj
dC1yYXRpbyBzaG91bGQgb3ZlcnJpZGUgaW50cmluc2ljIHNpemUgb2YgaW1hZ2VzIHRoYXQgZG9u
J3QgaGF2ZSBhbnkgc3JjLiBleHBlY3RlZCAwLjggKy8tIDAuMDAxIGJ1dCBnb3QgSW5maW5pdHkK
LUZBSUwgTG9hZGVkIGltYWdlcyB0ZXN0OiBFcnJvciBpbWFnZSB3aXRoIHdpZHRoIGFuZCBoZWln
aHQgYXR0cmlidXRlcyBhc3NlcnRfYXBwcm94X2VxdWFsczogYXNwZWN0LXJhdGlvIHNob3VsZCBh
ZmZlY3QgdGhlIHNpemUgb2YgZXJyb3IgaW1hZ2VzLiBleHBlY3RlZCAwLjggKy8tIDAuMDAxIGJ1
dCBnb3QgMQorUEFTUyBMb2FkZWQgaW1hZ2VzIHRlc3Q6IDxpbWc+IHdpdGggd2lkdGgsIGhlaWdo
dCBhbmQgZW1wdHkgc3JjIGF0dHJpYnV0ZXMKK1BBU1MgTG9hZGVkIGltYWdlcyB0ZXN0OiBFcnJv
ciBpbWFnZSB3aXRoIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcwogUEFTUyBMb2FkZWQgaW1h
Z2VzIHRlc3Q6IEVycm9yIGltYWdlIHdpdGggd2lkdGgsIGhlaWdodCBhbmQgYWx0IGF0dHJpYnV0
ZXMKIEZBSUwgTG9hZGVkIGltYWdlcyB0ZXN0OiA8aW1nPiB3aXRoIHdpZHRoIGFuZCBoZWlnaHQg
YXR0cmlidXRlcywgYnV0IG5vdCBlcXVhbCB0byB0aGUgb3JpZ2luYWwgYXNwZWN0IHJhdGlvIGFz
c2VydF9hcHByb3hfZXF1YWxzOiBUaGUgb3JpZ2luYWwgYXNwZWN0IHJhdGlvIG9mIGJsdWUucG5n
IGV4cGVjdGVkIDEuMjU0NzE2OTgxMTMyMDc1NSArLy0gMC4wMDEgYnV0IGdvdCAxLjI1CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>427979</attachid>
            <date>2021-05-07 01:29:16 -0700</date>
            <delta_ts>2021-05-07 01:29:16 -0700</delta_ts>
            <desc>error-image-test</desc>
            <filename>tmp.html</filename>
            <type>text/html</type>
            <size>301</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aGVhZD4KICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgPHN0eWxl
PgogICAgLmltZy1mbHVpZCB7CiAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiBh
dXRvOwogICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKICAgIH0KICA8L3N0eWxlPgo8L2hl
YWQ+Cgo8Ym9keT4KICA8aW1nIGNsYXNzPSIgaW1nLWZsdWlkIiBkYXRhLXNyYz0iaHR0cHM6Ly9w
bGFjZWhvbGQuanAvMTAwMHgyMDAwLnBuZyIgd2lkdGg9IjEwMDAiIGhlaWdodD0iMjAwMCIgLz4K
PC9ib2R5PgoKPC9odG1sPg==
</data>

          </attachment>
      

    </bug>

</bugzilla>