<?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>84551</bug_id>
          
          <creation_ts>2012-04-22 14:41:58 -0700</creation_ts>
          <short_desc>CSS3 calc: Implement CSSOM support</short_desc>
          <delta_ts>2012-05-30 00:01:34 -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>CSS</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>http://result.dabblet.com/gist/2467073</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>16662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Lea Verou">lea</reporter>
          <assigned_to name="Mike Lawther">mikelawther</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mikelawther</cc>
    
    <cc>nat</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>607382</commentid>
    <comment_count>0</comment_count>
    <who name="Lea Verou">lea</who>
    <bug_when>2012-04-22 14:41:58 -0700</bug_when>
    <thetext>Check the few lines of JavaScript in the testcase, it should be self-explanatory. IE and Firefox show the function, WebKit drops everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607389</commentid>
    <comment_count>1</comment_count>
    <who name="Nathaniel Higgins">nat</who>
    <bug_when>2012-04-22 15:03:51 -0700</bug_when>
    <thetext>Yup, WebKit drops it in Chrome Version 20.0.1105.0 dev</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607453</commentid>
    <comment_count>2</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-04-22 22:14:39 -0700</bug_when>
    <thetext>Thanks for the textcase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631228</commentid>
    <comment_count>3</comment_count>
      <attachid>143464</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-05-22 22:37:53 -0700</bug_when>
    <thetext>Created attachment 143464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636844</commentid>
    <comment_count>4</comment_count>
      <attachid>143464</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-29 22:08:38 -0700</bug_when>
    <thetext>Comment on attachment 143464
Patch

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

