<?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>72965</bug_id>
          
          <creation_ts>2011-11-22 09:53:41 -0800</creation_ts>
          <short_desc>[chromium] Use blending on opaque non-axis-aligned layers.</short_desc>
          <delta_ts>2011-12-19 11:24:09 -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>DUPLICATE</resolution>
          <dup_id>73059</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73040</dependson>
          <blocked>73061</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>507655</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-22 09:53:41 -0800</bug_when>
    <thetext>These layers will have non-orthogonal edges. If marked opaque, and not blended, they will have strongly aliased edges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507663</commentid>
    <comment_count>1</comment_count>
      <attachid>116239</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-22 10:12:44 -0800</bug_when>
    <thetext>Created attachment 116239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508115</commentid>
    <comment_count>2</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-11-23 06:43:33 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=116239) [details]
&gt; Patch

You might want to take a look at Dave Reveman&apos;s comment on https://bugs.webkit.org/show_bug.cgi?id=70533 about making the axis-align (and pixel-aligned) test more consistent with what is used elsewhere in the compositor.

He recommends:

&gt; This also needs to snap to the pixel grid to be correct. Instead of analyzing the transform, I think we should use the same logic as the anti-aliasing code, which is: 
&gt; transformedQuad.isRectilinear() &amp;&amp; transformedQuad.boundingBox().isExpressibleAsIntRect()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508120</commentid>
    <comment_count>3</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-23 07:10:56 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Created an attachment (id=116239) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; You might want to take a look at Dave Reveman&apos;s comment on https://bugs.webkit.org/show_bug.cgi?id=70533 about making the axis-align (and pixel-aligned) test more consistent with what is used elsewhere in the compositor.
&gt; 
&gt; He recommends:
&gt; 
&gt; &gt; This also needs to snap to the pixel grid to be correct. Instead of analyzing the transform, I think we should use the same logic as the anti-aliasing code, which is: 
&gt; &gt; transformedQuad.isRectilinear() &amp;&amp; transformedQuad.boundingBox().isExpressibleAsIntRect()

If an opaque rect is half inside a pixel, but axis aligned, would it want blending?

It would be possible to apply the layer&apos;s drawTransform() to its visibleLayerRect() and see if the resulting quad passes the above test.

@reveman would this be preferable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508242</commentid>
    <comment_count>4</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-11-23 11:05:36 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; Created an attachment (id=116239) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; You might want to take a look at Dave Reveman&apos;s comment on https://bugs.webkit.org/show_bug.cgi?id=70533 about making the axis-align (and pixel-aligned) test more consistent with what is used elsewhere in the compositor.
&gt; &gt; 
&gt; &gt; He recommends:
&gt; &gt; 
&gt; &gt; &gt; This also needs to snap to the pixel grid to be correct. Instead of analyzing the transform, I think we should use the same logic as the anti-aliasing code, which is: 
&gt; &gt; &gt; transformedQuad.isRectilinear() &amp;&amp; transformedQuad.boundingBox().isExpressibleAsIntRect()
&gt; 
&gt; If an opaque rect is half inside a pixel, but axis aligned, would it want blending?

Yes, we need blending enabled whenever an anti-aliasing shader is used.

&gt; 
&gt; It would be possible to apply the layer&apos;s drawTransform() to its visibleLayerRect() and see if the resulting quad passes the above test.
&gt; 
&gt; @reveman would this be preferable?

Yes, have a look at:

http://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp#L115

this is exactly what we&apos;re doing there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508374</commentid>
    <comment_count>5</comment_count>
      <attachid>116421</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-23 14:02:14 -0800</bug_when>
    <thetext>Created attachment 116421
use transformed quad to determine axis-aligned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508384</commentid>
    <comment_count>6</comment_count>
      <attachid>116424</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-23 14:06:53 -0800</bug_when>
    <thetext>Created attachment 116424
use transformed quad to determine axis-aligned v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508420</commentid>
    <comment_count>7</comment_count>
      <attachid>116424</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-11-23 14:48:48 -0800</bug_when>
    <thetext>Comment on attachment 116424
use transformed quad to determine axis-aligned v2

This will fix the problem but we could do better for tiled layers. Only the tiles that have edges at the borders of the layer will need blending. The inner tiles don&apos;t.

