<?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>80998</bug_id>
          
          <creation_ts>2012-03-13 09:02:06 -0700</creation_ts>
          <short_desc>[chromium] Fix accelerated 2D canvas in threaded compositing mode.</short_desc>
          <delta_ts>2012-03-14 14:29:04 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stephen White">senorblanco</reporter>
          <assigned_to name="Stephen White">senorblanco</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>577393</commentid>
    <comment_count>0</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-13 09:02:06 -0700</bug_when>
    <thetext>[chromium] Fix accelerated 2D canvas in threaded compositing mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577417</commentid>
    <comment_count>1</comment_count>
      <attachid>131633</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-13 09:17:00 -0700</bug_when>
    <thetext>Created attachment 131633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577425</commentid>
    <comment_count>2</comment_count>
      <attachid>131633</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 09:23:42 -0700</bug_when>
    <thetext>Comment on attachment 131633
Patch

Attachment 131633 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11947606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577465</commentid>
    <comment_count>3</comment_count>
      <attachid>131644</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-13 09:57:52 -0700</bug_when>
    <thetext>Created attachment 131644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577482</commentid>
    <comment_count>4</comment_count>
      <attachid>131644</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 10:07:05 -0700</bug_when>
    <thetext>Comment on attachment 131644
Patch

I&apos;d really like unit tests for these cases. I don&apos;t think its okay for us to be fixing non-visual bugs and calling them covered by unit tests, personally.

TreeSynchronizerTests seems a good place for scrollbars.

Canvas2DLayerChromium, I&apos;m not sure how to unit test. Enne might have an idea..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577537</commentid>
    <comment_count>5</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-13 10:54:02 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 131644 [details])
&gt; I&apos;d really like unit tests for these cases. I don&apos;t think its okay for us to be fixing non-visual bugs and calling them covered by unit tests, personally.

Totally agreed, although I would like at least one layout test that runs with threaded compositing and canvas2D, just to make sure we&apos;re at least we don&apos;t regress on basic functionality.  I was thinking of adding a flag for threaded compositing in Settings so that it could be set from LayoutTestController in JS, similar to what we do for other things (such as accelerated painting), then we could have a basic &quot;draw a green square&quot; test.

What do you think?

&gt; TreeSynchronizerTests seems a good place for scrollbars.

I&apos;ll look into that.

&gt; Canvas2DLayerChromium, I&apos;m not sure how to unit test. Enne might have an idea..

It does seem to have its own unit test (which I just broke).  I&apos;ll look into adding more cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577570</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-13 11:15:36 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Totally agreed, although I would like at least one layout test that runs with threaded compositing and canvas2D, just to make sure we&apos;re at least we don&apos;t regress on basic functionality. 
Yeah totally fair.

We have --threaded-compositing right now. That will eventually be automatically set on bots where we use threaded compositing --- so it wont give you blanket coverage on all platforms, but it will give you relatively good coverage.

I&apos;m a little worried about making this a test controller flag. We dont currently support setting the proxy type at runtime --- you might get away with it if you set it before accelerated compositing turns on, but then thats racey, right?

&gt; &gt; Canvas2DLayerChromium, I&apos;m not sure how to unit test. Enne might have an idea..
&gt; 
&gt; It does seem to have its own unit test (which I just broke).  I&apos;ll look into adding more cases.

Thanks! Sorry to be &quot;that guy.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577652</commentid>
    <comment_count>7</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-13 12:17:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Totally agreed, although I would like at least one layout test that runs with threaded compositing and canvas2D, just to make sure we&apos;re at least we don&apos;t regress on basic functionality. 
&gt; Yeah totally fair.
&gt; 
&gt; We have --threaded-compositing right now. That will eventually be automatically set on bots where we use threaded compositing --- so it wont give you blanket coverage on all platforms, but it will give you relatively good coverage.
&gt; 
&gt; I&apos;m a little worried about making this a test controller flag. We dont currently support setting the proxy type at runtime --- you might get away with it if you set it before accelerated compositing turns on, but then thats racey, right?

Could we just assert or CRASH if you ever call this new test-only function &quot;too late&quot;?

It seems useful to be able to have a threaded compositing smoke test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577815</commentid>
    <comment_count>8</comment_count>
      <attachid>131644</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-13 14:19:58 -0700</bug_when>
    <thetext>Comment on attachment 131644
Patch

Code changes look good.  Agree that tests would be nice - we have unit tests for tree sync already that should cover updateScrollbarLayerPointersRecursive(), looks like we&apos;re just missing a step.

I&apos;d like to just run all layout tests we currently run through the compositing path through the threaded path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578607</commentid>
    <comment_count>9</comment_count>
      <attachid>131894</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-14 11:47:23 -0700</bug_when>
    <thetext>Created attachment 131894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578618</commentid>
    <comment_count>10</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-14 11:59:06 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=131894) [details]
&gt; Patch

Added/fixed unit tests.  I&apos;ll leave the layout tests to the threaded compositor switchover, as James describes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578623</commentid>
    <comment_count>11</comment_count>
      <attachid>131894</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-14 12:04:23 -0700</bug_when>
    <thetext>Comment on attachment 131894
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578776</commentid>
    <comment_count>12</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-14 14:29:04 -0700</bug_when>
    <thetext>Committed r110753: &lt;http://trac.webkit.org/changeset/110753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131633</attachid>
            <date>2012-03-13 09:17:00 -0700</date>
            <delta_ts>2012-03-13 09:57:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80998-20120313121658.patch</filename>
            <type>text/plain</type>
            <size>4769</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTEzICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Rml4IGFjY2VsZXJhdGVkIENhbnZhczJEIHdpdGggdGhyZWFkZWQgY29tcG9zaXRpbmcuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgc2hvdWxkIGJl
