<?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>156129</bug_id>
          
          <creation_ts>2016-04-01 22:07:18 -0700</creation_ts>
          <short_desc>toDataURL image upside down if premultipliedAlpha=false</short_desc>
          <delta_ts>2021-06-30 12:43:17 -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>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227538</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>
          
          <blocked>126404</blocked>
    
    <blocked>226254</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>nkronlage</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>aleksandar.xyz</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>justin_fan</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mail</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wfurr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1180029</commentid>
    <comment_count>0</comment_count>
    <who name="">nkronlage</who>
    <bug_when>2016-04-01 22:07:18 -0700</bug_when>
    <thetext>Calling .toDataURL() on a WebGL canvas that has premultipliedAlpha set to false results in an image that upside down.

See https://jsfiddle.net/oagpgo80/ for an example.  It renders a triangle in a canvas (left) and calls toDataURL and puts the result in an &lt;img&gt; on the right.

Expected: 
Two triangles that look the same

Actual:
The right triangle (the image created from toDataURL) is upside down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558448</commentid>
    <comment_count>1</comment_count>
    <who name="Aleksandar Rodic">aleksandar.xyz</who>
    <bug_when>2019-08-05 07:01:24 -0700</bug_when>
    <thetext>How is it possible that such a simply bug hasn&apos;t been fixed in more than 3 years? This is still broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558451</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-05 08:20:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/53942867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595916</commentid>
    <comment_count>3</comment_count>
    <who name="William Furr">wfurr</who>
    <bug_when>2019-12-05 11:58:42 -0800</bug_when>
    <thetext>Is this something that switching to ANGLE will fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595956</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-05 13:10:59 -0800</bug_when>
    <thetext>It probably won&apos;t automatically fix it - I suspect this code path uses glReadPixels to read back the framebuffer, and that the bug is in common CPU-side code. I&apos;m surprised there isn&apos;t a WebGL conformance test to catch this. Someone should add one to https://github.com/KhronosGroup/WebGL .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658463</commentid>
    <comment_count>5</comment_count>
    <who name="">nkronlage</who>
    <bug_when>2020-06-02 15:21:11 -0700</bug_when>
    <thetext>I&apos;ve added a conformance test for this to the WebGL suite: 
https://github.com/KhronosGroup/WebGL/commit/fd4489e57bb17b276dc575d0f8b6681d9c2ebcc8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658515</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-06-02 17:13:01 -0700</bug_when>
    <thetext>Thanks nkronlage@ for creating the test. Let me block the shipment of WebGL 2.0 in Safari on fixing this as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760976</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-05-17 17:41:54 -0700</bug_when>
    <thetext>For the record, the modified test:
https://www.khronos.org/registry/webgl/sdk/tests/conformance/canvas/to-data-url-test.html

still fails in current Safari Technology Preview.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773469</commentid>
    <comment_count>8</comment_count>
      <attachid>432502</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-29 11:13:43 -0700</bug_when>
    <thetext>Created attachment 432502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773470</commentid>
    <comment_count>9</comment_count>
      <attachid>432503</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-29 11:16:04 -0700</bug_when>
    <thetext>Created attachment 432503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773491</commentid>
    <comment_count>10</comment_count>
      <attachid>432503</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-29 12:09:41 -0700</bug_when>
    <thetext>Comment on attachment 432503
Patch

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

&gt; Source/WebCore/ChangeLog:23
&gt; +        Fixes webgl/1.0.x/conformance/canvas/to-data-url-test.html
&gt; +        (which is not run at the moment).

Should this patch unskip this test from the TextExpectations?

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:239
&gt; +        ASSERT(results-&gt;format().pixelFormat == PixelFormat::RGBA8 || results-&gt;format().pixelFormat == PixelFormat::BGRA8);

GraphicsContextGLOpenGL::readPixelsForPaintResults() creates the PixelBuffer with PixelFormat::RGBA8 and it calls gl::ReadnPixelsRobustANGLE() with GL_RGBA. So why do we assert &quot;|| pixelFormat == PixelFormat::BGRA8&quot;?

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:243
&gt; +        uint8_t* src = results-&gt;data().data();
&gt; +        uint8_t* dst = src + (size.height() - 1) * rowStride;

