<?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>86065</bug_id>
          
          <creation_ts>2012-05-10 01:04:05 -0700</creation_ts>
          <short_desc>FractionalLayoutUnit minor math bugs</short_desc>
          <delta_ts>2012-07-31 15:41:17 -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>Layout and Rendering</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="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>schlosna</cc>
    
    <cc>war59312</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620359</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-10 01:04:05 -0700</bug_when>
    <thetext>There a few cases with the new FractionalUnit types where mathematical operations are performed on the wrong type or has not taken precedence rules into account.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620362</commentid>
    <comment_count>1</comment_count>
      <attachid>141105</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-10 01:13:55 -0700</bug_when>
    <thetext>Created attachment 141105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620691</commentid>
    <comment_count>2</comment_count>
      <attachid>141105</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-05-10 10:26:44 -0700</bug_when>
    <thetext>Comment on attachment 141105
Patch

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

Some good catches :)

&gt; Source/WebCore/ChangeLog:3
&gt; +        FractionalUnit minor math bugs

FractionalLayoutUnit :)

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:572
&gt; +    a = a - b.toFloat();

Is this actually a change in behavior?

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:586
&gt; +    float value = a.toFloat() * b;
&gt; +    a = value;
&gt; +    return a;

Why would we want to do something other than the standard overload of float * FractionalLayoutUnit? Why not build this out of the already-defined operators?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620764</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-10 11:28:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 141105 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141105&amp;action=review
&gt; 
&gt; Some good catches :)
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        FractionalUnit minor math bugs
&gt; 
&gt; FractionalLayoutUnit :)
&gt; 
Right :D

&gt; &gt; Source/WebCore/platform/FractionalLayoutUnit.h:572
&gt; &gt; +    a = a - b.toFloat();
&gt; 
&gt; Is this actually a change in behavior?
&gt; 
No.  

&gt; &gt; Source/WebCore/platform/FractionalLayoutUnit.h:586
&gt; &gt; +    float value = a.toFloat() * b;
&gt; &gt; +    a = value;
&gt; &gt; +    return a;
&gt; 
&gt; Why would we want to do something other than the standard overload of float * FractionalLayoutUnit? Why not build this out of the already-defined operators?

To avoid the float being cast to fractionallayoutunit before the multiplication, I found this after experimenting with setting the FractionalLayoutUnit(float) constructor to explicit, specifically to see if any floats were converted this way losing precision. It turned out setting the constructor to explicit is not a good idea because it is used implicitly all over the place, but I did find a few places it shouldn&apos;t have been used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621361</commentid>
    <comment_count>4</comment_count>
      <attachid>141345</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-11 00:49:57 -0700</bug_when>
    <thetext>Created attachment 141345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622360</commentid>
    <comment_count>5</comment_count>
      <attachid>141345</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-12 08:48:04 -0700</bug_when>
    <thetext>Comment on attachment 141345
Patch

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

Some good changes here, but some others that I believe are not helpful.

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:152
&gt; -    static float epsilon() { return 1 / kFixedPointDenominator; }
&gt; +    static float epsilon() { return 1. / kFixedPointDenominator; }

The comment says this should use “float division”, but this will use double-precision division and then round to float. That’s probably OK because it happens at compile time.

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:348
&gt; -    long long rawVal = static_cast&lt;long long&gt;(a.rawValue()) * b.rawValue() / kFixedPointDenominator;
&gt; +    long long rawVal = (static_cast&lt;long long&gt;(a.rawValue()) * b.rawValue()) / kFixedPointDenominator;

Given my understanding of the C rules for operators and parentheses and order of operations, I believe adding these parentheses has no effect. Please do not add them unless you have evidence I am wrong.

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:416
&gt; -    long long rawVal = static_cast&lt;long long&gt;(kFixedPointDenominator) * a.rawValue() / b.rawValue();
&gt; +    long long rawVal = (static_cast&lt;long long&gt;(kFixedPointDenominator) * a.rawValue()) / b.rawValue();

Ditto.

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:572
&gt; -    a = a - b;
&gt; +    a = a - b.toFloat();

I don’t think this change adds value.

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:584
&gt; +    a = a.toFloat() * b;

Why does the explicit cast here yield higher precision? It should not. Please do not make this change unless it’s actually helpful.

&gt; Source/WebCore/platform/FractionalLayoutUnit.h:590
&gt; +    a = a * b.toFloat();

The explicit call to toFloat here should not be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622363</commentid>
    <comment_count>6</comment_count>
      <attachid>141345</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-12 08:50:31 -0700</bug_when>
    <thetext>Comment on attachment 141345
Patch

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

&gt;&gt; Source/WebCore/platform/FractionalLayoutUnit.h:572
&gt;&gt; +    a = a - b.toFloat();
&gt; 
&gt; I don’t think this change adds value.

OK, I guess I was wrong about this one. It seems that without the explicit conversion the math is done by converting the float to a FractionLayoutUnit. I think that it’s nice to fix it, but we need this fixed for the plain old operator-, not just for operator-=. We have a design problem where when we do math with a float and a FractionalLayoutUnit it is getting done as FractionalLayoutUnit math.

&gt;&gt; Source/WebCore/platform/FractionalLayoutUnit.h:584
&gt;&gt; +    a = a.toFloat() * b;
&gt; 
&gt; Why does the explicit cast here yield higher precision? It should not. Please do not make this change unless it’s actually helpful.

Same comment applies. I was wrong. But fixing this in *= is not sufficient. We need the * operator to work properly too.

&gt;&gt; Source/WebCore/platform/FractionalLayoutUnit.h:590
&gt;&gt; +    a = a * b.toFloat();
&gt; 
&gt; The explicit call to toFloat here should not be needed.

Same comment applies. I was wrong. But fixing this in *= is not sufficient. We need the * operator to work properly too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622379</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-12 09:54:21 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 141345 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141345&amp;action=review
&gt; 
&gt; Some good changes here, but some others that I believe are not helpful.
&gt; 
&gt; &gt; Source/WebCore/platform/FractionalLayoutUnit.h:348
&gt; &gt; -    long long rawVal = static_cast&lt;long long&gt;(a.rawValue()) * b.rawValue() / kFixedPointDenominator;
&gt; &gt; +    long long rawVal = (static_cast&lt;long long&gt;(a.rawValue()) * b.rawValue()) / kFixedPointDenominator;
&gt; 
&gt; Given my understanding of the C rules for operators and parentheses and order of operations, I believe adding these parentheses has no effect. Please do not add them unless you have evidence I am wrong.
&gt; 
Division in mathematical expressions has higher precedence than multiplications so A * B / C is calculated A * (B / C) in this case no only dividing in int instead of long long, but losing precision due to integer division before multiplication.  