IGV4ZXJjaXNlZCBieSBjYW52YXMgbGF5b3V0IHRlc3RzIHdoZW4gcnVuIGluCisgICAgICAgIHRo
cmVhZGVkIGNvbXBvc2l0aW5nIG1vZGUgKGFsdGhvdWdoIEknbSBub3Qgc3VyZSBpZiBhbnkgYm90
cyBhcmUKKyAgICAgICAgZG9pbmcgdGhhdCBjdXJyZW50bHkpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIERlbGF5IGNyZWF0aW9uIG9mIHRoZSBmcm9udCB0
ZXh0dXJlIGZvciBkb3VibGUtYnVmZmVyaW5nIHVudGlsIHRoZQorICAgICAgICBmaXJzdCBjYWxs
IHRvIHBhaW50Q29udGVudHNJZkRpcnR5KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmg6CisgICAgICAgIChDYW52YXMyRExheWVy
Q2hyb21pdW0pOgorICAgICAgICBSZW1vdmUgc2V0VGV4dHVyZU1hbmFnZXIoKSBhbmQgc2V0TGF5
ZXJUcmVlSG9zdCgpLCBzaW5jZSB0aGVpciBqb2IKKyAgICAgICAgaGFzIGJlZW4gc3Vic3VtZWQg
YnkgcGFpbnRDb250ZW50c0lmRGlydHkoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UcmVlU3luY2hyb25pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTeW5j
aHJvbml6ZXI6OnVwZGF0ZVNjcm9sbGJhckxheWVyUG9pbnRlcnNSZWN1cnNpdmUpOgorICAgICAg
ICBQZXJmb3JtIGFuIGVhcmx5LW91dCBpZiB0aGUgcGFzc2VkLWluIGxheWVyIGlzIE5VTEwuCisK
IDIwMTItMDMtMTMgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBVc2UgcHJvamVjdFF1YWQgdG8gYXBwbHkgaW52ZXJzZSBtYXBSZWN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDExMDU2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJE
TGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw4ICsxMDMsMTUgQEAgdm9p
ZCBDYW52YXMyRExheWVyQ2hyb21pdW06OnBhaW50Q29udGVudAogICAgIGlmICghZHJhd3NDb250
ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZykK
KyAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpIHsKKyAgICAgICAgVGV4dHVyZU1hbmFnZXIq
IHRleHR1cmVNYW5hZ2VyID0gbGF5ZXJUcmVlSG9zdCgpLT5jb250ZW50c1RleHR1cmVNYW5hZ2Vy
KCk7CisgICAgICAgIGlmIChtX2Zyb250VGV4dHVyZSkKKyAgICAgICAgICAgIG1fZnJvbnRUZXh0
dXJlLT5zZXRUZXh0dXJlTWFuYWdlcih0ZXh0dXJlTWFuYWdlcik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG1fZnJvbnRUZXh0dXJlID0gTWFuYWdlZFRleHR1cmU6OmNyZWF0ZSh0ZXh0dXJl
TWFuYWdlcik7CisKICAgICAgICAgbV9mcm9udFRleHR1cmUtPnJlc2VydmUobV9zaXplLCBHcmFw
aGljc0NvbnRleHQzRDo6UkdCQSk7CisgICAgfQogCiAgICAgaWYgKCFuZWVkc0Rpc3BsYXkoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTI3LDIyICsxMzQsNiBAQCB2b2lkIENhbnZhczJETGF5ZXJD
aHJvbWl1bTo6cGFpbnRDb250ZW50CiAgICAgbV9jb250ZXh0LT5mbHVzaCgpOwogfQogCi12b2lk
IENhbnZhczJETGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3Qq
IGhvc3QpCi17Ci0gICAgQ2FudmFzTGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChob3N0
KTsKLQotICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZyAmJiBob3N0KQotICAgICAgICBzZXRU
ZXh0dXJlTWFuYWdlcihob3N0LT5jb250ZW50c1RleHR1cmVNYW5hZ2VyKCkpOwotfQotCi12b2lk
IENhbnZhczJETGF5ZXJDaHJvbWl1bTo6c2V0VGV4dHVyZU1hbmFnZXIoVGV4dHVyZU1hbmFnZXIq
IHRleHR1cmVNYW5hZ2VyKQotewotICAgIGlmIChtX2Zyb250VGV4dHVyZSkKLSAgICAgICAgbV9m
cm9udFRleHR1cmUtPnNldFRleHR1cmVNYW5hZ2VyKHRleHR1cmVNYW5hZ2VyKTsKLSAgICBlbHNl
Ci0gICAgICAgIG1fZnJvbnRUZXh0dXJlID0gTWFuYWdlZFRleHR1cmU6OmNyZWF0ZSh0ZXh0dXJl
TWFuYWdlcik7Ci19Ci0KIHZvaWQgQ2FudmFzMkRMYXllckNocm9taXVtOjp1cGRhdGVDb21wb3Np
dG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBDQ1RleHR1cmVVcGRhdGVy
JiB1cGRhdGVyKQogewogICAgIGlmICghbV9iYWNrVGV4dHVyZUlkIHx8ICFtX2Zyb250VGV4dHVy
ZSB8fCAhbV9mcm9udFRleHR1cmUtPmlzVmFsaWQobV9zaXplLCBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
YW52YXMyRExheWVyQ2hyb21pdW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uaAkocmV2aXNpb24g
MTEwNTY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2Fu
dmFzMkRMYXllckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNw
YWNlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9z
dCopOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNz
Q29udGV4dDNEKiwgQ0NUZXh0dXJlVXBkYXRlciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXNoUHJv
cGVydGllc1RvKENDTGF5ZXJJbXBsKik7CiAgICAgdmlydHVhbCB2b2lkIHVucmVzZXJ2ZUNvbnRl
bnRzVGV4dHVyZSgpOwpAQCAtNjgsNyArNjcsNiBAQCBwcml2YXRlOgogICAgIENhbnZhczJETGF5
ZXJDaHJvbWl1bShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6ZSYp
OwogCiAgICAgZnJpZW5kIGNsYXNzIENhbnZhczJETGF5ZXJDaHJvbWl1bVRlc3Q7Ci0gICAgdm9p
ZCBzZXRUZXh0dXJlTWFuYWdlcihUZXh0dXJlTWFuYWdlciopOwogCiAgICAgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiAgICAgYm9vbCBtX2NvbnRleHRMb3N0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJlZVN5bmNocm9uaXpl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVHJlZVN5bmNocm9uaXplci5jcHAJKHJldmlzaW9uIDExMDU2OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw5IEBAIFBhc3NPd25QdHI8Q0NMYXllckltcGw+IFRy
ZWVTeW5jaHJvbml6ZXIKIAogdm9pZCBUcmVlU3luY2hyb25pemVyOjp1cGRhdGVTY3JvbGxiYXJM
YXllclBvaW50ZXJzUmVjdXJzaXZlKGNvbnN0IFJhd1B0ckNDTGF5ZXJJbXBsTWFwJiBuZXdMYXll
cnMsIExheWVyQ2hyb21pdW0qIGxheWVyKQogeworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJl
dHVybjsKKwogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiYgY2hpbGRy
ZW4gPSBsYXllci0+Y2hpbGRyZW4oKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxk
cmVuLnNpemUoKTsgKytpKQogICAgICAgICB1cGRhdGVTY3JvbGxiYXJMYXllclBvaW50ZXJzUmVj
dXJzaXZlKG5ld0xheWVycywgY2hpbGRyZW5baV0uZ2V0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131644</attachid>
            <date>2012-03-13 09:57:52 -0700</date>
            <delta_ts>2012-03-14 11:47:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80998-20120313125751.patch</filename>
            <type>text/plain</type>
            <size>5376</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDU3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTEzICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Rml4IGFjY2VsZXJhdGVkIENhbnZhczJEIHdpdGggdGhyZWFkZWQgY29tcG9zaXRpbmcuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgc2hvdWxkIGJl