What do the &quot;src&quot; and &quot;dst&quot; mean here? We are swapping rows of pixels. I would expect names like: &quot;up&quot; and &quot;down&quot;, &quot;first&quot; and &quot;last&quot; &quot;begin&quot; and &quot;end&quot; or something similar.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:248
&gt; +            memcpy(temp.get(), dst, rowStride);
&gt; +            memcpy(dst, src, rowStride);
&gt; +            memcpy(src, temp.get(), rowStride);

Can&apos;t we use vImage to accelerate this operation? I read this comment in vImage.h:

 *    Sometimes you may want to flip an image vertically. In vImage, this can be done cheaply by adjusting the pointer
 *    to point to the last scanline of the image and setting rowBytes negative, for either the source or destination
 *    image:

I am not sure if vImage can do this in place as you did or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773505</commentid>
    <comment_count>11</comment_count>
      <attachid>432503</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-06-29 13:22:43 -0700</bug_when>
    <thetext>Comment on attachment 432503
Patch

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

Please address Said&apos;s remaining code review comments, but this looks fine to me overall. Would be great to get this longstanding bug fixed. r+

&gt;&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:239
&gt;&gt; +        ASSERT(results-&gt;format().pixelFormat == PixelFormat::RGBA8 || results-&gt;format().pixelFormat == PixelFormat::BGRA8);
&gt; 
&gt; GraphicsContextGLOpenGL::readPixelsForPaintResults() creates the PixelBuffer with PixelFormat::RGBA8 and it calls gl::ReadnPixelsRobustANGLE() with GL_RGBA. So why do we assert &quot;|| pixelFormat == PixelFormat::BGRA8&quot;?

I assume in order to better enforce constraints between unrelated code, especially if the called code changes in the future - for example, to support higher bit depth back buffers in WebGL, which is a feature being actively developed in the ColorWeb CG.

&gt;&gt; Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:248
&gt;&gt; +            memcpy(src, temp.get(), rowStride);
&gt; 
&gt; Can&apos;t we use vImage to accelerate this operation? I read this comment in vImage.h:
&gt; 
&gt;  *    Sometimes you may want to flip an image vertically. In vImage, this can be done cheaply by adjusting the pointer
&gt;  *    to point to the last scanline of the image and setting rowBytes negative, for either the source or destination
&gt;  *    image:
&gt; 
&gt; I am not sure if vImage can do this in place as you did or not.

This code isn&apos;t Cocoa-specific so writing the loop manually seems most portable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773683</commentid>
    <comment_count>12</comment_count>
      <attachid>432572</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-30 00:51:38 -0700</bug_when>
    <thetext>Created attachment 432572
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773822</commentid>
    <comment_count>13</comment_count>
      <attachid>432572</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-06-30 11:10:36 -0700</bug_when>
    <thetext>Comment on attachment 432572
Patch for landing

Still looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773829</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-30 11:29:09 -0700</bug_when>
    <thetext>Committed r279424 (239285@main): &lt;https://commits.webkit.org/239285@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432572.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432502</attachid>
            <date>2021-06-29 11:13:43 -0700</date>
            <delta_ts>2021-06-29 11:15:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156129-20210629211341.patch</filename>
            <type>text/plain</type>
            <size>3369</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTViYzY5MTc4ZDM0OTll