Maybe we should move the disable blend code into CCLayerImpl::Draw?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508468</commentid>
    <comment_count>8</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2011-11-23 15:46:15 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 116424 [details])
&gt; This will fix the problem but we could do better for tiled layers. Only the tiles that have edges at the borders of the layer will need blending. The inner tiles don&apos;t.
&gt; 
&gt; Maybe we should move the disable blend code into CCLayerImpl::Draw?

Given that CCTileLayerImpl is about to be heavily refactored, I think we should defer blending just the edge-tiles until after that time. It can be marked as a FIXME in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508470</commentid>
    <comment_count>9</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2011-11-23 15:57:03 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 116424 [details] [details])
&gt; &gt; This will fix the problem but we could do better for tiled layers. Only the tiles that have edges at the borders of the layer will need blending. The inner tiles don&apos;t.
&gt; &gt; 
&gt; &gt; Maybe we should move the disable blend code into CCLayerImpl::Draw?
&gt; 
&gt; Given that CCTileLayerImpl is about to be heavily refactored, I think we should defer blending just the edge-tiles until after that time. It can be marked as a FIXME in this patch.

That&apos;s fine with me. Please create another bugzilla entry for this and have it depend on the CCTileLayerImpl refactoring changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508497</commentid>
    <comment_count>10</comment_count>
      <attachid>116453</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-23 16:41:35 -0800</bug_when>
    <thetext>Created attachment 116453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508499</commentid>
    <comment_count>11</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-23 16:43:49 -0800</bug_when>
    <thetext>Pushed the decision to blend off to CCLayerImpl. This way CCTiledLayerImpl can override the behavior, but have access to the CCLayerImpl versions of the functions to help make consistent decisions on a per-tile basis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518560</commentid>
    <comment_count>12</comment_count>
      <attachid>118650</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-09 15:06:29 -0800</bug_when>
    <thetext>Created attachment 118650
Patch

Put the blending decision behind a single public function: bool drawWithBlending().

Made protected methods to decide blending based on the contents of the layer (i.e. are all pixels opaque), and the edges of the layer (i.e. is it rectilinear or does it require anti-aliasing for the edges).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518587</commentid>
    <comment_count>13</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-12-09 15:38:39 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=118650) [details]
&gt; Patch
&gt; 
&gt; Put the blending decision behind a single public function: bool drawWithBlending().
&gt; 
&gt; Made protected methods to decide blending based on the contents of the layer (i.e. are all pixels opaque), and the edges of the layer (i.e. is it rectilinear or does it require anti-aliasing for the edges).

Not all layer types have antialiased edges.  Don&apos;t we want to draw any opaque layer without antialiased edges with blending off, regardless of whether it lines up on integer coordinates?

(I think https://bugs.webkit.org/show_bug.cgi?id=73059 might do some of this?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518621</commentid>
    <comment_count>14</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-09 16:09:14 -0800</bug_when>
    <thetext>Yes, 73059 is going to do exactly the right thing I think :) Hooray.

*** This bug has been marked as a duplicate of bug 73059 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524030</commentid>
    <comment_count>15</comment_count>
      <attachid>118650</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-19 11:10:33 -0800</bug_when>
    <thetext>Comment on attachment 118650
Patch

How can we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524054</commentid>
    <comment_count>16</comment_count>
      <attachid>118650</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-19 11:24:09 -0800</bug_when>
    <thetext>Comment on attachment 118650
Patch

Cleared review? from attachment 118650 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116239</attachid>
            <date>2011-11-22 10:12:44 -0800</date>
            <delta_ts>2011-11-23 14:02:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72965-20111122131243.patch</filename>
            <type>text/plain</type>
            <size>4069</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjNGRkZGUyYjcxYWU3
MjRhYWMyODllZDJlN2ExYmEzOTI1ZjgxOS4uZmFiOGNjMDE1MGMxYTk4YzYwMTI2NDdjNTY1NWYw
MTIyMDhiZWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTIyICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVXNl
IGJsZW5kaW5nIG9uIG9wYXF1ZSBub24tYXhpcy1hbGlnbmVkIGxheWVycy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bm9uWmVybyk6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNB
eGlzQWxpZ25lZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1hdGlvbk1hdHJpeC5oOgorCiAyMDExLTExLTIxICBSYWtlc2ggS04gIDxyYWtlc2gua25A
bW90b3JvbGEuY29tPgogCiAgICAgICAgIE5lZWQgc3VwcG9ydCBmb3IgZGlybmFtZSBhdHRyaWJ1
dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IDA0ZTdjNzZhMTkw
NTUyN2I0ZWVlZDE0MzY2MGI5ZmRjZTE3MzllNWEuLmM0MGQ3MjRkNTk4NzlhM2UxYWQwNjE4YjBl
ZWU3ZWY3MDY1ZTM4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApA
QCAtNTg3LDcgKzU4Nyw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXIo
Q0NMYXllckltcGwqIGxheWVyLCBDQ1JlbmRlclN1cmZhY2UqIHRhcmdlCiAgICAgZWxzZQogICAg
ICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUoR3JhcGhpY3NDb250
ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOwogCi0gICAgYm9vbCBvcGFxdWUgPSBsYXllci0+b3BhcXVl
KCkgJiYgbGF5ZXItPmRyYXdPcGFjaXR5KCkgPT0gMTsKKyAgICBib29sIG9wYXF1ZSA9IGxheWVy
LT5vcGFxdWUoKSAmJiBsYXllci0+ZHJhd09wYWNpdHkoKSA9PSAxICYmIGxheWVyLT5kcmF3VHJh
bnNmb3JtKCkuaXNBeGlzQWxpZ25lZCgpOwogICAgIGlmIChvcGFxdWUpCiAgICAgICAgIEdMQyht
X2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxF
TkQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAppbmRleCBkYWNm
YWVlMmU2OGFmMDI0MmUwNjUyMzQ3NWM2ZjRmYmY3MGU5MTM3Li4xMzkwM2U5NDkyZmJiZmRmZWJh
NjY3MjU0NzNiOWU5OGYzZGNjYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0
cml4LmNwcApAQCAtMTE4Niw2ICsxMTg2LDI4IEBAIGJvb2wgVHJhbnNmb3JtYXRpb25NYXRyaXg6
OmlzSW50ZWdlclRyYW5zbGF0aW9uKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3Rh
dGljIGlubGluZSBib29sIG5vblplcm8oY29uc3QgZG91YmxlIGQpCit7CisgICAgcmV0dXJuIGQg
PiAwLjAwMDAwMDAwMDAxIHx8IGQgPCAtMC4wMDAwMDAwMDAwMTsKK30KKworYm9vbCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6aXNBeGlzQWxpZ25lZCgpIGNvbnN0Cit7CisgICAgaWYgKG5vblplcm8o
bV9tYXRyaXhbMF1bMF0pICYmIG5vblplcm8obV9tYXRyaXhbMV1bMF0pKSAvLyBDb2x1bW4gMSBv
ZiAyeDIgaGFzIDIgbm9uLXplcm9zCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobm9u
WmVybyhtX21hdHJpeFswXVsxXSkgJiYgbm9uWmVybyhtX21hdHJpeFsxXVsxXSkpIC8vIENvbHVt
biAyIG9mIDJ4MiBoYXMgMiBub24temVyb3MKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChub25aZXJvKG1fbWF0cml4WzBdWzJdKSB8fCBub25aZXJvKG1fbWF0cml4WzFdWzJdKSkgLy8g
Um90YXRpb24gYXJvdW5kIFggb3IgWSBheGlzCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAobm9uWmVybyhtX21hdHJpeFswXVszXSkgfHwgbm9uWmVybyhtX21hdHJpeFsxXVszXSkpIC8v
IFNoZWFyaW5nCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobm9uWmVybyhtX21hdHJp
eFsyXVswXSkgfHwgbm9uWmVybyhtX21hdHJpeFsyXVsxXSkgfHwgbm9uWmVybyhtX21hdHJpeFsy
XVszXSkpIC8vIFRyYW5zZm9ybWF0aW9ucyBvbiAzZCBpbnB1dCBhcmUgaGFyZC4KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChtX21hdHJpeFszXVszXSAhPSAxKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFRyYW5zZm9ybWF0aW9uTWF0cml4IFRy
YW5zZm9ybWF0aW9uTWF0cml4Ojp0bzJkVHJhbnNmb3JtKCkgY29uc3QKIHsKICAgICByZXR1cm4g
VHJhbnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXhbMF1bMF0sIG1fbWF0cml4WzBdWzFdLCAwLCBt
X21hdHJpeFswXVszXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAppbmRleCAw
NDUwYWQ3YjRlOTNhNTMzNGQyZGY4ZGZhMTA0ZjllODZlMzFlNGExLi4wOGM5YzQyZWQ5YmI4ZGZk
ZjM4NmE1MDYyZWEzMzgwMTE2MGFmODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oCkBAIC0zNDgsNiArMzQ4LDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNJbnRlZ2Vy
VHJhbnNsYXRpb24oKSBjb25zdDsKIAorICAgIC8vIFRlc3QgaWYgdGhlIHRyYW5zbGF0aW9uIGdp
dmVzIGEgcmVzdWx0IHRoYXQgZXhhY3RseSBmaWxscyBpdHMgYXhpcyBhbGlnbmVkIGJvdW5kaW5n
IGJveC4KKyAgICAvLyBTY2FsZXMgYW5kIHRyYW5zbGF0aW9ucyBhcmUgYWxsb3dlZC4gU29tZSBy
b3RhdGlvbnMgYXJlIGFsbG93ZWQgKGJ5IG11bHRpcGxlcyBvZiBwaS8yKS4KKyAgICBib29sIGlz
QXhpc0FsaWduZWQoKSBjb25zdDsKKwogICAgIC8vIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG1h
dHJpeCB3aXRob3V0IDNEIGNvbXBvbmVudHMuCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdG8y
ZFRyYW5zZm9ybSgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116421</attachid>
            <date>2011-11-23 14:02:14 -0800</date>
            <delta_ts>2011-11-23 14:06:45 -0800</delta_ts>
            <desc>use transformed quad to determine axis-aligned</desc>
            <filename>bug-72965-20111123170213.patch</filename>
            <type>text/plain</type>
            <size>1762</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjNGRkZGUyYjcxYWU3
MjRhYWMyODllZDJlN2ExYmEzOTI1ZjgxOS4uZjA3NGQ3M2QzOTM3NTUzMzE5NGMxOThlNDg0Zjcx
Y2NmMDIyNzA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTExLTIyICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVXNl
IGJsZW5kaW5nIG9uIG9wYXF1ZSBub24tYXhpcy1hbGlnbmVkIGxheWVycy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXIpOgorCiAyMDExLTExLTIxICBSYWtlc2ggS04g
IDxyYWtlc2gua25AbW90b3JvbGEuY29tPgogCiAgICAgICAgIE5lZWQgc3VwcG9ydCBmb3IgZGly
bmFtZSBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IDA0ZTdjNzZhMTkwNTUyN2I0ZWVlZDE0MzY2MGI5ZmRjZTE3MzllNWEuLmU2ZTRhNmVlYjJkZGZi
NTA3NjE4YWFkZmZjOTMxN2Y0MjkxYjlmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcApAQCAtNTg4LDYgKzU4OCwxMiBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1
bTo6ZHJhd0xheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgQ0NSZW5kZXJTdXJmYWNlKiB0YXJnZQog
ICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUoR3JhcGhpY3ND
b250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOwogCiAgICAgYm9vbCBvcGFxdWUgPSBsYXllci0+b3Bh
cXVlKCkgJiYgbGF5ZXItPmRyYXdPcGFjaXR5KCkgPT0gMTsKKyAgICBpZiAob3BhcXVlKSB7Cisg
ICAgICAgIC8vIE5vbi1heGlzLWFsaWduZWQgdGhpbmdzIGhhdmUgbm9uLW9wYXF1ZSAoYW50aS1h
bGlhc2VkKSBlZGdlcy4KKyAgICAgICAgRmxvYXRRdWFkIHRyYW5zZm9ybWVkUXVhZCA9IGxheWVy
LT5kcmF3VHJhbnNmb3JtKCktPm1hcFF1YWQoRmxvYXRSZWN0KGxheWVyLT52aXNpYmxlTGF5ZXJS
ZWN0KCkpKTsKKyAgICAgICAgb3BhcXVlID0gdHJhbnNmb3JtZWRRdWFkLmlzUmVjdGlsaW5lYXIo
KSAmJiB0cmFuc2Zvcm1lZFF1YWQuYm91bmRpbmdCb3goKS5pc0V4cHJlc3NpYmxlQXNJbnRSZWN0
KCk7CisgICAgfQorCiAgICAgaWYgKG9wYXF1ZSkKICAgICAgICAgR0xDKG1fY29udGV4dC5nZXQo
KSwgbV9jb250ZXh0LT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCkpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116424</attachid>
            <date>2011-11-23 14:06:53 -0800</date>
            <delta_ts>2011-11-23 16:41:27 -0800</delta_ts>
            <desc>use transformed quad to determine axis-aligned v2</desc>
            <filename>bug-72965-20111123170652.patch</filename>
            <type>text/plain</type>
            <size>1761</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjNGRkZGUyYjcxYWU3
MjRhYWMyODllZDJlN2ExYmEzOTI1ZjgxOS4uZjA3NGQ3M2QzOTM3NTUzMzE5NGMxOThlNDg0Zjcx
Y2NmMDIyNzA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTExLTIyICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVXNl
IGJsZW5kaW5nIG9uIG9wYXF1ZSBub24tYXhpcy1hbGlnbmVkIGxheWVycy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXIpOgorCiAyMDExLTExLTIxICBSYWtlc2ggS04g
IDxyYWtlc2gua25AbW90b3JvbGEuY29tPgogCiAgICAgICAgIE5lZWQgc3VwcG9ydCBmb3IgZGly
bmFtZSBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IDA0ZTdjNzZhMTkwNTUyN2I0ZWVlZDE0MzY2MGI5ZmRjZTE3MzllNWEuLmJmMzhlMDM5NzY4ZWFj
MjY4ZGVhNGI1Yjc4MGFkZTY0ZWM1YmQ1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcApAQCAtNTg4LDYgKzU4OCwxMiBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1
bTo6ZHJhd0xheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgQ0NSZW5kZXJTdXJmYWNlKiB0YXJnZQog
ICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUoR3JhcGhpY3ND
b250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOwogCiAgICAgYm9vbCBvcGFxdWUgPSBsYXllci0+b3Bh
cXVlKCkgJiYgbGF5ZXItPmRyYXdPcGFjaXR5KCkgPT0gMTsKKyAgICBpZiAob3BhcXVlKSB7Cisg
ICAgICAgIC8vIE5vbi1heGlzLWFsaWduZWQgdGhpbmdzIGhhdmUgbm9uLW9wYXF1ZSAoYW50aS1h
bGlhc2VkKSBlZGdlcy4KKyAgICAgICAgRmxvYXRRdWFkIHRyYW5zZm9ybWVkUXVhZCA9IGxheWVy
LT5kcmF3VHJhbnNmb3JtKCkubWFwUXVhZChGbG9hdFJlY3QobGF5ZXItPnZpc2libGVMYXllclJl
Y3QoKSkpOworICAgICAgICBvcGFxdWUgPSB0cmFuc2Zvcm1lZFF1YWQuaXNSZWN0aWxpbmVhcigp
ICYmIHRyYW5zZm9ybWVkUXVhZC5ib3VuZGluZ0JveCgpLmlzRXhwcmVzc2libGVBc0ludFJlY3Qo
KTsKKyAgICB9CisKICAgICBpZiAob3BhcXVlKQogICAgICAgICBHTEMobV9jb250ZXh0LmdldCgp
LCBtX2NvbnRleHQtPmRpc2FibGUoR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116453</attachid>
            <date>2011-11-23 16:41:35 -0800</date>
            <delta_ts>2011-12-09 15:06:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72965-20111123194134.patch</filename>
            <type>text/plain</type>
            <size>3855</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJiY2Q3Mzk3YmZlNmVm