IGV4ZXJjaXNlZCBieSBjYW52YXMgbGF5b3V0IHRlc3RzIHdoZW4gcnVuIGluCisgICAgICAgIHRo
cmVhZGVkIGNvbXBvc2l0aW5nIG1vZGUgKGFsdGhvdWdoIEknbSBub3Qgc3VyZSBpZiBhbnkgYm90
cyBhcmUKKyAgICAgICAgZG9pbmcgdGhhdCBjdXJyZW50bHkpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIERlbGF5IGNyZWF0aW9uIG9mIHRoZSBmcm9udCB0
ZXh0dXJlIGZvciBkb3VibGUtYnVmZmVyaW5nIHVudGlsIHRoZQorICAgICAgICBmaXJzdCBjYWxs
IHRvIHBhaW50Q29udGVudHNJZkRpcnR5KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmg6CisgICAgICAgIChDYW52YXMyRExheWVy
Q2hyb21pdW0pOgorICAgICAgICBSZW1vdmUgc2V0VGV4dHVyZU1hbmFnZXIoKSBhbmQgc2V0TGF5
ZXJUcmVlSG9zdCgpLCBzaW5jZSB0aGVpciBqb2IKKyAgICAgICAgaGFzIGJlZW4gc3Vic3VtZWQg
YnkgcGFpbnRDb250ZW50c0lmRGlydHkoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UcmVlU3luY2hyb25pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTeW5j
aHJvbml6ZXI6OnVwZGF0ZVNjcm9sbGJhckxheWVyUG9pbnRlcnNSZWN1cnNpdmUpOgorICAgICAg
ICBQZXJmb3JtIGFuIGVhcmx5LW91dCBpZiB0aGUgcGFzc2VkLWluIGxheWVyIGlzIE5VTEwuCisK
IDIwMTItMDMtMTMgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNuaXBwZXRzIG1vZGVsLgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9DYW52YXMyRExheWVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxMTA1NzYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsOCArMTAzLDE1IEBAIHZvaWQgQ2FudmFzMkRMYXll
ckNocm9taXVtOjpwYWludENvbnRlbnQKICAgICBpZiAoIWRyYXdzQ29udGVudCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcpCisgICAgaWYgKG1fdXNl
RG91YmxlQnVmZmVyaW5nKSB7CisgICAgICAgIFRleHR1cmVNYW5hZ2VyKiB0ZXh0dXJlTWFuYWdl
ciA9IGxheWVyVHJlZUhvc3QoKS0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpOworICAgICAgICBp
ZiAobV9mcm9udFRleHR1cmUpCisgICAgICAgICAgICBtX2Zyb250VGV4dHVyZS0+c2V0VGV4dHVy
ZU1hbmFnZXIodGV4dHVyZU1hbmFnZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Zy
b250VGV4dHVyZSA9IE1hbmFnZWRUZXh0dXJlOjpjcmVhdGUodGV4dHVyZU1hbmFnZXIpOworCiAg
ICAgICAgIG1fZnJvbnRUZXh0dXJlLT5yZXNlcnZlKG1fc2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkEpOworICAgIH0KIAogICAgIGlmICghbmVlZHNEaXNwbGF5KCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTEyNywyMiArMTM0LDYgQEAgdm9pZCBDYW52YXMyRExheWVyQ2hyb21pdW06OnBhaW50
Q29udGVudAogICAgIG1fY29udGV4dC0+Zmx1c2goKTsKIH0KIAotdm9pZCBDYW52YXMyRExheWVy
Q2hyb21pdW06OnNldExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBob3N0KQotewotICAg
IENhbnZhc0xheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QoaG9zdCk7Ci0KLSAgICBpZiAo
bV91c2VEb3VibGVCdWZmZXJpbmcgJiYgaG9zdCkKLSAgICAgICAgc2V0VGV4dHVyZU1hbmFnZXIo
aG9zdC0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpKTsKLX0KLQotdm9pZCBDYW52YXMyRExheWVy
Q2hyb21pdW06OnNldFRleHR1cmVNYW5hZ2VyKFRleHR1cmVNYW5hZ2VyKiB0ZXh0dXJlTWFuYWdl
cikKLXsKLSAgICBpZiAobV9mcm9udFRleHR1cmUpCi0gICAgICAgIG1fZnJvbnRUZXh0dXJlLT5z
ZXRUZXh0dXJlTWFuYWdlcih0ZXh0dXJlTWFuYWdlcik7Ci0gICAgZWxzZQotICAgICAgICBtX2Zy
b250VGV4dHVyZSA9IE1hbmFnZWRUZXh0dXJlOjpjcmVhdGUodGV4dHVyZU1hbmFnZXIpOwotfQot
CiB2b2lkIENhbnZhczJETGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhH
cmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKIHsK
ICAgICBpZiAoIW1fYmFja1RleHR1cmVJZCB8fCAhbV9mcm9udFRleHR1cmUgfHwgIW1fZnJvbnRU
ZXh0dXJlLT5pc1ZhbGlkKG1fc2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNo
cm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmgJKHJldmlzaW9uIDExMDU3NikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJv
bWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29u
dGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqKTsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFwaGljc0NvbnRleHQzRCosIEND
VGV4dHVyZVVwZGF0ZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xh
eWVySW1wbCopOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1RleHR1cmUoKTsK
QEAgLTY4LDcgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBDYW52YXMyRExheWVyQ2hyb21pdW0oUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIGNvbnN0IEludFNpemUmKTsKIAogICAgIGZyaWVu
ZCBjbGFzcyBDYW52YXMyRExheWVyQ2hyb21pdW1UZXN0OwotICAgIHZvaWQgc2V0VGV4dHVyZU1h
bmFnZXIoVGV4dHVyZU1hbmFnZXIqKTsKIAogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
bV9jb250ZXh0OwogICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5j
aHJvbml6ZXIuY3BwCShyZXZpc2lvbiAxMTA1NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9UcmVlU3luY2hyb25pemVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTksNiArOTksOSBAQCBQYXNzT3duUHRyPENDTGF5ZXJJbXBsPiBUcmVlU3luY2hyb25pemVy
CiAKIHZvaWQgVHJlZVN5bmNocm9uaXplcjo6dXBkYXRlU2Nyb2xsYmFyTGF5ZXJQb2ludGVyc1Jl
Y3Vyc2l2ZShjb25zdCBSYXdQdHJDQ0xheWVySW1wbE1hcCYgbmV3TGF5ZXJzLCBMYXllckNocm9t
aXVtKiBsYXllcikKIHsKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm47CisKICAgICBj
b25zdCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mIGNoaWxkcmVuID0gbGF5ZXItPmNo
aWxkcmVuKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbi5zaXplKCk7ICsr
aSkKICAgICAgICAgdXBkYXRlU2Nyb2xsYmFyTGF5ZXJQb2ludGVyc1JlY3Vyc2l2ZShuZXdMYXll
cnMsIGNoaWxkcmVuW2ldLmdldCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQ2hyb21pdW1UZXN0LmNwcAkocmV2aXNp
b24gMTEwNTc2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVy
Q2hyb21pdW1UZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcgKzEyNyw2IEBAIHByb3Rl
Y3RlZDoKIAogICAgICAgICBSZWZQdHI8Q2FudmFzMkRMYXllckNocm9taXVtPiBjYW52YXMgPSBD
YW52YXMyRExheWVyQ2hyb21pdW06OmNyZWF0ZShtYWluQ29udGV4dC5nZXQoKSwgc2l6ZSk7CiAg
ICAgICAgIGNhbnZhcy0+c2V0SXNEcmF3YWJsZSh0cnVlKTsKLSAgICAgICAgY2FudmFzLT5zZXRU
ZXh0dXJlTWFuYWdlcih0ZXh0dXJlTWFuYWdlci5nZXQoKSk7CiAgICAgICAgIGNhbnZhcy0+c2V0
Qm91bmRzKEludFNpemUoNjAwLCAzMDApKTsKICAgICAgICAgY2FudmFzLT5zZXRUZXh0dXJlSWQo
YmFja1RleHR1cmVJZCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131894</attachid>
            <date>2012-03-14 11:47:23 -0700</date>
            <delta_ts>2012-03-14 12:04:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80998-20120314144721.patch</filename>
            <type>text/plain</type>
            <size>10355</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDcyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAzLTE0ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Rml4IGFjY2VsZXJhdGVkIENhbnZhczJEIHdpdGggdGhyZWFkZWQgY29tcG9zaXRpbmcuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDk5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgdW5p