ZGRkYmI5Y2UyYzI0NjcyMGYyYWY1M2VmNi4uMzkyM2M5ZjNjOWJlMzg5ODljZTU3ZjgwYWJlMjg2
Zjg5N2JmNjkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA2LTI5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgdG9EYXRhVVJMIGlt
YWdlIHVwc2lkZSBkb3duIGlmIHByZW11bHRpcGxpZWRBbHBoYT1mYWxzZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MTI5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81Mzk0Mjg2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGbGlwIHRoZSByZXN1bHQgYFBpeGVsQnVmZmVyYCBvZiBgR3JhcGhpY3ND
b250ZXh0R0w6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvUGl4ZWxCdWZmZXIoKWAKKyAgICAgICAg
YWxvbmcgdGhlIHktYXhpcyBtYW51YWxseSB3aXRoIG1lbWNweS4KKyAgICAgICAgUmVhZFBpeGVs
cyByZXR1cm5zIHRoZSBwaXhlbHMgdXBzaWRlIGRvd24uCisgICAgICAgIFRoZSBgUGl4ZWxCdWZm
ZXJgIGNvZGUtcGF0aCBpcyBvbmx5IHVzZWQgZm9yIHJlYWRpbmcgdW5wcmVtdWx0aXBsaWVkCisg
ICAgICAgIGltYWdlIGNvbnRlbnRzIHNvIHRoYXQgYHRvRGF0YVVSTCgpYCBjYW4gZW5jb2RlIHRo
ZSBwcmVtdWx0aXBsaWVkQWxwaGE9ZmFsc2UKKyAgICAgICAgV2ViR0wgY29udGVudCBhcyB3YXMg
cmVuZGVyZWQuCisKKyAgICAgICAgT3RoZXIgY29kZS1wYXRocywgc3VjaCBhcyBDb250ZXh0MkQu
ZHJhd0ltYWdlIGFuZCBkcmF3aW5nIHRvIHRoZSBkb2N1bWVudCwKKyAgICAgICAgdXNlIGBHcmFw
aGljc0NvbnRleHRHTDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKWAuCisgICAgICAg
IHdoaWNoIHktZmxpcCBieSBjb25zdHJ1Y3RpbmcgYSBgSW1hZ2VCdWZmZXJgIGZvciB0aGUgcGlj
dHVyZSBhbmQgdGhlbiB1c2luZworICAgICAgICB5LWZsaXAgdHJhbnNmb3JtIHRvIGRyYXcgdGhl
IGBJbWFnZUJ1ZmZlcmAgdG8gdGhlIHRhcmdldCBgSW1hZ2VCdWZmZXJgLgorCisgICAgICAgIEZp
eGVzIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC10ZXN0Lmh0bWwK
KyAgICAgICAgKHdoaWNoIGlzIG5vdCBydW4gYXQgdGhlIG1vbWVudCkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnBhaW50UmVuZGVyaW5nUmVz
dWx0c1RvUGl4ZWxCdWZmZXIpOgorCiAyMDIxLTA2LTI5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gd2ViZ2wvMS4wLngvY29uZm9ybWFu
Y2UvdGV4dHVyZXMvbWlzYy90ZXh0dXJlLXdpdGgtZmxpcC15LWFuZC1wcmVtdWx0aXBseS1hbHBo
YS5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYWJmYjYw
MTFjYTMyNzk0ZGFjYWExMjY0NWUzZTQzZTg2YTY2YWMyLi4wNWU3NDc0M2Y2MTA5NDVjMWRiYzI1
NjExMjhhYzJmYjQ2ZDVlM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5j
cHAKQEAgLTQwLDYgKzQwLDggQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTENWLmgiCiAj
ZW5kaWYKIAorI2luY2x1ZGUgPG1lbW9yeT4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZXNldEJ1ZmZlcnNUb0F1dG9DbGVhcigpCkBAIC0y
MzIsNyArMjM0LDIxIEBAIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb1BpeGVsCiAgICAgLy8gUmVhZGluZyBw
cmVtdWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBseWluZywgd2hpY2gg
aXMgbG9zc3kuCiAgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhh
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiByZWFkUmVuZGVyaW5n
UmVzdWx0c0ZvclBhaW50aW5nKCk7CisgICAgYXV0byByZXN1bHRzID0gcmVhZFJlbmRlcmluZ1Jl
c3VsdHNGb3JQYWludGluZygpOworICAgIGlmIChyZXN1bHRzICYmICFyZXN1bHRzLT5zaXplKCku
aXNFbXB0eSgpKSB7CisgICAgICAgIEFTU0VSVChyZXN1bHRzLT5mb3JtYXQoKS5waXhlbEZvcm1h
dCA9PSBQaXhlbEZvcm1hdDo6UkdCQTggfHwgcmVzdWx0cy0+Zm9ybWF0KCkucGl4ZWxGb3JtYXQg
PT0gUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKKyAgICAgICAgY29uc3QgYXV0byBzaXplID0gcmVzdWx0
cy0+c2l6ZSgpOworICAgICAgICBjb25zdCBzaXplX3Qgcm93U3RyaWRlID0gc2l6ZS53aWR0aCgp
ICogNDsKKyAgICAgICAgdWludDhfdCogc3JjID0gcmVzdWx0cy0+ZGF0YSgpLmRhdGEoKTsKKyAg
ICAgICAgdWludDhfdCogZHN0ID0gc3JjICsgKHNpemUuaGVpZ2h0KCkgLSAxKSAqIHJvd1N0cmlk
ZTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gdGVtcChuZXcgdWludDhfdFty
b3dTdHJpZGVdKTsKKyAgICAgICAgZm9yICg7IHNyYyA8IGRzdDsgc3JjICs9IHJvd1N0cmlkZSwg
ZHN0IC09IHJvd1N0cmlkZSkgeworICAgICAgICAgICAgbWVtY3B5KHRlbXAuZ2V0KCksIGRzdCwg
cm93U3RyaWRlKTsKKyAgICAgICAgICAgIG1lbWNweShkc3QsIHNyYywgcm93U3RyaWRlKTsKKyAg
ICAgICAgICAgIG1lbWNweShzcmMsIHRlbXAuZ2V0KCksIHJvd1N0cmlkZSk7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIHJlc3VsdHM7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZm
ZXI+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZWFkUmVuZGVyaW5nUmVzdWx0c0ZvclBhaW50
aW5nKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432503</attachid>
            <date>2021-06-29 11:16:04 -0700</date>
            <delta_ts>2021-06-30 00:51:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156129-20210629211603.patch</filename>
            <type>text/plain</type>
            <size>3423</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTViYzY5MTc4ZDM0OTll
