<?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>80372</bug_id>
          
          <creation_ts>2012-03-05 20:20:49 -0800</creation_ts>
          <short_desc>RenderLayerCompositor doesn&apos;t properly clip graphics layer sizes</short_desc>
          <delta_ts>2012-03-20 16:00:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571410</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-05 20:20:49 -0800</bug_when>
    <thetext>Copying from previous discussion from https://bugs.webkit.org/show_bug.cgi?id=50192.

On http://goo.gl/eYGqX with Chrome, using accelerated canvas as a compositing trigger, some layer sizes end up being too large.  See https://bugs.webkit.org/attachment.cgi?id=130232.

jamesr says in https://bugs.webkit.org/show_bug.cgi?id=50192#c29:

The &lt;div&gt; being composited has children that extend down that far, but they&apos;re clipped by a (software-rendered) ancestor.  When I load the page this part of the DOM looks like:
&lt;div id=&quot;views-control&quot; style=&quot;z-index: 0&quot;&gt; // this is composited
  &lt;div&gt;
    &lt;div&gt;
      &lt;div class=&quot;mv-scroller&quot; style=&quot;overflow-y: hidden; height: 26px&quot;&gt; // this clips
        &lt;div&gt;Traffic&lt;/div&gt;
        &lt;div&gt;Transit&lt;/div&gt;
        &lt;div&gt;Photos&lt;/div&gt;
...


Only the Traffic div is visible because of mv-scroller, but the other &lt;div&gt;s still occupy layout space and grow this layer&apos;s bounds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574148</commentid>
    <comment_count>1</comment_count>
      <attachid>130895</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-08 13:42:57 -0800</bug_when>
    <thetext>Created attachment 130895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574155</commentid>
    <comment_count>2</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-08 13:49:29 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=130895) [details]
&gt; Patch

I&apos;m not super happy with this patch because of the extra work walking up layer trees, but it&apos;s a first cut at getting the job done.

The other approach I considered was to switch calculateCompositedBounds to iterate through RenderLayer children directly rather than through the z-order and normal flow lists.  There&apos;s some hairiness with which layers get included in those lists and which don&apos;t, but it might end up being cleaner.

smfr: What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574159</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-08 13:53:09 -0800</bug_when>
    <thetext>I wonder if we can make use of cached clip rects somehow, or, if we need to, cache a new clip rect for use here.

I don&apos;t like how clippingLayerClosestToAncestor() uses recursion when it could iterate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574265</commentid>
    <comment_count>4</comment_count>
      <attachid>130911</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-08 15:00:42 -0800</bug_when>
    <thetext>Created attachment 130911
Remove recursion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574270</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-08 15:04:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I wonder if we can make use of cached clip rects somehow, or, if we need to, cache a new clip rect for use here.

I may just be misunderstanding clip rects, but the cached clip rects root didn&apos;t seem to necessarily be the composited layer passed originally to calculateCompositedBounds.

&gt; I don&apos;t like how clippingLayerClosestToAncestor() uses recursion when it could iterate.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577879</commentid>
    <comment_count>6</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-13 15:22:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; I wonder if we can make use of cached clip rects somehow, or, if we need to, cache a new clip rect for use here.
&gt; 
&gt; I may just be misunderstanding clip rects, but the cached clip rects root didn&apos;t seem to necessarily be the composited layer passed originally to calculateCompositedBounds.

smfr: If you want to use cached clip rects, do you have any suggestions on how best to go about that?

Is it a possibility to collapse clip rects down the layer tree hierarchy and store directly on child render layers when we build the z-order and normal flow lists? Or, do those lists not get dirtied at the right time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577888</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-13 15:33:00 -0700</bug_when>
    <thetext>I think the &quot; the cached clip rects root&quot; should be the ancestor compositing layer, but I&apos;d have to reload all the clip rects logic into my brain to know for sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579706</commentid>
    <comment_count>8</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-15 13:54:02 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think the &quot; the cached clip rects root&quot; should be the ancestor compositing layer, but I&apos;d have to reload all the clip rects logic into my brain to know for sure.

As far as I can tell, sometimes layer-&gt;clippingRoot() can be an ancestor of that layer&apos;s ancestor compositing layer.

So, I can use the cached clip rects, but they are not in the right space.  Transforming them from a container layer to a local layer would require using localToAbsolute and absoluteToLocal (to respect transforms), and therefore a double walk of the render object hierarchy.

That seems more expensive than my original solution of walking up fewer render layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579715</commentid>
    <comment_count>9</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-15 14:05:44 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; I think the &quot; the cached clip rects root&quot; should be the ancestor compositing layer, but I&apos;d have to reload all the clip rects logic into my brain to know for sure.
&gt; 
&gt; As far as I can tell, sometimes layer-&gt;clippingRoot() can be an ancestor of that layer&apos;s ancestor compositing layer.

Er, ignore this.  I misread some code.  Let me take another look and see if I can get clip rects to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579984</commentid>
    <comment_count>10</comment_count>
      <attachid>132168</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-15 18:08:34 -0700</bug_when>
    <thetext>Created attachment 132168
Use cached clip rects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583476</commentid>
    <comment_count>11</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-20 14:42:57 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=132168) [details]
&gt; Use cached clip rects

smfr: Do you have any time to look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583489</commentid>
    <comment_count>12</comment_count>
      <attachid>132168</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-20 14:54:36 -0700</bug_when>
    <thetext>Comment on attachment 132168
Use cached clip rects

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:511
&gt; -
&gt;  // The bounds of the GraphicsLayer created for a compositing layer is the union of the bounds of all the descendant

I want that blank line :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583498</commentid>
    <comment_count>13</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-20 14:58:04 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 132168 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=132168&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:511
&gt; &gt; -
&gt; &gt;  // The bounds of the GraphicsLayer created for a compositing layer is the union of the bounds of all the descendant
&gt; 
&gt; I want that blank line :)

No problem, you can have it.  I&apos;ve got plenty of extras.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583548</commentid>
    <comment_count>14</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-20 16:00:57 -0700</bug_when>
    <thetext>Committed r111456: &lt;http://trac.webkit.org/changeset/111456&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130895</attachid>
            <date>2012-03-08 13:42:57 -0800</date>
            <delta_ts>2012-03-08 15:00:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80372-20120308134256.patch</filename>
            <type>text/plain</type>
            <size>6704</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJjMThkOTRmZWViYTMy
YzRlOTFhOTdkNDg2MmNhMmI0NjBiM2IyMi4uMzBkNTUxOTE0MmFkYmYxNmQ3ZjgyZTFlNGMxYmMz
YzhjN2FhMzliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA4ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yIGRvZXNuJ3QgcHJvcGVybHkgY2xpcCBncmFwaGljcyBsYXllciBzaXplcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzNzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBmaW5kIHRoZSBib3Vu
ZHMgZm9yIGEgY29tcG9zaXRlZCBsYXllciwgY2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcworICAg
ICAgICBpdGVyYXRlcyB0aHJvdWdoIGFsbCBub24tY29tcG9zaXRlZCBjaGlsZCBsYXllcnMgdXNp
bmcgei1vcmRlciBhbmQKKyAgICAgICAgbm9ybWFsIGZsb3cgbGlzdHMuIFRoaXMgZG9lcyBub3Qg
cHJlc2VydmUgY2xpcHBpbmcgZnJvbSBhbmNlc3RvcgorICAgICAgICBsYXllcnMsIGJlY2F1c2Ug
YSBjbGlwcGluZyBhbmNlc3RvciBsYXllciBjYW4gZW5kIHVwIGFzIGEgc2libGluZyB0bworICAg
ICAgICBpdHMgY2xpcHBlZCBkZXNjZW5kZW50IGJlY2F1c2UgaXQgaXMgbm90IGEgc3RhY2tpbmcg
Y29udGV4dC4KKworICAgICAgICBGaXggYnkgZXhwbGljaXRseSBjaGVja2luZyBpZiBhIGNoaWxk
IGhhcyBhIGNsaXBwaW5nIGFuY2VzdG9yLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2Ns
aXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLmh0bWwKKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcHBp
bmdMYXllckNsb3Nlc3RUb0FuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWxjdWxhdGVDb21wb3NpdGVkQm91bmRz
KToKKwogMjAxMi0wMy0wNyAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtDaHJvbWl1bV0gSW5kZXhlZERCOiBWOExvY2FsQ29udGV4dCBjcmVhdGlvbiBpbiBJ
REJLZXkgZXh0cmFjdGlvbi9pbmplY3Rpb24gaXMgc2xvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBjMDM1NWUzYTE2ZWM3
ZjQyYzIwZmJjODQ1ZTliNGI2MGU3NGExZGY3Li4wMTE3ODZjOWNjMmYyZmRmNzcxZjc3ZDQzMDAw
ZTliYWY3MzIyOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTAzLDYgKzUwMywyMSBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UoUmVuZGVyTGF5ZXIqIGxheWVy
KQogICAgIH0KIH0KIAorc3RhdGljIGNvbnN0IFJlbmRlckxheWVyKiBjbGlwcGluZ0xheWVyQ2xv
c2VzdFRvQW5jZXN0b3IoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXJMYXll
ciogYW5jZXN0b3JMYXllcikKK3sKKyAgICBpZiAobGF5ZXIgIT0gYW5jZXN0b3JMYXllcikgewor
ICAgICAgICBjb25zdCBSZW5kZXJMYXllciogcGFyZW50Q2xpcCA9IGNsaXBwaW5nTGF5ZXJDbG9z
ZXN0VG9BbmNlc3RvcihsYXllci0+cGFyZW50KCksIGFuY2VzdG9yTGF5ZXIpOworCisgICAgICAg
IGlmIChwYXJlbnRDbGlwKQorICAgICAgICAgICAgcmV0dXJuIHBhcmVudENsaXA7CisgICAgfQor
CisgICAgaWYgKGxheWVyLT5yZW5kZXJlcigpLT5oYXNPdmVyZmxvd0NsaXAoKSB8fCBsYXllci0+
cmVuZGVyZXIoKS0+aGFzTWFzaygpKQorICAgICAgICByZXR1cm4gbGF5ZXI7CisKKyAgICByZXR1
cm4gMDsKK30KKwogLy8gVGhlIGJvdW5kcyBvZiB0aGUgR3JhcGhpY3NMYXllciBjcmVhdGVkIGZv
ciBhIGNvbXBvc2l0aW5nIGxheWVyIGlzIHRoZSB1bmlvbiBvZiB0aGUgYm91bmRzIG9mIGFsbCB0
aGUgZGVzY2VuZGFudAogLy8gUmVuZGVyTGF5ZXJzIHRoYXQgYXJlIHJlbmRlcmVkIGJ5IHRoZSBj
b21wb3NpdGVkIFJlbmRlckxheWVyLgogSW50UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNh
bGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBS
ZW5kZXJMYXllciogYW5jZXN0b3JMYXllcikKQEAgLTUyNiwxMSArNTQxLDEzIEBAIEludFJlY3Qg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKGNvbnN0IFJl
bmRlckxheWVyKiBsYXllCiAgICAgCiAgICAgTGF5b3V0UmVjdCB1bmlvbkJvdW5kcyA9IGJvdW5k
aW5nQm94UmVjdDsKICAgICAKLSAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCktPmhhc092ZXJmbG93
Q2xpcCgpIHx8IGxheWVyLT5yZW5kZXJlcigpLT5oYXNNYXNrKCkpIHsKKyAgICBjb25zdCBSZW5k
ZXJMYXllciogY2xpcExheWVyID0gY2xpcHBpbmdMYXllckNsb3Nlc3RUb0FuY2VzdG9yKGxheWVy
LCBhbmNlc3RvckxheWVyKTsKKyAgICBpZiAoY2xpcExheWVyKSB7CiAgICAgICAgIExheW91dFBv
aW50IGFuY2VzdG9yUmVsT2Zmc2V0OwotICAgICAgICBsYXllci0+Y29udmVydFRvTGF5ZXJDb29y
ZHMoYW5jZXN0b3JMYXllciwgYW5jZXN0b3JSZWxPZmZzZXQpOwotICAgICAgICBib3VuZGluZ0Jv
eFJlY3QubW92ZUJ5KGFuY2VzdG9yUmVsT2Zmc2V0KTsKLSAgICAgICAgcmV0dXJuIHBpeGVsU25h
cHBlZEludFJlY3QoYm91bmRpbmdCb3hSZWN0KTsKKyAgICAgICAgY2xpcExheWVyLT5jb252ZXJ0
VG9MYXllckNvb3JkcyhhbmNlc3RvckxheWVyLCBhbmNlc3RvclJlbE9mZnNldCk7CisgICAgICAg
IExheW91dFJlY3QgY2xpcFJlY3QgPSBjbGlwTGF5ZXIgPT0gbGF5ZXIgPyBib3VuZGluZ0JveFJl
Y3QgOiBjbGlwTGF5ZXItPmxvY2FsQm91bmRpbmdCb3goKTsKKyAgICAgICAgY2xpcFJlY3QubW92
ZUJ5KGFuY2VzdG9yUmVsT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIHBpeGVsU25hcHBlZEludFJl
Y3QoY2xpcFJlY3QpOwogICAgIH0KIAogICAgIGlmIChSZW5kZXJMYXllciogcmVmbGVjdGlvbiA9
IGxheWVyLT5yZWZsZWN0aW9uTGF5ZXIoKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJhNTg3MDc1ODVhZDEwOTU1MjQ0
ZGZlZGRhODExNDBlZGUwMGI2MGMuLjA2NGFlMmE5NTI5MjU3ZDY5Zjk5ZmFlYWZjZmY3ZDBlZTgy
NjcyNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wOCAgQWRyaWVubmUgV2Fsa2Vy
ICA8ZW5uZUBnb29nbGUuY29tPgorCisgICAgICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciBkb2Vz
bid0IHByb3Blcmx5IGNsaXAgZ3JhcGhpY3MgbGF5ZXIgc2l6ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5
LW5vbi1zdGFja2luZy1hbmNlc3Rvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNv
bXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTAzLTA3ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5LW5vbi1zdGFja2luZy1hbmNl
c3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5
LW5vbi1zdGFja2luZy1hbmNlc3Rvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTIzNTJhMmFk
Y2RiOGYwNDkxNGEyMWFjOTA3MTRmMmEzYjRlNDA0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDgw
MC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChi
b3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjaGlsZHJlbiAxCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDguMDAgOC4wMCkKKyAgICAgICAgICAoYm91bmRz
IDEwMC4wMCAxMDAuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisg
ICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5LW5vbi1zdGFja2luZy1hbmNlc3Rvci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMxMzdkNGJmODRiNmFlMDQ0OThjMjQ5NDJiMzIyNjY4YTJmNDg5ZjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5LW5vbi1z
dGFja2luZy1hbmNlc3Rvci5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgor
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVl
biI+CisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06
IHRyYW5zbGF0ZVooMCk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICB9CisKKyAgICAgICAgLyogY3JlYXRlIGEgcmVuZGVyIGxheWVyIHdpdGggbm8gc3RhY2tp
bmcgY29udGV4dCAqLworICAgICAgICAuY2xpcCB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDBweDsKKyAg
ICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAg
ICAgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICB9CisKKyAgICAgICAgLyogYmVpbmcg
Y2xpcHBlZCwgdGhpcyBzaG91bGRuJ3QgYWZmZWN0IGNvbnRhaW5lcidzIGNvbXBvc2l0ZWQgYm91
bmRzICovCisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9o
ZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGRv
VGVzdCgpCisgICAgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJ0cmVlJykuaW5uZXJU
ZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIubGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworPC9z
Y3JpcHQ+Cis8Ym9keT4KKyAgICA8IS0tIHRoZSBjb21wb3NpdGVkIGJvdW5kcyBvZiBjb250YWlu
ZXIgc2hvdWxkIGJlIDEwMHB4LCBub3QgMjAwcHggLS0+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2xpcCI+CisgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJib3giPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8cHJlIGlkPSJs
YXllcnRyZWUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130911</attachid>
            <date>2012-03-08 15:00:42 -0800</date>
            <delta_ts>2012-03-15 18:08:23 -0700</delta_ts>
            <desc>Remove recursion</desc>
            <filename>bug-80372-20120308150040.patch</filename>
            <type>text/plain</type>
            <size>6694</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJjMThkOTRmZWViYTMy
YzRlOTFhOTdkNDg2MmNhMmI0NjBiM2IyMi4uMzBkNTUxOTE0MmFkYmYxNmQ3ZjgyZTFlNGMxYmMz
YzhjN2FhMzliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA4ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yIGRvZXNuJ3QgcHJvcGVybHkgY2xpcCBncmFwaGljcyBsYXllciBzaXplcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzNzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBmaW5kIHRoZSBib3Vu
ZHMgZm9yIGEgY29tcG9zaXRlZCBsYXllciwgY2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcworICAg
ICAgICBpdGVyYXRlcyB0aHJvdWdoIGFsbCBub24tY29tcG9zaXRlZCBjaGlsZCBsYXllcnMgdXNp
bmcgei1vcmRlciBhbmQKKyAgICAgICAgbm9ybWFsIGZsb3cgbGlzdHMuIFRoaXMgZG9lcyBub3Qg
cHJlc2VydmUgY2xpcHBpbmcgZnJvbSBhbmNlc3RvcgorICAgICAgICBsYXllcnMsIGJlY2F1c2Ug
YSBjbGlwcGluZyBhbmNlc3RvciBsYXllciBjYW4gZW5kIHVwIGFzIGEgc2libGluZyB0bworICAg
ICAgICBpdHMgY2xpcHBlZCBkZXNjZW5kZW50IGJlY2F1c2UgaXQgaXMgbm90IGEgc3RhY2tpbmcg
Y29udGV4dC4KKworICAgICAgICBGaXggYnkgZXhwbGljaXRseSBjaGVja2luZyBpZiBhIGNoaWxk
IGhhcyBhIGNsaXBwaW5nIGFuY2VzdG9yLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2Ns
aXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLmh0bWwKKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcHBp
bmdMYXllckNsb3Nlc3RUb0FuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWxjdWxhdGVDb21wb3NpdGVkQm91bmRz
KToKKwogMjAxMi0wMy0wNyAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtDaHJvbWl1bV0gSW5kZXhlZERCOiBWOExvY2FsQ29udGV4dCBjcmVhdGlvbiBpbiBJ
REJLZXkgZXh0cmFjdGlvbi9pbmplY3Rpb24gaXMgc2xvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBjMDM1NWUzYTE2ZWM3
ZjQyYzIwZmJjODQ1ZTliNGI2MGU3NGExZGY3Li5mMDIyOTdmNmNhNWI3NzM2YjdhOTY3NTdjMGYx
YzlkZjBiMzdiN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTAzLDYgKzUwMywxNyBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UoUmVuZGVyTGF5ZXIqIGxheWVy
KQogICAgIH0KIH0KIAorc3RhdGljIGNvbnN0IFJlbmRlckxheWVyKiBjbGlwcGluZ0xheWVyQ2xv
c2VzdFRvQW5jZXN0b3IoY29uc3QgUmVuZGVyTGF5ZXIqIGluaXRpYWxMYXllciwgY29uc3QgUmVu
ZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIpCit7CisgICAgY29uc3QgUmVuZGVyTGF5ZXIqIGxhc3RD
bGlwTGF5ZXIgPSAwOworICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyID0gaW5pdGlh
bExheWVyOyBsYXllciAhPSBhbmNlc3RvckxheWVyLT5wYXJlbnQoKTsgbGF5ZXIgPSBsYXllci0+
cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKGxheWVyLT5yZW5kZXJlcigpLT5oYXNPdmVyZmxvd0Ns
aXAoKSB8fCBsYXllci0+cmVuZGVyZXIoKS0+aGFzTWFzaygpKQorICAgICAgICAgICAgbGFzdENs
aXBMYXllciA9IGxheWVyOworICAgIH0KKworICAgIHJldHVybiBsYXN0Q2xpcExheWVyOworfQor
CiAvLyBUaGUgYm91bmRzIG9mIHRoZSBHcmFwaGljc0xheWVyIGNyZWF0ZWQgZm9yIGEgY29tcG9z
aXRpbmcgbGF5ZXIgaXMgdGhlIHVuaW9uIG9mIHRoZSBib3VuZHMgb2YgYWxsIHRoZSBkZXNjZW5k
YW50CiAvLyBSZW5kZXJMYXllcnMgdGhhdCBhcmUgcmVuZGVyZWQgYnkgdGhlIGNvbXBvc2l0ZWQg
UmVuZGVyTGF5ZXIuCiBJbnRSZWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FsY3VsYXRlQ29t
cG9zaXRlZEJvdW5kcyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVy
KiBhbmNlc3RvckxheWVyKQpAQCAtNTI2LDExICs1MzcsMTMgQEAgSW50UmVjdCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIq
IGxheWUKICAgICAKICAgICBMYXlvdXRSZWN0IHVuaW9uQm91bmRzID0gYm91bmRpbmdCb3hSZWN0
OwogICAgIAotICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkgfHwg
bGF5ZXItPnJlbmRlcmVyKCktPmhhc01hc2soKSkgeworICAgIGNvbnN0IFJlbmRlckxheWVyKiBj
bGlwTGF5ZXIgPSBjbGlwcGluZ0xheWVyQ2xvc2VzdFRvQW5jZXN0b3IobGF5ZXIsIGFuY2VzdG9y
TGF5ZXIpOworICAgIGlmIChjbGlwTGF5ZXIpIHsKICAgICAgICAgTGF5b3V0UG9pbnQgYW5jZXN0
b3JSZWxPZmZzZXQ7Ci0gICAgICAgIGxheWVyLT5jb252ZXJ0VG9MYXllckNvb3JkcyhhbmNlc3Rv
ckxheWVyLCBhbmNlc3RvclJlbE9mZnNldCk7Ci0gICAgICAgIGJvdW5kaW5nQm94UmVjdC5tb3Zl
QnkoYW5jZXN0b3JSZWxPZmZzZXQpOwotICAgICAgICByZXR1cm4gcGl4ZWxTbmFwcGVkSW50UmVj
dChib3VuZGluZ0JveFJlY3QpOworICAgICAgICBjbGlwTGF5ZXItPmNvbnZlcnRUb0xheWVyQ29v
cmRzKGFuY2VzdG9yTGF5ZXIsIGFuY2VzdG9yUmVsT2Zmc2V0KTsKKyAgICAgICAgTGF5b3V0UmVj
dCBjbGlwUmVjdCA9IGNsaXBMYXllciA9PSBsYXllciA/IGJvdW5kaW5nQm94UmVjdCA6IGNsaXBM
YXllci0+bG9jYWxCb3VuZGluZ0JveCgpOworICAgICAgICBjbGlwUmVjdC5tb3ZlQnkoYW5jZXN0
b3JSZWxPZmZzZXQpOworICAgICAgICByZXR1cm4gcGl4ZWxTbmFwcGVkSW50UmVjdChjbGlwUmVj
dCk7CiAgICAgfQogCiAgICAgaWYgKFJlbmRlckxheWVyKiByZWZsZWN0aW9uID0gbGF5ZXItPnJl
ZmxlY3Rpb25MYXllcigpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmE1ODcwNzU4NWFkMTA5NTUyNDRkZmVkZGE4MTE0
MGVkZTAwYjYwYy4uMDY0YWUyYTk1MjkyNTdkNjlmOTlmYWVhZmNmZjdkMGVlODI2NzI1OCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAzLTA4ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yIGRvZXNuJ3QgcHJvcGVy
bHkgY2xpcCBncmFwaGljcyBsYXllciBzaXplcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNr
aW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcv
Y2xpcC1jaGlsZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3IuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDMtMDcgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNr
aW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjM1MmEyYWRjZGI4ZjA0OTE0
YTIxYWM5MDcxNGYyYTNiNGU0MDQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvY2xpcC1jaGlsZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3ItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTYgQEAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4w
MCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAu
MDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQorICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEw
MC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAg
ICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1j
aGlsZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFuY2VzdG9yLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzEzN2Q0YmY4NGI2YWUwNDQ5OGMyNDk0MmIzMjI2NjhhMmY0ODlmNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2NsaXAtY2hpbGQtYnktbm9uLXN0YWNraW5nLWFu
Y2VzdG9yLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgor
PGhlYWQ+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAg
ICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl
WigwKTsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKwor
ICAgICAgICAvKiBjcmVhdGUgYSByZW5kZXIgbGF5ZXIgd2l0aCBubyBzdGFja2luZyBjb250ZXh0
ICovCisgICAgICAgIC5jbGlwIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgICAgIHRvcDogMHB4OworICAgICAgICAgICAgbGVmdDogMHB4OworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIG92
ZXJmbG93OiBoaWRkZW47CisgICAgICAgIH0KKworICAgICAgICAvKiBiZWluZyBjbGlwcGVkLCB0
aGlzIHNob3VsZG4ndCBhZmZlY3QgY29udGFpbmVyJ3MgY29tcG9zaXRlZCBib3VuZHMgKi8KKyAg
ICAgICAgLmJveCB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAg
ICB0b3A6IDEwMHB4OworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAg
ICB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXllcnRyZWUnKS5pbm5lclRleHQgPSBsYXlv
dXRUZXN0Q29udHJvbGxlci5sYXllclRyZWVBc1RleHQoKTsKKyAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzxi
b2R5PgorICAgIDwhLS0gdGhlIGNvbXBvc2l0ZWQgYm91bmRzIG9mIGNvbnRhaW5lciBzaG91bGQg
YmUgMTAwcHgsIG5vdCAyMDBweCAtLT4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJjbGlwIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCI+PC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxwcmUgaWQ9ImxheWVydHJlZSI+
PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132168</attachid>
            <date>2012-03-15 18:08:34 -0700</date>
            <delta_ts>2012-03-20 14:54:36 -0700</delta_ts>
            <desc>Use cached clip rects</desc>
            <filename>bug-80372-20120315180833.patch</filename>
            <type>text/plain</type>
            <size>14623</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI0Nzc0YzAzZmEwMjg4