dCB0ZXN0cyBDYW52YXMyRExheWVyQ2hyb21pdW1UZXN0IGFuZAorICAgICAgICBUcmVlU3luY2hy
b25pemVyVGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
czJETGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQ2hy
b21pdW06OnBhaW50Q29udGVudHNJZkRpcnR5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICBEZWxheSBjcmVhdGlvbiBvZiB0aGUgZnJvbnQgdGV4dHVyZSBmb3IgZG91YmxlLWJ1ZmZlcmlu
ZyB1bnRpbCB0aGUKKyAgICAgICAgZmlyc3QgY2FsbCB0byBwYWludENvbnRlbnRzSWZEaXJ0eSgp
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJv
bWl1bS5oOgorICAgICAgICAoQ2FudmFzMkRMYXllckNocm9taXVtKToKKyAgICAgICAgUmVtb3Zl
IHNldFRleHR1cmVNYW5hZ2VyKCkgYW5kIHNldExheWVyVHJlZUhvc3QoKSwgc2luY2UgdGhlaXIg
am9iCisgICAgICAgIGhhcyBiZWVuIHN1YnN1bWVkIGJ5IHBhaW50Q29udGVudHNJZkRpcnR5KCku
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJlZVN5bmNocm9uaXplci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU3luY2hyb25pemVyOjp1cGRhdGVTY3JvbGxiYXJM
YXllclBvaW50ZXJzUmVjdXJzaXZlKToKKyAgICAgICAgUGVyZm9ybSBhbiBlYXJseS1vdXQgaWYg
dGhlIHBhc3NlZC1pbiBsYXllciBpcyBOVUxMLgorCiAyMDEyLTAzLTE0ICBaYWxhbiBCdWp0YXMg
IDx6YnVqdGFzQGdtYWlsLmNvbT4KIAogICAgICAgICBNYWtlIFJlbmRlcklGcmFtZTo6ZmxhdHRl
bkZyYW1lKCkgcmV0dXJuIGVhcmxpZXIsIHdoZW4gZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxl
ZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
czJETGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcAkocmV2aXNpb24g
MTEwNzIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2Fu
dmFzMkRMYXllckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDggKzEwMywxNCBA
QCB2b2lkIENhbnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50CiAgICAgaWYgKCFkcmF3
c0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fdXNlRG91YmxlQnVmZmVy
aW5nKQorICAgIGlmIChtX3VzZURvdWJsZUJ1ZmZlcmluZyAmJiBsYXllclRyZWVIb3N0KCkpIHsK
KyAgICAgICAgVGV4dHVyZU1hbmFnZXIqIHRleHR1cmVNYW5hZ2VyID0gbGF5ZXJUcmVlSG9zdCgp
LT5jb250ZW50c1RleHR1cmVNYW5hZ2VyKCk7CisgICAgICAgIGlmIChtX2Zyb250VGV4dHVyZSkK
KyAgICAgICAgICAgIG1fZnJvbnRUZXh0dXJlLT5zZXRUZXh0dXJlTWFuYWdlcih0ZXh0dXJlTWFu
YWdlcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZnJvbnRUZXh0dXJlID0gTWFuYWdl
ZFRleHR1cmU6OmNyZWF0ZSh0ZXh0dXJlTWFuYWdlcik7CiAgICAgICAgIG1fZnJvbnRUZXh0dXJl
LT5yZXNlcnZlKG1fc2l6ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpOworICAgIH0KIAogICAg
IGlmICghbmVlZHNEaXNwbGF5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNywyMiArMTMzLDYg
QEAgdm9pZCBDYW52YXMyRExheWVyQ2hyb21pdW06OnBhaW50Q29udGVudAogICAgIG1fY29udGV4
dC0+Zmx1c2goKTsKIH0KIAotdm9pZCBDYW52YXMyRExheWVyQ2hyb21pdW06OnNldExheWVyVHJl
ZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBob3N0KQotewotICAgIENhbnZhc0xheWVyQ2hyb21pdW06
OnNldExheWVyVHJlZUhvc3QoaG9zdCk7Ci0KLSAgICBpZiAobV91c2VEb3VibGVCdWZmZXJpbmcg
JiYgaG9zdCkKLSAgICAgICAgc2V0VGV4dHVyZU1hbmFnZXIoaG9zdC0+Y29udGVudHNUZXh0dXJl
TWFuYWdlcigpKTsKLX0KLQotdm9pZCBDYW52YXMyRExheWVyQ2hyb21pdW06OnNldFRleHR1cmVN
YW5hZ2VyKFRleHR1cmVNYW5hZ2VyKiB0ZXh0dXJlTWFuYWdlcikKLXsKLSAgICBpZiAobV9mcm9u
dFRleHR1cmUpCi0gICAgICAgIG1fZnJvbnRUZXh0dXJlLT5zZXRUZXh0dXJlTWFuYWdlcih0ZXh0
dXJlTWFuYWdlcik7Ci0gICAgZWxzZQotICAgICAgICBtX2Zyb250VGV4dHVyZSA9IE1hbmFnZWRU
ZXh0dXJlOjpjcmVhdGUodGV4dHVyZU1hbmFnZXIpOwotfQotCiB2b2lkIENhbnZhczJETGF5ZXJD
aHJvbWl1bTo6dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFwaGljc0NvbnRleHQzRCogY29u
dGV4dCwgQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKIHsKICAgICBpZiAoIW1fYmFja1RleHR1
cmVJZCB8fCAhbV9mcm9udFRleHR1cmUgfHwgIW1fZnJvbnRUZXh0dXJlLT5pc1ZhbGlkKG1fc2l6
ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXll
ckNocm9taXVtLmgJKHJldmlzaW9uIDExMDcyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw3ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IFJl
Z2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJU
cmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29tcG9z
aXRvclJlc291cmNlcyhHcmFwaGljc0NvbnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopOwogICAgIHZpcnR1
YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1RleHR1cmUoKTsKQEAgLTY4LDcgKzY3LDYgQEAgcHJp
dmF0ZToKICAgICBDYW52YXMyRExheWVyQ2hyb21pdW0oUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRl
eHQzRD4sIGNvbnN0IEludFNpemUmKTsKIAogICAgIGZyaWVuZCBjbGFzcyBDYW52YXMyRExheWVy
Q2hyb21pdW1UZXN0OwotICAgIHZvaWQgc2V0VGV4dHVyZU1hbmFnZXIoVGV4dHVyZU1hbmFnZXIq
KTsKIAogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwogICAgIGJvb2wg
bV9jb250ZXh0TG9zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwCShyZXZpc2lv
biAxMTA3MjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
cmVlU3luY2hyb25pemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksOSBAQCBQYXNz
T3duUHRyPENDTGF5ZXJJbXBsPiBUcmVlU3luY2hyb25pemVyCiAKIHZvaWQgVHJlZVN5bmNocm9u
aXplcjo6dXBkYXRlU2Nyb2xsYmFyTGF5ZXJQb2ludGVyc1JlY3Vyc2l2ZShjb25zdCBSYXdQdHJD
Q0xheWVySW1wbE1hcCYgbmV3TGF5ZXJzLCBMYXllckNocm9taXVtKiBsYXllcikKIHsKKyAgICBp
ZiAoIWxheWVyKQorICAgICAgICByZXR1cm47CisKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPExh
eWVyQ2hyb21pdW0+ID4mIGNoaWxkcmVuID0gbGF5ZXItPmNoaWxkcmVuKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbi5zaXplKCk7ICsraSkKICAgICAgICAgdXBkYXRlU2Ny
b2xsYmFyTGF5ZXJQb2ludGVyc1JlY3Vyc2l2ZShuZXdMYXllcnMsIGNoaWxkcmVuW2ldLmdldCgp
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTA3MjApCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIwIEBACisyMDEyLTAzLTE0ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRml4IGFjY2VsZXJhdGVkIENhbnZhczJEIHdpdGgg
dGhyZWFkZWQgY29tcG9zaXRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MDk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVzdC5jcHA6CisgICAg
ICAgIEluc3RhbnRpYXRlIGEgQ0NMYXllclRyZWVIb3N0LCBzbyB0aGF0IENhbnZhczJETGF5ZXJD
aHJvbWl1bSBjYW4KKyAgICAgICAgcmV0cmlldmUgaXRzIHRleHR1cmUgbWFuYWdlci4gIEFsc28g
bW92ZSB0aGUgdGVzdCBpbnRvIHRoZSB1bm5hbWVkCisgICAgICAgIG5hbWVzcGFjZSAtLSBzaW5j
ZSBpdCdzIGFscmVhZHkgdXNpbmcgV2ViQ29yZSwgdGhlcmUncyBsaXR0bGUgcmVhc29uIGZvcgor
ICAgICAgICBpdCB0byBhbHNvIGJlIGluIHRoZSBuYW1lc3BhY2UuCisgICAgICAgICogdGVzdHMv
VHJlZVN5bmNocm9uaXplclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OlRFU1QpOgorICAgICAgICBBZGQgYSBuZXcgdGVzdCBmb3IgdHJ5aW5n
IHRvIHN5bmNocm9uaXplIE5VTEwgdHJlZS4KKwogMjAxMi0wMy0xNCAgSmFtZXMgUm9iaW5zb24g
IDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUHJvdmlkZSBleHBs
aWNpdCBwb2xsaW5nIEFQSSB0byBjaGVjayBpZiB0aGUgcGxhdGZvcm0gaXMgY2FwYWJsZSBvZiBh
Y2NlbGVyYXRlZCAyZCBjYW52YXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q2FudmFzMkRMYXllckNocm9taXVtVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQ2hyb21pdW1UZXN0LmNwcAkocmV2aXNpb24g
MTEwNzIwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQ2hy
b21pdW1UZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTMgKzI3LDE4IEBACiAjaW5jbHVk
ZSAiQ2FudmFzMkRMYXllckNocm9taXVtLmgiCiAKICNpbmNsdWRlICJDQ1NjaGVkdWxlclRlc3RD
b21tb24uaCIKKyNpbmNsdWRlICJGYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCiAj
aW5jbHVkZSAiY2MvQ0NDYW52YXNMYXllckltcGwuaCIKICNpbmNsdWRlICJjYy9DQ1NpbmdsZVRo
cmVhZFByb3h5LmgiCiAjaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUg
InBsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dl
YlRocmVhZC5oIgogCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KICNpbmNsdWRlIDxndGVzdC9n
dGVzdC5oPgpAQCAtNDgsNiArNTMsMjQgQEAgdXNpbmcgdGVzdGluZzo6VGVzdDsKIAogbmFtZXNw
YWNlIHsKIAorY2xhc3MgRmFrZUNDTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBDQ0xheWVyVHJlZUhv
c3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZha2VDQ0xheWVyVHJlZUhvc3Q+
IGNyZWF0ZSgpCisgICAgeworICAgICAgICBSZWZQdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gaG9z
dCA9IGFkb3B0UmVmKG5ldyBGYWtlQ0NMYXllclRyZWVIb3N0KTsKKyAgICAgICAgaG9zdC0+aW5p
dGlhbGl6ZSgpOworICAgICAgICByZXR1cm4gaG9zdC5yZWxlYXNlKCk7CisgICAgfQorCitwcml2
YXRlOgorICAgIEZha2VDQ0xheWVyVHJlZUhvc3QoKQorICAgICAgICA6IENDTGF5ZXJUcmVlSG9z
dCgmbV9jbGllbnQsIENDU2V0dGluZ3MoKSkKKyAgICB7CisgICAgfQorCisgICAgRmFrZUNDTGF5
ZXJUcmVlSG9zdENsaWVudCBtX2NsaWVudDsKK307CisKIGNsYXNzIE1vY2tDYW52YXNDb250ZXh0
IDogcHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CiBwdWJsaWM6CiAgICAgTU9DS19N
RVRIT0QwKGNyZWF0ZUZyYW1lYnVmZmVyLCBXZWJHTElkKCkpOwpAQCAtNjksMTAgKzkyLDYgQEAg
cHVibGljOgogICAgIE1PQ0tfTUVUSE9EMyhkZWxldGVUZXh0dXJlLCB2b2lkKHVuc2lnbmVkLCBj
b25zdCBJbnRTaXplJiwgR0MzRGVudW0pKTsKIH07CiAKLX0gLy8gbmFtZXNwYWNlCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQogY2xhc3MgQ2FudmFzMkRMYXllckNocm9taXVtVGVzdCA6IHB1Ymxp
YyBUZXN0IHsKIHByb3RlY3RlZDoKICAgICB2b2lkIGZ1bGxMaWZlY3ljbGVUZXN0KGJvb2wgdGhy
ZWFkZWQpCkBAIC04OSwxMSArMTA4LDE1IEBAIHByb3RlY3RlZDoKICAgICAgICAgQ0NUZXh0dXJl
VXBkYXRlciB1cGRhdGVyKCZhbGxvY2F0b3JNb2NrKTsKIAogICAgICAgICBjb25zdCBJbnRTaXpl
IHNpemUoMzAwLCAxNTApOwotICAgICAgICBjb25zdCBzaXplX3QgbWF4VGV4dHVyZVNpemUgPSBz
aXplLndpZHRoKCkgKiBzaXplLmhlaWdodCgpICogNDsKLSAgICAgICAgT3duUHRyPFRleHR1cmVN
YW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUobWF4VGV4dHVy
ZVNpemUsIG1heFRleHR1cmVTaXplLCBtYXhUZXh0dXJlU2l6ZSk7CiAKKyAgICAgICAgT3duUHRy
PFdlYlRocmVhZD4gdGhyZWFkOwogICAgICAgICBpZiAodGhyZWFkZWQpCi0gICAgICAgICAgICBD
Q1Byb3h5OjpzZXRJbXBsVGhyZWFkKG5ldyBGYWtlQ0NUaHJlYWQpOworICAgICAgICAgICB0aHJl
YWQgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDYW52
YXMyRExheWVyQ2hyb21pdW1UZXN0IikpOworICAgICAgICBXZWJDb21wb3NpdG9yOjppbml0aWFs
aXplKHRocmVhZC5nZXQoKSk7CisKKyAgICAgICAgUmVmUHRyPEZha2VDQ0xheWVyVHJlZUhvc3Q+
IGxheWVyVHJlZUhvc3QgPSBGYWtlQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKTsKKyAgICAgICAg
Ly8gRm9yY2UgYW4gdXBkYXRlLCBzbyB0aGF0IHdlIGdldCBhIHZhbGlkIFRleHR1cmVNYW5hZ2Vy
LgorICAgICAgICBsYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMoKTsKIAogICAgICAgICBjb25z
dCBXZWJHTElkIGJhY2tUZXh0dXJlSWQgPSAxOwogICAgICAgICBjb25zdCBXZWJHTElkIGZyb250
VGV4dHVyZUlkID0gMjsKQEAgLTEyNyw3ICsxNTAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAg
UmVmUHRyPENhbnZhczJETGF5ZXJDaHJvbWl1bT4gY2FudmFzID0gQ2FudmFzMkRMYXllckNocm9t
aXVtOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNpemUpOwogICAgICAgICBjYW52YXMtPnNl
dElzRHJhd2FibGUodHJ1ZSk7Ci0gICAgICAgIGNhbnZhcy0+c2V0VGV4dHVyZU1hbmFnZXIodGV4
dHVyZU1hbmFnZXIuZ2V0KCkpOworICAgICAgICBjYW52YXMtPnNldExheWVyVHJlZUhvc3QobGF5
ZXJUcmVlSG9zdC5nZXQoKSk7CiAgICAgICAgIGNhbnZhcy0+c2V0Qm91bmRzKEludFNpemUoNjAw
LCAzMDApKTsKICAgICAgICAgY2FudmFzLT5zZXRUZXh0dXJlSWQoYmFja1RleHR1cmVJZCk7CiAK
QEAgLTE1MSw4ICsxNzQsMTAgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgICAgIEVYUEVDVF9F
UShiYWNrVGV4dHVyZUlkLCBzdGF0aWNfY2FzdDxDQ0NhbnZhc0xheWVySW1wbCo+KGxheWVySW1w
bC5nZXQoKSktPnRleHR1cmVJZCgpKTsKICAgICAgICAgfQogICAgICAgICBjYW52YXMuY2xlYXIo
KTsKLSAgICAgICAgdGV4dHVyZU1hbmFnZXItPnJlZHVjZU1lbW9yeVRvTGltaXQoMCk7Ci0gICAg
ICAgIHRleHR1cmVNYW5hZ2VyLT5kZWxldGVFdmljdGVkVGV4dHVyZXMoJmFsbG9jYXRvck1vY2sp
OworICAgICAgICBsYXllclRyZWVIb3N0LT5jb250ZW50c1RleHR1cmVNYW5hZ2VyKCktPnJlZHVj
ZU1lbW9yeVRvTGltaXQoMCk7CisgICAgICAgIGxheWVyVHJlZUhvc3QtPmNvbnRlbnRzVGV4dHVy
ZU1hbmFnZXIoKS0+ZGVsZXRlRXZpY3RlZFRleHR1cmVzKCZhbGxvY2F0b3JNb2NrKTsKKyAgICAg
ICAgbGF5ZXJUcmVlSG9zdC5jbGVhcigpOworICAgICAgICBXZWJDb21wb3NpdG9yOjpzaHV0ZG93
bigpOwogICAgIH0KIH07CiAKQEAgLTE2Niw0ICsxOTEsNCBAQCBURVNUX0YoQ2FudmFzMkRMYXll
ckNocm9taXVtVGVzdCwgdGVzdEZ1CiAgICAgZnVsbExpZmVjeWNsZVRlc3QodHJ1ZSk7CiB9CiAK
LX0gLy8gbmFtZXNwYWNlIHdlYmNvcmUKK30gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVTeW5jaHJvbml6ZXJUZXN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVTeW5jaHJvbml6ZXJUZXN0LmNwcAko
cmV2aXNpb24gMTEwNzIwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UcmVlU3lu
Y2hyb25pemVyVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIsMTcgQEAgdm9p
ZCBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChMYXllckNocm9taQogICAgICAgICBleHBlY3RUcmVl
c0FyZUlkZW50aWNhbChsYXllckNoaWxkcmVuW2ldLmdldCgpLCBjY0xheWVyQ2hpbGRyZW5baV0u
Z2V0KCkpOwogfQogCisvLyBBdHRlbXB0cyB0byBzeW5jaHJvbml6ZXMgYSBudWxsIHRyZWUuIFRo
aXMgc2hvdWxkIG5vdCBjcmFzaCwgYW5kIHNob3VsZAorLy8gcmV0dXJuIGEgbnVsbCB0cmVlLgor
VEVTVChUcmVlU3luY2hyb25pemVyVGVzdCwgc3luY051bGxUcmVlKQoreworICAgIERlYnVnU2Nv
cGVkU2V0SW1wbFRocmVhZCBpbXBsOworCisgICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVy
VHJlZVJvb3QgPSBUcmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKDAsIG51bGxwdHIp
OworCisgICAgRVhQRUNUX1RSVUUoIWNjTGF5ZXJUcmVlUm9vdC5nZXQoKSk7Cit9CisKIC8vIENv
bnN0cnVjdHMgYSB2ZXJ5IHNpbXBsZSB0cmVlIGFuZCBzeW5jaHJvbml6ZXMgaXQgd2l0aG91dCB0
cnlpbmcgdG8gcmV1c2UgYW55IHByZWV4aXN0aW5nIGxheWVycy4KIFRFU1QoVHJlZVN5bmNocm9u
aXplclRlc3QsIHN5bmNTaW1wbGVUcmVlRnJvbUVtcHR5KQogewo=
</data>
<flag name="review"
          id="135354"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>