ZGRkYmI5Y2UyYzI0NjcyMGYyYWY1M2VmNi4uZTFkODc4YjcyYjFiMDc2NTllNTljZGExODY5NGJm
MDg1NzlmZWU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTA2LTI5ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgdG9EYXRhVVJMIGlt
YWdlIHVwc2lkZSBkb3duIGlmIHByZW11bHRpcGxpZWRBbHBoYT1mYWxzZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MTI5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81Mzk0Mjg2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGbGlwIHRoZSByZXN1bHQgYFBpeGVsQnVmZmVyYCBvZiBgR3JhcGhpY3ND
b250ZXh0R0w6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvUGl4ZWxCdWZmZXIoKWAKKyAgICAgICAg
YWxvbmcgdGhlIHktYXhpcyBtYW51YWxseSB3aXRoIG1lbWNweS4KKyAgICAgICAgUmVhZFBpeGVs
cyByZXR1cm5zIHRoZSBwaXhlbHMgdXBzaWRlIGRvd24uCisgICAgICAgIFRoZSBgUGl4ZWxCdWZm
ZXJgIGNvZGUtcGF0aCBpcyBvbmx5IHVzZWQgZm9yIHJlYWRpbmcgdW5wcmVtdWx0aXBsaWVkCisg
ICAgICAgIGltYWdlIGNvbnRlbnRzIHNvIHRoYXQgYHRvRGF0YVVSTCgpYCBjYW4gZW5jb2RlIHRo
ZSBwcmVtdWx0aXBsaWVkQWxwaGE9ZmFsc2UKKyAgICAgICAgV2ViR0wgY29udGVudCBhcyB3YXMg
cmVuZGVyZWQuCisKKyAgICAgICAgT3RoZXIgY29kZS1wYXRocywgc3VjaCBhcyBDb250ZXh0MkQu
ZHJhd0ltYWdlIGFuZCBkcmF3aW5nIHRvIHRoZSBkb2N1bWVudCwKKyAgICAgICAgdXNlIGBHcmFw
aGljc0NvbnRleHRHTDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKWAuCisgICAgICAg
IEluIHRob3NlIGNhc2VzIHktZmxpcCBpcyBkb25lIGJ5IGNvbnN0cnVjdGluZyBhIGBJbWFnZUJ1
ZmZlcmAgZm9yIHRoZSBQaXhlbEJ1ZmZlcgorICAgICAgICBhbmQgdGhlbiB1c2luZyB5LWZsaXAg
dHJhbnNmb3JtIHRvIGRyYXcgdGhlIGBJbWFnZUJ1ZmZlcmAgdG8gdGhlIHRhcmdldCBgSW1hZ2VC
dWZmZXJgCisgICAgICAgIHVzaW5nIGBHcmFwaGljc0NvbnRleHRgLgorCisgICAgICAgIEZpeGVz
IHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2NhbnZhcy90by1kYXRhLXVybC10ZXN0Lmh0bWwKKyAg
ICAgICAgKHdoaWNoIGlzIG5vdCBydW4gYXQgdGhlIG1vbWVudCkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvUGl4ZWxCdWZmZXIpOgorCiAyMDIxLTA2LTI5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gd2ViZ2wvMS4wLngvY29uZm9ybWFuY2Uv
dGV4dHVyZXMvbWlzYy90ZXh0dXJlLXdpdGgtZmxpcC15LWFuZC1wcmVtdWx0aXBseS1hbHBoYS5o
dG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCAwYWJmYjYwMTFj
YTMyNzk0ZGFjYWExMjY0NWUzZTQzZTg2YTY2YWMyLi4wNWU3NDc0M2Y2MTA5NDVjMWRiYzI1NjEx
MjhhYzJmYjQ2ZDVlM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAK
QEAgLTQwLDYgKzQwLDggQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTENWLmgiCiAjZW5k
aWYKIAorI2luY2x1ZGUgPG1lbW9yeT4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZXNldEJ1ZmZlcnNUb0F1dG9DbGVhcigpCkBAIC0yMzIs
NyArMjM0LDIxIEBAIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb1BpeGVsCiAgICAgLy8gUmVhZGluZyBwcmVt
dWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBseWluZywgd2hpY2ggaXMg
bG9zc3kuCiAgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiByZWFkUmVuZGVyaW5nUmVz
dWx0c0ZvclBhaW50aW5nKCk7CisgICAgYXV0byByZXN1bHRzID0gcmVhZFJlbmRlcmluZ1Jlc3Vs
dHNGb3JQYWludGluZygpOworICAgIGlmIChyZXN1bHRzICYmICFyZXN1bHRzLT5zaXplKCkuaXNF
bXB0eSgpKSB7CisgICAgICAgIEFTU0VSVChyZXN1bHRzLT5mb3JtYXQoKS5waXhlbEZvcm1hdCA9
PSBQaXhlbEZvcm1hdDo6UkdCQTggfHwgcmVzdWx0cy0+Zm9ybWF0KCkucGl4ZWxGb3JtYXQgPT0g
UGl4ZWxGb3JtYXQ6OkJHUkE4KTsKKyAgICAgICAgY29uc3QgYXV0byBzaXplID0gcmVzdWx0cy0+
c2l6ZSgpOworICAgICAgICBjb25zdCBzaXplX3Qgcm93U3RyaWRlID0gc2l6ZS53aWR0aCgpICog
NDsKKyAgICAgICAgdWludDhfdCogc3JjID0gcmVzdWx0cy0+ZGF0YSgpLmRhdGEoKTsKKyAgICAg
ICAgdWludDhfdCogZHN0ID0gc3JjICsgKHNpemUuaGVpZ2h0KCkgLSAxKSAqIHJvd1N0cmlkZTsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gdGVtcChuZXcgdWludDhfdFtyb3dT
dHJpZGVdKTsKKyAgICAgICAgZm9yICg7IHNyYyA8IGRzdDsgc3JjICs9IHJvd1N0cmlkZSwgZHN0
IC09IHJvd1N0cmlkZSkgeworICAgICAgICAgICAgbWVtY3B5KHRlbXAuZ2V0KCksIGRzdCwgcm93
U3RyaWRlKTsKKyAgICAgICAgICAgIG1lbWNweShkc3QsIHNyYywgcm93U3RyaWRlKTsKKyAgICAg
ICAgICAgIG1lbWNweShzcmMsIHRlbXAuZ2V0KCksIHJvd1N0cmlkZSk7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIHJlc3VsdHM7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8UGl4ZWxCdWZmZXI+
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpyZWFkUmVuZGVyaW5nUmVzdWx0c0ZvclBhaW50aW5n
KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432572</attachid>
            <date>2021-06-30 00:51:38 -0700</date>
            <delta_ts>2021-06-30 11:29:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-156129-20210630105136.patch</filename>
            <type>text/plain</type>
            <size>4435</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ2ODE3NGNlZDI2ZTNi