Though to admit I am assuming C is using standard precedence rules here.

&gt; &gt; Source/WebCore/platform/FractionalLayoutUnit.h:572
&gt; &gt; -    a = a - b;
&gt; &gt; +    a = a - b.toFloat();
&gt; I don’t think this change adds value.

Coding style. The problem is that if you use an operator combination that we haven&apos;t explicitly made a new version of then C++ is going to always cast the float to FractionalLayoutUnit (int without SUBPIXEL_LAYOUT set), and then perform the operation in FractionalLayoutUnit. Therefore it is good practise to always use toFloat() whenever we intend the operation to be performed in float. This is already been done in all other implementations except these two. So it brings the good practice and coding style to these two remaining cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629218</commentid>
    <comment_count>8</comment_count>
      <attachid>143053</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-05-21 10:04:36 -0700</bug_when>
    <thetext>Created attachment 143053
Patch

Remove changes to a*b/c expressions. Darin is right, extra parenthesises are redundant.

Removed the explicit .toFloat() casts as well, and instead implemented a full set of operator X= operators. I have verified that this ensures the operations are performed in the correct types (at least for the combinations of FractionalLayoutUnit, int and float).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641194</commentid>
    <comment_count>9</comment_count>
    <who name="David Schlosnagle">schlosna</who>
    <bug_when>2012-06-04 22:18:46 -0700</bug_when>
    <thetext>This patch will likely clash with committed changes in bug 88259.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641357</commentid>
    <comment_count>10</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-06-05 02:49:45 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; This patch will likely clash with committed changes in bug 88259.

Yep, they had the same problem this is supposed to prevent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641665</commentid>
    <comment_count>11</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-06-05 09:54:15 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; This patch will likely clash with committed changes in bug 88259.
&gt; 
&gt; Yep, they had the same problem this is supposed to prevent.

I&apos;d love to see this fixed, but I haven&apos;t had the chance to actually test for its impact on our tests, and the previous patch was uploaded before sub-pixel layout was enabled in Chromium. If you&apos;d please update your patch and re-upload, the cr-linux bot will validate that there aren&apos;t any unforeseen results of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666700</commentid>
    <comment_count>12</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-11 06:13:09 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; This patch will likely clash with committed changes in bug 88259.
&gt; &gt; 
&gt; &gt; Yep, they had the same problem this is supposed to prevent.
&gt; 
&gt; I&apos;d love to see this fixed, but I haven&apos;t had the chance to actually test for its impact on our tests, and the previous patch was uploaded before sub-pixel layout was enabled in Chromium. If you&apos;d please update your patch and re-upload, the cr-linux bot will validate that there aren&apos;t any unforeseen results of this change.

Most of the issues have now been solved in different patches. I will rebase the rest though and reupload it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666704</commentid>
    <comment_count>13</comment_count>
      <attachid>151695</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-11 06:23:32 -0700</bug_when>
    <thetext>Created attachment 151695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680358</commentid>
    <comment_count>14</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-27 02:42:49 -0700</bug_when>
    <thetext>I think I finally figued out why some of the these operations are performed in the wrong type when they shouldn&apos;t.

Take the case:
FractionalLayoutUnit a, b;
a = a + b / 2;

This will cause a compile error because the statement is ambigious, cause it CAN NOT be performed in FractionalLayoutUnit, and instead has to be performed in int or floats.

The problem is that all the operators take &apos;const FractionalLayoutUnit&amp;&apos; as argument, and this prevents them from operating on the result of a previous operator, because return values are R-values, and you can only take references on L-values.

I don&apos;t think the solution is to use C++11 R-value references though. The FractionalLayoutUnit is only one int, so call by reference is a completely unnecessary optimization, that will only cause subtle bugs like this.

Does that make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680384</commentid>
    <comment_count>15</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-27 03:06:30 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Does that make sense?

I guess not. Sorry for the confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683428</commentid>
    <comment_count>16</comment_count>
      <attachid>151695</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-07-31 13:28:37 -0700</bug_when>
    <thetext>Comment on attachment 151695
Patch

This does make sense, thanks for explaining it and taking the time to help us get it right!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683429</commentid>
    <comment_count>17</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-07-31 13:29:10 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I don&apos;t think the solution is to use C++11 R-value references though. The FractionalLayoutUnit is only one int, so call by reference is a completely unnecessary optimization, that will only cause subtle bugs like this.

Mind filing a bug to cover this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683484</commentid>
    <comment_count>18</comment_count>
      <attachid>151695</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 14:32:20 -0700</bug_when>
    <thetext>Comment on attachment 151695
Patch

Clearing flags on attachment: 151695

Committed r124253: &lt;http://trac.webkit.org/changeset/124253&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683485</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 14:32:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683544</commentid>
    <comment_count>20</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-07-31 15:41:17 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #14)
&gt; &gt; I don&apos;t think the solution is to use C++11 R-value references though. The FractionalLayoutUnit is only one int, so call by reference is a completely unnecessary optimization, that will only cause subtle bugs like this.
&gt; 
&gt; Mind filing a bug to cover this?

No, because I was wrong about the subtle bugs part. As long as it a const reference it can take references of R-values anyway. The reference is still unnecessary, but it is also unnecessary to change it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141105</attachid>
            <date>2012-05-10 01:13:55 -0700</date>
            <delta_ts>2012-05-11 00:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86065-20120510101358.patch</filename>
            <type>text/plain</type>
            <size>4699</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJjYWVkYTAzNDE5ZTli
MzFkNGFhNmZjZDdhYWEyNWRmMjQ4OWI1ZS4uODA2MDFkZTQwYmJkMjUwMWVmM2ZiMTk2YWEyOGU2
Y2FjZTcyY2Q0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTEwICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIEZy
YWN0aW9uYWxVbml0IG1pbm9yIG1hdGggYnVncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgZnVuY3Rpb25hbGl0eS4gTm8gbmV3IHRlc3RzLgor
CisgICAgICAgICogcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0OjplcHNpbG9uKTogVXNlIGZsb2F0IGRpdmlzaW9u
LCBub3QgaW50ZWdlciBkaXZpc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6OmJvdW5kZWRNdWx0aXBs
eSk6IE11bHRpcGx5IGJlZm9yZSBkaXZpc2lvbiwgYW5kIGRpdmlkZSBpbiBsb25nIGxvbmcuCisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvciopOiBNdWx0aXBseSBiZWZvcmUgZGl2aXNpb24sIGFu
ZCBkaXZpZGUgaW4gbG9uZyBsb25nLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IvKTogTXVs
dGlwbHkgYmVmb3JlIGRpdmlzaW9uLCBhbmQgZGl2aWRlIGluIGxvbmcgbG9uZy4KKyAgICAgICAg
KFdlYkNvcmU6Om9wZXJhdG9yLT0pOiBFeHBsaWNpdCBjYXN0LCBubyBjaGFuZ2UgaW4gbWF0aC4K
KyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yKj0pOiBFeHBsaWNpdCBjYXN0IGZvciBoaWdoZXIg
cHJlY2lzaW9uLCBhbmQgZXh0cmEgZmxvYXQgdmVyc2lvbiBvZiBvcGVyYXRvcio9LgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmg6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0U2l6ZTo6c2NhbGUpOiBTY2FsZSBpbiBGcmFjdGlvbmFs
VW5pdHMgbm90IGludGVnZXJzLgorCiAyMDEyLTA1LTEwICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQXV0b2NvbXBsZXRl
IGZvciBDU1MgcHJvcGVydHkgdmFsdWVzIGluIHRoZSBTdHlsZXMgcGFuZSBiZWhhdmluZyBpbmNv
cnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExh
eW91dFVuaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyYWN0aW9uYWxMYXlvdXRVbml0
LmgKaW5kZXggMTg5OWI5OTJmNGM0MzAxYTNkNjA5YjM3ZDdiYWM3MDQ1ODk4ZjI2NS4uNzdlYWM0
MTdlYzI5ZWFlNjhjOGY0OWQ0NjAyNzk5NDVkMDk2ZGYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GcmFjdGlvbmFsTGF5b3V0VW5pdC5oCkBAIC0xNDksNyArMTQ5LDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gdG9JbnQoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgZmxvYXQg
ZXBzaWxvbigpIHsgcmV0dXJuIDEgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CisgICAgc3Rh
dGljIGZsb2F0IGVwc2lsb24oKSB7IHJldHVybiAxLiAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7
IH0KICAgICBzdGF0aWMgY29uc3QgRnJhY3Rpb25hbExheW91dFVuaXQgbWF4KCkKICAgICB7CiAg
ICAgICAgIEZyYWN0aW9uYWxMYXlvdXRVbml0IG07CkBAIC0zNDUsNyArMzQ1LDcgQEAgaW5saW5l
IEZyYWN0aW9uYWxMYXlvdXRVbml0IGJvdW5kZWRNdWx0aXBseShjb25zdCBGcmFjdGlvbmFsTGF5
b3V0VW5pdCYgYSwgY29uc3QKIHsKICNpZiBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKQogICAgIEZy
YWN0aW9uYWxMYXlvdXRVbml0IHJldHVyblZhbDsKLSAgICBsb25nIGxvbmcgcmF3VmFsID0gc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihhLnJhd1ZhbHVlKCkpICogYi5yYXdWYWx1ZSgpIC8ga0ZpeGVk
UG9pbnREZW5vbWluYXRvcjsKKyAgICBsb25nIGxvbmcgcmF3VmFsID0gKHN0YXRpY19jYXN0PGxv
bmcgbG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFsdWUoKSkgLyBrRml4ZWRQb2ludERlbm9t
aW5hdG9yOwogICAgIGlmIChyYXdWYWwgPiBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgp
KQogICAgICAgICByZXR1cm4gRnJhY3Rpb25hbExheW91dFVuaXQ6Om1heCgpOwogICAgIGlmIChy
YXdWYWwgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbigpKQpAQCAtMzYxLDcgKzM2MSw3
IEBAIGlubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCBvcGVyYXRvciooY29uc3QgRnJhY3Rpb25h
bExheW91dFVuaXQmIGEsIGNvbnN0IEZyYWN0CiB7CiAjaWYgRU5BQkxFKFNVQlBJWEVMX0xBWU9V
VCkKICAgICBGcmFjdGlvbmFsTGF5b3V0VW5pdCByZXR1cm5WYWw7Ci0gICAgbG9uZyBsb25nIHJh
d1ZhbCA9IHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFsdWUo
KSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgbG9uZyBsb25nIHJhd1ZhbCA9IChzdGF0
aWNfY2FzdDxsb25nIGxvbmc+KGEucmF3VmFsdWUoKSkgKiBiLnJhd1ZhbHVlKCkpIC8ga0ZpeGVk
UG9pbnREZW5vbWluYXRvcjsKICAgICByZXR1cm5WYWwuc2V0UmF3VmFsdWUocmF3VmFsKTsKICAg
ICByZXR1cm4gcmV0dXJuVmFsOwogI2Vsc2UKQEAgLTQxMyw3ICs0MTMsNyBAQCBpbmxpbmUgRnJh
Y3Rpb25hbExheW91dFVuaXQgb3BlcmF0b3IvKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRVbml0JiBh
LCBjb25zdCBGcmFjdAogewogI2lmIEVOQUJMRShTVUJQSVhFTF9MQVlPVVQpCiAgICAgRnJhY3Rp
b25hbExheW91dFVuaXQgcmV0dXJuVmFsOwotICAgIGxvbmcgbG9uZyByYXdWYWwgPSBzdGF0aWNf
Y2FzdDxsb25nIGxvbmc+KGtGaXhlZFBvaW50RGVub21pbmF0b3IpICogYS5yYXdWYWx1ZSgpIC8g
Yi5yYXdWYWx1ZSgpOworICAgIGxvbmcgbG9uZyByYXdWYWwgPSAoc3RhdGljX2Nhc3Q8bG9uZyBs
b25nPihrRml4ZWRQb2ludERlbm9taW5hdG9yKSAqIGEucmF3VmFsdWUoKSkgLyBiLnJhd1ZhbHVl
KCk7CiAgICAgcmV0dXJuVmFsLnNldFJhd1ZhbHVlKHJhd1ZhbCk7CiAgICAgcmV0dXJuIHJldHVy
blZhbDsKICNlbHNlCkBAIC01NjksNyArNTY5LDcgQEAgaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRV
bml0JiBvcGVyYXRvci09KEZyYWN0aW9uYWxMYXlvdXRVbml0JiBhLCBjb25zdCBGcmFjdGlvbmEK
IAogaW5saW5lIGZsb2F0JiBvcGVyYXRvci09KGZsb2F0JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5
b3V0VW5pdCYgYikKIHsKLSAgICBhID0gYSAtIGI7CisgICAgYSA9IGEgLSBiLnRvRmxvYXQoKTsK
ICAgICByZXR1cm4gYTsKIH0KIApAQCAtNTgxLDcgKzU4MSwxNCBAQCBpbmxpbmUgRnJhY3Rpb25h
bExheW91dFVuaXQmIG9wZXJhdG9yKj0oRnJhY3Rpb25hbExheW91dFVuaXQmIGEsIGludCBiKQog
CiBpbmxpbmUgRnJhY3Rpb25hbExheW91dFVuaXQmIG9wZXJhdG9yKj0oRnJhY3Rpb25hbExheW91
dFVuaXQmIGEsIGZsb2F0IGIpCiB7Ci0gICAgYSA9IGEgKiBiOworICAgIGZsb2F0IHZhbHVlID0g
YS50b0Zsb2F0KCkgKiBiOworICAgIGEgPSB2YWx1ZTsKKyAgICByZXR1cm4gYTsKK30KKworaW5s
aW5lIGZsb2F0JiBvcGVyYXRvcio9KGZsb2F0JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0VW5p
dCYgYikKK3sKKyAgICBhID0gYSAqIGIudG9GbG9hdCgpOwogICAgIHJldHVybiBhOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5
b3V0U2l6ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExh
eW91dFNpemUuaAppbmRleCBjMmYwYWU4OWFjYzhkYjc3MTIyZDhlM2FhMzQ3Y2I4ZGYwMDYyMWM4
Li4yODFiZjU1YTM0OTVmYWJmNWVjZDVhM2YwNDM4MTk5NDBiOTBlZjQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXpl
LmgKQEAgLTY2LDggKzY2LDggQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2NhbGUoZmxvYXQg
c2NhbGUpCiAgICAgewotICAgICAgICBtX3dpZHRoID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0aWNf
Y2FzdDxmbG9hdD4obV93aWR0aCkgKiBzY2FsZSk7Ci0gICAgICAgIG1faGVpZ2h0ID0gc3RhdGlj
X2Nhc3Q8aW50PihzdGF0aWNfY2FzdDxmbG9hdD4obV9oZWlnaHQpICogc2NhbGUpOworICAgICAg
ICBtX3dpZHRoICo9IHNjYWxlOworICAgICAgICBtX2hlaWdodCAqPSBzY2FsZTsKICAgICB9CiAg
ICAgCiAgICAgRnJhY3Rpb25hbExheW91dFNpemUgZXhwYW5kZWRUbyhjb25zdCBGcmFjdGlvbmFs
TGF5b3V0U2l6ZSYgb3RoZXIpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141345</attachid>
            <date>2012-05-11 00:49:57 -0700</date>
            <delta_ts>2012-05-21 10:04:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86065-20120511095001.patch</filename>
            <type>text/plain</type>
            <size>4676</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJjYWVkYTAzNDE5ZTli
MzFkNGFhNmZjZDdhYWEyNWRmMjQ4OWI1ZS4uZjQ4N2FjN2EyZGVkMDVjOWMzOWE5YTgyZjU2N2Y1
Y2FmYjQ3MzgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTEwICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIEZy
YWN0aW9uYWxMYXlvdXRVbml0IG1pbm9yIG1hdGggYnVncworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgZnVuY3Rpb25hbGl0eS4gTm8gbmV3IHRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0OjplcHNpbG9uKTogVXNlIGZsb2F0IGRp
dmlzaW9uLCBub3QgaW50ZWdlciBkaXZpc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6OmJvdW5kZWRN
dWx0aXBseSk6IE11bHRpcGx5IGJlZm9yZSBkaXZpc2lvbiwgYW5kIGRpdmlkZSBpbiBsb25nIGxv
bmcuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvciopOiBNdWx0aXBseSBiZWZvcmUgZGl2aXNp
b24sIGFuZCBkaXZpZGUgaW4gbG9uZyBsb25nLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3Iv
KTogTXVsdGlwbHkgYmVmb3JlIGRpdmlzaW9uLCBhbmQgZGl2aWRlIGluIGxvbmcgbG9uZy4KKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yKj0pOiBFeHBsaWNpdCBjYXN0IGZvciBjb25zaXN0ZW5j
eS4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yKj0pOiBFeHBsaWNpdCBjYXN0IGZvciBoaWdo
ZXIgcHJlY2lzaW9uLCBhbmQgZXh0cmEgZmxvYXQgdmVyc2lvbiBvZiBvcGVyYXRvcio9LgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmg6CisgICAgICAg
IChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0U2l6ZTo6c2NhbGUpOiBTY2FsZSBpbiBGcmFjdGlv
bmFsVW5pdHMgbm90IGludGVnZXJzLgorCiAyMDEyLTA1LTEwICBBbGV4YW5kZXIgUGF2bG92ICA8
YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQXV0b2NvbXBs
ZXRlIGZvciBDU1MgcHJvcGVydHkgdmFsdWVzIGluIHRoZSBTdHlsZXMgcGFuZSBiZWhhdmluZyBp
bmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25h
bExheW91dFVuaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyYWN0aW9uYWxMYXlvdXRV
bml0LmgKaW5kZXggMTg5OWI5OTJmNGM0MzAxYTNkNjA5YjM3ZDdiYWM3MDQ1ODk4ZjI2NS4uNTYx
ODViY2QyMGFkMjJjNDRiOTNhMzFhMjVmYWE0YzU0ZjYzZDY4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GcmFjdGlvbmFsTGF5b3V0VW5pdC5oCkBAIC0xNDksNyArMTQ5LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gdG9JbnQoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgZmxv
YXQgZXBzaWxvbigpIHsgcmV0dXJuIDEgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CisgICAg
c3RhdGljIGZsb2F0IGVwc2lsb24oKSB7IHJldHVybiAxLiAvIGtGaXhlZFBvaW50RGVub21pbmF0
b3I7IH0KICAgICBzdGF0aWMgY29uc3QgRnJhY3Rpb25hbExheW91dFVuaXQgbWF4KCkKICAgICB7
CiAgICAgICAgIEZyYWN0aW9uYWxMYXlvdXRVbml0IG07CkBAIC0zNDUsNyArMzQ1LDcgQEAgaW5s
aW5lIEZyYWN0aW9uYWxMYXlvdXRVbml0IGJvdW5kZWRNdWx0aXBseShjb25zdCBGcmFjdGlvbmFs
TGF5b3V0VW5pdCYgYSwgY29uc3QKIHsKICNpZiBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKQogICAg
IEZyYWN0aW9uYWxMYXlvdXRVbml0IHJldHVyblZhbDsKLSAgICBsb25nIGxvbmcgcmF3VmFsID0g
c3RhdGljX2Nhc3Q8bG9uZyBsb25nPihhLnJhd1ZhbHVlKCkpICogYi5yYXdWYWx1ZSgpIC8ga0Zp
eGVkUG9pbnREZW5vbWluYXRvcjsKKyAgICBsb25nIGxvbmcgcmF3VmFsID0gKHN0YXRpY19jYXN0
PGxvbmcgbG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFsdWUoKSkgLyBrRml4ZWRQb2ludERl
bm9taW5hdG9yOwogICAgIGlmIChyYXdWYWwgPiBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1h
eCgpKQogICAgICAgICByZXR1cm4gRnJhY3Rpb25hbExheW91dFVuaXQ6Om1heCgpOwogICAgIGlm
IChyYXdWYWwgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1pbigpKQpAQCAtMzYxLDcgKzM2
MSw3IEBAIGlubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCBvcGVyYXRvciooY29uc3QgRnJhY3Rp
b25hbExheW91dFVuaXQmIGEsIGNvbnN0IEZyYWN0CiB7CiAjaWYgRU5BQkxFKFNVQlBJWEVMX0xB
WU9VVCkKICAgICBGcmFjdGlvbmFsTGF5b3V0VW5pdCByZXR1cm5WYWw7Ci0gICAgbG9uZyBsb25n
IHJhd1ZhbCA9IHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYS5yYXdWYWx1ZSgpKSAqIGIucmF3VmFs
dWUoKSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7CisgICAgbG9uZyBsb25nIHJhd1ZhbCA9IChz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KGEucmF3VmFsdWUoKSkgKiBiLnJhd1ZhbHVlKCkpIC8ga0Zp
eGVkUG9pbnREZW5vbWluYXRvcjsKICAgICByZXR1cm5WYWwuc2V0UmF3VmFsdWUocmF3VmFsKTsK
ICAgICByZXR1cm4gcmV0dXJuVmFsOwogI2Vsc2UKQEAgLTQxMyw3ICs0MTMsNyBAQCBpbmxpbmUg
RnJhY3Rpb25hbExheW91dFVuaXQgb3BlcmF0b3IvKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRVbml0
JiBhLCBjb25zdCBGcmFjdAogewogI2lmIEVOQUJMRShTVUJQSVhFTF9MQVlPVVQpCiAgICAgRnJh
Y3Rpb25hbExheW91dFVuaXQgcmV0dXJuVmFsOwotICAgIGxvbmcgbG9uZyByYXdWYWwgPSBzdGF0
aWNfY2FzdDxsb25nIGxvbmc+KGtGaXhlZFBvaW50RGVub21pbmF0b3IpICogYS5yYXdWYWx1ZSgp
IC8gYi5yYXdWYWx1ZSgpOworICAgIGxvbmcgbG9uZyByYXdWYWwgPSAoc3RhdGljX2Nhc3Q8bG9u
ZyBsb25nPihrRml4ZWRQb2ludERlbm9taW5hdG9yKSAqIGEucmF3VmFsdWUoKSkgLyBiLnJhd1Zh
bHVlKCk7CiAgICAgcmV0dXJuVmFsLnNldFJhd1ZhbHVlKHJhd1ZhbCk7CiAgICAgcmV0dXJuIHJl
dHVyblZhbDsKICNlbHNlCkBAIC01NjksNyArNTY5LDcgQEAgaW5saW5lIEZyYWN0aW9uYWxMYXlv
dXRVbml0JiBvcGVyYXRvci09KEZyYWN0aW9uYWxMYXlvdXRVbml0JiBhLCBjb25zdCBGcmFjdGlv
bmEKIAogaW5saW5lIGZsb2F0JiBvcGVyYXRvci09KGZsb2F0JiBhLCBjb25zdCBGcmFjdGlvbmFs
TGF5b3V0VW5pdCYgYikKIHsKLSAgICBhID0gYSAtIGI7CisgICAgYSA9IGEgLSBiLnRvRmxvYXQo
KTsKICAgICByZXR1cm4gYTsKIH0KIApAQCAtNTgxLDcgKzU4MSwxMyBAQCBpbmxpbmUgRnJhY3Rp
b25hbExheW91dFVuaXQmIG9wZXJhdG9yKj0oRnJhY3Rpb25hbExheW91dFVuaXQmIGEsIGludCBi
KQogCiBpbmxpbmUgRnJhY3Rpb25hbExheW91dFVuaXQmIG9wZXJhdG9yKj0oRnJhY3Rpb25hbExh
eW91dFVuaXQmIGEsIGZsb2F0IGIpCiB7Ci0gICAgYSA9IGEgKiBiOworICAgIGEgPSBhLnRvRmxv
YXQoKSAqIGI7CisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBmbG9hdCYgb3BlcmF0b3IqPShm
bG9hdCYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFVuaXQmIGIpCit7CisgICAgYSA9IGEgKiBi
LnRvRmxvYXQoKTsKICAgICByZXR1cm4gYTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmgKaW5kZXggYzJmMGFl
ODlhY2M4ZGI3NzEyMmQ4ZTNhYTM0N2NiOGRmMDA2MjFjOC4uMjgxYmY1NWEzNDk1ZmFiZjVlY2Q1
YTNmMDQzODE5OTQwYjkwZWY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5oCkBAIC02Niw4ICs2Niw4IEBAIHB1
YmxpYzoKICAgICAKICAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKQogICAgIHsKLSAgICAgICAg
bV93aWR0aCA9IHN0YXRpY19jYXN0PGludD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fd2lkdGgpICog
c2NhbGUpOwotICAgICAgICBtX2hlaWdodCA9IHN0YXRpY19jYXN0PGludD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1faGVpZ2h0KSAqIHNjYWxlKTsKKyAgICAgICAgbV93aWR0aCAqPSBzY2FsZTsKKyAg
ICAgICAgbV9oZWlnaHQgKj0gc2NhbGU7CiAgICAgfQogICAgIAogICAgIEZyYWN0aW9uYWxMYXlv
dXRTaXplIGV4cGFuZGVkVG8oY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIG90aGVyKSBjb25z
dAo=
</data>
<flag name="review"
          id="147457"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143053</attachid>
            <date>2012-05-21 10:04:36 -0700</date>
            <delta_ts>2012-07-11 06:23:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>4908</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">Y29tbWl0IGQzMTZkZmQ5YjI3MDhiZjM0OGJkZGI5OTE0NzgxMjMyODk2MzZlODYKQXV0aG9yOiBB
