<?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>173097</bug_id>
          
          <creation_ts>2017-06-08 06:23:20 -0700</creation_ts>
          <short_desc>[GTK][WPE] Fix alpha premultiplying when using cairo to draw the video frames</short_desc>
          <delta_ts>2017-06-09 03:52:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Miguel Gomez">magomez</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1316886</commentid>
    <comment_count>0</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-08 06:23:20 -0700</bug_when>
    <thetext>GStreamer uses non premultiplied alpha on its video frames. But cairo uses premultiplied alpha. So when we want to paint video frames with cairo, we need to perform a manual premultiply.

With the current code, this is performed by VideoSinkGStreamer, in the webkitVideoSinkRequestRender() function, but this is wrong. This performs the premultiply assuming that the video frames are always going to rendered with cairo, but that&apos;s not true. When using accelerated compositing, the frame data is uploaded to a texture and rendered with OpenGL, so in that case premultiplying is an error. Also, premultiplying needs to be done as well when using gstreamer-gl, which is not happening now, and that can&apos;t be done inside VideoSinkGStreamer as we are using a different sink.

The appropriate thing to do here is to perform the premultiplying inside ImageGStreamerCairo, as there we know for sure that we are going to use cairo for rendering. Also this is used both with and without gstreamer-gl.

Manually performing the premultiplying has a performance penalty, but luckily this just has to be done when the video has an alpha component, which is a rare case. Usually the video will be using BGRx (or xRGB with big endian), which doesn&apos;t require the premultiply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316893</commentid>
    <comment_count>1</comment_count>
      <attachid>312299</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-08 06:35:01 -0700</bug_when>
    <thetext>Created attachment 312299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316899</commentid>
    <comment_count>2</comment_count>
      <attachid>312299</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-08 06:50:27 -0700</bug_when>
    <thetext>Comment on attachment 312299
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:71
&gt; +        surface = adoptRef(cairo_image_surface_create(cairoFormat, width, height));
&gt; +        unsigned char* surfaceData = cairo_image_surface_get_data(surface.get());

Could we allocate the new data ourselves using bmalloc here? In this case we could assign bufferData = surfaceData after the conversion and create the cairo surface the same way for both cases. We would also need to attach a user data callback to the surface to destroy the data.

&gt; Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:94
&gt; +        cairo_surface_mark_dirty(surface.get());

And we wouldn&apos;t need this, I guess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317269</commentid>
    <comment_count>3</comment_count>
      <attachid>312299</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-09 00:56:48 -0700</bug_when>
    <thetext>Comment on attachment 312299
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:71
&gt;&gt; +        unsigned char* surfaceData = cairo_image_surface_get_data(surface.get());
&gt; 
&gt; Could we allocate the new data ourselves using bmalloc here? In this case we could assign bufferData = surfaceData after the conversion and create the cairo surface the same way for both cases. We would also need to attach a user data callback to the surface to destroy the data.

See ImageBufferCario.cpp for that. Don&apos;t forget to allocate zeroed-out memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317309</commentid>
    <comment_count>4</comment_count>
      <attachid>312413</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-06-09 02:26:00 -0700</bug_when>
    <thetext>Created attachment 312413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317311</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 02:27:37 -0700</bug_when>
    <thetext>Attachment 312413 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/ImageGStreamerCairo.cpp:96:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317337</commentid>
    <comment_count>6</comment_count>
      <attachid>312413</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-09 03:52:24 -0700</bug_when>
    <thetext>Comment on attachment 312413
Patch

Clearing flags on attachment: 312413

Committed r217976: &lt;http://trac.webkit.org/changeset/217976&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317338</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-09 03:52:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312299</attachid>
            <date>2017-06-08 06:35:01 -0700</date>
            <delta_ts>2017-06-09 02:25:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173097-20170608153500.patch</filename>
            <type>text/plain</type>
            <size>8430</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU4OTYzYTk3ODM5ZjQ5