OWYwZmEwMDE1MzIwNjVkYTNjMzVlYjQyMi4uNWI0NWM4NWNlMWMwZmVhMzQwMzkwYmU4Zjg0MzJj
ZGY5MmZhNDljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTE1ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yIGRvZXNuJ3QgcHJvcGVybHkgY2xpcCBncmFwaGljcyBsYXllciBzaXplcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzNzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBmaW5kIHRoZSBib3Vu
ZHMgZm9yIGEgY29tcG9zaXRlZCBsYXllciwgY2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcworICAg
ICAgICBpdGVyYXRlcyB0aHJvdWdoIGFsbCBub24tY29tcG9zaXRlZCBjaGlsZCBsYXllcnMgdXNp
bmcgei1vcmRlciBhbmQKKyAgICAgICAgbm9ybWFsIGZsb3cgbGlzdHMuIFRoaXMgZG9lcyBub3Qg
cHJlc2VydmUgY2xpcHBpbmcgZnJvbSBhbmNlc3RvcgorICAgICAgICBsYXllcnMsIGJlY2F1c2Ug
YSBjbGlwcGluZyBhbmNlc3RvciBsYXllciBjYW4gZW5kIHVwIGFzIGEgc2libGluZyB0bworICAg
ICAgICBpdHMgY2xpcHBlZCBkZXNjZW5kZW50IGJlY2F1c2UgaXQgaXMgbm90IGEgc3RhY2tpbmcg
Y29udGV4dC4KKworICAgICAgICBGaXggYnkgZXhwbGljaXRseSBjaGVja2luZyBjYWNoZWQgY2xp
cCByb290cy4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5LW5vbi1z
dGFja2luZy1hbmNlc3Rvci5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmxvY2FsQ2xpcFJlY3QpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcGFp
bnRPbkNvbXBvc2l0aW5nQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Y2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcyk6CisKIDIwMTItMDMtMTUgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0gTWFrZSB6
bGliIGEgZ2VuZXJhbCBidWlsZCByZXF1aXJlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggNTNjMDg1ZDUyMTZhZjA3ZTYwMDliNjcyZDlmMzM4NjcwM2Yz
ZDYzNS4uMzQzMDY5ZTY1MzU0YjVlZWU4M2ViNWMzYWNhNjE2YTI0MTBmYmM2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zODA0LDYgKzM4MDQsMjYgQEAg
TGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0KCkgY29uc3QKICAgICByZXR1cm4g
Y2xpcHBpbmdSb290TGF5ZXItPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRR
dWFkKGJhY2tncm91bmRSZWN0LnJlY3QoKSkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAK
K0xheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmxvY2FsQ2xpcFJlY3QoKSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBib3JkZXItcmFkaXVzIG5vdCBhY2NvdW50ZWQgZm9yLgorICAgIC8vIEZJWE1FOiBS
ZWdpb25zIG5vdCBhY2NvdW50ZWQgZm9yLgorICAgIFJlbmRlckxheWVyKiBjbGlwcGluZ1Jvb3RM
YXllciA9IGNsaXBwaW5nUm9vdCgpOworICAgIExheW91dFJlY3QgbGF5ZXJCb3VuZHM7CisgICAg
Q2xpcFJlY3QgYmFja2dyb3VuZFJlY3QsIGZvcmVncm91bmRSZWN0LCBvdXRsaW5lUmVjdDsKKyAg
ICBjYWxjdWxhdGVSZWN0cyhjbGlwcGluZ1Jvb3RMYXllciwgMCwgUGFpbnRJbmZvOjppbmZpbml0
ZVJlY3QoKSwgbGF5ZXJCb3VuZHMsIGJhY2tncm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0
bGluZVJlY3QpOworCisgICAgTGF5b3V0UmVjdCBjbGlwUmVjdCA9IGJhY2tncm91bmRSZWN0LnJl
Y3QoKTsKKyAgICBpZiAoY2xpcFJlY3QgPT0gUGFpbnRJbmZvOjppbmZpbml0ZVJlY3QoKSkKKyAg
ICAgICAgcmV0dXJuIGNsaXBSZWN0OworCisgICAgTGF5b3V0UG9pbnQgY2xpcHBpbmdSb290T2Zm
c2V0OworICAgIGNvbnZlcnRUb0xheWVyQ29vcmRzKGNsaXBwaW5nUm9vdExheWVyLCBjbGlwcGlu
Z1Jvb3RPZmZzZXQpOworICAgIGNsaXBSZWN0Lm1vdmVCeSgtY2xpcHBpbmdSb290T2Zmc2V0KTsK
KworICAgIHJldHVybiBjbGlwUmVjdDsKK30KKwogdm9pZCBSZW5kZXJMYXllcjo6YWRkQmxvY2tT
ZWxlY3Rpb25HYXBzQm91bmRzKGNvbnN0IExheW91dFJlY3QmIGJvdW5kcykKIHsKICAgICBtX2Js
b2NrU2VsZWN0aW9uR2Fwc0JvdW5kcy51bml0ZShib3VuZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaAppbmRleCA5NDdmOTMxZDZlYzZmMjQ3MTI2MGFiNDA1YWRhNzJkYTQz
MGM1ZTJhLi5jNzUzZTAxNGU1ZGNlN2NjMGMyMGFkMTA2ZGY4OGU1YjY2ZWVmZjZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDY4LDYgKzQ2OCw3IEBAIHB1Ymxp
YzoKIAogICAgIExheW91dFJlY3QgY2hpbGRyZW5DbGlwUmVjdCgpIGNvbnN0OyAvLyBSZXR1cm5z
IHRoZSBmb3JlZ3JvdW5kIGNsaXAgcmVjdCBvZiB0aGUgbGF5ZXIgaW4gdGhlIGRvY3VtZW50J3Mg
Y29vcmRpbmF0ZSBzcGFjZS4KICAgICBMYXlvdXRSZWN0IHNlbGZDbGlwUmVjdCgpIGNvbnN0OyAv
LyBSZXR1cm5zIHRoZSBiYWNrZ3JvdW5kIGNsaXAgcmVjdCBvZiB0aGUgbGF5ZXIgaW4gdGhlIGRv
Y3VtZW50J3MgY29vcmRpbmF0ZSBzcGFjZS4KKyAgICBMYXlvdXRSZWN0IGxvY2FsQ2xpcFJlY3Qo
KSBjb25zdDsgLy8gUmV0dXJucyB0aGUgYmFja2dyb3VuZCBjbGlwIHJlY3Qgb2YgdGhlIGxheWVy
IGluIHRoZSBsb2NhbCBjb29yZGluYXRlIHNwYWNlLgogCiAgICAgYm9vbCBpbnRlcnNlY3RzRGFt
YWdlUmVjdChjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5kcywgY29uc3QgTGF5b3V0UmVjdCYg
ZGFtYWdlUmVjdCwgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllcikgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5k
ZXggZjlhOTgyZTQxODY0OWJkNmYyZWMzNDE0NDI5MTljMWM1YzdiMzkyNS4uYmNhOGNmMjRmODdj
YzJmZTQyNzYxMjA0NWFkMTgzMzljMDBhYTExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTUwOCw3ICs1MDgsNiBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UoUmVu
ZGVyTGF5ZXIqIGxheWVyKQogICAgICAgICBtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5zZXRO
ZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCk7CiAgICAgfQogfQotCiAvLyBUaGUg
Ym91bmRzIG9mIHRoZSBHcmFwaGljc0xheWVyIGNyZWF0ZWQgZm9yIGEgY29tcG9zaXRpbmcgbGF5
ZXIgaXMgdGhlIHVuaW9uIG9mIHRoZSBib3VuZHMgb2YgYWxsIHRoZSBkZXNjZW5kYW50CiAvLyBS
ZW5kZXJMYXllcnMgdGhhdCBhcmUgcmVuZGVyZWQgYnkgdGhlIGNvbXBvc2l0ZWQgUmVuZGVyTGF5
ZXIuCiBJbnRSZWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FsY3VsYXRlQ29tcG9zaXRlZEJv
dW5kcyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3Rv
ckxheWVyKQpAQCAtNTMxLDEyICs1MzAsMTMgQEAgSW50UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWUKICAg
ICB9CiAgICAgCiAgICAgTGF5b3V0UmVjdCB1bmlvbkJvdW5kcyA9IGJvdW5kaW5nQm94UmVjdDsK
LSAgICAKLSAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpIHx8IGxh
eWVyLT5yZW5kZXJlcigpLT5oYXNNYXNrKCkpIHsKKworICAgIExheW91dFJlY3QgbG9jYWxDbGlw
UmVjdCA9IGxheWVyLT5sb2NhbENsaXBSZWN0KCk7CisgICAgaWYgKGxvY2FsQ2xpcFJlY3QgIT0g
UGFpbnRJbmZvOjppbmZpbml0ZVJlY3QoKSkgewogICAgICAgICBMYXlvdXRQb2ludCBhbmNlc3Rv
clJlbE9mZnNldDsKICAgICAgICAgbGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzKGFuY2VzdG9y
TGF5ZXIsIGFuY2VzdG9yUmVsT2Zmc2V0KTsKLSAgICAgICAgYm91bmRpbmdCb3hSZWN0Lm1vdmVC
eShhbmNlc3RvclJlbE9mZnNldCk7Ci0gICAgICAgIHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0
KGJvdW5kaW5nQm94UmVjdCk7CisgICAgICAgIGxvY2FsQ2xpcFJlY3QubW92ZUJ5KGFuY2VzdG9y
UmVsT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIHBpeGVsU25hcHBlZEludFJlY3QobG9jYWxDbGlw
UmVjdCk7CiAgICAgfQogCiAgICAgaWYgKFJlbmRlckxheWVyKiByZWZsZWN0aW9uID0gbGF5ZXIt
PnJlZmxlY3Rpb25MYXllcigpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWY3NGUyOGFjMDUyY2FkMWM5MzA1NWY5YWZi
MWY1NGJlNTliNjBiMC4uYTFlNGM5YmIxNTlmOWQ4ZTY4ZmZkOTNmYjRkMWQwMmFjYmFkNWQ2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTE1ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5l
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yIGRvZXNuJ3QgcHJv
cGVybHkgY2xpcCBncmFwaGljcyBsYXllciBzaXplcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgc2V2ZXJhbCBiYXNlbGluZXMgZHVlIHRvIHNt
YWxsZXIgYmFja2luZyBzaXplcy4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2NsaXAtY2hpbGQt
Ynktbm9uLXN0YWNraW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
Y29tcG9zaXRpbmcvY2xpcC1jaGlsZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3IuaHRtbDogQWRk
ZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogY29tcG9zaXRpbmcvaW1hZ2VzL2NsaXAtb24tZGlyZWN0bHktY29tcG9zaXRlZC1p
bWFnZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogY29tcG9zaXRpbmcvb3ZlcmZsb3cvY2xpcC1k
ZXNjZW5kZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2lu
L2NvbXBvc2l0aW5nL2ltYWdlcy9jbGlwLW9uLWRpcmVjdGx5LWNvbXBvc2l0ZWQtaW1hZ2UtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9jb21w
b3NpdGluZy9vdmVyZmxvdy9jbGlwLWRlc2NlbmRlbnRzLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0w
My0xNSAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gQ2xlYW51cCBvZiBvdXRkYXRlZCB0ZXN0IGV4cGVjdGF0aW9ucwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGlsZC1ieS1ub24tc3RhY2tpbmct
YW5jZXN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGls
ZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMzUy
YTJhZGNkYjhmMDQ5MTRhMjFhYzkwNzE0ZjJhM2I0ZTQwNDAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9jbGlwLWNoaWxkLWJ5LW5vbi1zdGFja2luZy1hbmNlc3Rv
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5k
cyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAg
ICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAgICAgICAgKGJv
dW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
KQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9jbGlwLWNoaWxkLWJ5LW5vbi1zdGFja2luZy1hbmNlc3Rvci5odG1sIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGlsZC1ieS1ub24tc3RhY2tpbmctYW5jZXN0b3IuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMTM3ZDRiZjg0YjZhZTA0NDk4YzI0OTQyYjMyMjY2OGEyZjQ4OWY0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvY2xpcC1jaGlsZC1ieS1u
b24tc3RhY2tpbmctYW5jZXN0b3IuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRt
bD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJz
Y3JlZW4iPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNm
b3JtOiB0cmFuc2xhdGVaKDApOworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVy
OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgfQorCisgICAgICAgIC8qIGNyZWF0ZSBhIHJlbmRlciBsYXllciB3aXRoIG5vIHN0
YWNraW5nIGNvbnRleHQgKi8KKyAgICAgICAgLmNsaXAgeworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBsZWZ0OiAwcHg7
CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGJl
aW5nIGNsaXBwZWQsIHRoaXMgc2hvdWxkbid0IGFmZmVjdCBjb250YWluZXIncyBjb21wb3NpdGVk
IGJvdW5kcyAqLworICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAg
ICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICB9CisgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBkb1Rlc3QoKQorICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVydHJlZScpLmlu
bmVyVGV4dCA9IGxheW91dFRlc3RDb250cm9sbGVyLmxheWVyVHJlZUFzVGV4dCgpOworICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAg
fQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsK
Kzwvc2NyaXB0PgorPGJvZHk+CisgICAgPCEtLSB0aGUgY29tcG9zaXRlZCBib3VuZHMgb2YgY29u
dGFpbmVyIHNob3VsZCBiZSAxMDBweCwgbm90IDIwMHB4IC0tPgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNsaXAiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPHByZSBp
ZD0ibGF5ZXJ0cmVlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2NsaXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcC1leHBlY3RlZC50eHQKaW5kZXggMjZiYWFjNDdk
ZTIyYWQ0MjFkNjI0MjcwNGZiNmRiZDFlMDhlNzEwMC4uMzI1NWI3Y2U5MTMxNmU2OWJlOTQzYzI4
N2I0MGUwMDdlODA5NmM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvY2xpcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvY2xpcC1leHBlY3RlZC50eHQKQEAgLTcsOCArNyw4IEBAIFRlc3QgQ1NTIGNsaXAgd2l0
aCBjb21wb3NpdGVkIGxheWVycy4gTGVmdCBhbmQgcmlnaHQgc2lkZXMgc2hvdWxkIGxvb2sgdGhl
IHNhbWUuCiAgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCiAgICAgICAoY2hpbGRyZW4gMwog
ICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgIChwb3NpdGlvbiAxMC4wMCAxMC4wMCkK
LSAgICAgICAgICAoYm91bmRzIDEyMC4wMCAxMjAuMDApCisgICAgICAgICAgKHBvc2l0aW9uIDIw
LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKICAgICAgICAgICAo
ZHJhd3NDb250ZW50IDEpCiAgICAgICAgICAgKHRyYW5zZm9ybSBbMS4wMCAwLjAwIDAuMDAgMC4w
MF0gWzAuMDAgMS4wMCAwLjAwIDAuMDBdIFswLjAwIDAuMDAgMS4wMCAwLjAwXSBbMC4wMCAwLjAw
IDEuMDAgMS4wMF0pCiAgICAgICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2ltYWdlcy9jbGlwLW9uLWRpcmVjdGx5LWNvbXBvc2l0ZWQtaW1hZ2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaW1hZ2VzL2NsaXAtb24tZGlyZWN0bHktY29tcG9z
aXRlZC1pbWFnZS1leHBlY3RlZC50eHQKaW5kZXggZWFhYWY4MTJmNDM1YzNmODFlY2IyZjkzYzMw
NTY2N2EzNzViYWVhNy4uMTIzZDI0ZTg5ZGY2ZTkyMjMyZTQzODkxNmI3YWEzMTYxY2VjYjUxZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaW1hZ2VzL2NsaXAtb24tZGlyZWN0
bHktY29tcG9zaXRlZC1pbWFnZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaW1hZ2VzL2NsaXAtb24tZGlyZWN0bHktY29tcG9zaXRlZC1pbWFnZS1leHBlY3RlZC50
eHQKQEAgLTYsOCArNiw5IEBACiAgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCiAgICAgICAo
Y2hpbGRyZW4gMQogICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgIChwb3NpdGlvbiAy
MDAuMDAgMTMuMDApCi0gICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMjAwLjAwKQorICAgICAgICAg
IChwb3NpdGlvbiAyMTAuMDAgMjMuMDApCisgICAgICAgICAgKGFuY2hvciAwLjY0IDAuNjQpCisg
ICAgICAgICAgKGJvdW5kcyAxNDAuMDAgMTQwLjAwKQogICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKICAgICAgICAgKQogICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvb3ZlcmZsb3cvY2xpcC1kZXNjZW5kZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9vdmVyZmxvdy9jbGlwLWRlc2NlbmRlbnRzLWV4cGVjdGVkLnR4dAppbmRleCBl
MjBjNThlZjI2M2ZhYzAyZjk0M2U0NmE3NTliNzE0ZTkzMDA1NTU1Li5hODRhODY1MzNmMzQ5NTNl
MWFjY2I4ZDA3YWQxNDg4Y2I5Mzc4MTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9vdmVyZmxvdy9jbGlwLWRlc2NlbmRlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9vdmVyZmxvdy9jbGlwLWRlc2NlbmRlbnRzLWV4cGVjdGVkLnR4dApA
QCAtMTksOCArMTksOCBAQCBUZXN0IG92ZXJmbG93IGNsaXBwaW5nIG9mIGNvbXBvc2l0ZWQgZWxl
bWVudHMgaW4gdmFyaW91cyBjb25maWd1cmF0aW9ucy4KICAgICAgICAgICApCiAgICAgICAgICkK
ICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAgICAgICAgICAocG9zaXRpb24gMjIwLjAwIDU0LjAw
KQotICAgICAgICAgIChib3VuZHMgMTQyLjAwIDE0Mi4wMCkKKyAgICAgICAgICAocG9zaXRpb24g
MjQwLjAwIDY0LjAwKQorICAgICAgICAgIChib3VuZHMgNjAuMDAgNzAuMDApCiAgICAgICAgICAg
KGRyYXdzQ29udGVudCAxKQogICAgICAgICApCiAgICAgICAgIChHcmFwaGljc0xheWVyCkBAIC00
NywxMiArNDcsMTEgQEAgVGVzdCBvdmVyZmxvdyBjbGlwcGluZyBvZiBjb21wb3NpdGVkIGVsZW1l
bnRzIGluIHZhcmlvdXMgY29uZmlndXJhdGlvbnMuCiAgICAgICAgICAgKQogICAgICAgICApCiAg
ICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDIyMC4wMCkK
LSAgICAgICAgICAoYm91bmRzIDE0Mi4wMCAxNDIuMDApCisgICAgICAgICAgKHBvc2l0aW9uIDQ4
LjAwIDIzMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDYwLjAwIDcwLjAwKQogICAgICAgICAgIChk
cmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKLSAgICAgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDEwLjAwKQogICAgICAgICAg
ICAgICAoYm91bmRzIDYwLjAwIDcwLjAwKQogICAgICAgICAgICAgICAoY2hpbGRyZW4gMQogICAg
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCkBAIC02NiwxMiArNjUsMTEgQEAgVGVzdCBvdmVy
ZmxvdyBjbGlwcGluZyBvZiBjb21wb3NpdGVkIGVsZW1lbnRzIGluIHZhcmlvdXMgY29uZmlndXJh
dGlvbnMuCiAgICAgICAgICAgKQogICAgICAgICApCiAgICAgICAgIChHcmFwaGljc0xheWVyCi0g
ICAgICAgICAgKHBvc2l0aW9uIDIyMC4wMCAyMjAuMDApCi0gICAgICAgICAgKGJvdW5kcyAxNDIu
MDAgMTQyLjAwKQorICAgICAgICAgIChwb3NpdGlvbiAyNDAuMDAgMjMwLjAwKQorICAgICAgICAg
IChib3VuZHMgNjAuMDAgNzAuMDApCiAgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQogICAgICAg
ICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgICAg
ICAocG9zaXRpb24gMjAuMDAgMTAuMDApCiAgICAgICAgICAgICAgIChib3VuZHMgNjAuMDAgNzAu
MDApCiAgICAgICAgICAgICAgIChjaGlsZHJlbiAxCiAgICAgICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jb21w
b3NpdGluZy9pbWFnZXMvY2xpcC1vbi1kaXJlY3RseS1jb21wb3NpdGVkLWltYWdlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jb21wb3NpdGluZy9pbWFn
ZXMvY2xpcC1vbi1kaXJlY3RseS1jb21wb3NpdGVkLWltYWdlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWFhYWY4MTJmNDM1YzNmODFlY2IyZjkzYzMwNTY2N2Ez
NzViYWVhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vY29tcG9zaXRpbmcvaW1hZ2VzL2NsaXAt
b24tZGlyZWN0bHktY29tcG9zaXRlZC1pbWFnZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNyArMCwwIEBACi0KLShHcmFwaGljc0xheWVyCi0gIChib3VuZHMgODAwLjAwIDYwMC4w
MCkKLSAgKGNoaWxkcmVuIDEKLSAgICAoR3JhcGhpY3NMYXllcgotICAgICAgKGJvdW5kcyA4MDAu
MDAgNjAwLjAwKQotICAgICAgKGNoaWxkcmVuIDEKLSAgICAgICAgKEdyYXBoaWNzTGF5ZXIKLSAg
ICAgICAgICAocG9zaXRpb24gMjAwLjAwIDEzLjAwKQotICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKLSAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCi0gICAgICAgICkKLSAgICAgICkK
LSAgICApCi0gICkKLSkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2NvbXBvc2l0aW5nL292ZXJmbG93L2NsaXAtZGVzY2VuZGVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2NvbXBvc2l0aW5nL292ZXJmbG93
L2NsaXAtZGVzY2VuZGVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDgwNjczYTU2MTc2ZjkxZTI0NWZh
ODJmNmM3NmFhNGZlNzkzZTgxNDMuLjMyYTVlODUxOTcyM2M3ZTQwYzVkZTdhNjE5MTNiYjExNTcw
ODNhNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jb21w
b3NpdGluZy9vdmVyZmxvdy9jbGlwLWRlc2NlbmRlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vY29tcG9zaXRpbmcvb3ZlcmZsb3cvY2xpcC1k
ZXNjZW5kZW50cy1leHBlY3RlZC50eHQKQEAgLTE5LDggKzE5LDggQEAgVGVzdCBvdmVyZmxvdyBj
bGlwcGluZyBvZiBjb21wb3NpdGVkIGVsZW1lbnRzIGluIHZhcmlvdXMgY29uZmlndXJhdGlvbnMu
CiAgICAgICAgICAgKQogICAgICAgICApCiAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAg
ICAgKHBvc2l0aW9uIDIyMC4wMCA1Ni4wMCkKLSAgICAgICAgICAoYm91bmRzIDE0Mi4wMCAxNDIu
MDApCisgICAgICAgICAgKHBvc2l0aW9uIDI0MC4wMCA2Ni4wMCkKKyAgICAgICAgICAoYm91bmRz
IDYwLjAwIDcwLjAwKQogICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgKQogICAg
ICAgICAoR3JhcGhpY3NMYXllcgpAQCAtNDcsMTIgKzQ3LDExIEBAIFRlc3Qgb3ZlcmZsb3cgY2xp
cHBpbmcgb2YgY29tcG9zaXRlZCBlbGVtZW50cyBpbiB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zLgog
ICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAg
IChwb3NpdGlvbiAyOC4wMCAyMjAuMDApCi0gICAgICAgICAgKGJvdW5kcyAxNDIuMDAgMTQyLjAw
KQorICAgICAgICAgIChwb3NpdGlvbiA0OC4wMCAyMzAuMDApCisgICAgICAgICAgKGJvdW5kcyA2
MC4wMCA3MC4wMCkKICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCiAgICAgICAgICAgKGNoaWxk
cmVuIDEKICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCi0gICAgICAgICAgICAgIChwb3NpdGlv
biAyMC4wMCAxMC4wMCkKICAgICAgICAgICAgICAgKGJvdW5kcyA2MC4wMCA3MC4wMCkKICAgICAg
ICAgICAgICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgpAQCAt
NjYsMTIgKzY1LDExIEBAIFRlc3Qgb3ZlcmZsb3cgY2xpcHBpbmcgb2YgY29tcG9zaXRlZCBlbGVt
ZW50cyBpbiB2YXJpb3VzIGNvbmZpZ3VyYXRpb25zLgogICAgICAgICAgICkKICAgICAgICAgKQog
ICAgICAgICAoR3JhcGhpY3NMYXllcgotICAgICAgICAgIChwb3NpdGlvbiAyMjAuMDAgMjIwLjAw
KQotICAgICAgICAgIChib3VuZHMgMTQyLjAwIDE0Mi4wMCkKKyAgICAgICAgICAocG9zaXRpb24g
MjQwLjAwIDIzMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDYwLjAwIDcwLjAwKQogICAgICAgICAg
IChkcmF3c0NvbnRlbnQgMSkKICAgICAgICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgKEdy
YXBoaWNzTGF5ZXIKLSAgICAgICAgICAgICAgKHBvc2l0aW9uIDIwLjAwIDEwLjAwKQogICAgICAg
ICAgICAgICAoYm91bmRzIDYwLjAwIDcwLjAwKQogICAgICAgICAgICAgICAoY2hpbGRyZW4gMQog
ICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCg==
</data>
<flag name="review"
          id="135720"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>