<?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>80714</bug_id>
          
          <creation_ts>2012-03-09 11:46:53 -0800</creation_ts>
          <short_desc>[Qt] [WK2] Shouldn&apos;t use item for clipping rect calculation in paint node.</short_desc>
          <delta_ts>2012-03-09 20:50:41 -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>New Bugs</component>
          <version>528+ (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>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76661</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Viatcheslav Ostapenko">ostap73</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>575037</commentid>
    <comment_count>0</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-03-09 11:46:53 -0800</bug_when>
    <thetext>This will not work with threaded rendering or require some synchronization and clipping nodes have all necessary information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575041</commentid>
    <comment_count>1</comment_count>
      <attachid>131067</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-03-09 11:51:45 -0800</bug_when>
    <thetext>Created attachment 131067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575156</commentid>
    <comment_count>2</comment_count>
      <attachid>131067</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-03-09 13:27:09 -0800</bug_when>
    <thetext>Comment on attachment 131067
Patch

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Replace item based clipping rect calculation with clipping nodes based.

Explain that this is needed for threaded rendering, where you don&apos;t have access to the items.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:121
&gt; +    static void adjustBoundingRect(QRectF&amp; rect, const QPointF&amp; point)

rename uniteRectWithPoint

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:131
&gt; +        if (rect.top() &gt; point.y())
&gt; +            rect.setTop(point.y());
&gt; +        else if (rect.bottom() &lt; point.y())
&gt; +            rect.setBottom(point.y());
&gt; +
&gt; +        if (rect.left() &gt; point.x())
&gt; +            rect.setLeft(point.x());
&gt; +        else if (rect.right() &lt; point.x())
&gt; +            rect.setRight(point.x());

rect |= QRectF(point, QSizeF(1, 1));

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:137
&gt; +        QRectF retRect(0, 0, -1, -1);

retRect -&gt; resultRect

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:139
&gt; +        while (clip) {

Would be nicer as a for loop
for (const QSGClipNode* clip = clipList(); clip; clip = clip-&gt;clipList)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:140
&gt; +            QMatrix4x4 m;

m -&gt; matrix or clipMatrix

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:142
&gt; +                m *= *clip-&gt;matrix();

Why multiply instead of assign?

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:152
&gt; +                if (geometry-&gt;vertexCount() &gt; 1) {

Shouldn&apos;t it be 2? I don&apos;t see the point in a single-line clip.
Also, this requires a comment.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:153
&gt; +                    currentClip.setTopLeft(m.map(QPoint(geometryPoints[0].x, geometryPoints[0].y)));

If you use my unite suggestion, you don&apos;t need this and can simply start from 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575201</commentid>
    <comment_count>3</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-03-09 14:05:06 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 131067 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131067&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:8
&gt; &gt; +        Replace item based clipping rect calculation with clipping nodes based.
&gt; 
&gt; Explain that this is needed for threaded rendering, where you don&apos;t have access to the items.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:121
&gt; &gt; +    static void adjustBoundingRect(QRectF&amp; rect, const QPointF&amp; point)
&gt; 
&gt; rename uniteRectWithPoint
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:131
&gt; &gt; +        if (rect.top() &gt; point.y())
&gt; &gt; +            rect.setTop(point.y());
&gt; &gt; +        else if (rect.bottom() &lt; point.y())
&gt; &gt; +            rect.setBottom(point.y());
&gt; &gt; +
&gt; &gt; +        if (rect.left() &gt; point.x())
&gt; &gt; +            rect.setLeft(point.x());
&gt; &gt; +        else if (rect.right() &lt; point.x())
&gt; &gt; +            rect.setRight(point.x());
&gt; 
&gt; rect |= QRectF(point, QSizeF(1, 1));

This will give rect bigger by 1 on right and bottom sides.
QSize(0, 0) will not work becase QRectF operator| has check for null rect and will return original rect.

&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:137
&gt; &gt; +        QRectF retRect(0, 0, -1, -1);
&gt; 
&gt; retRect -&gt; resultRect
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:139
&gt; &gt; +        while (clip) {
&gt; 
&gt; Would be nicer as a for loop
&gt; for (const QSGClipNode* clip = clipList(); clip; clip = clip-&gt;clipList)
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:140
&gt; &gt; +            QMatrix4x4 m;
&gt; 
&gt; m -&gt; matrix or clipMatrix
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:142
&gt; &gt; +                m *= *clip-&gt;matrix();

Remaining artifacts ;)

&gt; Why multiply instead of assign?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:152
&gt; &gt; +                if (geometry-&gt;vertexCount() &gt; 1) {
&gt; 
&gt; Shouldn&apos;t it be 2? I don&apos;t see the point in a single-line clip.
&gt; Also, this requires a comment.

Yes, 2 make more sense.

&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:153
&gt; &gt; +                    currentClip.setTopLeft(m.map(QPoint(geometryPoints[0].x, geometryPoints[0].y)));
&gt; 
&gt; If you use my unite suggestion, you don&apos;t need this and can simply start from 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575222</commentid>
    <comment_count>4</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-03-09 14:24:24 -0800</bug_when>
    <thetext>&gt; QSize(0, 0) will not work becase QRectF operator| has check for null rect and will return original rect.
How about:
Use a QPolygonF
Add the points to the polygon
Use polygon-&gt;boundingRect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575229</commentid>
    <comment_count>5</comment_count>
      <attachid>131111</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-03-09 14:29:28 -0800</bug_when>
    <thetext>Created attachment 131111
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575234</commentid>
    <comment_count>6</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-03-09 14:32:37 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; QSize(0, 0) will not work becase QRectF operator| has check for null rect and will return original rect.
&gt; How about:
&gt; Use a QPolygonF
&gt; Add the points to the polygon
&gt; Use polygon-&gt;boundingRect

Didn&apos;t know that such thing exists.
Was looking for it some time ago and there was QPolygon only.
I&apos;ll try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575237</commentid>
    <comment_count>7</comment_count>
      <attachid>131111</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-03-09 14:36:21 -0800</bug_when>
    <thetext>Comment on attachment 131111
Updated patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:159
&gt; +                const QSGGeometry::Point2D* geometryPoints = geometry-&gt;vertexDataAsPoint2D();
&gt; +
&gt; +                // Clip region should be at least triangle to make valid clip.
&gt; +                if (geometry-&gt;vertexCount() &gt; 2) {
&gt; +                    currentClip.setTopLeft(clipMatrix.map(QPoint(geometryPoints[0].x, geometryPoints[0].y)));
&gt; +
&gt; +                    for (int i = 1; i &lt; geometry-&gt;vertexCount(); i++)
&gt; +                        uniteRectWithPoint(currentClip, clipMatrix.map(QPoint(geometryPoints[i].x, geometryPoints[i].y)));
&gt; +                }

Better to add the points to a QPolygonF and then call boundingRect.
Otherwise patch is good.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:162
&gt; +            if (!currentClip.isEmpty()) {

if (currentClip.isEmpty())
    continue;

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:163
&gt; +                if (resultRect.isValid())

Comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575253</commentid>
    <comment_count>8</comment_count>
      <attachid>131115</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-03-09 14:43:44 -0800</bug_when>
    <thetext>Created attachment 131115
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575263</commentid>
    <comment_count>9</comment_count>
      <attachid>131115</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-03-09 14:52:03 -0800</bug_when>
    <thetext>Comment on attachment 131115
Updated patch

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

This is good. Let&apos;s fix the nitpicks and commit.

&gt; Source/WebKit2/ChangeLog:11
&gt; +        Replace item based clipping rect calculation with clipping nodes based.
&gt; +        Part of threaded rendering implementation.
&gt; +        In Qt5 threaded rendering paint nodes live on paint thread and items on 
&gt; +        main thread. Paint nodes should not have any direct access to items.

Some rewording if you don&apos;t mind :)
Replace item based clip-rect calculation with clipping-nodes based calculation.
This is required for threaded rendering, since we don&apos;t have access to the QSGItems from the render thread.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:25
&gt; +#include &lt;QPolygonF&gt;

This belongs at the end, before the QtQuick includes.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:126
&gt; +        QRectF resultRect(0, 0, -1, -1);

Comment: start with an invalid rect.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:142
&gt; +                if (geometry-&gt;vertexCount() &gt; 2) {

&lt;nitpick&gt;
if (geometry-&gt;vertexCount() &lt; 3)
    continue;

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:151
&gt; +            if (!currentClip.isEmpty()) {

if (currentClip.isEmpty())
    continue;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575288</commentid>
    <comment_count>10</comment_count>
      <attachid>131122</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-03-09 15:12:06 -0800</bug_when>
    <thetext>Created attachment 131122
Patch for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575428</commentid>
    <comment_count>11</comment_count>
      <attachid>131122</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 20:50:35 -0800</bug_when>
    <thetext>Comment on attachment 131122
Patch for commit.

Clearing flags on attachment: 131122

Committed r110368: &lt;http://trac.webkit.org/changeset/110368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575429</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 20:50:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131067</attachid>
            <date>2012-03-09 11:51:45 -0800</date>
            <delta_ts>2012-03-09 14:29:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>clipping_rect_fix_01.diff</filename>
            <type>text/plain</type>
            <size>5742</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzM2ZhZTgwLi4zYzNjZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTItMDMtMDkgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBTaG91bGRuJ3QgdXNlIGl0ZW0g
Zm9yIGNsaXBwaW5nIHJlY3QgY2FsY3VsYXRpb24gaW4gcGFpbnQgbm9kZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzE0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBpdGVtIGJhc2VkIGNs
aXBwaW5nIHJlY3QgY2FsY3VsYXRpb24gd2l0aCBjbGlwcGluZyBub2RlcyBiYXNlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHA6CisgICAgICAgIChRUXVp
Y2tXZWJQYWdlOjpRUXVpY2tXZWJQYWdlKToKKyAgICAgICAgKFFRdWlja1dlYlBhZ2VQcml2YXRl
OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCk6CisgICAgICAgIChQYWdlUHJveHlOb2RlOjpyZW5k
ZXIpOgorICAgICAgICAoUGFnZVByb3h5Tm9kZTo6YWRqdXN0Qm91bmRpbmdSZWN0KToKKyAgICAg
ICAgKFBhZ2VQcm94eU5vZGUpOgorICAgICAgICAoUGFnZVByb3h5Tm9kZTo6Y2xpcFJlY3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3AuaDoKKyAgICAgICAg
KFFRdWlja1dlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyk6CisK
IDIwMTItMDMtMDcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFBpbmNoIHpvb20gYWN0cyB3ZWlyZGx5IG9uIG55dGltZXMuY29tIHdo
aWxlIGxvYWRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnBhZ2UuY3BwCmluZGV4IGQ1OGZlZmUuLmRhYmY1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcApAQCAtMzYsNiArMzYsNyBA
QCBRUXVpY2tXZWJQYWdlOjpRUXVpY2tXZWJQYWdlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0SXRl
bSkKICAgICAsIGQobmV3IFFRdWlja1dlYlBhZ2VQcml2YXRlKHRoaXMsIHZpZXdwb3J0SXRlbSkp
CiB7CiAgICAgc2V0RmxhZyhJdGVtSGFzQ29udGVudHMpOworICAgIHNldENsaXAodHJ1ZSk7CiAK
ICAgICAvLyBXZSBkbyB0aGUgdHJhbnNmb3JtIGZyb20gdGhlIHRvcCBsZWZ0IHNvIHRoZSB2aWV3
cG9ydCBjYW4gYXNzdW1lIHRoZSBwb3NpdGlvbiAwLCAwCiAgICAgLy8gaXMgYWx3YXlzIHdoZXJl
IHJlbmRlcmluZyBzdGFydHMuCkBAIC03NywxMyArNzgsMTEgQEAgdm9pZCBRUXVpY2tXZWJQYWdl
UHJpdmF0ZTo6cGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIpCiAgICAgICAgIHdlYlBhZ2VQcm94eS0+
ZHJhd2luZ0FyZWEoKS0+cGFpbnRMYXllclRyZWUocGFpbnRlcik7CiB9CiAKLXZvaWQgUVF1aWNr
V2ViUGFnZVByaXZhdGU6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFFUcmFuc2Zvcm0m
IHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSkKK3ZvaWQgUVF1aWNrV2ViUGFnZVByaXZhdGU6OnBh
aW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFFUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgZmxvYXQg
b3BhY2l0eSwgY29uc3QgUVJlY3RGJiBjbGlwUmVjdCkKIHsKICAgICBpZiAoIXEtPmlzVmlzaWJs
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBRUmVjdEYgY2xpcFJlY3QgPSB2aWV3cG9ydEl0
ZW0tPm1hcFJlY3RUb1NjZW5lKHZpZXdwb3J0SXRlbS0+Ym91bmRpbmdSZWN0KCkpOwotCiAgICAg
aWYgKCFjbGlwUmVjdC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTA1LDEyICsx
MDQsMTIgQEAgc3RydWN0IFBhZ2VQcm94eU5vZGUgOiBwdWJsaWMgUVNHUmVuZGVyTm9kZSB7CiAg
ICAgICAgIHJldHVybiBTdGF0ZUZsYWdzKFN0ZW5jaWxTdGF0ZSkgfCBDb2xvclN0YXRlIHwgQmxl
bmRTdGF0ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKGNvbnN0IFJlbmRlclN0
YXRlJikKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKGNvbnN0IFJlbmRlclN0YXRlJiBzdGF0ZSkK
ICAgICB7CiAgICAgICAgIGlmICghbV9wYWdlUHJpdmF0ZSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgUVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBtYXRyaXgoKSA/IG1hdHJpeCgpLT50b1Ry
YW5zZm9ybSgpIDogUVRyYW5zZm9ybSgpOwotICAgICAgICBtX3BhZ2VQcml2YXRlLT5wYWludFRv
Q3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm0sIGluaGVyaXRlZE9wYWNpdHkoKSk7CisgICAgICAg
IG1fcGFnZVByaXZhdGUtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybSwgaW5oZXJp
dGVkT3BhY2l0eSgpLCBjbGlwUmVjdChzdGF0ZSkpOwogICAgIH0KIAogICAgIH5QYWdlUHJveHlO
b2RlKCkKQEAgLTExOSw2ICsxMTgsNTggQEAgc3RydWN0IFBhZ2VQcm94eU5vZGUgOiBwdWJsaWMg
UVNHUmVuZGVyTm9kZSB7CiAgICAgICAgICAgICBtX3BhZ2VQcml2YXRlLT5yZXNldFBhaW50Tm9k
ZSgpOwogICAgIH0KIAorICAgIHN0YXRpYyB2b2lkIGFkanVzdEJvdW5kaW5nUmVjdChRUmVjdEYm
IHJlY3QsIGNvbnN0IFFQb2ludEYmIHBvaW50KQorICAgIHsKKyAgICAgICAgaWYgKHJlY3QudG9w
KCkgPiBwb2ludC55KCkpCisgICAgICAgICAgICByZWN0LnNldFRvcChwb2ludC55KCkpOworICAg
ICAgICBlbHNlIGlmIChyZWN0LmJvdHRvbSgpIDwgcG9pbnQueSgpKQorICAgICAgICAgICAgcmVj
dC5zZXRCb3R0b20ocG9pbnQueSgpKTsKKworICAgICAgICBpZiAocmVjdC5sZWZ0KCkgPiBwb2lu
dC54KCkpCisgICAgICAgICAgICByZWN0LnNldExlZnQocG9pbnQueCgpKTsKKyAgICAgICAgZWxz
ZSBpZiAocmVjdC5yaWdodCgpIDwgcG9pbnQueCgpKQorICAgICAgICAgICAgcmVjdC5zZXRSaWdo
dChwb2ludC54KCkpOworICAgIH0KKworICAgIFFSZWN0RiBjbGlwUmVjdChjb25zdCBSZW5kZXJT
dGF0ZSAmc3RhdGUpIGNvbnN0CisgICAgeworICAgICAgICBjb25zdCBRU0dDbGlwTm9kZSogY2xp
cCA9IGNsaXBMaXN0KCk7CisgICAgICAgIFFSZWN0RiByZXRSZWN0KDAsIDAsIC0xLCAtMSk7CisK
KyAgICAgICAgd2hpbGUgKGNsaXApIHsKKyAgICAgICAgICAgIFFNYXRyaXg0eDQgbTsKKyAgICAg
ICAgICAgIGlmIChjbGlwLT5tYXRyaXgoKSkKKyAgICAgICAgICAgICAgICBtICo9ICpjbGlwLT5t
YXRyaXgoKTsKKyAgICAgICAgICAgIFFSZWN0RiBjdXJyZW50Q2xpcDsKKworICAgICAgICAgICAg
aWYgKGNsaXAtPmlzUmVjdGFuZ3VsYXIoKSkKKyAgICAgICAgICAgICAgICBjdXJyZW50Q2xpcCA9
IG0ubWFwUmVjdChjbGlwLT5jbGlwUmVjdCgpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIGNvbnN0IFFTR0dlb21ldHJ5KiBnZW9tZXRyeSA9IGNsaXAtPmdlb21ldHJ5KCk7
CisgICAgICAgICAgICAgICAgLy8gQXNzdW1lIGhlcmUgdGhhdCBjbGlwTm9kZSBoYXMgb25seSBj
b29yZGluYXRlIGRhdGEuCisgICAgICAgICAgICAgICAgY29uc3QgUVNHR2VvbWV0cnk6OlBvaW50
MkQqIGdlb21ldHJ5UG9pbnRzID0gZ2VvbWV0cnktPnZlcnRleERhdGFBc1BvaW50MkQoKTsKKwor
ICAgICAgICAgICAgICAgIGlmIChnZW9tZXRyeS0+dmVydGV4Q291bnQoKSA+IDEpIHsKKyAgICAg
ICAgICAgICAgICAgICAgY3VycmVudENsaXAuc2V0VG9wTGVmdChtLm1hcChRUG9pbnQoZ2VvbWV0
cnlQb2ludHNbMF0ueCwgZ2VvbWV0cnlQb2ludHNbMF0ueSkpKTsKKworICAgICAgICAgICAgICAg
ICAgICBmb3IgKGludCBpID0gMTsgaSA8IGdlb21ldHJ5LT52ZXJ0ZXhDb3VudCgpOyBpKyspCisg
ICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RCb3VuZGluZ1JlY3QoY3VycmVudENsaXAsIG0u
bWFwKFFQb2ludChnZW9tZXRyeVBvaW50c1tpXS54LCBnZW9tZXRyeVBvaW50c1tpXS55KSkpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFjdXJy
ZW50Q2xpcC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmV0UmVjdC5pc1ZhbGlk
KCkpCisgICAgICAgICAgICAgICAgICAgIHJldFJlY3QgJj0gY3VycmVudENsaXA7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByZXRSZWN0ID0gY3VycmVudENsaXA7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNsaXAgPSBjbGlwLT5jbGlwTGlzdCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJldFJlY3Q7CisgICAgfQorCiAgICAgUVF1aWNr
V2ViUGFnZVByaXZhdGUqIG1fcGFnZVByaXZhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmgKaW5kZXggZmE3ZDY4Yy4u
YjI4MTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJwYWdlX3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2VicGFnZV9wX3AuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVw
ZGF0ZVNpemUoKTsKIAotICAgIHZvaWQgcGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgUVRy
YW5zZm9ybSYsIGZsb2F0IG9wYWNpdHkpOworICAgIHZvaWQgcGFpbnRUb0N1cnJlbnRHTENvbnRl
eHQoY29uc3QgUVRyYW5zZm9ybSYsIGZsb2F0IG9wYWNpdHksIGNvbnN0IFFSZWN0RiYgY2xpcFJl
Y3QpOwogICAgIHZvaWQgcGFpbnQoUVBhaW50ZXIqKTsKICAgICB2b2lkIHJlc2V0UGFpbnROb2Rl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwCmluZGV4IGYwMWNlMDIuLmRhN2I3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMTEyNyw2ICsxMTI3LDcgQEAg
UVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQ
YWdlR3JvdXBSZWYgcGFnZUdyb3VwUmUKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7CiAgICAg
ZC0+aW5pdGlhbGl6ZShjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpOworICAgIHNldENsaXAodHJ1
ZSk7CiB9CiAKIFFRdWlja1dlYlZpZXc6On5RUXVpY2tXZWJWaWV3KCkK
</data>
<flag name="review"
          id="134253"
          type_id="1"
          status="-"
          setter="noam"
    />
    <flag name="commit-queue"
          id="134254"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131111</attachid>
            <date>2012-03-09 14:29:28 -0800</date>
            <delta_ts>2012-03-09 14:43:44 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>clipping_rect_fix_02.diff</filename>
            <type>text/plain</type>
            <size>5914</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzM2ZhZTgwLi40M2ZlZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTItMDMtMDkgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBTaG91bGRuJ3QgdXNlIGl0ZW0g
Zm9yIGNsaXBwaW5nIHJlY3QgY2FsY3VsYXRpb24gaW4gcGFpbnQgbm9kZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzE0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBpdGVtIGJhc2VkIGNs
aXBwaW5nIHJlY3QgY2FsY3VsYXRpb24gd2l0aCBjbGlwcGluZyBub2RlcyBiYXNlZC4KKyAgICAg
ICAgUGFydCBvZiB0aHJlYWRlZCByZW5kZXJpbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIElu
IFF0NSB0aHJlYWRlZCByZW5kZXJpbmcgcGFpbnQgbm9kZXMgbGl2ZSBvbiBwYWludCB0aHJlYWQg
YW5kIGl0ZW1zIG9uIAorICAgICAgICBtYWluIHRocmVhZC4gUGFpbnQgbm9kZXMgc2hvdWxkIG5v
dCBoYXZlIGFueSBkaXJlY3QgYWNjZXNzIHRvIGl0ZW1zLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlBhZ2U6OlFRdWlj
a1dlYlBhZ2UpOgorICAgICAgICAoUVF1aWNrV2ViUGFnZVByaXZhdGU6OnBhaW50VG9DdXJyZW50
R0xDb250ZXh0KToKKyAgICAgICAgKFBhZ2VQcm94eU5vZGU6OnJlbmRlcik6CisgICAgICAgIChQ
YWdlUHJveHlOb2RlOjp1bml0ZVJlY3RXaXRoUG9pbnQpOgorICAgICAgICAoUGFnZVByb3h5Tm9k
ZSk6CisgICAgICAgIChQYWdlUHJveHlOb2RlOjpjbGlwUmVjdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oOgorICAgICAgICAoUVF1aWNrV2ViUGFnZVBy
aXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3OjpRUXVpY2tXZWJWaWV3KToKKwogMjAxMi0wMy0wNyAgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UGluY2ggem9vbSBhY3RzIHdlaXJkbHkgb24gbnl0aW1lcy5jb20gd2hpbGUgbG9hZGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKaW5k
ZXggZDU4ZmVmZS4uYWEyYWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCkBAIC0zNiw2ICszNiw3IEBAIFFRdWlja1dlYlBhZ2U6
OlFRdWlja1dlYlBhZ2UoUVF1aWNrV2ViVmlldyogdmlld3BvcnRJdGVtKQogICAgICwgZChuZXcg
UVF1aWNrV2ViUGFnZVByaXZhdGUodGhpcywgdmlld3BvcnRJdGVtKSkKIHsKICAgICBzZXRGbGFn
KEl0ZW1IYXNDb250ZW50cyk7CisgICAgc2V0Q2xpcCh0cnVlKTsKIAogICAgIC8vIFdlIGRvIHRo
ZSB0cmFuc2Zvcm0gZnJvbSB0aGUgdG9wIGxlZnQgc28gdGhlIHZpZXdwb3J0IGNhbiBhc3N1bWUg
dGhlIHBvc2l0aW9uIDAsIDAKICAgICAvLyBpcyBhbHdheXMgd2hlcmUgcmVuZGVyaW5nIHN0YXJ0
cy4KQEAgLTc3LDEzICs3OCwxMSBAQCB2b2lkIFFRdWlja1dlYlBhZ2VQcml2YXRlOjpwYWludChR
UGFpbnRlciogcGFpbnRlcikKICAgICAgICAgd2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpLT5w
YWludExheWVyVHJlZShwYWludGVyKTsKIH0KIAotdm9pZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6
cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgUVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBmbG9h
dCBvcGFjaXR5KQordm9pZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6cGFpbnRUb0N1cnJlbnRHTENv
bnRleHQoY29uc3QgUVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBR
UmVjdEYmIGNsaXBSZWN0KQogewogICAgIGlmICghcS0+aXNWaXNpYmxlKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFFSZWN0RiBjbGlwUmVjdCA9IHZpZXdwb3J0SXRlbS0+bWFwUmVjdFRvU2Nl
bmUodmlld3BvcnRJdGVtLT5ib3VuZGluZ1JlY3QoKSk7Ci0KICAgICBpZiAoIWNsaXBSZWN0Lmlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTAsNyArMTA5LDkgQEAgc3RydWN0IFBh
Z2VQcm94eU5vZGUgOiBwdWJsaWMgUVNHUmVuZGVyTm9kZSB7CiAgICAgICAgIGlmICghbV9wYWdl
UHJpdmF0ZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgUVRyYW5zZm9ybSB0cmFuc2Zv
cm0gPSBtYXRyaXgoKSA/IG1hdHJpeCgpLT50b1RyYW5zZm9ybSgpIDogUVRyYW5zZm9ybSgpOwot
ICAgICAgICBtX3BhZ2VQcml2YXRlLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm0s
IGluaGVyaXRlZE9wYWNpdHkoKSk7CisKKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbm9uLXJl
Y3Rhbmd1bGFyIGNsaXBwaW5ncy4KKyAgICAgICAgbV9wYWdlUHJpdmF0ZS0+cGFpbnRUb0N1cnJl
bnRHTENvbnRleHQodHJhbnNmb3JtLCBpbmhlcml0ZWRPcGFjaXR5KCksIGNsaXBSZWN0KCkpOwog
ICAgIH0KIAogICAgIH5QYWdlUHJveHlOb2RlKCkKQEAgLTExOSw2ICsxMjAsNTcgQEAgc3RydWN0
IFBhZ2VQcm94eU5vZGUgOiBwdWJsaWMgUVNHUmVuZGVyTm9kZSB7CiAgICAgICAgICAgICBtX3Bh
Z2VQcml2YXRlLT5yZXNldFBhaW50Tm9kZSgpOwogICAgIH0KIAorICAgIHN0YXRpYyB2b2lkIHVu
aXRlUmVjdFdpdGhQb2ludChRUmVjdEYmIHJlY3QsIGNvbnN0IFFQb2ludEYmIHBvaW50KQorICAg
IHsKKyAgICAgICAgaWYgKHJlY3QudG9wKCkgPiBwb2ludC55KCkpCisgICAgICAgICAgICByZWN0
LnNldFRvcChwb2ludC55KCkpOworICAgICAgICBlbHNlIGlmIChyZWN0LmJvdHRvbSgpIDwgcG9p
bnQueSgpKQorICAgICAgICAgICAgcmVjdC5zZXRCb3R0b20ocG9pbnQueSgpKTsKKworICAgICAg
ICBpZiAocmVjdC5sZWZ0KCkgPiBwb2ludC54KCkpCisgICAgICAgICAgICByZWN0LnNldExlZnQo
cG9pbnQueCgpKTsKKyAgICAgICAgZWxzZSBpZiAocmVjdC5yaWdodCgpIDwgcG9pbnQueCgpKQor
ICAgICAgICAgICAgcmVjdC5zZXRSaWdodChwb2ludC54KCkpOworICAgIH0KKworICAgIFFSZWN0
RiBjbGlwUmVjdCgpIGNvbnN0CisgICAgeworICAgICAgICBRUmVjdEYgcmVzdWx0UmVjdCgwLCAw
LCAtMSwgLTEpOworCisgICAgICAgIGZvciAoY29uc3QgUVNHQ2xpcE5vZGUqIGNsaXAgPSBjbGlw
TGlzdCgpOyBjbGlwOyBjbGlwID0gY2xpcC0+Y2xpcExpc3QoKSkgeworICAgICAgICAgICAgUU1h
dHJpeDR4NCBjbGlwTWF0cml4OworICAgICAgICAgICAgaWYgKGNsaXAtPm1hdHJpeCgpKQorICAg
ICAgICAgICAgICAgIGNsaXBNYXRyaXggPSAqY2xpcC0+bWF0cml4KCk7CisgICAgICAgICAgICBR
UmVjdEYgY3VycmVudENsaXA7CisKKyAgICAgICAgICAgIGlmIChjbGlwLT5pc1JlY3Rhbmd1bGFy
KCkpCisgICAgICAgICAgICAgICAgY3VycmVudENsaXAgPSBjbGlwTWF0cml4Lm1hcFJlY3QoY2xp
cC0+Y2xpcFJlY3QoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25z
dCBRU0dHZW9tZXRyeSogZ2VvbWV0cnkgPSBjbGlwLT5nZW9tZXRyeSgpOworICAgICAgICAgICAg
ICAgIC8vIEFzc3VtZSBoZXJlIHRoYXQgY2xpcE5vZGUgaGFzIG9ubHkgY29vcmRpbmF0ZSBkYXRh
LgorICAgICAgICAgICAgICAgIGNvbnN0IFFTR0dlb21ldHJ5OjpQb2ludDJEKiBnZW9tZXRyeVBv
aW50cyA9IGdlb21ldHJ5LT52ZXJ0ZXhEYXRhQXNQb2ludDJEKCk7CisKKyAgICAgICAgICAgICAg
ICAvLyBDbGlwIHJlZ2lvbiBzaG91bGQgYmUgYXQgbGVhc3QgdHJpYW5nbGUgdG8gbWFrZSB2YWxp
ZCBjbGlwLgorICAgICAgICAgICAgICAgIGlmIChnZW9tZXRyeS0+dmVydGV4Q291bnQoKSA+IDIp
IHsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudENsaXAuc2V0VG9wTGVmdChjbGlwTWF0cml4
Lm1hcChRUG9pbnQoZ2VvbWV0cnlQb2ludHNbMF0ueCwgZ2VvbWV0cnlQb2ludHNbMF0ueSkpKTsK
KworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGdlb21ldHJ5LT52ZXJ0
ZXhDb3VudCgpOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICB1bml0ZVJlY3RXaXRoUG9p
bnQoY3VycmVudENsaXAsIGNsaXBNYXRyaXgubWFwKFFQb2ludChnZW9tZXRyeVBvaW50c1tpXS54
LCBnZW9tZXRyeVBvaW50c1tpXS55KSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKCFjdXJyZW50Q2xpcC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0UmVjdC5pc1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdFJlY3QgJj0gY3VycmVudENsaXA7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICByZXN1bHRSZWN0ID0gY3VycmVudENsaXA7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHRSZWN0OworICAgIH0KKwogICAgIFFRdWlj
a1dlYlBhZ2VQcml2YXRlKiBtX3BhZ2VQcml2YXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oCmluZGV4IGZhN2Q2OGMu
LmIyODE3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2VicGFnZV9wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnBhZ2VfcF9wLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB1
cGRhdGVTaXplKCk7CiAKLSAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFFU
cmFuc2Zvcm0mLCBmbG9hdCBvcGFjaXR5KTsKKyAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250
ZXh0KGNvbnN0IFFUcmFuc2Zvcm0mLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBRUmVjdEYmIGNsaXBS
ZWN0KTsKICAgICB2b2lkIHBhaW50KFFQYWludGVyKik7CiAgICAgdm9pZCByZXNldFBhaW50Tm9k
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcAppbmRleCBmMDFjZTAyLi5kYTdiN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTExMjcsNiArMTEyNyw3IEBA
IFFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlCiB7CiAgICAgUV9EKFFRdWlja1dlYlZpZXcpOwogICAg
IGQtPmluaXRpYWxpemUoY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKTsKKyAgICBzZXRDbGlwKHRy
dWUpOwogfQogCiBRUXVpY2tXZWJWaWV3Ojp+UVF1aWNrV2ViVmlldygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131115</attachid>
            <date>2012-03-09 14:43:44 -0800</date>
            <delta_ts>2012-03-09 15:12:06 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>clipping_rect_fix_03.diff</filename>
            <type>text/plain</type>
            <size>5639</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzM2ZhZTgwLi41OTFjYjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDMtMDkgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBTaG91bGRuJ3QgdXNlIGl0ZW0g
Zm9yIGNsaXBwaW5nIHJlY3QgY2FsY3VsYXRpb24gaW4gcGFpbnQgbm9kZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzE0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBpdGVtIGJhc2VkIGNs
aXBwaW5nIHJlY3QgY2FsY3VsYXRpb24gd2l0aCBjbGlwcGluZyBub2RlcyBiYXNlZC4KKyAgICAg
ICAgUGFydCBvZiB0aHJlYWRlZCByZW5kZXJpbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIElu
IFF0NSB0aHJlYWRlZCByZW5kZXJpbmcgcGFpbnQgbm9kZXMgbGl2ZSBvbiBwYWludCB0aHJlYWQg
YW5kIGl0ZW1zIG9uIAorICAgICAgICBtYWluIHRocmVhZC4gUGFpbnQgbm9kZXMgc2hvdWxkIG5v
dCBoYXZlIGFueSBkaXJlY3QgYWNjZXNzIHRvIGl0ZW1zLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlBhZ2U6OlFRdWlj
a1dlYlBhZ2UpOgorICAgICAgICAoUVF1aWNrV2ViUGFnZVByaXZhdGU6OnBhaW50VG9DdXJyZW50
R0xDb250ZXh0KToKKyAgICAgICAgKFBhZ2VQcm94eU5vZGU6OnJlbmRlcik6CisgICAgICAgIChQ
YWdlUHJveHlOb2RlOjpjbGlwUmVjdCk6CisgICAgICAgIChQYWdlUHJveHlOb2RlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmg6CisgICAgICAgIChRUXVp
Y2tXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcpOgorCiAyMDEy
LTAzLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBQaW5jaCB6b29tIGFjdHMgd2VpcmRseSBvbiBueXRpbWVzLmNvbSB3aGlsZSBs
b2FkaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJw
YWdlLmNwcAppbmRleCBkNThmZWZlLi42Njg1MTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNp
bmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKIAogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3RQcm94
eS5oIgorI2luY2x1ZGUgPFFQb2x5Z29uRj4KICNpbmNsdWRlICJRdFdlYlBhZ2VFdmVudEhhbmRs
ZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgInFxdWlj
a3dlYnBhZ2VfcF9wLmgiCkBAIC0zNiw2ICszNyw3IEBAIFFRdWlja1dlYlBhZ2U6OlFRdWlja1dl
YlBhZ2UoUVF1aWNrV2ViVmlldyogdmlld3BvcnRJdGVtKQogICAgICwgZChuZXcgUVF1aWNrV2Vi
UGFnZVByaXZhdGUodGhpcywgdmlld3BvcnRJdGVtKSkKIHsKICAgICBzZXRGbGFnKEl0ZW1IYXND
b250ZW50cyk7CisgICAgc2V0Q2xpcCh0cnVlKTsKIAogICAgIC8vIFdlIGRvIHRoZSB0cmFuc2Zv
cm0gZnJvbSB0aGUgdG9wIGxlZnQgc28gdGhlIHZpZXdwb3J0IGNhbiBhc3N1bWUgdGhlIHBvc2l0
aW9uIDAsIDAKICAgICAvLyBpcyBhbHdheXMgd2hlcmUgcmVuZGVyaW5nIHN0YXJ0cy4KQEAgLTc3
LDEzICs3OSwxMSBAQCB2b2lkIFFRdWlja1dlYlBhZ2VQcml2YXRlOjpwYWludChRUGFpbnRlciog
cGFpbnRlcikKICAgICAgICAgd2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpLT5wYWludExheWVy
VHJlZShwYWludGVyKTsKIH0KIAotdm9pZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6cGFpbnRUb0N1
cnJlbnRHTENvbnRleHQoY29uc3QgUVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5
KQordm9pZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29u
c3QgUVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBRUmVjdEYmIGNs
aXBSZWN0KQogewogICAgIGlmICghcS0+aXNWaXNpYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFFSZWN0RiBjbGlwUmVjdCA9IHZpZXdwb3J0SXRlbS0+bWFwUmVjdFRvU2NlbmUodmlld3Bv
cnRJdGVtLT5ib3VuZGluZ1JlY3QoKSk7Ci0KICAgICBpZiAoIWNsaXBSZWN0LmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTAsNyArMTEwLDkgQEAgc3RydWN0IFBhZ2VQcm94eU5v
ZGUgOiBwdWJsaWMgUVNHUmVuZGVyTm9kZSB7CiAgICAgICAgIGlmICghbV9wYWdlUHJpdmF0ZSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgUVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBtYXRy
aXgoKSA/IG1hdHJpeCgpLT50b1RyYW5zZm9ybSgpIDogUVRyYW5zZm9ybSgpOwotICAgICAgICBt
X3BhZ2VQcml2YXRlLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm0sIGluaGVyaXRl
ZE9wYWNpdHkoKSk7CisKKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbm9uLXJlY3Rhbmd1bGFy
IGNsaXBwaW5ncy4KKyAgICAgICAgbV9wYWdlUHJpdmF0ZS0+cGFpbnRUb0N1cnJlbnRHTENvbnRl
eHQodHJhbnNmb3JtLCBpbmhlcml0ZWRPcGFjaXR5KCksIGNsaXBSZWN0KCkpOwogICAgIH0KIAog
ICAgIH5QYWdlUHJveHlOb2RlKCkKQEAgLTExOSw2ICsxMjEsNDUgQEAgc3RydWN0IFBhZ2VQcm94
eU5vZGUgOiBwdWJsaWMgUVNHUmVuZGVyTm9kZSB7CiAgICAgICAgICAgICBtX3BhZ2VQcml2YXRl
LT5yZXNldFBhaW50Tm9kZSgpOwogICAgIH0KIAorICAgIFFSZWN0RiBjbGlwUmVjdCgpIGNvbnN0
CisgICAgeworICAgICAgICBRUmVjdEYgcmVzdWx0UmVjdCgwLCAwLCAtMSwgLTEpOworCisgICAg
ICAgIGZvciAoY29uc3QgUVNHQ2xpcE5vZGUqIGNsaXAgPSBjbGlwTGlzdCgpOyBjbGlwOyBjbGlw
ID0gY2xpcC0+Y2xpcExpc3QoKSkgeworICAgICAgICAgICAgUU1hdHJpeDR4NCBjbGlwTWF0cml4
OworICAgICAgICAgICAgaWYgKGNsaXAtPm1hdHJpeCgpKQorICAgICAgICAgICAgICAgIGNsaXBN
YXRyaXggPSAqY2xpcC0+bWF0cml4KCk7CisgICAgICAgICAgICBRUmVjdEYgY3VycmVudENsaXA7
CisKKyAgICAgICAgICAgIGlmIChjbGlwLT5pc1JlY3Rhbmd1bGFyKCkpCisgICAgICAgICAgICAg
ICAgY3VycmVudENsaXAgPSBjbGlwTWF0cml4Lm1hcFJlY3QoY2xpcC0+Y2xpcFJlY3QoKSk7Cisg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb25zdCBRU0dHZW9tZXRyeSogZ2Vv
bWV0cnkgPSBjbGlwLT5nZW9tZXRyeSgpOworICAgICAgICAgICAgICAgIC8vIEFzc3VtZSBoZXJl
IHRoYXQgY2xpcE5vZGUgaGFzIG9ubHkgY29vcmRpbmF0ZSBkYXRhLgorICAgICAgICAgICAgICAg
IGNvbnN0IFFTR0dlb21ldHJ5OjpQb2ludDJEKiBnZW9tZXRyeVBvaW50cyA9IGdlb21ldHJ5LT52
ZXJ0ZXhEYXRhQXNQb2ludDJEKCk7CisKKyAgICAgICAgICAgICAgICAvLyBDbGlwIHJlZ2lvbiBz
aG91bGQgYmUgYXQgbGVhc3QgdHJpYW5nbGUgdG8gbWFrZSB2YWxpZCBjbGlwLgorICAgICAgICAg
ICAgICAgIGlmIChnZW9tZXRyeS0+dmVydGV4Q291bnQoKSA+IDIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgUVBvbHlnb25GIHBvbHlnb247CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBnZW9tZXRyeS0+dmVydGV4Q291bnQoKTsgaSsrKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcG9seWdvbi5hcHBlbmQoY2xpcE1hdHJpeC5tYXAoUVBvaW50KGdlb21ldHJ5UG9p
bnRzW2ldLngsIGdlb21ldHJ5UG9pbnRzW2ldLnkpKSk7CisgICAgICAgICAgICAgICAgICAgIGN1
cnJlbnRDbGlwID0gcG9seWdvbi5ib3VuZGluZ1JlY3QoKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghY3VycmVudENsaXAuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFJlY3QuaXNWYWxpZCgpKQorICAgICAgICAgICAg
ICAgICAgICByZXN1bHRSZWN0ICY9IGN1cnJlbnRDbGlwOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0UmVjdCA9IGN1cnJlbnRDbGlwOworICAgICAgICAg
ICAgfQorCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0UmVjdDsKKyAgICB9CisK
ICAgICBRUXVpY2tXZWJQYWdlUHJpdmF0ZSogbV9wYWdlUHJpdmF0ZTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3AuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZV9wX3AuaAppbmRl
eCBmYTdkNjhjLi5iMjgxNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2VfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgdXBkYXRlU2l6ZSgpOwogCi0gICAgdm9pZCBwYWludFRvQ3VycmVudEdMQ29udGV4
dChjb25zdCBRVHJhbnNmb3JtJiwgZmxvYXQgb3BhY2l0eSk7CisgICAgdm9pZCBwYWludFRvQ3Vy
cmVudEdMQ29udGV4dChjb25zdCBRVHJhbnNmb3JtJiwgZmxvYXQgb3BhY2l0eSwgY29uc3QgUVJl
Y3RGJiBjbGlwUmVjdCk7CiAgICAgdm9pZCBwYWludChRUGFpbnRlciopOwogICAgIHZvaWQgcmVz
ZXRQYWludE5vZGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAKaW5kZXggZjAxY2UwMi4uZGE3YjdiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC0xMTI3LDYg
KzExMjcsNyBAQCBRUXVpY2tXZWJWaWV3OjpRUXVpY2tXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZQogewogICAgIFFfRChRUXVpY2tXZWJW
aWV3KTsKICAgICBkLT5pbml0aWFsaXplKGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAg
c2V0Q2xpcCh0cnVlKTsKIH0KIAogUVF1aWNrV2ViVmlldzo6flFRdWlja1dlYlZpZXcoKQo=
</data>
<flag name="review"
          id="134313"
          type_id="1"
          status="+"
          setter="noam"
    />
    <flag name="commit-queue"
          id="134314"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131122</attachid>
            <date>2012-03-09 15:12:06 -0800</date>
            <delta_ts>2012-03-09 20:50:35 -0800</delta_ts>
            <desc>Patch for commit.</desc>
            <filename>clipping_rect_fix_04.diff</filename>
            <type>text/plain</type>
            <size>5620</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzM2ZhZTgwLi4yNjcwNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDMtMDkgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBbV0syXSBTaG91bGRuJ3QgdXNlIGl0ZW0g
Zm9yIGNsaXBwaW5nIHJlY3QgY2FsY3VsYXRpb24gaW4gcGFpbnQgbm9kZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzE0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTm9hbSBSb3NlbnRoYWwuCisKKyAgICAgICAgUmVwbGFjZSBpdGVtIGJhc2VkIGNs
aXAtcmVjdCBjYWxjdWxhdGlvbiB3aXRoIGNsaXBwaW5nLW5vZGVzIGJhc2VkIGNhbGN1bGF0aW9u
LgorICAgICAgICBUaGlzIGlzIHJlcXVpcmVkIGZvciB0aHJlYWRlZCByZW5kZXJpbmcsIHNpbmNl
IHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBRU0dJdGVtcworICAgICAgICBmcm9tIHRoZSBy
ZW5kZXIgdGhyZWFkLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdl
LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlBhZ2U6OlFRdWlja1dlYlBhZ2UpOgorICAgICAgICAo
UVF1aWNrV2ViUGFnZVByaXZhdGU6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KToKKyAgICAgICAg
KFBhZ2VQcm94eU5vZGU6OnJlbmRlcik6CisgICAgICAgIChQYWdlUHJveHlOb2RlOjpjbGlwUmVj
dCk6CisgICAgICAgIChQYWdlUHJveHlOb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnBhZ2VfcF9wLmg6CisgICAgICAgIChRUXVpY2tXZWJQYWdlUHJpdmF0ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFR
dWlja1dlYlZpZXc6OlFRdWlja1dlYlZpZXcpOgorCiAyMDEyLTAzLTA3ICBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBQaW5jaCB6b29t
IGFjdHMgd2VpcmRseSBvbiBueXRpbWVzLmNvbSB3aGlsZSBsb2FkaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAppbmRleCBkNThmZWZl
Li4wZTQ1MTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2VicGFnZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlv
bk1hdHJpeC5oIgogI2luY2x1ZGUgInFxdWlja3dlYnBhZ2VfcF9wLmgiCiAjaW5jbHVkZSAicXF1
aWNrd2Vidmlld19wLmgiCisjaW5jbHVkZSA8UVBvbHlnb25GPgogI2luY2x1ZGUgPFF0UXVpY2sv
UVF1aWNrQ2FudmFzPgogI2luY2x1ZGUgPFF0UXVpY2svUVNHR2VvbWV0cnlOb2RlPgogI2luY2x1
ZGUgPFF0UXVpY2svUVNHTWF0ZXJpYWw+CkBAIC0zNiw2ICszNyw3IEBAIFFRdWlja1dlYlBhZ2U6
OlFRdWlja1dlYlBhZ2UoUVF1aWNrV2ViVmlldyogdmlld3BvcnRJdGVtKQogICAgICwgZChuZXcg
UVF1aWNrV2ViUGFnZVByaXZhdGUodGhpcywgdmlld3BvcnRJdGVtKSkKIHsKICAgICBzZXRGbGFn
KEl0ZW1IYXNDb250ZW50cyk7CisgICAgc2V0Q2xpcCh0cnVlKTsKIAogICAgIC8vIFdlIGRvIHRo
ZSB0cmFuc2Zvcm0gZnJvbSB0aGUgdG9wIGxlZnQgc28gdGhlIHZpZXdwb3J0IGNhbiBhc3N1bWUg
dGhlIHBvc2l0aW9uIDAsIDAKICAgICAvLyBpcyBhbHdheXMgd2hlcmUgcmVuZGVyaW5nIHN0YXJ0
cy4KQEAgLTc3LDEzICs3OSwxMSBAQCB2b2lkIFFRdWlja1dlYlBhZ2VQcml2YXRlOjpwYWludChR
UGFpbnRlciogcGFpbnRlcikKICAgICAgICAgd2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpLT5w
YWludExheWVyVHJlZShwYWludGVyKTsKIH0KIAotdm9pZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6
cGFpbnRUb0N1cnJlbnRHTENvbnRleHQoY29uc3QgUVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBmbG9h
dCBvcGFjaXR5KQordm9pZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6cGFpbnRUb0N1cnJlbnRHTENv
bnRleHQoY29uc3QgUVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBR
UmVjdEYmIGNsaXBSZWN0KQogewogICAgIGlmICghcS0+aXNWaXNpYmxlKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFFSZWN0RiBjbGlwUmVjdCA9IHZpZXdwb3J0SXRlbS0+bWFwUmVjdFRvU2Nl
bmUodmlld3BvcnRJdGVtLT5ib3VuZGluZ1JlY3QoKSk7Ci0KICAgICBpZiAoIWNsaXBSZWN0Lmlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTAsNyArMTEwLDkgQEAgc3RydWN0IFBh
Z2VQcm94eU5vZGUgOiBwdWJsaWMgUVNHUmVuZGVyTm9kZSB7CiAgICAgICAgIGlmICghbV9wYWdl
UHJpdmF0ZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgUVRyYW5zZm9ybSB0cmFuc2Zv
cm0gPSBtYXRyaXgoKSA/IG1hdHJpeCgpLT50b1RyYW5zZm9ybSgpIDogUVRyYW5zZm9ybSgpOwot
ICAgICAgICBtX3BhZ2VQcml2YXRlLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm0s
IGluaGVyaXRlZE9wYWNpdHkoKSk7CisKKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbm9uLXJl
Y3Rhbmd1bGFyIGNsaXBwaW5ncy4KKyAgICAgICAgbV9wYWdlUHJpdmF0ZS0+cGFpbnRUb0N1cnJl
bnRHTENvbnRleHQodHJhbnNmb3JtLCBpbmhlcml0ZWRPcGFjaXR5KCksIGNsaXBSZWN0KCkpOwog
ICAgIH0KIAogICAgIH5QYWdlUHJveHlOb2RlKCkKQEAgLTExOSw2ICsxMjEsNDcgQEAgc3RydWN0
IFBhZ2VQcm94eU5vZGUgOiBwdWJsaWMgUVNHUmVuZGVyTm9kZSB7CiAgICAgICAgICAgICBtX3Bh
Z2VQcml2YXRlLT5yZXNldFBhaW50Tm9kZSgpOwogICAgIH0KIAorICAgIFFSZWN0RiBjbGlwUmVj
dCgpIGNvbnN0CisgICAgeworICAgICAgICAvLyBTdGFydCB3aXRoIGFuIGludmFsaWQgcmVjdC4K
KyAgICAgICAgUVJlY3RGIHJlc3VsdFJlY3QoMCwgMCwgLTEsIC0xKTsKKworICAgICAgICBmb3Ig
KGNvbnN0IFFTR0NsaXBOb2RlKiBjbGlwID0gY2xpcExpc3QoKTsgY2xpcDsgY2xpcCA9IGNsaXAt
PmNsaXBMaXN0KCkpIHsKKyAgICAgICAgICAgIFFNYXRyaXg0eDQgY2xpcE1hdHJpeDsKKyAgICAg
ICAgICAgIGlmIChjbGlwLT5tYXRyaXgoKSkKKyAgICAgICAgICAgICAgICBjbGlwTWF0cml4ID0g
KmNsaXAtPm1hdHJpeCgpOworICAgICAgICAgICAgUVJlY3RGIGN1cnJlbnRDbGlwOworCisgICAg
ICAgICAgICBpZiAoY2xpcC0+aXNSZWN0YW5ndWxhcigpKQorICAgICAgICAgICAgICAgIGN1cnJl
bnRDbGlwID0gY2xpcE1hdHJpeC5tYXBSZWN0KGNsaXAtPmNsaXBSZWN0KCkpOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29uc3QgUVNHR2VvbWV0cnkqIGdlb21ldHJ5ID0g
Y2xpcC0+Z2VvbWV0cnkoKTsKKyAgICAgICAgICAgICAgICAvLyBBc3N1bWUgaGVyZSB0aGF0IGNs
aXBOb2RlIGhhcyBvbmx5IGNvb3JkaW5hdGUgZGF0YS4KKyAgICAgICAgICAgICAgICBjb25zdCBR
U0dHZW9tZXRyeTo6UG9pbnQyRCogZ2VvbWV0cnlQb2ludHMgPSBnZW9tZXRyeS0+dmVydGV4RGF0
YUFzUG9pbnQyRCgpOworCisgICAgICAgICAgICAgICAgLy8gQ2xpcCByZWdpb24gc2hvdWxkIGJl
IGF0IGxlYXN0IHRyaWFuZ2xlIHRvIG1ha2UgdmFsaWQgY2xpcC4KKyAgICAgICAgICAgICAgICBp
ZiAoZ2VvbWV0cnktPnZlcnRleENvdW50KCkgPCAzKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgICAgIFFQb2x5Z29uRiBwb2x5Z29uOworCisgICAgICAgICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBnZW9tZXRyeS0+dmVydGV4Q291bnQoKTsgaSsrKQor
ICAgICAgICAgICAgICAgICAgICBwb2x5Z29uLmFwcGVuZChjbGlwTWF0cml4Lm1hcChRUG9pbnQo
Z2VvbWV0cnlQb2ludHNbaV0ueCwgZ2VvbWV0cnlQb2ludHNbaV0ueSkpKTsKKyAgICAgICAgICAg
ICAgICBjdXJyZW50Q2xpcCA9IHBvbHlnb24uYm91bmRpbmdSZWN0KCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmIChjdXJyZW50Q2xpcC5pc0VtcHR5KCkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChyZXN1bHRSZWN0LmlzVmFsaWQoKSkKKyAg
ICAgICAgICAgICAgICByZXN1bHRSZWN0ICY9IGN1cnJlbnRDbGlwOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHJlc3VsdFJlY3QgPSBjdXJyZW50Q2xpcDsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiByZXN1bHRSZWN0OworICAgIH0KKwogICAgIFFRdWlja1dlYlBhZ2VQ
cml2YXRlKiBtX3BhZ2VQcml2YXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlX3BfcC5oCmluZGV4IGZhN2Q2OGMuLmIyODE3NDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFn
ZV9wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBh
Z2VfcF9wLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVTaXpl
KCk7CiAKLSAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0IFFUcmFuc2Zvcm0m
LCBmbG9hdCBvcGFjaXR5KTsKKyAgICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KGNvbnN0
IFFUcmFuc2Zvcm0mLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBRUmVjdEYmIGNsaXBSZWN0KTsKICAg
ICB2b2lkIHBhaW50KFFQYWludGVyKik7CiAgICAgdm9pZCByZXNldFBhaW50Tm9kZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApp
bmRleCBmMDFjZTAyLi5kYTdiN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTExMjcsNiArMTEyNyw3IEBAIFFRdWlja1dl
YlZpZXc6OlFRdWlja1dlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cFJlCiB7CiAgICAgUV9EKFFRdWlja1dlYlZpZXcpOwogICAgIGQtPmluaXRp
YWxpemUoY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKTsKKyAgICBzZXRDbGlwKHRydWUpOwogfQog
CiBRUXVpY2tXZWJWaWV3Ojp+UVF1aWNrV2ViVmlldygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>