ODYzMGM4ZGJhMjY3ODVjNTZkZmQ0YjBiOS4uMmMwNzQyMTgyYzM1YjY0NGQwZDA5MzdmMmJjMGRk
ZWYzZmVkNjEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA2LTMwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgdG9EYXRhVVJMIGlt
YWdlIHVwc2lkZSBkb3duIGlmIHByZW11bHRpcGxpZWRBbHBoYT1mYWxzZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MTI5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81Mzk0Mjg2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3Nl
bGwuCisKKyAgICAgICAgRmxpcCB0aGUgcmVzdWx0IGBQaXhlbEJ1ZmZlcmAgb2YgYEdyYXBoaWNz
Q29udGV4dEdMOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb1BpeGVsQnVmZmVyKClgCisgICAgICAg
IGFsb25nIHRoZSB5LWF4aXMgbWFudWFsbHkgd2l0aCBtZW1jcHkuCisgICAgICAgIFJlYWRQaXhl
bHMgcmV0dXJucyB0aGUgcGl4ZWxzIHVwc2lkZSBkb3duLgorICAgICAgICBUaGUgYFBpeGVsQnVm
ZmVyYCBjb2RlLXBhdGggaXMgb25seSB1c2VkIGZvciByZWFkaW5nIHVucHJlbXVsdGlwbGllZAor
ICAgICAgICBpbWFnZSBjb250ZW50cyBzbyB0aGF0IGB0b0RhdGFVUkwoKWAgY2FuIGVuY29kZSB0
aGUgcHJlbXVsdGlwbGllZEFscGhhPWZhbHNlCisgICAgICAgIFdlYkdMIGNvbnRlbnQgYXMgd2Fz
IHJlbmRlcmVkLgorCisgICAgICAgIE90aGVyIGNvZGUtcGF0aHMsIHN1Y2ggYXMgQ29udGV4dDJE
LmRyYXdJbWFnZSBhbmQgZHJhd2luZyB0byB0aGUgZG9jdW1lbnQsCisgICAgICAgIHVzZSBgR3Jh
cGhpY3NDb250ZXh0R0w6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKClgLgorICAgICAg
ICBJbiB0aG9zZSBjYXNlcyB5LWZsaXAgaXMgZG9uZSBieSBjb25zdHJ1Y3RpbmcgYSBgSW1hZ2VC
dWZmZXJgIGZvciB0aGUgUGl4ZWxCdWZmZXIKKyAgICAgICAgYW5kIHRoZW4gdXNpbmcgeS1mbGlw
IHRyYW5zZm9ybSB0byBkcmF3IHRoZSBgSW1hZ2VCdWZmZXJgIHRvIHRoZSB0YXJnZXQgYEltYWdl
QnVmZmVyYAorICAgICAgICB1c2luZyBgR3JhcGhpY3NDb250ZXh0YC4KKworICAgICAgICBGaXhl
cyB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtdGVzdC5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvUGl4ZWxCdWZmZXIpOgorCiAyMDIxLTA2LTI5ICBUaW0gTmd1eWVu
ICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGZvcm1bbWV0aG9kPWRpYWxv
Z10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCmluZGV4IDBhYmZiNjAxMWNh
MzI3OTRkYWNhYTEyNjQ1ZTNlNDNlODZhNjZhYzIuLmUwOTQyYzQ4YmRkYzEyNzk5YTM5MTg2MzYw
MGQ5NjkxZWJhZGNmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcApA
QCAtNDAsNiArNDAsOCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQ1YuaCIKICNlbmRp
ZgogCisjaW5jbHVkZSA8bWVtb3J5PgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2V0QnVmZmVyc1RvQXV0b0NsZWFyKCkKQEAgLTIzMiw3
ICsyMzQsMjIgQEAgc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4gR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvUGl4ZWwKICAgICAvLyBSZWFkaW5nIHByZW11
bHRpcGxpZWQgYWxwaGEgd291bGQgaW52b2x2ZSB1bnByZW11bHRpcGx5aW5nLCB3aGljaCBpcyBs
b3NzeS4KICAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVkQWxwaGEpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHJlYWRSZW5kZXJpbmdSZXN1
bHRzRm9yUGFpbnRpbmcoKTsKKyAgICBhdXRvIHJlc3VsdHMgPSByZWFkUmVuZGVyaW5nUmVzdWx0
c0ZvclBhaW50aW5nKCk7CisgICAgaWYgKHJlc3VsdHMgJiYgIXJlc3VsdHMtPnNpemUoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKHJlc3VsdHMtPmZvcm1hdCgpLnBpeGVsRm9ybWF0ID09
IFBpeGVsRm9ybWF0OjpSR0JBOCB8fCByZXN1bHRzLT5mb3JtYXQoKS5waXhlbEZvcm1hdCA9PSBQ
aXhlbEZvcm1hdDo6QkdSQTgpOworICAgICAgICAvLyBGSVhNRTogTWFrZSBQaXhlbEJ1ZmZlckNv
bnZlcnNpb25zIHN1cHBvcnQgbmVnYXRpdmUgcm93Qnl0ZXMgYW5kIGluLXBsYWNlIGNvbnZlcnNp
b25zLgorICAgICAgICBjb25zdCBhdXRvIHNpemUgPSByZXN1bHRzLT5zaXplKCk7CisgICAgICAg
IGNvbnN0IHNpemVfdCByb3dTdHJpZGUgPSBzaXplLndpZHRoKCkgKiA0OworICAgICAgICB1aW50
OF90KiB0b3AgPSByZXN1bHRzLT5kYXRhKCkuZGF0YSgpOworICAgICAgICB1aW50OF90KiBib3R0
b20gPSB0b3AgKyAoc2l6ZS5oZWlnaHQoKSAtIDEpICogcm93U3RyaWRlOworICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8dWludDhfdFtdPiB0ZW1wKG5ldyB1aW50OF90W3Jvd1N0cmlkZV0pOworICAg
ICAgICBmb3IgKDsgdG9wIDwgYm90dG9tOyB0b3AgKz0gcm93U3RyaWRlLCBib3R0b20gLT0gcm93
U3RyaWRlKSB7CisgICAgICAgICAgICBtZW1jcHkodGVtcC5nZXQoKSwgYm90dG9tLCByb3dTdHJp
ZGUpOworICAgICAgICAgICAgbWVtY3B5KGJvdHRvbSwgdG9wLCByb3dTdHJpZGUpOworICAgICAg
ICAgICAgbWVtY3B5KHRvcCwgdGVtcC5nZXQoKSwgcm93U3RyaWRlKTsKKyAgICAgICAgfQorICAg
IH0KKyAgICByZXR1cm4gcmVzdWx0czsKIH0KIAogc3RkOjpvcHRpb25hbDxQaXhlbEJ1ZmZlcj4g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlYWRSZW5kZXJpbmdSZXN1bHRzRm9yUGFpbnRpbmco
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzY5MmNhNWI4YzYyMzEzYWE4YWRkYzk1OWQ2NDZhZjg2
YjNhZjQ4Ni4uNzkwN2MwZTc2ZmYyNGRmODZkYjZmMWU3NGE2OGEwNDEzNmIzNWZlOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCkBAIC0zNTAyLDkgKzM1MDIsMTUgQEAgZmFzdC9jYW52YXMvd2ViZ2wvbG9z
ZS1jb250ZXh0LW9uLXRpbWVvdXQuaHRtbCBbIFNraXAgXQogIyBXZWJHTCBjb25mb3JtYW5jZSB0
ZXN0IHN1aXRlIDEuMC54IGlzIHNraXBwZWQgdW50aWwgMS4wLjMgaXMgcmV0aXJlZC4KIHdlYmds
LzEuMC54IFsgU2tpcCBdCiAKKyMgRXhwbGljaXRseSBlbmFibGUgdGVzdHMgd2hpY2ggd2UgaGF2
ZSBmaXhlZCBhbmQgZG8gbm90IGhhdmUgY29ycmVzcG9uZGluZyAxLjAuMyB0ZXN0IGZ1bmN0aW9u
YWxpdHkuCit3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9jYW52YXMvdG8tZGF0YS11cmwtdGVzdC5o
dG1sIFsgUGFzcyBdCisKICMgV2ViR0wgY29uZm9ybWFuY2UgdGVzdCBzdWl0ZSAyLjAuMSBpcyBz
a2lwcGVkIHVudGlsIDIuMC4wIGlzIHJldGlyZWQuCiB3ZWJnbC8yLjAueSBbIFNraXAgXQogCisj
IEV4cGxpY2l0bHkgZW5hYmxlIHRlc3RzIHdoaWNoIHdlIGhhdmUgZml4ZWQgYW5kIGRvIG5vdCBo
YXZlIGNvcnJlc3BvbmRpbmcgMi4wLnkgdGVzdCBmdW5jdGlvbmFsaXR5Lgord2ViZ2wvMi4wLnkv
Y29uZm9ybWFuY2UvY2FudmFzL3RvLWRhdGEtdXJsLXRlc3QuaHRtbCBbIFBhc3MgXQorCiAjIHBy
ZS13cmFwIHByb2dyZXNzaW9uLiBPdGhlciByZW5kZXJpbmcgZW5naW5lcyBhZ3JlZSB3aXRoIHRo
ZSByZXN1bHQuCiB3ZWJraXQub3JnL2IvMjA2MTY4IFsgRGVidWcgXSBmYXN0L2RvbS9pbnNlcnQt
c3Bhbi1pbnRvLWxvbmctdGV4dC1idWctMjgyNDUuaHRtbCBbIFNraXAgXQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>