MTY0NGM3NDA5NzY0MmViZjdkODQzYTFiOS4uNWRiOGI1YzRjMmFiNjVlMTEyNTMwZjYzYTRkMjhj
NjZhYzNkNWZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE3LTA2LTA4ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dUS11bV1BFXSBGaXgg
YWxwaGEgcHJlbXVsdGlwbHlpbmcgd2hlbiB1c2luZyBjYWlybyB0byBkcmF3IHRoZSB2aWRlbyBm
cmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MzA5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IG5lZWQgdG8gcHJlbXVsdGlwbHkgYWxwaGEgd2hlbiBjcmVhdGluZyBhIGNhaXJvIHN1cmZhY2Ug
ZnJvbSBhIEdTdHJlYW1lciB2aWRlbyBmcmFtZSwgaWYgdGhlIGZyYW1lCisgICAgICAgIGhhcyBh
biBhbHBoYSBjb21wb25lbnQuIEN1cnJlbnRseSB0aGlzIGlzIHdyb25nbHkgZG9uZSBpbiBWaWRl
b1NpbmtHU3RyZWFtZXIsIGFzIGl0IGFzc3VtZXMgdGhhdCBldmVyeQorICAgICAgICBmcmFtZSBp
cyBnb2luZyB0byBiZSByZW5kZXJlZCB3aXRoIGNhaXJvLCB3aGljaCBpcyBub3QgdGhlIGNhc2Ug
d2hlbiB1c2luZyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KKyAgICAgICAgVGhlIHByZW11bHRp
cGx5IG11c3QgaGFwcGVuIGluc2lkZSBJbWFnZUdTdHJlYW1lckNhaXJvLCB3aGljaCBpcyB3aGVy
ZSB3ZSBrbm93IHRoYXQgdGhlIGZyYW1lIGlzCisgICAgICAgIGdvaW5nIHRvIGJlIHJlbmRlcmVk
IHdpdGggY2Fpcm8sIGFuZCB3aGVyZSB0aGUgcHJlbXVsdGlwbHkgY2FuIGJlIHBlcmZvcm1lZCB3
aGVuIGdzdHJlYW1lci1nbCBpcworICAgICAgICBlbmFibGVkIGFzIHdlbGwuCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcDoKKyAgICAgICAgKEltYWdlR1N0cmVh
bWVyOjpJbWFnZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtSZXF1
ZXN0UmVuZGVyKToKKworMjAxNy0wNi0wOCAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEu
Y29tPgorCiAgICAgICAgIFtHVEtdW1dQRV1bR1NUUkVBTUVSX0dMXSBDaGFuZ2UgdGhlIGNvbG9y
c3BhY2UgdXNlZCBieSB0aGUgdmlkZW8gZnJhbWVzIHByb3ZpZGVkIGJ5IEdTdHJlYW1lcgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMDUwCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAppbmRleCBjNTVjZmRmOTdiN2Q0M2M1ZDM0
ZjJmOWM1NTYzNzZmNWE5NmE2Zjg1Li42YjUzODk5YTY4MDdhOGU5NTBlYmNhMjMyODkxMzkzNTcz
NDQ3NzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCkBAIC00OCw3ICs0
OCwxMSBAQCBJbWFnZUdTdHJlYW1lcjo6SW1hZ2VHU3RyZWFtZXIoR3N0U2FtcGxlKiBzYW1wbGUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlckRhdGEgPSByZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihHU1RfVklERU9fRlJBTUVfUExBTkVfREFUQSgm
bV92aWRlb0ZyYW1lLCAwKSk7CisgICAgaW50IHN0cmlkZSA9IEdTVF9WSURFT19GUkFNRV9QTEFO
RV9TVFJJREUoJm1fdmlkZW9GcmFtZSwgMCk7CisgICAgaW50IHdpZHRoID0gR1NUX1ZJREVPX0ZS
QU1FX1dJRFRIKCZtX3ZpZGVvRnJhbWUpOworICAgIGludCBoZWlnaHQgPSBHU1RfVklERU9fRlJB
TUVfSEVJR0hUKCZtX3ZpZGVvRnJhbWUpOwogCisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4g
c3VyZmFjZTsKICAgICBjYWlyb19mb3JtYXRfdCBjYWlyb0Zvcm1hdDsKICNpZiBHX0JZVEVfT1JE
RVIgPT0gR19MSVRUTEVfRU5ESUFOCiAgICAgY2Fpcm9Gb3JtYXQgPSAoR1NUX1ZJREVPX0ZSQU1F
X0ZPUk1BVCgmbV92aWRlb0ZyYW1lKSA9PSBHU1RfVklERU9fRk9STUFUX0JHUkEpID8gQ0FJUk9f
Rk9STUFUX0FSR0IzMiA6IENBSVJPX0ZPUk1BVF9SR0IyNDsKQEAgLTU2LDExICs2MCw0MSBAQCBJ
bWFnZUdTdHJlYW1lcjo6SW1hZ2VHU3RyZWFtZXIoR3N0U2FtcGxlKiBzYW1wbGUpCiAgICAgY2Fp
cm9Gb3JtYXQgPSAoR1NUX1ZJREVPX0ZSQU1FX0ZPUk1BVCgmbV92aWRlb0ZyYW1lKSA9PSBHU1Rf
VklERU9fRk9STUFUX0FSR0IpID8gQ0FJUk9fRk9STUFUX0FSR0IzMiA6IENBSVJPX0ZPUk1BVF9S
R0IyNDsKICNlbmRpZgogCi0gICAgaW50IHN0cmlkZSA9IEdTVF9WSURFT19GUkFNRV9QTEFORV9T
VFJJREUoJm1fdmlkZW9GcmFtZSwgMCk7Ci0gICAgaW50IHdpZHRoID0gR1NUX1ZJREVPX0ZSQU1F
X1dJRFRIKCZtX3ZpZGVvRnJhbWUpOwotICAgIGludCBoZWlnaHQgPSBHU1RfVklERU9fRlJBTUVf
SEVJR0hUKCZtX3ZpZGVvRnJhbWUpOworICAgIC8vIEdTdHJlYW1lciBkb2Vzbid0IHVzZSBwcmVt
dWx0aXBsaWVkIGFscGhhLCBidXQgY2Fpcm8gZG9lcy4gU28gaXQgdGhlIHZpZGVvIGZvcm1hdCBo
YXMgYW4gYWxwaGEgY29tcG9uZW50CisgICAgLy8gd2UgbmVlZCB0byBwcmVtdWx0aXBseSBpdCBi
ZWZvcmUgcGFzc2luZyB0aGUgZGF0YSB0byBjYWlyby4gVGhpcyBuZWVkcyB0byBiZSBib3RoIHVz
aW5nIGdzdHJlYW1lci1nbCBhbmQgbm90CisgICAgLy8gdXNpbmcgaXQuCisgICAgLy8KKyAgICAv
LyBUaGlzIG1ldGhvZCBjb3VsZCBiZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcyBmb3IgdGhlIHNhbWUg
YnVmZmVyLCBmb3IgZXhhbXBsZSBpZiB3ZSBhcmUgcmVuZGVyaW5nIHRoZSB2aWRlbyBmcmFtZXMK
KyAgICAvLyBpbiBzZXZlcmFsIG5vbiBhY2NlbGVyYXRlZCBjYW52YXNlcy4gRHVlIHRvIHRoaXMs
IHdlIGNhbm5vdCBtb2RpZnkgdGhlIGJ1ZmZlciwgc28gd2UgbmVlZCB0byBjcmVhdGUgYSBjb3B5
LgorICAgIGlmIChjYWlyb0Zvcm1hdCA9PSBDQUlST19GT1JNQVRfQVJHQjMyKSB7CisgICAgICAg
IHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShjYWlyb0Zvcm1h
dCwgd2lkdGgsIGhlaWdodCkpOworICAgICAgICB1bnNpZ25lZCBjaGFyKiBzdXJmYWNlRGF0YSA9
IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoc3VyZmFjZS5nZXQoKSk7CisKKyAgICAgICAg
Zm9yIChpbnQgeCA9IDA7IHggPCBHU1RfVklERU9fRlJBTUVfSEVJR0hUKCZtX3ZpZGVvRnJhbWUp
OyB4KyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgR1NUX1ZJREVPX0ZSQU1F
X1dJRFRIKCZtX3ZpZGVvRnJhbWUpOyB5KyspIHsKKyNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRU
TEVfRU5ESUFOCisgICAgICAgICAgICAgICAgLy8gVmlkZW8gZnJhbWVzIHVzZSBCR1JBIGluIGxp
dHRsZSBlbmRpYW4uCisgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgYWxwaGEgPSBidWZm
ZXJEYXRhWzNdOworICAgICAgICAgICAgICAgIHN1cmZhY2VEYXRhWzBdID0gKGJ1ZmZlckRhdGFb
MF0gKiBhbHBoYSArIDEyOCkgLyAyNTU7CisgICAgICAgICAgICAgICAgc3VyZmFjZURhdGFbMV0g
PSAoYnVmZmVyRGF0YVsxXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKKyAgICAgICAgICAgICAgICBz
dXJmYWNlRGF0YVsyXSA9IChidWZmZXJEYXRhWzJdICogYWxwaGEgKyAxMjgpIC8gMjU1OworICAg
ICAgICAgICAgICAgIHN1cmZhY2VEYXRhWzNdID0gYWxwaGE7CisjZWxzZQorICAgICAgICAgICAg
ICAgIC8vIFZpZGVvIGZyYW1lcyB1c2UgQVJHQiBpbiBiaWcgZW5kaWFuLgorICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIHNob3J0IGFscGhhID0gYnVmZmVyRGF0YVswXTsKKyAgICAgICAgICAgICAg
ICBzdXJmYWNlRGF0YVswXSA9IGFscGhhOworICAgICAgICAgICAgICAgIHN1cmZhY2VEYXRhWzFd
ID0gKGJ1ZmZlckRhdGFbMV0gKiBhbHBoYSArIDEyOCkgLyAyNTU7CisgICAgICAgICAgICAgICAg
c3VyZmFjZURhdGFbMl0gPSAoYnVmZmVyRGF0YVsyXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKKyAg
ICAgICAgICAgICAgICBzdXJmYWNlRGF0YVszXSA9IChidWZmZXJEYXRhWzNdICogYWxwaGEgKyAx
MjgpIC8gMjU1OworI2VuZGlmCisgICAgICAgICAgICAgICAgYnVmZmVyRGF0YSArPSA0OworICAg
ICAgICAgICAgICAgIHN1cmZhY2VEYXRhICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgY2Fpcm9fc3VyZmFjZV9tYXJrX2RpcnR5KHN1cmZhY2UuZ2V0KCkpOworICAgIH0g
ZWxzZQorICAgICAgICBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVh
dGVfZm9yX2RhdGEoYnVmZmVyRGF0YSwgY2Fpcm9Gb3JtYXQsIHdpZHRoLCBoZWlnaHQsIHN0cmlk
ZSkpOwogCi0gICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVmKGNh
aXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlckRhdGEsIGNhaXJvRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUpKTsKICAgICBBU1NFUlQoY2Fpcm9fc3VyZmFjZV9zdGF0
dXMoc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpOwogICAgIG1faW1hZ2Ug
PSBCaXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUoc3VyZmFjZSkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRl
b1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDhmYjljMzBhMTQyYTBjNDkyMjkwMWU2NDVhMmViYzc5
MjUxNjY2NmYuLjY2NjNiZmJlMGYzNGFlZDliYzI5Y2JlYjQxMmU2MTM3Y2NiMjlhNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Np
bmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0xNjksNjYgKzE2OSw2IEBAIHN0YXRp
YyBHUmVmUHRyPEdzdFNhbXBsZT4gd2Via2l0VmlkZW9TaW5rUmVxdWVzdFJlbmRlcihXZWJLaXRW
aWRlb1NpbmsqIHNpbmssIEdzCiAgICAgaWYgKGZvcm1hdCA9PSBHU1RfVklERU9fRk9STUFUX1VO
S05PV04pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgLy8gQ2Fpcm8ncyBBUkdCIGhh
cyBwcmUtbXVsdGlwbGllZCBhbHBoYSB3aGlsZSBHU3RyZWFtZXIncyBkb2Vzbid0LgotICAgIC8v
IEhlcmUgd2UgY29udmVydCB0byBDYWlybydzIEFSR0IuCi0gICAgaWYgKGZvcm1hdCA9PSBHU1Rf
VklERU9fRk9STUFUX0FSR0IgfHwgZm9ybWF0ID09IEdTVF9WSURFT19GT1JNQVRfQkdSQSkgewot
ICAgICAgICAvLyBCZWNhdXNlIEdzdEJhc2VTaW5rOjpyZW5kZXIoKSBvbmx5IG93bnMgdGhlIGJ1
ZmZlciByZWZlcmVuY2UgaW4gdGhlCi0gICAgICAgIC8vIG1ldGhvZCBzY29wZSB3ZSBjYW4ndCB1
c2UgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgaGVyZS4gQWxzbwotICAgICAgICAvLyBUaGUg
YnVmZmVyIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGhlcmUgYmVjYXVzZSB0aGUgc2Ft
ZSBidWZmZXIKLSAgICAgICAgLy8gY291bGQgYmUgcGFzc2VkIG11bHRpcGxlIHRpbWVzIHRvIHRo
aXMgbWV0aG9kIChpbiB0aGVvcnkpLgotCi0gICAgICAgIEdzdEJ1ZmZlciogbmV3QnVmZmVyID0g
V2ViQ29yZTo6Y3JlYXRlR3N0QnVmZmVyKGJ1ZmZlcik7Ci0KLSAgICAgICAgLy8gQ2hlY2sgaWYg
YWxsb2NhdGlvbiBmYWlsZWQuCi0gICAgICAgIGlmIChVTkxJS0VMWSghbmV3QnVmZmVyKSkKLSAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgIC8vIFdlIGRvbid0IHVzZSBDb2xv
cjo6cHJlbXVsdGlwbGllZEFSR0JGcm9tQ29sb3IoKSBoZXJlIGJlY2F1c2UKLSAgICAgICAgLy8g
b25lIGZ1bmN0aW9uIGNhbGwgcGVyIHZpZGVvIHBpeGVsIGlzIGp1c3QgdG9vIGV4cGVuc2l2ZToK
LSAgICAgICAgLy8gRm9yIDcyMHAvUEFMIGZvciBleGFtcGxlIHRoaXMgbWVhbnMgMTI4MCo3MjAq
MjU9MjMwNDAwMDAKLSAgICAgICAgLy8gZnVuY3Rpb24gY2FsbHMgcGVyIHNlY29uZCEKLSAgICAg
ICAgR3N0VmlkZW9GcmFtZSBzb3VyY2VGcmFtZTsKLSAgICAgICAgR3N0VmlkZW9GcmFtZSBkZXN0
aW5hdGlvbkZyYW1lOwotCi0gICAgICAgIGlmICghZ3N0X3ZpZGVvX2ZyYW1lX21hcCgmc291cmNl
RnJhbWUsICZwcml2LT5pbmZvLCBidWZmZXIsIEdTVF9NQVBfUkVBRCkpIHsKLSAgICAgICAgICAg
IGdzdF9idWZmZXJfdW5yZWYobmV3QnVmZmVyKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghZ3N0X3ZpZGVvX2ZyYW1lX21hcCgmZGVzdGluYXRp
b25GcmFtZSwgJnByaXYtPmluZm8sIG5ld0J1ZmZlciwgR1NUX01BUF9XUklURSkpIHsKLSAgICAg
ICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmc291cmNlRnJhbWUpOwotICAgICAgICAgICAg
Z3N0X2J1ZmZlcl91bnJlZihuZXdCdWZmZXIpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBndWludDgqIHNvdXJjZSA9IHN0YXRpY19jYXN0
PGd1aW50OCo+KEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZzb3VyY2VGcmFtZSwgMCkpOwot
ICAgICAgICBndWludDgqIGRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Z3VpbnQ4Kj4oR1NUX1ZJ
REVPX0ZSQU1FX1BMQU5FX0RBVEEoJmRlc3RpbmF0aW9uRnJhbWUsIDApKTsKLQotICAgICAgICBm
b3IgKGludCB4ID0gMDsgeCA8IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJnNvdXJjZUZyYW1lKTsg
eCsrKSB7Ci0gICAgICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8IEdTVF9WSURFT19GUkFNRV9X
SURUSCgmc291cmNlRnJhbWUpOyB5KyspIHsKLSNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVf
RU5ESUFOCi0gICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgYWxwaGEgPSBzb3VyY2VbM107
Ci0gICAgICAgICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAoc291cmNlWzBdICogYWxwaGEgKyAx
MjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uWzFdID0gKHNvdXJjZVsxXSAq
IGFscGhhICsgMTI4KSAvIDI1NTsKLSAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblsyXSA9IChz
b3VyY2VbMl0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgZGVzdGluYXRp
b25bM10gPSBhbHBoYTsKLSNlbHNlCi0gICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgYWxw
aGEgPSBzb3VyY2VbMF07Ci0gICAgICAgICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBhbHBoYTsK
LSAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblsxXSA9IChzb3VyY2VbMV0gKiBhbHBoYSArIDEy
OCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgZGVzdGluYXRpb25bMl0gPSAoc291cmNlWzJdICog
YWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uWzNdID0gKHNv
dXJjZVszXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKLSNlbmRpZgotICAgICAgICAgICAgICAgIHNv
dXJjZSArPSA0OwotICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uICs9IDQ7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLQotICAgICAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJnNvdXJjZUZy
YW1lKTsKLSAgICAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwKCZkZXN0aW5hdGlvbkZyYW1lKTsK
LSAgICAgICAgc2FtcGxlID0gYWRvcHRHUmVmKGdzdF9zYW1wbGVfbmV3KG5ld0J1ZmZlciwgcHJp
di0+Y3VycmVudENhcHMsIG51bGxwdHIsIG51bGxwdHIpKTsKLSAgICAgICAgZ3N0X2J1ZmZlcl91
bnJlZihuZXdCdWZmZXIpOwotICAgIH0KLQogICAgIHJldHVybiBzYW1wbGU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312413</attachid>
            <date>2017-06-09 02:26:00 -0700</date>
            <delta_ts>2017-06-09 03:52:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173097-20170609112558.patch</filename>
            <type>text/plain</type>
            <size>8511</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3OTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdhYzc1NTRjODA3ZmMw