bGxhbiBTYW5kZmVsZCBKZW5zZW4gPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CkRhdGU6ICAgTW9u
IE1heSAyMSAxNzozODozOSAyMDEyICswMjAwCgogICAgRml4IGZyYWN0aW9uYWwgdW5pdCBvcGVy
YXRpb25zCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVmYTVlYTIuLjhkMTc4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNiBAQAogMjAxMi0wNS0yMSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVu
c2VuQG5va2lhLmNvbT4KIAorICAgICAgICBGcmFjdGlvbmFsTGF5b3V0VW5pdCBtaW5vciBtYXRo
IGJ1Z3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2
MDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50IGEgY29uc2lzdGVudCBzZXQgb2Ygc3ViamVjdCBtb2RpZnlpbmcgb3BlcmF0b3JzLCB0
byBlbnN1cmUKKyAgICAgICAgb3BlcmF0aW9ucyB0aGF0IG5lZWQgdG8gYmUgaW4gZmxvYXQgaGFw
cGVucyBpbiBmbG9hdC4KKworICAgICAgICBObyBuZXcgZnVuY3Rpb25hbGl0eS4gTm8gbmV3IHRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0OjplcHNpbG9uKTogUGVyZm9ybSBkaXZp
c2lvbiBpbiBmbG9hdC4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yKz0pOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3ItPSk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcio9KToKKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yLz0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ZyYWN0aW9uYWxMYXlvdXRTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFjdGlvbmFsTGF5
b3V0U2l6ZTo6c2NhbGUpOiBTY2FsZSBpbiBGcmFjdGlvbmFsVW5pdHMgbm90IGludGVnZXJzLgor
CisyMDEyLTA1LTIxICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEu
Y29tPgorCiAgICAgICAgIFtRdF0gT3B0aW9uYWxseSBzdXBwb3J0IHNtb290aC1zY3JvbGxpbmcg
b24gYWxsIHBsYXRmb3JtcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQ5MjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJh
Y3Rpb25hbExheW91dFVuaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyYWN0aW9uYWxM
YXlvdXRVbml0LmgKaW5kZXggNzlkMzc0Ni4uYWZmYzFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GcmFjdGlvbmFsTGF5b3V0VW5pdC5oCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gdG9JbnQoKTsKICAgICB9CiAKLSAgICBzdGF0aWMgZmxvYXQg
ZXBzaWxvbigpIHsgcmV0dXJuIDEgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CisgICAgc3Rh
dGljIGZsb2F0IGVwc2lsb24oKSB7IHJldHVybiAxLjBmIC8ga0ZpeGVkUG9pbnREZW5vbWluYXRv
cjsgfQogICAgIHN0YXRpYyBjb25zdCBGcmFjdGlvbmFsTGF5b3V0VW5pdCBtYXgoKQogICAgIHsK
ICAgICAgICAgRnJhY3Rpb25hbExheW91dFVuaXQgbTsKQEAgLTU0Niw4ICs1NDYsOSBAQCBpbmxp
bmUgRnJhY3Rpb25hbExheW91dFVuaXQmIG9wZXJhdG9yKz0oRnJhY3Rpb25hbExheW91dFVuaXQm
IGEsIGNvbnN0IEZyYWN0aW9uYQogICAgIGEgPSBhICsgYjsKICAgICByZXR1cm4gYTsKIH0KKy8v
IG9wZXJhdG9yKz0oRnJhY3Rpb25hbExheW91dFVuaXQmIGEsIGludCBiKSBpcyBzdXBwb3J0ZWQg
YnkgdGhlIG9wZXJhdG9yIGFib3ZlICsgRnJhY3Rpb25hbExheW91dFVuaXQoaW50KS4KIAotaW5s
aW5lIEZyYWN0aW9uYWxMYXlvdXRVbml0JiBvcGVyYXRvcis9KEZyYWN0aW9uYWxMYXlvdXRVbml0
JiBhLCBpbnQgYikKK2lubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgb3BlcmF0b3IrPShGcmFj
dGlvbmFsTGF5b3V0VW5pdCYgYSwgZmxvYXQgYikKIHsKICAgICBhID0gYSArIGI7CiAgICAgcmV0
dXJuIGE7CkBAIC01NTksMTMgKzU2MCwxNCBAQCBpbmxpbmUgZmxvYXQmIG9wZXJhdG9yKz0oZmxv
YXQmIGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRVbml0JiBiKQogICAgIHJldHVybiBhOwogfQog
Ci1pbmxpbmUgRnJhY3Rpb25hbExheW91dFVuaXQmIG9wZXJhdG9yLT0oRnJhY3Rpb25hbExheW91
dFVuaXQmIGEsIGludCBiKQoraW5saW5lIEZyYWN0aW9uYWxMYXlvdXRVbml0JiBvcGVyYXRvci09
KEZyYWN0aW9uYWxMYXlvdXRVbml0JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYikK
IHsKICAgICBhID0gYSAtIGI7CiAgICAgcmV0dXJuIGE7CiB9CisvLyBvcGVyYXRvci09KEZyYWN0
aW9uYWxMYXlvdXRVbml0JiBhLCBpbnQgYikgaXMgc3VwcG9ydGVkIGJ5IHRoZSBvcGVyYXRvciBh
Ym92ZSArIEZyYWN0aW9uYWxMYXlvdXRVbml0KGludCkuCiAKLWlubGluZSBGcmFjdGlvbmFsTGF5
b3V0VW5pdCYgb3BlcmF0b3ItPShGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYSwgY29uc3QgRnJhY3Rp
b25hbExheW91dFVuaXQmIGIpCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFVuaXQmIG9wZXJhdG9y
LT0oRnJhY3Rpb25hbExheW91dFVuaXQmIGEsIGZsb2F0IGIpCiB7CiAgICAgYSA9IGEgLSBiOwog
ICAgIHJldHVybiBhOwpAQCAtNTc3LDExICs1NzksMTIgQEAgaW5saW5lIGZsb2F0JiBvcGVyYXRv
ci09KGZsb2F0JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYikKICAgICByZXR1cm4g
YTsKIH0KIAotaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRVbml0JiBvcGVyYXRvcio9KEZyYWN0aW9u
YWxMYXlvdXRVbml0JiBhLCBpbnQgYikKK2lubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgb3Bl
cmF0b3IqPShGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFVu
aXQmIGIpCiB7CiAgICAgYSA9IGEgKiBiOwogICAgIHJldHVybiBhOwogfQorLy8gb3BlcmF0b3Iq
PShGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYSwgaW50IGIpIGlzIHN1cHBvcnRlZCBieSB0aGUgb3Bl
cmF0b3IgYWJvdmUgKyBGcmFjdGlvbmFsTGF5b3V0VW5pdChpbnQpLgogCiBpbmxpbmUgRnJhY3Rp
b25hbExheW91dFVuaXQmIG9wZXJhdG9yKj0oRnJhY3Rpb25hbExheW91dFVuaXQmIGEsIGZsb2F0
IGIpCiB7CkBAIC01ODksNiArNTkyLDMxIEBAIGlubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYg
b3BlcmF0b3IqPShGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYSwgZmxvYXQgYikKICAgICByZXR1cm4g
YTsKIH0KIAoraW5saW5lIGZsb2F0JiBvcGVyYXRvcio9KGZsb2F0JiBhLCBjb25zdCBGcmFjdGlv
bmFsTGF5b3V0VW5pdCYgYikKK3sKKyAgICBhID0gYSAqIGI7CisgICAgcmV0dXJuIGE7Cit9CisK
K2lubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgb3BlcmF0b3IvPShGcmFjdGlvbmFsTGF5b3V0
VW5pdCYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFVuaXQmIGIpCit7CisgICAgYSA9IGEgLyBi
OworICAgIHJldHVybiBhOworfQorLy8gb3BlcmF0b3IvPShGcmFjdGlvbmFsTGF5b3V0VW5pdCYg
YSwgaW50IGIpIGlzIHN1cHBvcnRlZCBieSB0aGUgb3BlcmF0b3IgYWJvdmUgKyBGcmFjdGlvbmFs
TGF5b3V0VW5pdChpbnQpLgorCitpbmxpbmUgRnJhY3Rpb25hbExheW91dFVuaXQmIG9wZXJhdG9y
Lz0oRnJhY3Rpb25hbExheW91dFVuaXQmIGEsIGZsb2F0IGIpCit7CisgICAgYSA9IGEgLyBiOwor
ICAgIHJldHVybiBhOworfQorCitpbmxpbmUgZmxvYXQmIG9wZXJhdG9yLz0oZmxvYXQmIGEsIGNv
bnN0IEZyYWN0aW9uYWxMYXlvdXRVbml0JiBiKQoreworICAgIGEgPSBhIC8gYjsKKyAgICByZXR1
cm4gYTsKK30KKwogaW5saW5lIGludCBzbmFwU2l6ZVRvUGl4ZWwoRnJhY3Rpb25hbExheW91dFVu
aXQgc2l6ZSwgRnJhY3Rpb25hbExheW91dFVuaXQgbG9jYXRpb24pIAogewogICAgIHJldHVybiAo
bG9jYXRpb24gKyBzaXplKS5yb3VuZCgpIC0gbG9jYXRpb24ucm91bmQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5o
CmluZGV4IDQ5YmQ5ZmQuLjRlZDk3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuaApAQCAtNzQsOCArNzQsOCBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzY2FsZShmbG9hdCBzY2FsZSkKICAgICB7Ci0gICAg
ICAgIG1fd2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRpY19jYXN0PGZsb2F0PihtX3dpZHRo
KSAqIHNjYWxlKTsKLSAgICAgICAgbV9oZWlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRpY19j
YXN0PGZsb2F0PihtX2hlaWdodCkgKiBzY2FsZSk7CisgICAgICAgIG1fd2lkdGggKj0gc2NhbGU7
CisgICAgICAgIG1faGVpZ2h0ICo9IHNjYWxlOwogICAgIH0KICAgICAKICAgICBGcmFjdGlvbmFs
TGF5b3V0U2l6ZSBleHBhbmRlZFRvKGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRTaXplJiBvdGhlcikg
Y29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151695</attachid>
            <date>2012-07-11 06:23:32 -0700</date>
            <delta_ts>2012-07-31 14:32:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86065-20120711152335.patch</filename>
            <type>text/plain</type>
            <size>3707</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZmY2JkNDVmOGExMzY3