NzE1MzliMzNmNzY4MjI1Y2IxZjAxNDc1Yi4uZmVjZWVlYzczZmNiYTgxMmJkOGM4ZGFhOTgwMmU0
MjM1MTMyYWQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTIzICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVXNl
IGJsZW5kaW5nIG9uIG9wYXF1ZSBub24tYXhpcy1hbGlnbmVkIGxheWVycy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJJbXBsOjpleHRlcmlvckRvZXNOb3RSZXF1aXJlQmxlbmRpbmcpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVySW1wbDo6aW50ZXJpb3JEb2VzTm90UmVxdWlyZUJsZW5kaW5nKToKKwogMjAxMS0x
MS0yMyAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEJpbmRp
bmcgQ29kZUdlbmVyYXRvcnMgZG9uJ3Qgc3VwcG9ydCBDb25kaXRpb25hbD0gb24gY29uc3RhbnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAppbmRleCBhNDM1ZDEwNjE2ZDg1
YWI0ZDRkMjU1NDVlMDAwZTdkYzA3MWUzMDZkLi45M2Y5YWEzMmZlYjBmNDZkZjg4NDRhNWM1ZjBh
YzI5NzA5YTc5YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAg
LTU5Myw3ICs1OTMsNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyKEND
TGF5ZXJJbXBsKiBsYXllciwgQ0NSZW5kZXJTdXJmYWNlKiB0YXJnZQogICAgIGVsc2UKICAgICAg
ICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4
dDNEOjpTQ0lTU09SX1RFU1QpKTsKIAotICAgIGJvb2wgb3BhcXVlID0gbGF5ZXItPm9wYXF1ZSgp
ICYmIGxheWVyLT5kcmF3T3BhY2l0eSgpID09IDE7CisgICAgYm9vbCBvcGFxdWUgPSBsYXllci0+
aW50ZXJpb3JEb2VzTm90UmVxdWlyZUJsZW5kaW5nKCkgJiYgbGF5ZXItPmV4dGVyaW9yRG9lc05v
dFJlcXVpcmVCbGVuZGluZygpOwogICAgIGlmIChvcGFxdWUpCiAgICAgICAgIEdMQyhtX2NvbnRl
eHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwCmluZGV4IDEyZDIyZTJhMjQxMTIyY2I1N2I5OWVkYmRm
NDYzZmY5Y2IyODgyNGUuLjJjNDdlMGNlMzYwMzhmODgxNDM2ZWIxZmQ0NDBlYTg1Y2Y0MjllMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKQEAgLTEyMiw2ICsxMjIsMTggQEAgdm9pZCBDQ0xh
eWVySW1wbDo6YmluZENvbnRlbnRzVGV4dHVyZShMYXllclJlbmRlcmVyQ2hyb21pdW0qKQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCitib29sIENDTGF5ZXJJbXBsOjpleHRlcmlvckRv
ZXNOb3RSZXF1aXJlQmxlbmRpbmcoKQoreworICAgIC8vIE5vbi1heGlzLWFsaWduZWQgdGhpbmdz
IGhhdmUgbm9uLW9wYXF1ZSAoYW50aS1hbGlhc2VkKSBlZGdlcy4KKyAgICBGbG9hdFF1YWQgdHJh
bnNmb3JtZWRRdWFkID0gbV9kcmF3VHJhbnNmb3JtLm1hcFF1YWQoRmxvYXRSZWN0KG1fdmlzaWJs
ZUxheWVyUmVjdCkpOworICAgIGlmICghdHJhbnNmb3JtZWRRdWFkLmlzUmVjdGlsaW5lYXIoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghdHJhbnNmb3JtZWRRdWFkLmJvdW5kaW5n
Qm94KCkuaXNFeHByZXNzaWJsZUFzSW50UmVjdCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBDQ0xheWVySW1wbDo6c2Nyb2xsQnkoY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsKQogewogICAgIEludFNpemUgbmV3RGVsdGEgPSBtX3Njcm9sbERlbHRh
ICsgc2Nyb2xsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYmY2YjY4ZTFlNzgyMDdjZTFhYzZm
Y2YyNjI1N2ZkOTdkNGJkODI0MS4uZTRiODU1NzI5MTg4MjBjNWJiMTFkN2VjZjRmZTAzY2YzNjhm
NDQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC03NCw2ICs3NCwxMiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB1bnJlc2VydmVDb250ZW50c1RleHR1cmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgYmlu
ZENvbnRlbnRzVGV4dHVyZShMYXllclJlbmRlcmVyQ2hyb21pdW0qKTsKIAorICAgIC8vIE92ZXJy
aWRlIHRoZXNlIGlmIHlvdXIgbGF5ZXIgaGFzIHNwZWNpYWwgYmxlbmRpbmcgcmVxdWlyZW1lbnRz
LiBSZXR1cm4gZmFsc2UgaW4gZWl0aGVyIG9uZSBpZiB5b3Ugd2FudCB0byBkbworICAgIC8vIHNv
bWV0aGluZyBtb3JlIGZhbmN5IGluIHRoZSBkcmF3KCkgZnVuY3Rpb24uCisgICAgdmlydHVhbCBi
b29sIGludGVyaW9yRG9lc05vdFJlcXVpcmVCbGVuZGluZygpIHsgcmV0dXJuIG1fb3BhcXVlICYm
IG1fZHJhd09wYWNpdHkgPT0gMTsgfQorICAgIC8vIEZJWE1FOiBPdmVycmlkZSB0aGlzIGluIEND
VGlsZWRMYXllckltcGwgYW5kIHNldCBibGVuZGluZyBpbiBkcmF3KCkgb24gYSBwZXItdGlsZSBi
YXNpcy4KKyAgICB2aXJ0dWFsIGJvb2wgZXh0ZXJpb3JEb2VzTm90UmVxdWlyZUJsZW5kaW5nKCk7
CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBsYXllciBoYXMgY29udGVudCB0byBkcmF3
LgogICAgIHZvaWQgc2V0RHJhd3NDb250ZW50KGJvb2wpOwogICAgIGJvb2wgZHJhd3NDb250ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c0NvbnRlbnQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118650</attachid>
            <date>2011-12-09 15:06:29 -0800</date>
            <delta_ts>2011-12-19 11:24:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72965-20111209180627.patch</filename>
            <type>text/plain</type>
            <size>4063</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlMWUzYWY4N2M1NDhi
