<?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>194746</bug_id>
          
          <creation_ts>2019-02-16 08:10:17 -0800</creation_ts>
          <short_desc>drawImage() clears the canvas if it&apos;s the source of the image and globalCompositeOperation is &quot;copy&quot;</short_desc>
          <delta_ts>2019-02-20 14:28:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.14</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>susisu2413</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507014</commentid>
    <comment_count>0</comment_count>
    <who name="">susisu2413</who>
    <bug_when>2019-02-16 08:10:17 -0800</bug_when>
    <thetext>When copying a region of a canvas to another region of the same canvas, drawImage does not work correctly if those regions have overlap.

A reproduction code is here: https://jsfiddle.net/kfcea804/
  Expected: Two green overlapping rectangles are drawn.
  Actual: A part of one rectangle is chipped (drawn as white, not green).

The chipped region matches the area of the source region that is overwritten by the drawImage.
I&apos;m not sure, but the cause of this issue may be that WebKit does not taking a copy of the source image before the drawing operation, as opposed to what HTML Living Standard says:

&gt; When a canvas element is drawn onto itself, the drawing model requires the source to be copied before the image is drawn, so it is possible to copy parts of a canvas element onto overlapping parts of itself.

https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-drawimage

I am using Safari TP Release 75 (Safari 12.2, WebKit 14608.1.3.0.2) on macOS 10.14.3.
I also checked that this issue is also reproduced with WebKit r241645.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507281</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-02-18 08:46:48 -0800</bug_when>
    <thetext>Thank you for the report! Do you happen to know if this ever worked before in Safari?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507296</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-18 09:28:44 -0800</bug_when>
    <thetext>Looking at the test case:

The bug happens because of this setting:
    ctx.globalCompositeOperation = &quot;copy&quot;;

Looking at the source code of CanvasRenderingContext2DBase::drawImage() and when 

if (state().globalComposite == CompositeCopy) {
    clearCanvas();
    c-&gt;drawImageBuffer(*buffer, dstRect, srcRect, ImagePaintingOptions(state().globalComposite, state().globalBlend));
    didDrawEntireCanvas();
}

Calling clearCanvas() will clear the entire canvas rectangle. Because the test case clips to the destination rect(64, 64, 128, 128), clearCanvas() will only clear this rectangle. But this destination rectangle overlaps the source rectangle rect(0, 0, 128, 128). So the intersection rectangle (64, 64, 128, 128) is also cleared from the source rectangle. And this is why a white rectangle in the middle of the cnavas is drawn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507310</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-18 10:45:21 -0800</bug_when>
    <thetext>So we need to read out the source before clearing in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507312</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-18 10:46:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/48169601&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507546</commentid>
    <comment_count>5</comment_count>
    <who name="">susisu2413</who>
    <bug_when>2019-02-18 17:12:36 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #1)
&gt; Thank you for the report! Do you happen to know if this ever worked before
&gt; in Safari?