&gt; Source/WebCore/css/CSSCalculationValue.cpp:82
&gt; +    if (expression[0] != &apos;(&apos;)
&gt; +        result.append(&apos;(&apos;);

Do we have a test case for this? But I&apos;m somewhat puzzled by this.
What we had something like (100px) + 200px ?

&gt; LayoutTests/css3/calc/cssom.html:10
&gt; +    if (window.layoutTestController) {
&gt; +        window.layoutTestController.dumpAsText();
&gt; +    }    
&gt; +

No curly brackets around a single statement.
Also it&apos;s unnecessary to indent the script content like this.

&gt; LayoutTests/css3/calc/cssom.html:30
&gt; +    document.body.style.width = &apos;100%&apos;;

Wouldn&apos;t be it cleaner to create a new element of which you change the style?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636895</commentid>
    <comment_count>5</comment_count>
      <attachid>144714</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-05-29 23:22:44 -0700</bug_when>
    <thetext>Created attachment 144714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636901</commentid>
    <comment_count>6</comment_count>
      <attachid>143464</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-05-29 23:25:18 -0700</bug_when>
    <thetext>Comment on attachment 143464
Patch

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

&gt;&gt; Source/WebCore/css/CSSCalculationValue.cpp:82
&gt;&gt; +        result.append(&apos;(&apos;);
&gt; 
&gt; Do we have a test case for this? But I&apos;m somewhat puzzled by this.
&gt; What we had something like (100px) + 200px ?

I&apos;ve added a test case for what you suggest. LIne 265 and 271 wrap every expression with an operator in brackets. So the expression &quot;(100px) + 200px&quot; will come out as &quot;(100px + 200px)&quot; - hence in this case we will *not* need to wrap in an extra pair of brackets, This result of &quot;(100px) + 200px&quot; =&gt; &quot;(100px + 200px&quot; is the same as what Firefox does.

The only time we need the extra brackets is when there is only a single term in the expression, eg &quot;100px&quot; will come out as &quot;100px&quot;.

&gt;&gt; LayoutTests/css3/calc/cssom.html:10
&gt;&gt; +
&gt; 
&gt; No curly brackets around a single statement.
&gt; Also it&apos;s unnecessary to indent the script content like this.

Done.

&gt;&gt; LayoutTests/css3/calc/cssom.html:30
&gt;&gt; +    document.body.style.width = &apos;100%&apos;;
&gt; 
&gt; Wouldn&apos;t be it cleaner to create a new element of which you change the style?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636911</commentid>
    <comment_count>7</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-05-29 23:30:04 -0700</bug_when>
    <thetext>&gt;This result of &quot;(100px) + 200px&quot; =&gt; &quot;(100px + 200px&quot; is the same as what Firefox does.

Argh - I meant

  This result of &quot;(100px) + 200px&quot; =&gt; &quot;(100px + 200px)&quot; is the same as what Firefox does.

(I missed a closing bracket the first time).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636915</commentid>
    <comment_count>8</comment_count>
      <attachid>144714</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-29 23:33:49 -0700</bug_when>
    <thetext>Comment on attachment 144714
Patch

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

&gt; Source/WebCore/css/CSSCalculationValue.cpp:82
&gt; +    if (expression[0] != &apos;(&apos;)
&gt; +        result.append(&apos;(&apos;);

(In reply to comment #6)
&gt; The only time we need the extra brackets is when there is only a single term in the expression, eg &quot;100px&quot; will come out as &quot;100px&quot;.

It would be good to codify this information. e.g.
bool expressionHasSingleTerm = expression[0] != &apos;(&apos;;
if (expressionHasSingleTerm)
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636926</commentid>
    <comment_count>9</comment_count>
      <attachid>144726</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-05-29 23:42:47 -0700</bug_when>
    <thetext>Created attachment 144726
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636939</commentid>
    <comment_count>10</comment_count>
      <attachid>144726</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 00:01:28 -0700</bug_when>
    <thetext>Comment on attachment 144726
Patch for landing

Clearing flags on attachment: 144726

Committed r118900: &lt;http://trac.webkit.org/changeset/118900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636941</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 00:01:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143464</attachid>
            <date>2012-05-22 22:37:53 -0700</date>
            <delta_ts>2012-05-29 23:25:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84551-20120523153751.patch</filename>
            <type>text/plain</type>
            <size>6448</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4N2ZiNTNhODkxYTYy
NmJhZWE3ZmRiMzVlYmY4NDc1NTE5MDBkMS4uMTMzM2ExY2RjZWRmZWFmZDk1NTMxMjNlMzQ4NTA5
NTViYWI1NjlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTIyICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
OiBEcm9wcGVkIGluIENTU09NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NDU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgYSBwcmV0dHkgcHJpbnRlciBmb3IgdGhlIGNhbGMgZXhwcmVzc2lvbiB0
cmVlLiAKKworICAgICAgICBUZXN0OiBjc3MzL2NhbGMvY3Nzb20uaHRtbAorCisgICAgICAgICog
Y3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1Zh
bHVlOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNQcmltaXRpdmVW
YWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjQmluYXJ5T3Bl
cmF0aW9uOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAgKENTU0NhbGNCaW5hcnlPcGVyYXRpb24p
OgorICAgICAgICAqIGNzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmg6CisgICAgICAgIChDU1NDYWxj
RXhwcmVzc2lvbk5vZGUpOgorCiAyMDEyLTA1LTIyICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXByZXNlbnRzIG1hcmdpbnMgYXMgYm94IGFuZCBzaW1wbGlm
eSB3cml0aW5nIG1vZGUgbG9naWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
YWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmNwcAppbmRleCA2MThjMzljMTI3NGJhM2ZhYjcwNjU4ZWFjN2Q2NDQzMTZiNjZhOTlmLi44
NzBhZjdlMDUzMTk5Yzc1NGNhMDlmZDI0ODUzMWJkNDc1YTNmOTJkIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC03NCw3ICs3NCwxNiBAQCBzdGF0aWMg
Q2FsY3VsYXRpb25DYXRlZ29yeSB1bml0Q2F0ZWdvcnkoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRU
eXBlcyB0eXBlKQogICAgIAogU3RyaW5nIENTU0NhbGNWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuICIiOworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIAor
ICAgIHJlc3VsdC5hcHBlbmQoIi13ZWJraXQtY2FsYyIpOworICAgIFN0cmluZyBleHByZXNzaW9u
ID0gbV9leHByZXNzaW9uLT5jdXN0b21Dc3NUZXh0KCk7CisgICAgaWYgKGV4cHJlc3Npb25bMF0g
IT0gJygnKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcoJyk7CisgICAgcmVzdWx0LmFwcGVuZChl
eHByZXNzaW9uKTsKKyAgICBpZiAoZXhwcmVzc2lvblswXSAhPSAnKCcpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyknKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7IAogfQogICAgIAog
ZG91YmxlIENTU0NhbGNWYWx1ZTo6Y2xhbXBUb1Blcm1pdHRlZFJhbmdlKGRvdWJsZSB2YWx1ZSkg
Y29uc3QKQEAgLTEwOSw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAhbV92YWx1
ZS0+Z2V0RG91YmxlVmFsdWUoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0
KCkgY29uc3QKKyAgICB2aXJ0dWFsIFN0cmluZyBjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICB7
CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLT5jc3NUZXh0KCk7CiAgICAgfQpAQCAtMjUwLDYgKzI1
OSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBldmFsdWF0ZShsZWZ0VmFsdWUsIHJpZ2h0
VmFsdWUpOwogICAgIH0KIAorICAgIHZpcnR1YWwgU3RyaW5nIGN1c3RvbUNzc1RleHQoKSBjb25z
dAorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoJygnKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtX2xlZnRTaWRlLT5jdXN0b21Dc3NU
ZXh0KCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CisgICAgICAgIHJlc3VsdC5hcHBl
bmQoc3RhdGljX2Nhc3Q8Y2hhcj4obV9vcGVyYXRvcikpOworICAgICAgICByZXN1bHQuYXBwZW5k
KCcgJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9yaWdodFNpZGUtPmN1c3RvbUNzc1RleHQo
KSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKKyAgICAKKyAgICAgICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOyAgICAKKyAgICB9CisKIHByaXZhdGU6CiAgICAgQ1NTQ2FsY0JpbmFy
eU9wZXJhdGlvbihQYXNzUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gbGVmdFNpZGUsIFBh
c3NSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiByaWdodFNpZGUsIENhbGNPcGVyYXRvciBv
cCwgQ2FsY3VsYXRpb25DYXRlZ29yeSBjYXRlZ29yeSkKICAgICAgICAgOiBDU1NDYWxjRXhwcmVz
c2lvbk5vZGUoY2F0ZWdvcnksIGxlZnRTaWRlLT5pc0ludGVnZXIoKSAmJiByaWdodFNpZGUtPmlz
SW50ZWdlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9u
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKaW5kZXgg
YWM5YmU0NmQzM2FkYTMyOTljOTE1ZmQzNGQzZDhjNjA0NTgzODVjNS4uNTdhMjQ5Zjg5NjhjNTE2
NDgyODZlZTc0MTA0NTcxN2VkZWU2Njc2ZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3Vs
YXRpb25WYWx1ZS5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NP
d25QdHI8Q2FsY0V4cHJlc3Npb25Ob2RlPiB0b0NhbGNWYWx1ZShSZW5kZXJTdHlsZSosIFJlbmRl
clN0eWxlKiByb290U3R5bGUsIGRvdWJsZSB6b29tID0gMS4wKSBjb25zdCA9IDA7ICAgIAogICAg
IHZpcnR1YWwgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91
YmxlIGNvbXB1dGVMZW5ndGhQeChSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHls
ZSogcm9vdFN0eWxlLCBkb3VibGUgbXVsdGlwbGllciA9IDEuMCwgYm9vbCBjb21wdXRpbmdGb250
U2l6ZSA9IGZhbHNlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY3VzdG9tQ3NzVGV4
dCgpIGNvbnN0ID0gMDsKICAgICAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhdGVnb3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfSAgICAKICAgICBib29sIGlzSW50ZWdlcigpIGNv
bnN0IHsgcmV0dXJuIG1faXNJbnRlZ2VyOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQ2YTYzOWZmOGY1N2I5Yjg1ZDM1
NzdlYmQ2NWRhZjdlNWFmMjk2ZS4uOTU5MGQ4YWQwZTJjMzc2MDUwZTkxZjM3ZDE0MThjNDQ2ZGY3
NDIxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTIyICBNaWtlIExhd3RoZXIgIDxt
aWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxjOiBEcm9wcGVkIGlu
IENTU09NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Y3NzMy9jYWxjL2Nzc29tLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9jYWxj
L2Nzc29tLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTIyICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEwNTUxMyk6IENTUyBtYXgtd2lkdGgg
aXMgbm90IGFwcGxpZWQgdG8gU1ZHIGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvY2FsYy9jc3NvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY3Nzb20t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjZjNkOGQzMmI5NTg4NTU4MGIzMGE5MDgxZDczNTEx
ZGU4MjUxMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY3Nzb20t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMgY2FsYygpIGFuZCB0aGUg
Q1NTT00KKworMTBweCA9PiAtd2Via2l0LWNhbGMoMTBweCkKKzEwcHggKyAxNXB4ID0+IC13ZWJr
aXQtY2FsYygxMHB4ICsgMTVweCkKKzEwMCUgPT4gLXdlYmtpdC1jYWxjKDEwMCUpCisxMDAlIC0g
MTBweCA9PiAtd2Via2l0LWNhbGMoMTAwJSAtIDEwcHgpCisxMHB4ICsgMTBweCAqIDUgPT4gLXdl
YmtpdC1jYWxjKDEwcHggKyAoMTBweCAqIDUpKQorNXB4ICsgMmVtICsgNmluID0+IC13ZWJraXQt
Y2FsYygoNXB4ICsgMmVtKSArIDZpbikKKzEwMCUgLSAxMHB4IC8gMiA9PiAtd2Via2l0LWNhbGMo
MTAwJSAtICgxMHB4IC8gMikpCisxcHggKyAyZW0gLSAzcmVtICsgNGluID0+IC13ZWJraXQtY2Fs
YygoKDFweCArIDJlbSkgLSAzcmVtKSArIDRpbikKKzEwMHB4ICogKDEgKyAyICogMyAtIDQgLyA1
KSA9PiAtd2Via2l0LWNhbGMoMTAwcHggKiAoKDEgKyAoMiAqIDMpKSAtICg0IC8gNSkpKQorZmxp
bXN0aXggPT4gLXdlYmtpdC1jYWxjKDEwMHB4ICogKCgxICsgKDIgKiAzKSkgLSAoNCAvIDUpKSkK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL2Nzc29tLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2NhbGMvY3Nzb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzI1MGUwZTFkMDA5ZWQwYjMw
OGNiOGQ4OTVkY2U5ODE2MmY1YzkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9jYWxjL2Nzc29tLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8c3R5
bGU+CisgICAgI3Jlc3VsdHMgeyB3aWR0aDoxMDAlOyB9Cis8L3N0eWxlPgorPGRpdiBpZD0icmVz
dWx0cyI+VGhpcyB0ZXN0cyBjYWxjKCkgYW5kIHRoZSBDU1NPTTxicj48YnI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9ICAgIAorCisgICAg
dmFyIHRlc3RzID0gWyIxMHB4IiwgCisgICAgICAgICAgICAgICAgICIxMHB4ICsgMTVweCIsIAor
ICAgICAgICAgICAgICAgICAiMTAwJSIsIAorICAgICAgICAgICAgICAgICAiMTAwJSAtIDEwcHgi
LAorICAgICAgICAgICAgICAgICAiMTBweCArIDEwcHggKiA1IiwKKyAgICAgICAgICAgICAgICAg
IjVweCArIDJlbSArIDZpbiIsCisgICAgICAgICAgICAgICAgICIxMDAlIC0gMTBweCAvIDIiLAor
ICAgICAgICAgICAgICAgICAiMXB4ICsgMmVtIC0gM3JlbSArIDRpbiIsCisgICAgICAgICAgICAg
ICAgICIxMDBweCAqICgxICsgMiAqIDMgLSA0IC8gNSkiLAorICAgICAgICAgICAgICAgICAiZmxp
bXN0aXgiXTsKKyAgICAgICAgICAgICAgICAgCisgICAgdmFyIHJlc3VsdHMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0cyIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGV4cHJlc3Npb24gPSB0ZXN0c1tpXTsKKyAgICAg
ICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICdjYWxjKCcgKyBleHByZXNzaW9uICsgJykn
OworICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gJy13ZWJraXQtY2FsYygnICsg
ZXhwcmVzc2lvbiArICcpJzsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICct
bW96LWNhbGMoJyArIGV4cHJlc3Npb24gKyAnKSc7CisgICAgICAgIHJlc3VsdHMuaW5uZXJIVE1M
ICs9IGV4cHJlc3Npb24gKyAiID0+ICIgKyBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoICsgIjxi
cj4iOworICAgIH0KKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gJzEwMCUnOworPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144714</attachid>
            <date>2012-05-29 23:22:44 -0700</date>
            <delta_ts>2012-05-29 23:42:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84551-20120530162242.patch</filename>
            <type>text/plain</type>
            <size>6446</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4N2ZiNTNhODkxYTYy
NmJhZWE3ZmRiMzVlYmY4NDc1NTE5MDBkMS4uMTMzM2ExY2RjZWRmZWFmZDk1NTMxMjNlMzQ4NTA5
NTViYWI1NjlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTIyICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
OiBEcm9wcGVkIGluIENTU09NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NDU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgYSBwcmV0dHkgcHJpbnRlciBmb3IgdGhlIGNhbGMgZXhwcmVzc2lvbiB0
cmVlLiAKKworICAgICAgICBUZXN0OiBjc3MzL2NhbGMvY3Nzb20uaHRtbAorCisgICAgICAgICog
Y3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1Zh
bHVlOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNQcmltaXRpdmVW
YWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjQmluYXJ5T3Bl
cmF0aW9uOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAgKENTU0NhbGNCaW5hcnlPcGVyYXRpb24p
OgorICAgICAgICAqIGNzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmg6CisgICAgICAgIChDU1NDYWxj
RXhwcmVzc2lvbk5vZGUpOgorCiAyMDEyLTA1LTIyICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXByZXNlbnRzIG1hcmdpbnMgYXMgYm94IGFuZCBzaW1wbGlm
eSB3cml0aW5nIG1vZGUgbG9naWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
YWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmNwcAppbmRleCA2MThjMzljMTI3NGJhM2ZhYjcwNjU4ZWFjN2Q2NDQzMTZiNjZhOTlmLi44
NzBhZjdlMDUzMTk5Yzc1NGNhMDlmZDI0ODUzMWJkNDc1YTNmOTJkIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC03NCw3ICs3NCwxNiBAQCBzdGF0aWMg
Q2FsY3VsYXRpb25DYXRlZ29yeSB1bml0Q2F0ZWdvcnkoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRU
eXBlcyB0eXBlKQogICAgIAogU3RyaW5nIENTU0NhbGNWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuICIiOworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIAor
ICAgIHJlc3VsdC5hcHBlbmQoIi13ZWJraXQtY2FsYyIpOworICAgIFN0cmluZyBleHByZXNzaW9u
ID0gbV9leHByZXNzaW9uLT5jdXN0b21Dc3NUZXh0KCk7CisgICAgaWYgKGV4cHJlc3Npb25bMF0g
IT0gJygnKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcoJyk7CisgICAgcmVzdWx0LmFwcGVuZChl
eHByZXNzaW9uKTsKKyAgICBpZiAoZXhwcmVzc2lvblswXSAhPSAnKCcpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyknKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7IAogfQogICAgIAog
ZG91YmxlIENTU0NhbGNWYWx1ZTo6Y2xhbXBUb1Blcm1pdHRlZFJhbmdlKGRvdWJsZSB2YWx1ZSkg
Y29uc3QKQEAgLTEwOSw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAhbV92YWx1
ZS0+Z2V0RG91YmxlVmFsdWUoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0
KCkgY29uc3QKKyAgICB2aXJ0dWFsIFN0cmluZyBjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICB7
CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLT5jc3NUZXh0KCk7CiAgICAgfQpAQCAtMjUwLDYgKzI1
OSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBldmFsdWF0ZShsZWZ0VmFsdWUsIHJpZ2h0
VmFsdWUpOwogICAgIH0KIAorICAgIHZpcnR1YWwgU3RyaW5nIGN1c3RvbUNzc1RleHQoKSBjb25z
dAorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoJygnKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtX2xlZnRTaWRlLT5jdXN0b21Dc3NU
ZXh0KCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CisgICAgICAgIHJlc3VsdC5hcHBl
bmQoc3RhdGljX2Nhc3Q8Y2hhcj4obV9vcGVyYXRvcikpOworICAgICAgICByZXN1bHQuYXBwZW5k
KCcgJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9yaWdodFNpZGUtPmN1c3RvbUNzc1RleHQo
KSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKKyAgICAKKyAgICAgICAgcmV0dXJuIHJl
c3VsdC50b1N0cmluZygpOyAgICAKKyAgICB9CisKIHByaXZhdGU6CiAgICAgQ1NTQ2FsY0JpbmFy
eU9wZXJhdGlvbihQYXNzUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gbGVmdFNpZGUsIFBh
c3NSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiByaWdodFNpZGUsIENhbGNPcGVyYXRvciBv
cCwgQ2FsY3VsYXRpb25DYXRlZ29yeSBjYXRlZ29yeSkKICAgICAgICAgOiBDU1NDYWxjRXhwcmVz
c2lvbk5vZGUoY2F0ZWdvcnksIGxlZnRTaWRlLT5pc0ludGVnZXIoKSAmJiByaWdodFNpZGUtPmlz
SW50ZWdlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9u
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKaW5kZXgg
YWM5YmU0NmQzM2FkYTMyOTljOTE1ZmQzNGQzZDhjNjA0NTgzODVjNS4uNTdhMjQ5Zjg5NjhjNTE2
NDgyODZlZTc0MTA0NTcxN2VkZWU2Njc2ZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3Vs
YXRpb25WYWx1ZS5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NP
d25QdHI8Q2FsY0V4cHJlc3Npb25Ob2RlPiB0b0NhbGNWYWx1ZShSZW5kZXJTdHlsZSosIFJlbmRl
clN0eWxlKiByb290U3R5bGUsIGRvdWJsZSB6b29tID0gMS4wKSBjb25zdCA9IDA7ICAgIAogICAg
IHZpcnR1YWwgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91
YmxlIGNvbXB1dGVMZW5ndGhQeChSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHls
ZSogcm9vdFN0eWxlLCBkb3VibGUgbXVsdGlwbGllciA9IDEuMCwgYm9vbCBjb21wdXRpbmdGb250
U2l6ZSA9IGZhbHNlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY3VzdG9tQ3NzVGV4
dCgpIGNvbnN0ID0gMDsKICAgICAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhdGVnb3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfSAgICAKICAgICBib29sIGlzSW50ZWdlcigpIGNv
bnN0IHsgcmV0dXJuIG1faXNJbnRlZ2VyOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQ2YTYzOWZmOGY1N2I5Yjg1ZDM1
NzdlYmQ2NWRhZjdlNWFmMjk2ZS4uOTU5MGQ4YWQwZTJjMzc2MDUwZTkxZjM3ZDE0MThjNDQ2ZGY3
NDIxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTIyICBNaWtlIExhd3RoZXIgIDxt
aWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxjOiBEcm9wcGVkIGlu
IENTU09NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Y3NzMy9jYWxjL2Nzc29tLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9jYWxj
L2Nzc29tLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTIyICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEwNTUxMyk6IENTUyBtYXgtd2lkdGgg
aXMgbm90IGFwcGxpZWQgdG8gU1ZHIGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvY2FsYy9jc3NvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY3Nzb20t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MTg0Mjk3ZTYxNDQ5ZTYyZjhmNzlmNGJlMjkxNzIx
YTE2NDAzMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY3Nzb20t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdHMgY2FsYygpIGFuZCB0aGUg
Q1NTT00KKworMTBweCA9PiAtd2Via2l0LWNhbGMoMTBweCkKKzEwcHggKyAxNXB4ID0+IC13ZWJr
aXQtY2FsYygxMHB4ICsgMTVweCkKKzEwMCUgPT4gLXdlYmtpdC1jYWxjKDEwMCUpCisxMDAlIC0g
MTBweCA9PiAtd2Via2l0LWNhbGMoMTAwJSAtIDEwcHgpCisxMHB4ICsgMTBweCAqIDUgPT4gLXdl
YmtpdC1jYWxjKDEwcHggKyAoMTBweCAqIDUpKQorNXB4ICsgMmVtICsgNmluID0+IC13ZWJraXQt
Y2FsYygoNXB4ICsgMmVtKSArIDZpbikKKzEwMCUgLSAxMHB4IC8gMiA9PiAtd2Via2l0LWNhbGMo
MTAwJSAtICgxMHB4IC8gMikpCisxcHggKyAyZW0gLSAzcmVtICsgNGluID0+IC13ZWJraXQtY2Fs
YygoKDFweCArIDJlbSkgLSAzcmVtKSArIDRpbikKKzEwMHB4ICogKDEgKyAyICogMyAtIDQgLyA1
KSA9PiAtd2Via2l0LWNhbGMoMTAwcHggKiAoKDEgKyAoMiAqIDMpKSAtICg0IC8gNSkpKQorKDEw
MHB4KSArIDIwMHB4ID0+IC13ZWJraXQtY2FsYygxMDBweCArIDIwMHB4KQorKCgoKCgoKCgoKDEw
MHB4KSkpKSkpKSkpKSA9PiAtd2Via2l0LWNhbGMoMTAwcHgpCitmbGltc3RpeCA9PiAtd2Via2l0
LWNhbGMoMTAwcHgpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY2FsYy9jc3NvbS5o
dG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL2Nzc29tLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZmYmI0
NzNlZmFmN2M5NmFhNDI2YTc3YzVjY2M2ZTIxYTZhMWI0NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvY2FsYy9jc3NvbS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPGRpdiBpZD0iZHVtbXkiPjwvZGl2PgorPGRpdiBpZD0icmVzdWx0cyI+VGhpcyB0
ZXN0cyBjYWxjKCkgYW5kIHRoZSBDU1NPTTxicj48YnI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworCit2YXIgdGVzdHMgPSBbIjEwcHgiLCAKKyAgICAgICAgICAgICAi
MTBweCArIDE1cHgiLCAKKyAgICAgICAgICAgICAiMTAwJSIsIAorICAgICAgICAgICAgICIxMDAl
IC0gMTBweCIsCisgICAgICAgICAgICAgIjEwcHggKyAxMHB4ICogNSIsCisgICAgICAgICAgICAg
IjVweCArIDJlbSArIDZpbiIsCisgICAgICAgICAgICAgIjEwMCUgLSAxMHB4IC8gMiIsCisgICAg
ICAgICAgICAgIjFweCArIDJlbSAtIDNyZW0gKyA0aW4iLAorICAgICAgICAgICAgICIxMDBweCAq
ICgxICsgMiAqIDMgLSA0IC8gNSkiLAorICAgICAgICAgICAgICIoMTAwcHgpICsgMjAwcHgiLAor
ICAgICAgICAgICAgICIoKCgoKCgoKCgoMTAwcHgpKSkpKSkpKSkpIiwKKyAgICAgICAgICAgICAi
ZmxpbXN0aXgiXTsKKyAgICAgICAgICAgICAKK3ZhciByZXN1bHRzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdHMiKTsKK3ZhciBkdW1teSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkdW1teSIpOworZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworICAg
IHZhciBleHByZXNzaW9uID0gdGVzdHNbaV07CisgICAgZHVtbXkuc3R5bGUud2lkdGggPSAnY2Fs
YygnICsgZXhwcmVzc2lvbiArICcpJzsKKyAgICBkdW1teS5zdHlsZS53aWR0aCA9ICctd2Via2l0
LWNhbGMoJyArIGV4cHJlc3Npb24gKyAnKSc7CisgICAgZHVtbXkuc3R5bGUud2lkdGggPSAnLW1v
ei1jYWxjKCcgKyBleHByZXNzaW9uICsgJyknOworICAgIHJlc3VsdHMuaW5uZXJIVE1MICs9IGV4
cHJlc3Npb24gKyAiID0+ICIgKyBkdW1teS5zdHlsZS53aWR0aCArICI8YnI+IjsKK30KKzwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144726</attachid>
            <date>2012-05-29 23:42:47 -0700</date>
            <delta_ts>2012-05-30 00:01:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-84551-20120530164245.patch</filename>
            <type>text/plain</type>
            <size>6520</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4N2ZiNTNhODkxYTYy
NmJhZWE3ZmRiMzVlYmY4NDc1NTE5MDBkMS4uYzFiMGFhMGMwMTRjNWViZDM0YTZkZWVlOWU5MWZh
ZDk0M2FhMTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTIyICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
OiBJbXBsZW1lbnQgQ1NTT00gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1NTEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCisKKyAgICAgICAgQWRkcyBhIHByZXR0eSBwcmludGVyIGZvciB0aGUgY2FsYyBleHByZXNz
aW9uIHRyZWUuIAorCisgICAgICAgIFRlc3Q6IGNzczMvY2FsYy9jc3NvbS5odG1sCisKKyAgICAg
ICAgKiBjc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
YWxjVmFsdWU6OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY1ByaW1p
dGl2ZVZhbHVlOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNCaW5h
cnlPcGVyYXRpb246OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoQ1NTQ2FsY0JpbmFyeU9wZXJh
dGlvbik6CisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaDoKKyAgICAgICAgKENT
U0NhbGNFeHByZXNzaW9uTm9kZSk6CisKIDIwMTItMDUtMjIgIEVtaWwgQSBFa2x1bmQgIDxlYWVA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlcHJlc2VudHMgbWFyZ2lucyBhcyBib3ggYW5kIHNp
bXBsaWZ5IHdyaXRpbmcgbW9kZSBsb2dpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0
aW9uVmFsdWUuY3BwCmluZGV4IDYxOGMzOWMxMjc0YmEzZmFiNzA2NThlYWM3ZDY0NDMxNmI2NmE5
OWYuLjU0MjQ3ZTAzNTlmYjQ3NDgxY2NhYjI3ODRmZTA0NDI4Y2NkN2M0ZjQgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKQEAgLTc0LDcgKzc0LDE3IEBAIHN0
YXRpYyBDYWxjdWxhdGlvbkNhdGVnb3J5IHVuaXRDYXRlZ29yeShDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGVzIHR5cGUpCiAgICAgCiBTdHJpbmcgQ1NTQ2FsY1ZhbHVlOjpjdXN0b21Dc3NUZXh0
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIiI7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Cisg
ICAgCisgICAgcmVzdWx0LmFwcGVuZCgiLXdlYmtpdC1jYWxjIik7CisgICAgU3RyaW5nIGV4cHJl
c3Npb24gPSBtX2V4cHJlc3Npb24tPmN1c3RvbUNzc1RleHQoKTsKKyAgICBib29sIGV4cHJlc3Np
b25IYXNTaW5nbGVUZXJtID0gZXhwcmVzc2lvblswXSAhPSAnKCc7CisgICAgaWYgKGV4cHJlc3Np
b25IYXNTaW5nbGVUZXJtKQorICAgICAgICByZXN1bHQuYXBwZW5kKCcoJyk7CisgICAgcmVzdWx0
LmFwcGVuZChleHByZXNzaW9uKTsKKyAgICBpZiAoZXhwcmVzc2lvbkhhc1NpbmdsZVRlcm0pCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
IAogfQogICAgIAogZG91YmxlIENTU0NhbGNWYWx1ZTo6Y2xhbXBUb1Blcm1pdHRlZFJhbmdlKGRv
dWJsZSB2YWx1ZSkgY29uc3QKQEAgLTEwOSw3ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiAhbV92YWx1ZS0+Z2V0RG91YmxlVmFsdWUoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFN0
cmluZyBjc3NUZXh0KCkgY29uc3QKKyAgICB2aXJ0dWFsIFN0cmluZyBjdXN0b21Dc3NUZXh0KCkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLT5jc3NUZXh0KCk7CiAgICAgfQpA
QCAtMjUwLDYgKzI2MCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBldmFsdWF0ZShsZWZ0
VmFsdWUsIHJpZ2h0VmFsdWUpOwogICAgIH0KIAorICAgIHZpcnR1YWwgU3RyaW5nIGN1c3RvbUNz
c1RleHQoKSBjb25zdAorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJygnKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtX2xlZnRTaWRl
LT5jdXN0b21Dc3NUZXh0KCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoc3RhdGljX2Nhc3Q8Y2hhcj4obV9vcGVyYXRvcikpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9yaWdodFNpZGUtPmN1
c3RvbUNzc1RleHQoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKKyAgICAKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOyAgICAKKyAgICB9CisKIHByaXZhdGU6CiAgICAg
Q1NTQ2FsY0JpbmFyeU9wZXJhdGlvbihQYXNzUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4g
bGVmdFNpZGUsIFBhc3NSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiByaWdodFNpZGUsIENh
bGNPcGVyYXRvciBvcCwgQ2FsY3VsYXRpb25DYXRlZ29yeSBjYXRlZ29yeSkKICAgICAgICAgOiBD
U1NDYWxjRXhwcmVzc2lvbk5vZGUoY2F0ZWdvcnksIGxlZnRTaWRlLT5pc0ludGVnZXIoKSAmJiBy
aWdodFNpZGUtPmlzSW50ZWdlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmgKaW5kZXggYWM5YmU0NmQzM2FkYTMyOTljOTE1ZmQzNGQzZDhjNjA0NTgzODVjNS4uNTdh
MjQ5Zjg5NjhjNTE2NDgyODZlZTc0MTA0NTcxN2VkZWU2Njc2ZiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFBhc3NPd25QdHI8Q2FsY0V4cHJlc3Npb25Ob2RlPiB0b0NhbGNWYWx1ZShSZW5kZXJT
dHlsZSosIFJlbmRlclN0eWxlKiByb290U3R5bGUsIGRvdWJsZSB6b29tID0gMS4wKSBjb25zdCA9
IDA7ICAgIAogICAgIHZpcnR1YWwgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgZG91YmxlIGNvbXB1dGVMZW5ndGhQeChSZW5kZXJTdHlsZSogY3VycmVudFN0eWxl
LCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBkb3VibGUgbXVsdGlwbGllciA9IDEuMCwgYm9vbCBj
b21wdXRpbmdGb250U2l6ZSA9IGZhbHNlKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcg
Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0ID0gMDsKICAgICAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5
IGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfSAgICAKICAgICBib29sIGlz
SW50ZWdlcigpIGNvbnN0IHsgcmV0dXJuIG1faXNJbnRlZ2VyOyB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQ2YTYzOWZm
OGY1N2I5Yjg1ZDM1NzdlYmQ2NWRhZjdlNWFmMjk2ZS4uMjE0OGE2MTIwZmU1YzE5YjcyMGRkZTc2
YmM2MWI4YThmZDNjOWI4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTIyICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
OiBJbXBsZW1lbnQgQ1NTT00gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1NTEKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCisKKyAgICAgICAgKiBjc3MzL2NhbGMvY3Nzb20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2NhbGMvY3Nzb20uaHRtbDogQWRkZWQuCisKIDIwMTItMDUtMjIgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTA1NTEz
KTogQ1NTIG1heC13aWR0aCBpcyBub3QgYXBwbGllZCB0byBTVkcgZWxlbWVudApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL2Nzc29tLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvY2FsYy9jc3NvbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxODQyOTdlNjE0NDll
NjJmOGY3OWY0YmUyOTE3MjFhMTY0MDMxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvY2FsYy9jc3NvbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0
cyBjYWxjKCkgYW5kIHRoZSBDU1NPTQorCisxMHB4ID0+IC13ZWJraXQtY2FsYygxMHB4KQorMTBw
eCArIDE1cHggPT4gLXdlYmtpdC1jYWxjKDEwcHggKyAxNXB4KQorMTAwJSA9PiAtd2Via2l0LWNh
bGMoMTAwJSkKKzEwMCUgLSAxMHB4ID0+IC13ZWJraXQtY2FsYygxMDAlIC0gMTBweCkKKzEwcHgg
KyAxMHB4ICogNSA9PiAtd2Via2l0LWNhbGMoMTBweCArICgxMHB4ICogNSkpCis1cHggKyAyZW0g
KyA2aW4gPT4gLXdlYmtpdC1jYWxjKCg1cHggKyAyZW0pICsgNmluKQorMTAwJSAtIDEwcHggLyAy
ID0+IC13ZWJraXQtY2FsYygxMDAlIC0gKDEwcHggLyAyKSkKKzFweCArIDJlbSAtIDNyZW0gKyA0
aW4gPT4gLXdlYmtpdC1jYWxjKCgoMXB4ICsgMmVtKSAtIDNyZW0pICsgNGluKQorMTAwcHggKiAo
MSArIDIgKiAzIC0gNCAvIDUpID0+IC13ZWJraXQtY2FsYygxMDBweCAqICgoMSArICgyICogMykp
IC0gKDQgLyA1KSkpCisoMTAwcHgpICsgMjAwcHggPT4gLXdlYmtpdC1jYWxjKDEwMHB4ICsgMjAw
cHgpCisoKCgoKCgoKCgoMTAwcHgpKSkpKSkpKSkpID0+IC13ZWJraXQtY2FsYygxMDBweCkKK2Zs
aW1zdGl4ID0+IC13ZWJraXQtY2FsYygxMDBweCkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9jYWxjL2Nzc29tLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY3Nzb20uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZmZiYjQ3M2VmYWY3Yzk2YWE0MjZhNzdjNWNjYzZlMjFhNmExYjQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL2Nzc29tLmh0bWwKQEAgLTAsMCAr
MSwzMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8ZGl2IGlkPSJkdW1teSI+PC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHRzIj5UaGlzIHRlc3RzIGNhbGMoKSBhbmQgdGhlIENTU09NPGJyPjxicj48L2Rpdj4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciB0ZXN0cyA9IFsiMTBweCIs
IAorICAgICAgICAgICAgICIxMHB4ICsgMTVweCIsIAorICAgICAgICAgICAgICIxMDAlIiwgCisg
ICAgICAgICAgICAgIjEwMCUgLSAxMHB4IiwKKyAgICAgICAgICAgICAiMTBweCArIDEwcHggKiA1
IiwKKyAgICAgICAgICAgICAiNXB4ICsgMmVtICsgNmluIiwKKyAgICAgICAgICAgICAiMTAwJSAt
IDEwcHggLyAyIiwKKyAgICAgICAgICAgICAiMXB4ICsgMmVtIC0gM3JlbSArIDRpbiIsCisgICAg
ICAgICAgICAgIjEwMHB4ICogKDEgKyAyICogMyAtIDQgLyA1KSIsCisgICAgICAgICAgICAgIigx
MDBweCkgKyAyMDBweCIsCisgICAgICAgICAgICAgIigoKCgoKCgoKCgxMDBweCkpKSkpKSkpKSki
LAorICAgICAgICAgICAgICJmbGltc3RpeCJdOworICAgICAgICAgICAgIAordmFyIHJlc3VsdHMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0cyIpOwordmFyIGR1bW15ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImR1bW15Iik7Citmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxl
bmd0aDsgKytpKSB7CisgICAgdmFyIGV4cHJlc3Npb24gPSB0ZXN0c1tpXTsKKyAgICBkdW1teS5z
dHlsZS53aWR0aCA9ICdjYWxjKCcgKyBleHByZXNzaW9uICsgJyknOworICAgIGR1bW15LnN0eWxl
LndpZHRoID0gJy13ZWJraXQtY2FsYygnICsgZXhwcmVzc2lvbiArICcpJzsKKyAgICBkdW1teS5z
dHlsZS53aWR0aCA9ICctbW96LWNhbGMoJyArIGV4cHJlc3Npb24gKyAnKSc7CisgICAgcmVzdWx0
cy5pbm5lckhUTUwgKz0gZXhwcmVzc2lvbiArICIgPT4gIiArIGR1bW15LnN0eWxlLndpZHRoICsg
Ijxicj4iOworfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>