M2IzOGM2NTMyNmFlOWIwMzdhNDA3MjMwNi4uNTAxNWZiZmExNDQ4NzAzY2NhNTNhYWRhMDQzZTlh
OWIzMGYwZjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA3LTExICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIEZy
YWN0aW9uYWxMYXlvdXRVbml0IG1pbm9yIG1hdGggYnVncworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgYSBjb25zaXN0ZW50IHNldCBvZiBz
dWJqZWN0IG1vZGlmeWluZyBvcGVyYXRvcnMsIHRvIGVuc3VyZQorICAgICAgICBvcGVyYXRpb25z
IHRoYXQgbmVlZCB0byBiZSBpbiBmbG9hdCBhcmUgcGVyZm9ybWVkIGluIGZsb2F0LgorCisgICAg
ICAgIFNjYWxlIEZyYWN0aW9uYWxMYXlvdXRTaXplIGluIEZyYWN0aW9uYWxMYXlvdXRVbml0cyBp
bnN0ZWFkIG9mIGludGVyZ2Vycy4KKworICAgICAgICBObyBuZXcgZnVuY3Rpb25hbGl0eS4gTm8g
bmV3IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaDoK
KyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yLT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0
b3IqPSk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvci89KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RnJh
Y3Rpb25hbExheW91dFNpemU6OnNjYWxlKToKKwogMjAxMi0wNy0xMSAgS2VuaWNoaSBJc2hpYmFz
aGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGRpbmcgSGFy
ZkJ1enotbmcgZm9yIExpbnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
cmFjdGlvbmFsTGF5b3V0VW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25h
bExheW91dFVuaXQuaAppbmRleCAyMWM1MjY0MTA5ODMzNzBhZjNlZmRlMGJlMzBmY2I2ODIyYzk3
M2JiLi5hMTVhM2U3ZjYxZjc2OGIyZDIyYjVkM2Q2OWQ0NmZhMWU0MzQ5YTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFjdGlvbmFsTGF5b3V0VW5pdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZyYWN0aW9uYWxMYXlvdXRVbml0LmgKQEAgLTU4NSwxNyAr
NTg1LDI0IEBAIGlubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgb3BlcmF0b3ItPShGcmFjdGlv
bmFsTGF5b3V0VW5pdCYgYSwgY29uc3QgRnJhY3Rpb25hCiAgICAgcmV0dXJuIGE7CiB9CiAKK2lu
bGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgb3BlcmF0b3ItPShGcmFjdGlvbmFsTGF5b3V0VW5p
dCYgYSwgZmxvYXQgYikKK3sKKyAgICBhID0gYSAtIGI7CisgICAgcmV0dXJuIGE7Cit9CisKIGlu
bGluZSBmbG9hdCYgb3BlcmF0b3ItPShmbG9hdCYgYSwgY29uc3QgRnJhY3Rpb25hbExheW91dFVu
aXQmIGIpCiB7CiAgICAgYSA9IGEgLSBiOwogICAgIHJldHVybiBhOwogfQogCi1pbmxpbmUgRnJh
Y3Rpb25hbExheW91dFVuaXQmIG9wZXJhdG9yKj0oRnJhY3Rpb25hbExheW91dFVuaXQmIGEsIGlu
dCBiKQoraW5saW5lIEZyYWN0aW9uYWxMYXlvdXRVbml0JiBvcGVyYXRvcio9KEZyYWN0aW9uYWxM
YXlvdXRVbml0JiBhLCBjb25zdCBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYikKIHsKICAgICBhID0g
YSAqIGI7CiAgICAgcmV0dXJuIGE7CiB9CisvLyBvcGVyYXRvcio9KEZyYWN0aW9uYWxMYXlvdXRV
bml0JiBhLCBpbnQgYikgaXMgc3VwcG9ydGVkIGJ5IHRoZSBvcGVyYXRvciBhYm92ZSBwbHVzIEZy
YWN0aW9uYWxMYXlvdXRVbml0KGludCkuCiAKIGlubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYg
b3BlcmF0b3IqPShGcmFjdGlvbmFsTGF5b3V0VW5pdCYgYSwgZmxvYXQgYikKIHsKQEAgLTYwMyw2
ICs2MTAsMzEgQEAgaW5saW5lIEZyYWN0aW9uYWxMYXlvdXRVbml0JiBvcGVyYXRvcio9KEZyYWN0
aW9uYWxMYXlvdXRVbml0JiBhLCBmbG9hdCBiKQogICAgIHJldHVybiBhOwogfQogCitpbmxpbmUg
ZmxvYXQmIG9wZXJhdG9yKj0oZmxvYXQmIGEsIGNvbnN0IEZyYWN0aW9uYWxMYXlvdXRVbml0JiBi
KQoreworICAgIGEgPSBhICogYjsKKyAgICByZXR1cm4gYTsKK30KKworaW5saW5lIEZyYWN0aW9u
YWxMYXlvdXRVbml0JiBvcGVyYXRvci89KEZyYWN0aW9uYWxMYXlvdXRVbml0JiBhLCBjb25zdCBG
cmFjdGlvbmFsTGF5b3V0VW5pdCYgYikKK3sKKyAgICBhID0gYSAvIGI7CisgICAgcmV0dXJuIGE7
Cit9CisvLyBvcGVyYXRvci89KEZyYWN0aW9uYWxMYXlvdXRVbml0JiBhLCBpbnQgYikgaXMgc3Vw
cG9ydGVkIGJ5IHRoZSBvcGVyYXRvciBhYm92ZSBwbHVzIEZyYWN0aW9uYWxMYXlvdXRVbml0KGlu
dCkuCisKK2lubGluZSBGcmFjdGlvbmFsTGF5b3V0VW5pdCYgb3BlcmF0b3IvPShGcmFjdGlvbmFs
TGF5b3V0VW5pdCYgYSwgZmxvYXQgYikKK3sKKyAgICBhID0gYSAvIGI7CisgICAgcmV0dXJuIGE7
Cit9CisKK2lubGluZSBmbG9hdCYgb3BlcmF0b3IvPShmbG9hdCYgYSwgY29uc3QgRnJhY3Rpb25h
bExheW91dFVuaXQmIGIpCit7CisgICAgYSA9IGEgLyBiOworICAgIHJldHVybiBhOworfQorCiBp
bmxpbmUgaW50IHNuYXBTaXplVG9QaXhlbChGcmFjdGlvbmFsTGF5b3V0VW5pdCBzaXplLCBGcmFj
dGlvbmFsTGF5b3V0VW5pdCBsb2NhdGlvbikgCiB7CiAgICAgcmV0dXJuIChsb2NhdGlvbiArIHNp
emUpLnJvdW5kKCkgLSBsb2NhdGlvbi5yb3VuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZyYWN0aW9uYWxMYXlvdXRTaXplLmgKaW5kZXggNDliZDlm
ZGM3NDg3ZTY3YjgxN2YwMGRlYTg3NDMzMjczYTUxN2QwNS4uNGVkOTdlMzQ5NDQxMTlhMTljMjdk
ZWY1MGM5YmFiMTA1Y2VlOTVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRnJhY3Rpb25hbExheW91dFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GcmFjdGlvbmFsTGF5b3V0U2l6ZS5oCkBAIC03NCw4ICs3NCw4IEBAIHB1
YmxpYzoKICAgICAKICAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKQogICAgIHsKLSAgICAgICAg
bV93aWR0aCA9IHN0YXRpY19jYXN0PGludD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fd2lkdGgpICog
c2NhbGUpOwotICAgICAgICBtX2hlaWdodCA9IHN0YXRpY19jYXN0PGludD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1faGVpZ2h0KSAqIHNjYWxlKTsKKyAgICAgICAgbV93aWR0aCAqPSBzY2FsZTsKKyAg
ICAgICAgbV9oZWlnaHQgKj0gc2NhbGU7CiAgICAgfQogICAgIAogICAgIEZyYWN0aW9uYWxMYXlv
dXRTaXplIGV4cGFuZGVkVG8oY29uc3QgRnJhY3Rpb25hbExheW91dFNpemUmIG90aGVyKSBjb25z
dAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>