No, I don&apos;t know it worked before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507882</commentid>
    <comment_count>6</comment_count>
      <attachid>362445</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-19 15:30:41 -0800</bug_when>
    <thetext>Created attachment 362445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507886</commentid>
    <comment_count>7</comment_count>
      <attachid>362445</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-19 15:35:22 -0800</bug_when>
    <thetext>Comment on attachment 362445
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1665
&gt; +        if (&amp;sourceCanvas == &amp;canvasBase()) {
&gt; +            auto imageBuffer = drawCanvasToBuffer(srcRect);
&gt; +            clearCanvas();
&gt; +            c-&gt;drawImageBuffer(*imageBuffer, dstRect, { { }, srcRect.size() }, ImagePaintingOptions(state().globalComposite, state().globalBlend));

Should we look to see if srcRect and dstRect overlap and only do the copy in that case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507909</commentid>
    <comment_count>8</comment_count>
      <attachid>362445</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-19 16:29:23 -0800</bug_when>
    <thetext>Comment on attachment 362445
Patch

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

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1665
&gt;&gt; +            c-&gt;drawImageBuffer(*imageBuffer, dstRect, { { }, srcRect.size() }, ImagePaintingOptions(state().globalComposite, state().globalBlend));
&gt; 
&gt; Should we look to see if srcRect and dstRect overlap and only do the copy in that case?

No. Because if srcRect and dstRect do not overlap, we will fall through the else-statement which will clearCanvas() before drawImageBuffer() .

For example, the new test layout in this patch will show nothing if I change the above if statement to be:
 
if (&amp;sourceCanvas == &amp;canvasBase() &amp;&amp; srcRect.intersects(dstRect))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507937</commentid>
    <comment_count>9</comment_count>
      <attachid>362445</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-02-19 17:31:52 -0800</bug_when>
    <thetext>Comment on attachment 362445
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1602
&gt; +std::unique_ptr&lt;ImageBuffer&gt; CanvasRenderingContext2DBase::drawCanvasToBuffer(const FloatRect&amp; srcRect) const

I wonder if this should be called copyCanvasRegionToBuffer?

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1611
&gt; +    auto&amp; canvas = downcast&lt;HTMLCanvasElement&gt;(canvasBase());
&gt; +    ImageBuffer* srcBuffer = canvas.buffer();
&gt; +    if (!srcBuffer)
&gt; +        return nullptr;

This can go first in the function to skip creating the dstBuffer if it fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507938</commentid>
    <comment_count>10</comment_count>
      <attachid>362445</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-02-19 17:32:26 -0800</bug_when>
    <thetext>Comment on attachment 362445
Patch

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

&gt; LayoutTests/fast/canvas/canvas-drawImage-composite-copy.html:2
&gt; +    &lt;canvas id=&quot;canvas&quot; width=&quot;200&quot; height=&quot;200&quot;&gt;&lt;/canvas&gt;

We should probably make this a WPT and submit it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508179</commentid>
    <comment_count>11</comment_count>
      <attachid>362522</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-20 12:04:37 -0800</bug_when>
    <thetext>Created attachment 362522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508182</commentid>
    <comment_count>12</comment_count>
      <attachid>362445</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-02-20 12:10:46 -0800</bug_when>
    <thetext>Comment on attachment 362445
Patch

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

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1602
&gt;&gt; +std::unique_ptr&lt;ImageBuffer&gt; CanvasRenderingContext2DBase::drawCanvasToBuffer(const FloatRect&amp; srcRect) const
&gt; 
&gt; I wonder if this should be called copyCanvasRegionToBuffer?

I moved this function to ImageBuffer and I name it copyRectToBuffer(). So please have a look at the new patch.

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1611
&gt;&gt; +        return nullptr;
&gt; 
&gt; This can go first in the function to skip creating the dstBuffer if it fails.

You are right. After moving this function to ImageBuffer, I call it from CanvasRenderingContext2DBase::drawImage() from buffer-&gt;copyRectToBuffer(). We check nullability of buffer before this call. So this check is not needed anymore.

&gt;&gt; LayoutTests/fast/canvas/canvas-drawImage-composite-copy.html:2
&gt;&gt; +    &lt;canvas id=&quot;canvas&quot; width=&quot;200&quot; height=&quot;200&quot;&gt;&lt;/canvas&gt;
&gt; 
&gt; We should probably make this a WPT and submit it back.

I will talk to Youenn Fablet about the process to get it as WPT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508257</commentid>
    <comment_count>13</comment_count>
      <attachid>362522</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-20 14:28:19 -0800</bug_when>
    <thetext>Comment on attachment 362522
Patch

Clearing flags on attachment: 362522

Committed r241840: &lt;https://trac.webkit.org/changeset/241840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508258</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-20 14:28:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362445</attachid>
            <date>2019-02-19 15:30:41 -0800</date>
            <delta_ts>2019-02-20 12:04:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194746-20190219153040.patch</filename>
            <type>text/plain</type>
            <size>6497</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTc3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE5LTAyLTE5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgZHJhd0ltYWdl
KCkgY2xlYXJzIHRoZSBjYW52YXMgaWYgaXQncyB0aGUgc291cmNlIG9mIHRoZSBpbWFnZSBhbmQg
Z2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIGlzICJjb3B5IgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NzQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLWRyYXdJ
bWFnZS1jb21wb3NpdGUtY29weS5odG1sCisKKyAgICAgICAgSWYgdGhlIGNhbnZhcyBpZiBpdCdz
IHRoZSBzb3VyY2Ugb2YgdGhlIGltYWdlIGFuZCBnbG9iYWxDb21wb3NpdGVPcGVyYXRpb24KKyAg
ICAgICAgaXMgc2V0IHRvICJjb3B5IiwgY29weSB0aGUgc3JjUmVjdCBmcm9tIHRoZSBjYW52YXMg
dG8gYSB0ZW1wb3JhcnkgYnVmZmVyCisgICAgICAgIGJlZm9yZSBjYWxsaW5nIGNsZWFyQ2FudmFz
KCkuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRy
YXdDYW52YXNUb0J1ZmZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaDoKKwogMjAxOS0wMi0xOSAgWmFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwb3N0LWNvbW1pdCBmZWVkYmFjay4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCShyZXZpc2lvbiAyNDE3NzkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU5OSw2ICsxNTk5LDIyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQKICAgICByZXR1cm4geyB9OwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdDYW52YXNUb0J1ZmZl
cihjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpIGNvbnN0Cit7CisgICAgYXV0byBkc3RCdWZmZXIg
PSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNyY1JlY3Quc2l6ZSgpLCBkcmF3aW5nQ29udGV4dCgpID8g
ZHJhd2luZ0NvbnRleHQoKS0+cmVuZGVyaW5nTW9kZSgpIDogQWNjZWxlcmF0ZWQpOworICAgIGlm
ICghZHN0QnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8mIGNhbnZh
cyA9IGRvd25jYXN0PEhUTUxDYW52YXNFbGVtZW50PihjYW52YXNCYXNlKCkpOworICAgIEltYWdl
QnVmZmVyKiBzcmNCdWZmZXIgPSBjYW52YXMuYnVmZmVyKCk7CisgICAgaWYgKCFzcmNCdWZmZXIp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgR3JhcGhpY3NDb250ZXh0JiBkc3RDb250
ZXh0ID0gZHN0QnVmZmVyLT5jb250ZXh0KCk7CisgICAgZHN0Q29udGV4dC5kcmF3SW1hZ2VCdWZm
ZXIoKnNyY0J1ZmZlciwgLXNyY1JlY3QubG9jYXRpb24oKSk7CisgICAgcmV0dXJuIGRzdEJ1ZmZl
cjsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
ZHJhd0ltYWdlKEhUTUxDYW52YXNFbGVtZW50JiBzb3VyY2VDYW52YXMsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0KQogewogICAgIEZsb2F0UmVjdCBz
cmNDYW52YXNSZWN0ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc291cmNlQ2FudmFzLnNpemUo
KSk7CkBAIC0xNjQzLDggKzE2NTksMTQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVy
aW5nQ29udGV4dAogICAgICAgICBmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWFnZSgqYnVmZmVy
LCBkc3RSZWN0LCBzcmNSZWN0LCBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSk7CiAgICAgICAgIGRp
ZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9z
aXRlID09IENvbXBvc2l0ZUNvcHkpIHsKLSAgICAgICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAg
Yy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRp
bmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7
CisgICAgICAgIGlmICgmc291cmNlQ2FudmFzID09ICZjYW52YXNCYXNlKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBkcmF3Q2FudmFzVG9CdWZmZXIoc3JjUmVjdCk7CisgICAg
ICAgICAgICBjbGVhckNhbnZhcygpOworICAgICAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpp
bWFnZUJ1ZmZlciwgZHN0UmVjdCwgeyB7IH0sIHNyY1JlY3Quc2l6ZSgpIH0sIEltYWdlUGFpbnRp
bmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjbGVhckNhbnZhcygpOworICAgICAgICAg
ICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFp
bnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5k
KSk7CisgICAgICAgIH0KICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0
LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5n
bG9iYWxCbGVuZCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAkocmV2aXNpb24gMjQxNzc5KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjcsNiArMzY3LDggQEAgcHJvdGVjdGVkOgogCiAgICAg
dm9pZCBwcmVwYXJlR3JhZGllbnRGb3JEYXNoYm9hcmQoQ2FudmFzR3JhZGllbnQmKSBjb25zdDsK
IAorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gZHJhd0NhbnZhc1RvQnVmZmVyKGNv
bnN0IEZsb2F0UmVjdCYpIGNvbnN0OworCiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlRGF0
YT4+IGdldEltYWdlRGF0YShJbWFnZUJ1ZmZlcjo6Q29vcmRpbmF0ZVN5c3RlbSwgZmxvYXQgc3gs
IGZsb2F0IHN5LCBmbG9hdCBzdywgZmxvYXQgc2gpIGNvbnN0OwogICAgIHZvaWQgcHV0SW1hZ2VE
YXRhKEltYWdlRGF0YSYsIEltYWdlQnVmZmVyOjpDb29yZGluYXRlU3lzdGVtLCBmbG9hdCBkeCwg
ZmxvYXQgZHksIGZsb2F0IGRpcnR5WCwgZmxvYXQgZGlydHlZLCBmbG9hdCBkaXJ0eVdpZHRoLCBm
bG9hdCBkaXJ0eUhlaWdodCk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTc3OSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE5LTAy
LTE5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAg
ICAgZHJhd0ltYWdlKCkgY2xlYXJzIHRoZSBjYW52YXMgaWYgaXQncyB0aGUgc291cmNlIG9mIHRo
ZSBpbWFnZSBhbmQgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIGlzICJjb3B5IgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NzQ2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52
YXMtZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1kcmF3SW1hZ2UtY29tcG9zaXRlLWNvcHkuaHRtbDogQWRk
ZWQuCisKIDIwMTktMDItMTkgIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbIGlPUyBdIExheW91dCBUZXN0cyBpbiBlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10
cmFuc2Zlci1zZXQtZGF0YS0qIGFyZSBmbGFreSBUaW1lb3V0cwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWRyYXdJbWFnZS1jb21wb3NpdGUtY29weS1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kcmF3SW1hZ2Ut
Y29tcG9zaXRlLWNvcHktZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9jYW52YXMtZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5LWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPGJvZHk+CisgICAgPGNhbnZhcyBp
ZD0iY2FudmFzIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PC9jYW52YXM+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZh
cyIpOworICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAg
ICAgY29uc3Qgd2lkdGggPSBjYW52YXMud2lkdGg7CisgICAgICAgIGNvbnN0IGhlaWdodCA9IGNh
bnZhcy5oZWlnaHQ7CisKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJncmVlbiI7CisgICAgICAg
IGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCAvIDIsIGhlaWdodCAvIDIpOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRyYXdJbWFn
ZS1jb21wb3NpdGUtY29weS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy1kcmF3SW1hZ2UtY29tcG9zaXRlLWNvcHkuaHRtbAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorPGJvZHk+CisgICAgPGNhbnZh
cyBpZD0iY2FudmFzIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PC9jYW52YXM+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNh
bnZhcyIpOworICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAg
ICAgICAgY29uc3Qgd2lkdGggPSBjYW52YXMud2lkdGg7CisgICAgICAgIGNvbnN0IGhlaWdodCA9
IGNhbnZhcy5oZWlnaHQ7CisKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJncmVlbiI7CisgICAg
ICAgIGN0eC5maWxsUmVjdCh3aWR0aCAvIDIsIGhlaWdodCAvIDIsIHdpZHRoIC8gMiwgaGVpZ2h0
IC8gMik7CisKKyAgICAgICAgY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICJjb3B5IjsK
KyAgICAgICAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlOworCisgICAgICAgIGN0
eC5kcmF3SW1hZ2UoCisgICAgICAgICAgICBjYW52YXMsCisgICAgICAgICAgICB3aWR0aCAvIDIs
IGhlaWdodCAvIDIsIHdpZHRoIC8gMiwgaGVpZ2h0IC8gMiwKKyAgICAgICAgICAgIDAsIDAsIHdp
ZHRoIC8gMiwgaGVpZ2h0IC8gMgorICAgICAgICApOworICAgIDwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362522</attachid>
            <date>2019-02-20 12:04:37 -0800</date>
            <delta_ts>2019-02-20 14:28:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194746-20190220120436.patch</filename>
            <type>text/plain</type>
            <size>7136</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTgyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAyLTIwICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgZHJhd0ltYWdl
KCkgY2xlYXJzIHRoZSBjYW52YXMgaWYgaXQncyB0aGUgc291cmNlIG9mIHRoZSBpbWFnZSBhbmQg
Z2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIGlzICJjb3B5IgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NzQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGVhbiBKYWNrc29uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2NhbnZhcy1kcmF3SW1h
Z2UtY29tcG9zaXRlLWNvcHkuaHRtbAorCisgICAgICAgIElmIHRoZSBzb3VyY2UgY2FudmFzIG9m
IGRyYXdJbWFnZSgpIGlzIHRoZSBzYW1lIGFzIHRoZSBkZXN0aW5hdGlvbiBhbmQKKyAgICAgICAg
Z2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIGlzIHNldCB0byAiY29weSIsIGNvcHkgdGhlIHNyY1Jl
Y3QgZnJvbSB0aGUgCisgICAgICAgIGNhbnZhcyB0byBhIHRlbXBvcmFyeSBidWZmZXIgYmVmb3Jl
IGNhbGxpbmcgY2xlYXJDYW52YXMoKSB0aGVuIGRyYXdJbWFnZQorICAgICAgICBmcm9tIHRoaXMg
dGVtcG9yYXJ5IGJ1ZmZlci4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y29weVJlY3RUb0J1
ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKwogMjAx
OS0wMi0yMCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuZGVyVGhlbWVJT1Mgc2hvdWxkIHVzZSBSZW5kZXJUaGVtZSdzIGNvbG9yIGNhY2hlIGluc3Rl
YWQgb2YgaXRzIG93bi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCShyZXZpc2lvbiAyNDE4
MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY0Myw4ICsxNjQzLDE1IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQKICAgICAgICAgZnVsbENhbnZhc0NvbXBv
c2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgc3RhdGUoKS5nbG9iYWxD
b21wb3NpdGUpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlm
IChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVDb3B5KSB7Ci0gICAgICAgIGNs
ZWFyQ2FudmFzKCk7Ci0gICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0
LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwg
c3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAgICAgICBpZiAoJnNvdXJjZUNhbnZhcyA9PSAmY2Fu
dmFzQmFzZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBjb3B5ID0gYnVmZmVyLT5jb3B5UmVj
dFRvQnVmZmVyKHNyY1JlY3QsIENvbG9yU3BhY2VTUkdCLCAqYykpIHsKKyAgICAgICAgICAgICAg
ICBjbGVhckNhbnZhcygpOworICAgICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29w
eSwgZHN0UmVjdCwgeyB7IH0sIHNyY1JlY3Quc2l6ZSgpIH0sIEltYWdlUGFpbnRpbmdPcHRpb25z
KHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjbGVhckNhbnZhcygpOworICAg
ICAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIElt
YWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2Jh
bEJsZW5kKSk7CisgICAgICAgIH0KICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBz
cmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3Rh
dGUoKS5nbG9iYWxCbGVuZCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAkocmV2aXNpb24gMjQxODIxKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTQsNiArMTk0LDIxIEBAIGJvb2wgSW1hZ2VCdWZmZXI6OmNvcHlUb1BsYXRmb3JtVGV4dHVy
ZSgKIH0KICNlbmRpZgogCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVy
Ojpjb3B5UmVjdFRvQnVmZmVyKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgQ29sb3JTcGFjZSBjb2xv
clNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCit7CisgICAgaWYgKHJlY3Qu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEludFNpemUgc2NhbGVk
U2l6ZSA9IEltYWdlQnVmZmVyOjpjb21wYXRpYmxlQnVmZmVyU2l6ZShyZWN0LnNpemUoKSwgY29u
dGV4dCk7CisKKyAgICBhdXRvIGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxl
QnVmZmVyKHNjYWxlZFNpemUsIDEsIGNvbG9yU3BhY2UsIGNvbnRleHQpOworICAgIGlmICghYnVm
ZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGJ1ZmZlci0+Y29udGV4dCgpLmRy
YXdJbWFnZUJ1ZmZlcigqdGhpcywgLXJlY3QubG9jYXRpb24oKSk7CisgICAgcmV0dXJuIGJ1ZmZl
cjsKK30KKwogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
Q29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogewogICAgIGlmIChzaXplLmlz
RW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaAkocmV2aXNpb24gMjQxODIxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsOSBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGNvbnN0IEdyYXBo
aWNzQ29udGV4dCosIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xv
clNwYWNlU1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRyKTsKICNlbmRpZgogCisgICAg
Ly8gQ3JlYXRlIGFuIGltYWdlIGJ1ZmZlciBjb21wYXRpYmxlIHdpdGggdGhlIGNvbnRleHQgYW5k
IGNvcHkgcmVjdCBmcm9tIHRoaXMgYnVmZmVyIGludG8gdGhpcyBuZXcgb25lLgorICAgIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY29weVJlY3RUb0J1ZmZlcihjb25zdCBGbG9hdFJlY3Qm
LCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsKKwogICAgIC8vIENyZWF0ZSBh
biBpbWFnZSBidWZmZXIgY29tcGF0aWJsZSB3aXRoIHRoZSBjb250ZXh0LCB3aXRoIHN1aXRhYmxl
IHJlc29sdXRpb24gZm9yIGRyYXdpbmcgaW50byB0aGUgYnVmZmVyIGFuZCB0aGVuIGludG8gdGhp
cyBjb250ZXh0LgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGNyZWF0
ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0
Jik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0
aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0Nv
bnRleHQmKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTgyMSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE5LTAyLTIwICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgZHJhd0ltYWdl
KCkgY2xlYXJzIHRoZSBjYW52YXMgaWYgaXQncyB0aGUgc291cmNlIG9mIHRoZSBpbWFnZSBhbmQg
Z2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIGlzICJjb3B5IgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NzQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGVhbiBKYWNrc29uLgorCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWRyYXdJbWFnZS1j
b21wb3NpdGUtY29weS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZh
cy9jYW52YXMtZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTAy
LTIwICBTaGF3biBSb2JlcnRzICA8c3JvYmVydHNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyNDA3MjcpIFsgTWFjIGlPUyBdIExheW91dCBUZXN0IGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMuaHRtbCBpcyBmbGFreQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRyYXdJbWFnZS1jb21wb3NpdGUtY29weS1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1kcmF3SW1hZ2UtY29tcG9zaXRlLWNvcHktZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZHJhd0ltYWdlLWNvbXBvc2l0ZS1jb3B5
LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPGJvZHk+Cisg
ICAgPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PC9jYW52YXM+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNhbnZhcyIpOworICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgi
MmQiKTsKKyAgICAgICAgY29uc3Qgd2lkdGggPSBjYW52YXMud2lkdGg7CisgICAgICAgIGNvbnN0
IGhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7CisKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJncmVl
biI7CisgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCAvIDIsIGhlaWdodCAvIDIpOwor
ICAgIDwvc2NyaXB0PgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLWRyYXdJbWFnZS1jb21wb3NpdGUtY29weS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kcmF3SW1hZ2UtY29tcG9zaXRlLWNvcHkuaHRtbAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZHJhd0ltYWdlLWNv
bXBvc2l0ZS1jb3B5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorPGJvZHk+
CisgICAgPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PC9jYW52
YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNhbnZhcyIpOworICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4
dCgiMmQiKTsKKyAgICAgICAgY29uc3Qgd2lkdGggPSBjYW52YXMud2lkdGg7CisgICAgICAgIGNv
bnN0IGhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7CisKKyAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJn
cmVlbiI7CisgICAgICAgIGN0eC5maWxsUmVjdCh3aWR0aCAvIDIsIGhlaWdodCAvIDIsIHdpZHRo
IC8gMiwgaGVpZ2h0IC8gMik7CisKKyAgICAgICAgY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlv
biA9ICJjb3B5IjsKKyAgICAgICAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlOwor
CisgICAgICAgIGN0eC5kcmF3SW1hZ2UoCisgICAgICAgICAgICBjYW52YXMsCisgICAgICAgICAg
ICB3aWR0aCAvIDIsIGhlaWdodCAvIDIsIHdpZHRoIC8gMiwgaGVpZ2h0IC8gMiwKKyAgICAgICAg
ICAgIDAsIDAsIHdpZHRoIC8gMiwgaGVpZ2h0IC8gMgorICAgICAgICApOworICAgIDwvc2NyaXB0
PgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>