Mzg0Mzk0YjdhNmJmNzlkNjIwZjNiMjgzMi4uOGJkNzI3M2ViMGQ2MzBlMjJhM2NiY2M3Nzg3MDQz
ZmRmZjQzOWE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTA5ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVXNl
IGJsZW5kaW5nIG9uIG9wYXF1ZSBub24tYXhpcy1hbGlnbmVkIGxheWVycy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJJbXBsOjpibGVuZENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpi
bGVuZEVkZ2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OmRyYXdXaXRoQmxlbmRp
bmcpOgorCiAyMDExLTExLTMwICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lh
LmNvbT4KIAogICAgICAgICBbUXRdIFY4IGRlYnVnIGJ1aWxkIGZpeGVzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggZjczZDc3YzdjOWU0YzA3Njc5OTg5OTgxYjhm
NmM5MTI0MWJlYmNkMS4uMDAyNzFmOTZjNDkyYjRiZmJmOTAyYjYzZGFlYzE4ZmFkYjQxNjM5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC02NzksNyArNjc5LDcg
QEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcihDQ0xheWVySW1wbCogbGF5
ZXIsIENDUmVuZGVyU3VyZmFjZSogdGFyZ2UKICAgICBlbHNlCiAgICAgICAgIEdMQyhtX2NvbnRl
eHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9U
RVNUKSk7CiAKLSAgICBib29sIG9wYXF1ZSA9IGxheWVyLT5vcGFxdWUoKSAmJiBsYXllci0+ZHJh
d09wYWNpdHkoKSA9PSAxOworICAgIGJvb2wgb3BhcXVlID0gIWxheWVyLT5kcmF3V2l0aEJsZW5k
aW5nKCk7CiAgICAgaWYgKG9wYXF1ZSkKICAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9j
b250ZXh0LT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5jcHAKaW5kZXggYWYwNDJlNTY2OWI0NjJmYjZjMDlkZTZmYzNkNGNmNGI2ZDg0ZTky
ZC4uNjAyNWE4YzZiMDZmZGUzOGU0OWMwOTU2MmI0OTlmNmI4YTZjZDIxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmNwcApAQCAtMTIyLDYgKzEyMiwxOSBAQCB2b2lkIENDTGF5ZXJJbXBsOjpiaW5k
Q29udGVudHNUZXh0dXJlKExheWVyUmVuZGVyZXJDaHJvbWl1bSopCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKK2Jvb2wgQ0NMYXllckltcGw6OmJsZW5kQ29udGVudHMoKQoreworICAg
IHJldHVybiAhbV9vcGFxdWUgfHwgbV9kcmF3T3BhY2l0eSAhPSAxOworfQorCitib29sIENDTGF5
ZXJJbXBsOjpibGVuZEVkZ2VzKCkKK3sKKyAgICAvLyBOb24tYXhpcy1hbGlnbmVkIHRoaW5ncyBo
YXZlIG5vbi1vcGFxdWUgKGFudGktYWxpYXNlZCkgZWRnZXMuCisgICAgRmxvYXRRdWFkIHRyYW5z
Zm9ybWVkUXVhZCA9IG1fZHJhd1RyYW5zZm9ybS5tYXBRdWFkKEZsb2F0UmVjdChtX3Zpc2libGVM
YXllclJlY3QpKTsKKyAgICBib29sIGlzQXhpc0FsaWduZWQgPSB0cmFuc2Zvcm1lZFF1YWQuaXNS
ZWN0aWxpbmVhcigpICYmIHRyYW5zZm9ybWVkUXVhZC5ib3VuZGluZ0JveCgpLmlzRXhwcmVzc2li
bGVBc0ludFJlY3QoKTsKKyAgICByZXR1cm4gIWlzQXhpc0FsaWduZWQ7Cit9CisKIHZvaWQgQ0NM
YXllckltcGw6OnNjcm9sbEJ5KGNvbnN0IEludFNpemUmIHNjcm9sbCkKIHsKICAgICBJbnRTaXpl
IG5ld0RlbHRhID0gbV9zY3JvbGxEZWx0YSArIHNjcm9sbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmlu
ZGV4IGUyYzAwYzg2ODk4MmE3NmM2NThjYWU4MzQxMGU4NWJjY2RjZjgwOWYuLmI4YjA4OTAwNmE1
MDA4ODM3NTVkOTcwMDUwNTk4YWQwYzdlMDNiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAt
NzQsNiArNzQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlc2VydmVDb250ZW50c1RleHR1cmUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZShMYXllclJlbmRlcmVyQ2hy
b21pdW0qKTsKIAorICAgIC8vIEZJWE1FOiBPdmVycmlkZSBpbiBDQ1RpbGVkTGF5ZXJJbXBsIHRv
IHJldHVybiB0cnVlIGFsd2F5cywgdGhlbiBzZXQgYmxlbmRpbmcgZm9yIGVhY2ggdGlsZS4KKyAg
ICB2aXJ0dWFsIGJvb2wgZHJhd1dpdGhCbGVuZGluZygpIHsgcmV0dXJuIGJsZW5kQ29udGVudHMo
KSB8fCBibGVuZEVkZ2VzKCk7IH0KKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGxheWVy
IGhhcyBjb250ZW50IHRvIGRyYXcuCiAgICAgdm9pZCBzZXREcmF3c0NvbnRlbnQoYm9vbCk7CiAg
ICAgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzQ29udGVudDsgfQpA
QCAtMjAwLDYgKzIwMywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGR1bXBMYXll
clByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQpIGNvbnN0OwogICAgIHN0YXRpYyB2
b2lkIHdyaXRlSW5kZW50KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KTsKIAorICAgIC8vIFRlc3Rz
IGlmIHRoZSBsYXllciByZXF1aXJlcyBibGVuZGluZyBiZWNhdXNlIG9mIHdoYXQgaXQgY29udGFp
bnMuCisgICAgYm9vbCBibGVuZENvbnRlbnRzKCk7CisgICAgLy8gVGVzdHMgaWYgdGhlIGxheWVy
IHJlcXVpcmVzIGJsZW5kaW5nIG9uIGl0cyBlZGdlcyB0byBhdm9pZCBhbGlhc2luZy4KKyAgICBi
b29sIGJsZW5kRWRnZXMoKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHNldFBhcmVudChDQ0xheWVy
SW1wbCogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAgICAgZnJpZW5kIGNsYXNzIFRy
ZWVTeW5jaHJvbml6ZXI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>