M2QwMmVhYzJlNDNiMWVmZmZkYmM3YmJjZi4uOTAxMzQwZmVlMTE3NmRkNzg0ZGZjMmI0MjBlNTMx
NDJhMWNiZTQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTA2LTA5ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBGaXgg
YWxwaGEgcHJlbXVsdGlwbHlpbmcgd2hlbiB1c2luZyBjYWlybyB0byBkcmF3IHRoZSB2aWRlbyBm
cmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MzA5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IG5lZWQgdG8gcHJlbXVsdGlwbHkgYWxwaGEgd2hlbiBjcmVhdGluZyBhIGNhaXJvIHN1cmZhY2Ug
ZnJvbSBhIEdTdHJlYW1lciB2aWRlbyBmcmFtZSwgaWYgdGhlIGZyYW1lCisgICAgICAgIGhhcyBh
biBhbHBoYSBjb21wb25lbnQuIEN1cnJlbnRseSB0aGlzIGlzIHdyb25nbHkgZG9uZSBpbiBWaWRl
b1NpbmtHU3RyZWFtZXIsIGFzIGl0IGFzc3VtZXMgdGhhdCBldmVyeQorICAgICAgICBmcmFtZSBp
cyBnb2luZyB0byBiZSByZW5kZXJlZCB3aXRoIGNhaXJvLCB3aGljaCBpcyBub3QgdGhlIGNhc2Ug
d2hlbiB1c2luZyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KKyAgICAgICAgVGhlIHByZW11bHRp
cGx5IG11c3QgaGFwcGVuIGluc2lkZSBJbWFnZUdTdHJlYW1lckNhaXJvLCB3aGljaCBpcyB3aGVy
ZSB3ZSBrbm93IHRoYXQgdGhlIGZyYW1lIGlzCisgICAgICAgIGdvaW5nIHRvIGJlIHJlbmRlcmVk
IHdpdGggY2Fpcm8sIGFuZCB3aGVyZSB0aGUgcHJlbXVsdGlwbHkgY2FuIGJlIHBlcmZvcm1lZCB3
aGVuIGdzdHJlYW1lci1nbCBpcworICAgICAgICBlbmFibGVkIGFzIHdlbGwuCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcDoKKyAgICAgICAgKEltYWdlR1N0cmVh
bWVyOjpJbWFnZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRWaWRlb1NpbmtSZXF1
ZXN0UmVuZGVyKToKKwogMjAxNy0wNi0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IHVudXNlZCBwYXJhbWV0ZXIg
d2FybmluZyBhZnRlciByMjE3OTU1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3Bw
CmluZGV4IGM1NWNmZGY5N2I3ZDQzYzVkMzRmMmY5YzU1NjM3NmY1YTk2YTZmODUuLjE2MmY3Njcz
MjZlNWEzNzczMmJlNzZiMGI3MGFhMDg5NmQ3YjVkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKQEAgLTQ4LDcgKzQ4LDExIEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdW5zaWdu
ZWQgY2hhciogYnVmZmVyRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KEdT
VF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZtX3ZpZGVvRnJhbWUsIDApKTsKKyAgICBpbnQgc3Ry
aWRlID0gR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmbV92aWRlb0ZyYW1lLCAwKTsKKyAg
ICBpbnQgd2lkdGggPSBHU1RfVklERU9fRlJBTUVfV0lEVEgoJm1fdmlkZW9GcmFtZSk7CisgICAg
aW50IGhlaWdodCA9IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJm1fdmlkZW9GcmFtZSk7CiAKKyAg
ICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlOwogICAgIGNhaXJvX2Zvcm1hdF90IGNh
aXJvRm9ybWF0OwogI2lmIEdfQllURV9PUkRFUiA9PSBHX0xJVFRMRV9FTkRJQU4KICAgICBjYWly
b0Zvcm1hdCA9IChHU1RfVklERU9fRlJBTUVfRk9STUFUKCZtX3ZpZGVvRnJhbWUpID09IEdTVF9W
SURFT19GT1JNQVRfQkdSQSkgPyBDQUlST19GT1JNQVRfQVJHQjMyIDogQ0FJUk9fRk9STUFUX1JH
QjI0OwpAQCAtNTYsMTEgKzYwLDQzIEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdTdHJlYW1lcihH
c3RTYW1wbGUqIHNhbXBsZSkKICAgICBjYWlyb0Zvcm1hdCA9IChHU1RfVklERU9fRlJBTUVfRk9S
TUFUKCZtX3ZpZGVvRnJhbWUpID09IEdTVF9WSURFT19GT1JNQVRfQVJHQikgPyBDQUlST19GT1JN
QVRfQVJHQjMyIDogQ0FJUk9fRk9STUFUX1JHQjI0OwogI2VuZGlmCiAKLSAgICBpbnQgc3RyaWRl
ID0gR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmbV92aWRlb0ZyYW1lLCAwKTsKLSAgICBp
bnQgd2lkdGggPSBHU1RfVklERU9fRlJBTUVfV0lEVEgoJm1fdmlkZW9GcmFtZSk7Ci0gICAgaW50
IGhlaWdodCA9IEdTVF9WSURFT19GUkFNRV9IRUlHSFQoJm1fdmlkZW9GcmFtZSk7CisgICAgLy8g
R1N0cmVhbWVyIGRvZXNuJ3QgdXNlIHByZW11bHRpcGxpZWQgYWxwaGEsIGJ1dCBjYWlybyBkb2Vz
LiBTbyBpZiB0aGUgdmlkZW8gZm9ybWF0IGhhcyBhbiBhbHBoYSBjb21wb25lbnQKKyAgICAvLyB3
ZSBuZWVkIHRvIHByZW11bHRpcGx5IGl0IGJlZm9yZSBwYXNzaW5nIHRoZSBkYXRhIHRvIGNhaXJv
LiBUaGlzIG5lZWRzIHRvIGJlIGJvdGggdXNpbmcgZ3N0cmVhbWVyLWdsIGFuZCBub3QKKyAgICAv
LyB1c2luZyBpdC4KKyAgICAvLworICAgIC8vIFRoaXMgbWV0aG9kIGNvdWxkIGJlIGNhbGxlZCBz
ZXZlcmFsIHRpbWVzIGZvciB0aGUgc2FtZSBidWZmZXIsIGZvciBleGFtcGxlIGlmIHdlIGFyZSBy
ZW5kZXJpbmcgdGhlIHZpZGVvIGZyYW1lcworICAgIC8vIGluIHNldmVyYWwgbm9uIGFjY2VsZXJh
dGVkIGNhbnZhc2VzLiBEdWUgdG8gdGhpcywgd2UgY2Fubm90IG1vZGlmeSB0aGUgYnVmZmVyLCBz
byB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGNvcHkuCisgICAgaWYgKGNhaXJvRm9ybWF0ID09IENBSVJP
X0ZPUk1BVF9BUkdCMzIpIHsKKyAgICAgICAgdW5zaWduZWQgY2hhciogc3VyZmFjZURhdGEgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oZmFzdE1hbGxvYyhoZWlnaHQgKiBzdHJpZGUpKTsK
KyAgICAgICAgdW5zaWduZWQgY2hhciogc3VyZmFjZVBpeGVsID0gc3VyZmFjZURhdGE7CisKKyAg
ICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBmb3Ig
KGludCB5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CisjaWYgR19CWVRFX09SREVSID09IEdfTElU
VExFX0VORElBTgorICAgICAgICAgICAgICAgIC8vIFZpZGVvIGZyYW1lcyB1c2UgQkdSQSBpbiBs
aXR0bGUgZW5kaWFuLgorICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGFscGhhID0gYnVm
ZmVyRGF0YVszXTsKKyAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbMF0gPSAoYnVmZmVyRGF0
YVswXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKKyAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxb
MV0gPSAoYnVmZmVyRGF0YVsxXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKKyAgICAgICAgICAgICAg
ICBzdXJmYWNlUGl4ZWxbMl0gPSAoYnVmZmVyRGF0YVsyXSAqIGFscGhhICsgMTI4KSAvIDI1NTsK
KyAgICAgICAgICAgICAgICBzdXJmYWNlUGl4ZWxbM10gPSBhbHBoYTsKKyNlbHNlCisgICAgICAg
ICAgICAgICAgLy8gVmlkZW8gZnJhbWVzIHVzZSBBUkdCIGluIGJpZyBlbmRpYW4uCisgICAgICAg
ICAgICAgICAgdW5zaWduZWQgc2hvcnQgYWxwaGEgPSBidWZmZXJEYXRhWzBdOworICAgICAgICAg
ICAgICAgIHN1cmZhY2VQaXhlbFswXSA9IGFscGhhOworICAgICAgICAgICAgICAgIHN1cmZhY2VQ
aXhlbFsxXSA9IChidWZmZXJEYXRhWzFdICogYWxwaGEgKyAxMjgpIC8gMjU1OworICAgICAgICAg
ICAgICAgIHN1cmZhY2VQaXhlbFsyXSA9IChidWZmZXJEYXRhWzJdICogYWxwaGEgKyAxMjgpIC8g
MjU1OworICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbFszXSA9IChidWZmZXJEYXRhWzNdICog
YWxwaGEgKyAxMjgpIC8gMjU1OworI2VuZGlmCisgICAgICAgICAgICAgICAgYnVmZmVyRGF0YSAr
PSA0OworICAgICAgICAgICAgICAgIHN1cmZhY2VQaXhlbCArPSA0OworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNl
X2NyZWF0ZV9mb3JfZGF0YShzdXJmYWNlRGF0YSwgY2Fpcm9Gb3JtYXQsIHdpZHRoLCBoZWlnaHQs
IHN0cmlkZSkpOworICAgICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHNfc3VyZmFj
ZURhdGFLZXk7CisgICAgICAgIGNhaXJvX3N1cmZhY2Vfc2V0X3VzZXJfZGF0YShzdXJmYWNlLmdl
dCgpLCAmc19zdXJmYWNlRGF0YUtleSwgc3VyZmFjZURhdGEsIFtdKHZvaWQqIGRhdGEpIHsgZmFz
dEZyZWUoZGF0YSk7IH0pOworICAgIH0gZWxzZQorICAgICAgICBzdXJmYWNlID0gYWRvcHRSZWYo
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyRGF0YSwgY2Fpcm9Gb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIHN0cmlkZSkpOwogCi0gICAgUmVmUHRyPGNhaXJvX3N1cmZhY2Vf
dD4gc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRh
KGJ1ZmZlckRhdGEsIGNhaXJvRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUpKTsKICAgICBB
U1NFUlQoY2Fpcm9fc3VyZmFjZV9zdGF0dXMoc3VyZmFjZS5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVT
X1NVQ0NFU1MpOwogICAgIG1faW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUoc3Vy
ZmFjZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDhmYjljMzBh
MTQyYTBjNDkyMjkwMWU2NDVhMmViYzc5MjUxNjY2NmYuLjY2NjNiZmJlMGYzNGFlZDliYzI5Y2Jl
YjQxMmU2MTM3Y2NiMjlhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBA
IC0xNjksNjYgKzE2OSw2IEBAIHN0YXRpYyBHUmVmUHRyPEdzdFNhbXBsZT4gd2Via2l0VmlkZW9T
aW5rUmVxdWVzdFJlbmRlcihXZWJLaXRWaWRlb1NpbmsqIHNpbmssIEdzCiAgICAgaWYgKGZvcm1h
dCA9PSBHU1RfVklERU9fRk9STUFUX1VOS05PV04pCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgLy8gQ2Fpcm8ncyBBUkdCIGhhcyBwcmUtbXVsdGlwbGllZCBhbHBoYSB3aGlsZSBHU3Ry
ZWFtZXIncyBkb2Vzbid0LgotICAgIC8vIEhlcmUgd2UgY29udmVydCB0byBDYWlybydzIEFSR0Iu
Ci0gICAgaWYgKGZvcm1hdCA9PSBHU1RfVklERU9fRk9STUFUX0FSR0IgfHwgZm9ybWF0ID09IEdT
VF9WSURFT19GT1JNQVRfQkdSQSkgewotICAgICAgICAvLyBCZWNhdXNlIEdzdEJhc2VTaW5rOjpy
ZW5kZXIoKSBvbmx5IG93bnMgdGhlIGJ1ZmZlciByZWZlcmVuY2UgaW4gdGhlCi0gICAgICAgIC8v
IG1ldGhvZCBzY29wZSB3ZSBjYW4ndCB1c2UgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgaGVy
ZS4gQWxzbwotICAgICAgICAvLyBUaGUgYnVmZmVyIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBjaGFu
Z2VkIGhlcmUgYmVjYXVzZSB0aGUgc2FtZSBidWZmZXIKLSAgICAgICAgLy8gY291bGQgYmUgcGFz
c2VkIG11bHRpcGxlIHRpbWVzIHRvIHRoaXMgbWV0aG9kIChpbiB0aGVvcnkpLgotCi0gICAgICAg
IEdzdEJ1ZmZlciogbmV3QnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRlR3N0QnVmZmVyKGJ1ZmZlcik7
Ci0KLSAgICAgICAgLy8gQ2hlY2sgaWYgYWxsb2NhdGlvbiBmYWlsZWQuCi0gICAgICAgIGlmIChV
TkxJS0VMWSghbmV3QnVmZmVyKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
ICAgIC8vIFdlIGRvbid0IHVzZSBDb2xvcjo6cHJlbXVsdGlwbGllZEFSR0JGcm9tQ29sb3IoKSBo
ZXJlIGJlY2F1c2UKLSAgICAgICAgLy8gb25lIGZ1bmN0aW9uIGNhbGwgcGVyIHZpZGVvIHBpeGVs
IGlzIGp1c3QgdG9vIGV4cGVuc2l2ZToKLSAgICAgICAgLy8gRm9yIDcyMHAvUEFMIGZvciBleGFt
cGxlIHRoaXMgbWVhbnMgMTI4MCo3MjAqMjU9MjMwNDAwMDAKLSAgICAgICAgLy8gZnVuY3Rpb24g
Y2FsbHMgcGVyIHNlY29uZCEKLSAgICAgICAgR3N0VmlkZW9GcmFtZSBzb3VyY2VGcmFtZTsKLSAg
ICAgICAgR3N0VmlkZW9GcmFtZSBkZXN0aW5hdGlvbkZyYW1lOwotCi0gICAgICAgIGlmICghZ3N0
X3ZpZGVvX2ZyYW1lX21hcCgmc291cmNlRnJhbWUsICZwcml2LT5pbmZvLCBidWZmZXIsIEdTVF9N
QVBfUkVBRCkpIHsKLSAgICAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYobmV3QnVmZmVyKTsKLSAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0gICAgICAgIGlmICghZ3N0X3Zp
ZGVvX2ZyYW1lX21hcCgmZGVzdGluYXRpb25GcmFtZSwgJnByaXYtPmluZm8sIG5ld0J1ZmZlciwg
R1NUX01BUF9XUklURSkpIHsKLSAgICAgICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmc291
cmNlRnJhbWUpOwotICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihuZXdCdWZmZXIpOwotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBndWlu
dDgqIHNvdXJjZSA9IHN0YXRpY19jYXN0PGd1aW50OCo+KEdTVF9WSURFT19GUkFNRV9QTEFORV9E
QVRBKCZzb3VyY2VGcmFtZSwgMCkpOwotICAgICAgICBndWludDgqIGRlc3RpbmF0aW9uID0gc3Rh
dGljX2Nhc3Q8Z3VpbnQ4Kj4oR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX0RBVEEoJmRlc3RpbmF0aW9u
RnJhbWUsIDApKTsKLQotICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IEdTVF9WSURFT19GUkFN
RV9IRUlHSFQoJnNvdXJjZUZyYW1lKTsgeCsrKSB7Ci0gICAgICAgICAgICBmb3IgKGludCB5ID0g
MDsgeSA8IEdTVF9WSURFT19GUkFNRV9XSURUSCgmc291cmNlRnJhbWUpOyB5KyspIHsKLSNpZiBH
X0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCi0gICAgICAgICAgICAgICAgdW5zaWduZWQg
c2hvcnQgYWxwaGEgPSBzb3VyY2VbM107Ci0gICAgICAgICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSAoc291cmNlWzBdICogYWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAgICAgIGRlc3Rp
bmF0aW9uWzFdID0gKHNvdXJjZVsxXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKLSAgICAgICAgICAg
ICAgICBkZXN0aW5hdGlvblsyXSA9IChzb3VyY2VbMl0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0g
ICAgICAgICAgICAgICAgZGVzdGluYXRpb25bM10gPSBhbHBoYTsKLSNlbHNlCi0gICAgICAgICAg
ICAgICAgdW5zaWduZWQgc2hvcnQgYWxwaGEgPSBzb3VyY2VbMF07Ci0gICAgICAgICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBhbHBoYTsKLSAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblsxXSA9
IChzb3VyY2VbMV0gKiBhbHBoYSArIDEyOCkgLyAyNTU7Ci0gICAgICAgICAgICAgICAgZGVzdGlu
YXRpb25bMl0gPSAoc291cmNlWzJdICogYWxwaGEgKyAxMjgpIC8gMjU1OwotICAgICAgICAgICAg
ICAgIGRlc3RpbmF0aW9uWzNdID0gKHNvdXJjZVszXSAqIGFscGhhICsgMTI4KSAvIDI1NTsKLSNl
bmRpZgotICAgICAgICAgICAgICAgIHNvdXJjZSArPSA0OwotICAgICAgICAgICAgICAgIGRlc3Rp
bmF0aW9uICs9IDQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBnc3Rfdmlk
ZW9fZnJhbWVfdW5tYXAoJnNvdXJjZUZyYW1lKTsKLSAgICAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3Vu
bWFwKCZkZXN0aW5hdGlvbkZyYW1lKTsKLSAgICAgICAgc2FtcGxlID0gYWRvcHRHUmVmKGdzdF9z
YW1wbGVfbmV3KG5ld0J1ZmZlciwgcHJpdi0+Y3VycmVudENhcHMsIG51bGxwdHIsIG51bGxwdHIp
KTsKLSAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZihuZXdCdWZmZXIpOwotICAgIH0KLQogICAgIHJl
dHVybiBzYW1wbGU7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>