<?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>26978</bug_id>
          
          <creation_ts>2009-07-05 07:54:53 -0700</creation_ts>
          <short_desc>valueOf called in wrong order in atan2 and date constructors.</short_desc>
          <delta_ts>2010-09-26 14:38:46 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>EasyFix</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Corry">erikcorry</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129859</commentid>
    <comment_count>0</comment_count>
    <who name="Erik Corry">erikcorry</who>
    <bug_when>2009-07-05 07:54:53 -0700</bug_when>
    <thetext>The attached js file should produce

onetwo
1234567
1234567

instead it produces

twoone
12345671234567
12345671234567

Replace &apos;print&apos; with &apos;alert&apos; to use it in a browser instead of standalone jsc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129860</commentid>
    <comment_count>1</comment_count>
      <attachid>32274</attachid>
    <who name="Erik Corry">erikcorry</who>
    <bug_when>2009-07-05 07:56:07 -0700</bug_when>
    <thetext>Created attachment 32274
Test case standalone js script

Attaching test case failed.  Trying again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285079</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2010-09-25 21:47:01 -0700</bug_when>
    <thetext>I think these are actually two distinct bugs.

I believe the issue with atan2 is due to the fact that the order of evaluation of the arguments to a function call is unspecified in C++.  I think the compiler is actually reordering the calls to the toNumber() function in mathProtoFuncATan2().  When I ran it in gdb, argument(1) was evaluated before argument(0), which seems to confirm this hypothesis.

As for the Date constructors, the issue was that the arguments were being evaluated to numeric representations twice, once by toNumber() and once by toInt32(),  therefore the valueOf function was getting called twice.

I&apos;ve created three separate patches, one for each issue and one for the overall changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285080</commentid>
    <comment_count>3</comment_count>
      <attachid>68841</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2010-09-25 21:48:13 -0700</bug_when>
    <thetext>Created attachment 68841
Fix for DateConstructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285081</commentid>
    <comment_count>4</comment_count>
      <attachid>68842</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2010-09-25 21:48:43 -0700</bug_when>
    <thetext>Created attachment 68842
Fix for atan2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285082</commentid>
    <comment_count>5</comment_count>
      <attachid>68843</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2010-09-25 21:49:21 -0700</bug_when>
    <thetext>Created attachment 68843
Change to ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285083</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-25 21:49:56 -0700</bug_when>
    <thetext>Attachment 68841 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/runtime/DateConstructor.cpp:93:  date_fields is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/runtime/DateConstructor.cpp:164:  date_fields is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285084</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-25 21:54:48 -0700</bug_when>
    <thetext>Attachment 68841 did not build on qt:
Build output: http://queues.webkit.org/results/4054142</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285087</commentid>
    <comment_count>8</comment_count>
      <attachid>68842</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-25 22:08:36 -0700</bug_when>
    <thetext>Comment on attachment 68842
Fix for atan2

code is good, but you need to make a changelog -- &quot;prepare-Changelog --bug 26978&quot; will get all the correct formatting done so you can just fill in the details</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285088</commentid>
    <comment_count>9</comment_count>
      <attachid>68841</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-25 22:15:46 -0700</bug_when>
    <thetext>Comment on attachment 68841
Fix for DateConstructor

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

This needs a changelog as well

&gt; JavaScriptCore/runtime/DateConstructor.cpp:100
&gt; +        double date_fields[7];
&gt; +        if (isnan((date_fields[0] = args.at(0).toNumber(exec)))
&gt; +                || isnan((date_fields[1] = args.at(1).toNumber(exec)))
&gt; +                || (numArgs &gt;= 3 &amp;&amp; isnan((date_fields[2] = args.at(2).toNumber(exec))))
&gt; +                || (numArgs &gt;= 4 &amp;&amp; isnan((date_fields[3] = args.at(3).toNumber(exec))))
&gt; +                || (numArgs &gt;= 5 &amp;&amp; isnan((date_fields[4] = args.at(4).toNumber(exec))))
&gt; +                || (numArgs &gt;= 6 &amp;&amp; isnan((date_fields[5] = args.at(5).toNumber(exec))))
&gt; +                || (numArgs &gt;= 7 &amp;&amp; isnan((date_fields[6] = args.at(6).toNumber(exec)))))

I think this be better done as 
double doubleArguments[7] = {args.at(0).toNumber(exec), args.at(1).toNumber(exec), ...};
then
if (isnan(doubleArguments[0]) || ...)

&gt; JavaScriptCore/runtime/DateConstructor.cpp:172
&gt; +    if (isnan((date_fields[0] = exec-&gt;argument(0).toNumber(exec)))
&gt; +            || isnan((date_fields[1] = exec-&gt;argument(1).toNumber(exec)))
&gt; +            || (n &gt;= 3 &amp;&amp; isnan((date_fields[2] = exec-&gt;argument(2).toNumber(exec))))
&gt; +            || (n &gt;= 4 &amp;&amp; isnan((date_fields[3] = exec-&gt;argument(3).toNumber(exec))))
&gt; +            || (n &gt;= 5 &amp;&amp; isnan((date_fields[4] = exec-&gt;argument(4).toNumber(exec))))
&gt; +            || (n &gt;= 6 &amp;&amp; isnan((date_fields[5] = exec-&gt;argument(5).toNumber(exec))))
&gt; +            || (n &gt;= 7 &amp;&amp; isnan((date_fields[6] = exec-&gt;argument(6).toNumber(exec)))))

Similar change to what i recommended above</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285119</commentid>
    <comment_count>10</comment_count>
      <attachid>68849</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2010-09-26 09:38:20 -0700</bug_when>
    <thetext>Created attachment 68849
Fix for DateConstructor v2

Fixed issues with the first patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285120</commentid>
    <comment_count>11</comment_count>
      <attachid>68850</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2010-09-26 09:39:11 -0700</bug_when>
    <thetext>Created attachment 68850
Fix for atan2 v2

Fixed issues with the first atan2 patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285159</commentid>
    <comment_count>12</comment_count>
      <attachid>68849</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-26 13:54:51 -0700</bug_when>
    <thetext>Comment on attachment 68849
Fix for DateConstructor v2

r=me, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285160</commentid>
    <comment_count>13</comment_count>
      <attachid>68850</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-26 13:55:16 -0700</bug_when>
    <thetext>Comment on attachment 68850
Fix for atan2 v2

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285166</commentid>
    <comment_count>14</comment_count>
      <attachid>68849</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-26 14:26:32 -0700</bug_when>
    <thetext>Comment on attachment 68849
Fix for DateConstructor v2

Clearing flags on attachment: 68849

Committed r68347: &lt;http://trac.webkit.org/changeset/68347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285168</commentid>
    <comment_count>15</comment_count>
      <attachid>68850</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-26 14:38:40 -0700</bug_when>
    <thetext>Comment on attachment 68850
Fix for atan2 v2

Clearing flags on attachment: 68850

Committed r68348: &lt;http://trac.webkit.org/changeset/68348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285169</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-26 14:38:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>32274</attachid>
            <date>2009-07-05 07:56:07 -0700</date>
            <delta_ts>2009-07-05 07:56:07 -0700</delta_ts>
            <desc>Test case standalone js script</desc>
            <filename>value_of_order.js</filename>
            <type>text/plain</type>
            <size>803</size>
            <attacher name="Erik Corry">erikcorry</attacher>
            
              <data encoding="base64">dmFyIHggPSAiIjsKdmFyIHYgPSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyB4ICs9ICJvbmUiOyBy
ZXR1cm4gMTsgfSB9Owp2YXIgdyA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHggKz0gInR3byI7
IHJldHVybiAyOyB9IH07Ck1hdGguYXRhbjIodiwgdyk7Ci8vIFNob3VsZCBiZSAib25ldHdvIi4K
cHJpbnQoeCk7Cgp2YXIgeWVhciA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHggKz0gMTsgcmV0
dXJuIDIwMDc7IH0gfTsKdmFyIG1vbnRoID0geyB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgeCArPSAy
OyByZXR1cm4gMjsgfSB9Owp2YXIgZGF0ZSA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHggKz0g
MzsgcmV0dXJuIDQ7IH0gfTsKdmFyIGhvdXJzID0geyB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgeCAr
PSA0OyByZXR1cm4gMTM7IH0gfTsKdmFyIG1pbnV0ZXMgPSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkg
eyB4ICs9IDU7IHJldHVybiA1MDsgfSB9Owp2YXIgc2Vjb25kcyA9IHsgdmFsdWVPZjogZnVuY3Rp
b24oKSB7IHggKz0gNjsgcmV0dXJuIDA7IH0gfTsKdmFyIG1zID0geyB2YWx1ZU9mOiBmdW5jdGlv
bigpIHsgeCArPSA3OyByZXR1cm4gOTk5OyB9IH07Cgp4ID0gIiI7Cm5ldyBEYXRlKHllYXIsIG1v
bnRoLCBkYXRlLCBob3VycywgbWludXRlcywgc2Vjb25kcywgbXMpOwovLyBTaG91bGQgYmUgIjEy
MzQ1NjciLgpwcmludCh4KTsKCnggPSAiIjsKRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRhdGUsIGhv
dXJzLCBtaW51dGVzLCBzZWNvbmRzLCBtcyk7Ci8vIFNob3VsZCBiZSAiMTIzNDU2NyIuCnByaW50
KHgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68841</attachid>
            <date>2010-09-25 21:48:13 -0700</date>
            <delta_ts>2010-09-26 09:38:20 -0700</delta_ts>
            <desc>Fix for DateConstructor</desc>
            <filename>patch26978_a.txt</filename>
            <type>text/plain</type>
            <size>6817</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHJldmlz
aW9uIDY4MzM2KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05MCwyNSArOTAsMjYgQEAgSlNPYmplY3QqIGNvbnN0cnVjdERh
dGUoRXhlY1N0YXRlKiBleGVjLAogICAgICAgICAgICAgICAgIHZhbHVlID0gcHJpbWl0aXZlLnRv
TnVtYmVyKGV4ZWMpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGlzbmFu
KGFyZ3MuYXQoMCkudG9OdW1iZXIoZXhlYykpCi0gICAgICAgICAgICAgICAgfHwgaXNuYW4oYXJn
cy5hdCgxKS50b051bWJlcihleGVjKSkKLSAgICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSAz
ICYmIGlzbmFuKGFyZ3MuYXQoMikudG9OdW1iZXIoZXhlYykpKQotICAgICAgICAgICAgICAgIHx8
IChudW1BcmdzID49IDQgJiYgaXNuYW4oYXJncy5hdCgzKS50b051bWJlcihleGVjKSkpCi0gICAg
ICAgICAgICAgICAgfHwgKG51bUFyZ3MgPj0gNSAmJiBpc25hbihhcmdzLmF0KDQpLnRvTnVtYmVy
KGV4ZWMpKSkKLSAgICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSA2ICYmIGlzbmFuKGFyZ3Mu
YXQoNSkudG9OdW1iZXIoZXhlYykpKQotICAgICAgICAgICAgICAgIHx8IChudW1BcmdzID49IDcg
JiYgaXNuYW4oYXJncy5hdCg2KS50b051bWJlcihleGVjKSkpKQorICAgICAgICBkb3VibGUgZGF0
ZV9maWVsZHNbN107CisgICAgICAgIGlmIChpc25hbigoZGF0ZV9maWVsZHNbMF0gPSBhcmdzLmF0
KDApLnRvTnVtYmVyKGV4ZWMpKSkKKyAgICAgICAgICAgICAgICB8fCBpc25hbigoZGF0ZV9maWVs
ZHNbMV0gPSBhcmdzLmF0KDEpLnRvTnVtYmVyKGV4ZWMpKSkKKyAgICAgICAgICAgICAgICB8fCAo
bnVtQXJncyA+PSAzICYmIGlzbmFuKChkYXRlX2ZpZWxkc1syXSA9IGFyZ3MuYXQoMikudG9OdW1i
ZXIoZXhlYykpKSkKKyAgICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSA0ICYmIGlzbmFuKChk
YXRlX2ZpZWxkc1szXSA9IGFyZ3MuYXQoMykudG9OdW1iZXIoZXhlYykpKSkKKyAgICAgICAgICAg
ICAgICB8fCAobnVtQXJncyA+PSA1ICYmIGlzbmFuKChkYXRlX2ZpZWxkc1s0XSA9IGFyZ3MuYXQo
NCkudG9OdW1iZXIoZXhlYykpKSkKKyAgICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSA2ICYm
IGlzbmFuKChkYXRlX2ZpZWxkc1s1XSA9IGFyZ3MuYXQoNSkudG9OdW1iZXIoZXhlYykpKSkKKyAg
ICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSA3ICYmIGlzbmFuKChkYXRlX2ZpZWxkc1s2XSA9
IGFyZ3MuYXQoNikudG9OdW1iZXIoZXhlYykpKSkpCiAgICAgICAgICAgICB2YWx1ZSA9IE5hTjsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBHcmVnb3JpYW5EYXRlVGltZSB0OwotICAgICAg
ICAgICAgaW50IHllYXIgPSBhcmdzLmF0KDApLnRvSW50MzIoZXhlYyk7CisgICAgICAgICAgICBp
bnQgeWVhciA9IEpTQzo6dG9JbnQzMihkYXRlX2ZpZWxkc1swXSk7CiAgICAgICAgICAgICB0Lnll
YXIgPSAoeWVhciA+PSAwICYmIHllYXIgPD0gOTkpID8geWVhciA6IHllYXIgLSAxOTAwOwotICAg
ICAgICAgICAgdC5tb250aCA9IGFyZ3MuYXQoMSkudG9JbnQzMihleGVjKTsKLSAgICAgICAgICAg
IHQubW9udGhEYXkgPSAobnVtQXJncyA+PSAzKSA/IGFyZ3MuYXQoMikudG9JbnQzMihleGVjKSA6
IDE7Ci0gICAgICAgICAgICB0LmhvdXIgPSBhcmdzLmF0KDMpLnRvSW50MzIoZXhlYyk7Ci0gICAg
ICAgICAgICB0Lm1pbnV0ZSA9IGFyZ3MuYXQoNCkudG9JbnQzMihleGVjKTsKLSAgICAgICAgICAg
IHQuc2Vjb25kID0gYXJncy5hdCg1KS50b0ludDMyKGV4ZWMpOworICAgICAgICAgICAgdC5tb250
aCA9IEpTQzo6dG9JbnQzMihkYXRlX2ZpZWxkc1sxXSk7CisgICAgICAgICAgICB0Lm1vbnRoRGF5
ID0gKG51bUFyZ3MgPj0gMykgPyBKU0M6OnRvSW50MzIoZGF0ZV9maWVsZHNbMl0pIDogMTsKKyAg
ICAgICAgICAgIHQuaG91ciA9IEpTQzo6dG9JbnQzMihkYXRlX2ZpZWxkc1szXSk7CisgICAgICAg
ICAgICB0Lm1pbnV0ZSA9IEpTQzo6dG9JbnQzMihkYXRlX2ZpZWxkc1s0XSk7CisgICAgICAgICAg
ICB0LnNlY29uZCA9IEpTQzo6dG9JbnQzMihkYXRlX2ZpZWxkc1s1XSk7CiAgICAgICAgICAgICB0
LmlzRFNUID0gLTE7Ci0gICAgICAgICAgICBkb3VibGUgbXMgPSAobnVtQXJncyA+PSA3KSA/IGFy
Z3MuYXQoNikudG9OdW1iZXIoZXhlYykgOiAwOworICAgICAgICAgICAgZG91YmxlIG1zID0gKG51
bUFyZ3MgPj0gNykgPyBkYXRlX2ZpZWxkc1s2XSA6IDA7CiAgICAgICAgICAgICB2YWx1ZSA9IGdy
ZWdvcmlhbkRhdGVUaW1lVG9NUyhleGVjLCB0LCBtcywgZmFsc2UpOwogICAgICAgICB9CiAgICAg
fQpAQCAtMTYwLDI1ICsxNjEsMjYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlVVRDKEV4
ZWNTdGF0ZSogZXhlYykgCiB7CisgICAgZG91YmxlIGRhdGVfZmllbGRzWzddOwogICAgIGludCBu
ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChpc25hbihleGVjLT5hcmd1bWVudCgw
KS50b051bWJlcihleGVjKSkKLSAgICAgICAgICAgIHx8IGlzbmFuKGV4ZWMtPmFyZ3VtZW50KDEp
LnRvTnVtYmVyKGV4ZWMpKQotICAgICAgICAgICAgfHwgKG4gPj0gMyAmJiBpc25hbihleGVjLT5h
cmd1bWVudCgyKS50b051bWJlcihleGVjKSkpCi0gICAgICAgICAgICB8fCAobiA+PSA0ICYmIGlz
bmFuKGV4ZWMtPmFyZ3VtZW50KDMpLnRvTnVtYmVyKGV4ZWMpKSkKLSAgICAgICAgICAgIHx8IChu
ID49IDUgJiYgaXNuYW4oZXhlYy0+YXJndW1lbnQoNCkudG9OdW1iZXIoZXhlYykpKQotICAgICAg
ICAgICAgfHwgKG4gPj0gNiAmJiBpc25hbihleGVjLT5hcmd1bWVudCg1KS50b051bWJlcihleGVj
KSkpCi0gICAgICAgICAgICB8fCAobiA+PSA3ICYmIGlzbmFuKGV4ZWMtPmFyZ3VtZW50KDYpLnRv
TnVtYmVyKGV4ZWMpKSkpCisgICAgaWYgKGlzbmFuKChkYXRlX2ZpZWxkc1swXSA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpKSkKKyAgICAgICAgICAgIHx8IGlzbmFuKChkYXRlX2Zp
ZWxkc1sxXSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvTnVtYmVyKGV4ZWMpKSkKKyAgICAgICAgICAg
IHx8IChuID49IDMgJiYgaXNuYW4oKGRhdGVfZmllbGRzWzJdID0gZXhlYy0+YXJndW1lbnQoMiku
dG9OdW1iZXIoZXhlYykpKSkKKyAgICAgICAgICAgIHx8IChuID49IDQgJiYgaXNuYW4oKGRhdGVf
ZmllbGRzWzNdID0gZXhlYy0+YXJndW1lbnQoMykudG9OdW1iZXIoZXhlYykpKSkKKyAgICAgICAg
ICAgIHx8IChuID49IDUgJiYgaXNuYW4oKGRhdGVfZmllbGRzWzRdID0gZXhlYy0+YXJndW1lbnQo
NCkudG9OdW1iZXIoZXhlYykpKSkKKyAgICAgICAgICAgIHx8IChuID49IDYgJiYgaXNuYW4oKGRh
dGVfZmllbGRzWzVdID0gZXhlYy0+YXJndW1lbnQoNSkudG9OdW1iZXIoZXhlYykpKSkKKyAgICAg
ICAgICAgIHx8IChuID49IDcgJiYgaXNuYW4oKGRhdGVfZmllbGRzWzZdID0gZXhlYy0+YXJndW1l
bnQoNikudG9OdW1iZXIoZXhlYykpKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oZXhlYykpOwogCiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUgdDsKLSAgICBpbnQgeWVhciA9
IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CisgICAgaW50IHllYXIgPSBKU0M6OnRv
SW50MzIoZGF0ZV9maWVsZHNbMF0pOwogICAgIHQueWVhciA9ICh5ZWFyID49IDAgJiYgeWVhciA8
PSA5OSkgPyB5ZWFyIDogeWVhciAtIDE5MDA7Ci0gICAgdC5tb250aCA9IGV4ZWMtPmFyZ3VtZW50
KDEpLnRvSW50MzIoZXhlYyk7Ci0gICAgdC5tb250aERheSA9IChuID49IDMpID8gZXhlYy0+YXJn
dW1lbnQoMikudG9JbnQzMihleGVjKSA6IDE7Ci0gICAgdC5ob3VyID0gZXhlYy0+YXJndW1lbnQo
MykudG9JbnQzMihleGVjKTsKLSAgICB0Lm1pbnV0ZSA9IGV4ZWMtPmFyZ3VtZW50KDQpLnRvSW50
MzIoZXhlYyk7Ci0gICAgdC5zZWNvbmQgPSBleGVjLT5hcmd1bWVudCg1KS50b0ludDMyKGV4ZWMp
OwotICAgIGRvdWJsZSBtcyA9IChuID49IDcpID8gZXhlYy0+YXJndW1lbnQoNikudG9OdW1iZXIo
ZXhlYykgOiAwOworICAgIHQubW9udGggPSBKU0M6OnRvSW50MzIoZGF0ZV9maWVsZHNbMV0pOwor
ICAgIHQubW9udGhEYXkgPSAobiA+PSAzKSA/IEpTQzo6dG9JbnQzMihkYXRlX2ZpZWxkc1syXSkg
OiAxOworICAgIHQuaG91ciA9IEpTQzo6dG9JbnQzMihkYXRlX2ZpZWxkc1szXSk7CisgICAgdC5t
aW51dGUgPSBKU0M6OnRvSW50MzIoZGF0ZV9maWVsZHNbNF0pOworICAgIHQuc2Vjb25kID0gSlND
Ojp0b0ludDMyKGRhdGVfZmllbGRzWzVdKTsKKyAgICBkb3VibGUgbXMgPSAobiA+PSA3KSA/IGRh
dGVfZmllbGRzWzZdIDogMDsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGV4
ZWMsIHRpbWVDbGlwKGdyZWdvcmlhbkRhdGVUaW1lVG9NUyhleGVjLCB0LCBtcywgdHJ1ZSkpKSk7
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGF0ZS1jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kYXRlLWNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjgzMzYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2Rh
dGUtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw4
IEBAIFBBU1MgbmV3IERhdGUobmV3IERhdGUoMTExMSwgMSwgMSwgMSwgMSwKIFBBU1MgbmV3IERh
dGUobmV3IERhdGUoMTExMSwgMSwgMSwgMSwgMSwgMSwgMSkpLmdldFRpbWUoKSAtIHRpbWVab25l
T2Zmc2V0IGlzIC0yNzEwNDc5OTUzODk5OQogUEFTUyBuZXcgRGF0ZShuZXcgRGF0ZSgxMTExLCAx
LCAxLCAxLCAxLCAxLCAxLCAxKSkuZ2V0VGltZSgpIC0gdGltZVpvbmVPZmZzZXQgaXMgLTI3MTA0
Nzk5NTM4OTk5CiBQQVNTIG5ldyBEYXRlKG5ldyBEYXRlKDExMTEsIDEsIDEsIDEsIDEsIDEsIDEs
IDEsIDEpKS5nZXRUaW1lKCkgLSB0aW1lWm9uZU9mZnNldCBpcyAtMjcxMDQ3OTk1Mzg5OTkKK1BB
U1MgdGVzdFN0ciBpcyAiMTIzNDU2NyIKK1BBU1MgdGVzdFN0ciBpcyAiMTIzNDU2NyIKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGF0ZS1jb25zdHJ1Y3Rvci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kYXRlLWNvbnN0cnVjdG9yLmpz
CShyZXZpc2lvbiA2ODMzNikKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2Rh
dGUtY29uc3RydWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTQwLDQgKzQwLDIyIEBAIHNob3Vs
ZEJlKCduZXcgRGF0ZShuZXcgRGF0ZSgxMTExLCAxLCAxLCAKIC8vIHNob3VsZEJlKCduZXcgRGF0
ZSgxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExKS5nZXRUaW1l
KCkgLSB0aW1lWm9uZU9mZnNldCcsICctMjQwODU4OTQyMjc4ODknKTsKIC8vIHNob3VsZEJlKCdu
ZXcgRGF0ZShuZXcgRGF0ZSgxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTEx
LCAxMTExKSkuZ2V0VGltZSgpIC0gdGltZVpvbmVPZmZzZXQnLCAnLTI0MDg1ODk0MjI3ODg5Jyk7
CiAKKy8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgQnVnIDI2OTc4IChodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5NzgpCit2YXIgdGVzdFN0ciA9ICIiOwordmFyIHllYXIg
PSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyB0ZXN0U3RyICs9IDE7IHJldHVybiAyMDA3OyB9IH07
Cit2YXIgbW9udGggPSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyB0ZXN0U3RyICs9IDI7IHJldHVy
biAyOyB9IH07Cit2YXIgZGF0ZSA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHRlc3RTdHIgKz0g
MzsgcmV0dXJuIDQ7IH0gfTsKK3ZhciBob3VycyA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHRl
c3RTdHIgKz0gNDsgcmV0dXJuIDEzOyB9IH07Cit2YXIgbWludXRlcyA9IHsgdmFsdWVPZjogZnVu
Y3Rpb24oKSB7IHRlc3RTdHIgKz0gNTsgcmV0dXJuIDUwOyB9IH07Cit2YXIgc2Vjb25kcyA9IHsg
dmFsdWVPZjogZnVuY3Rpb24oKSB7IHRlc3RTdHIgKz0gNjsgcmV0dXJuIDA7IH0gfTsKK3ZhciBt
cyA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHRlc3RTdHIgKz0gNzsgcmV0dXJuIDk5OTsgfSB9
OworCit0ZXN0U3RyID0gIiI7CituZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSwgaG91cnMsIG1p
bnV0ZXMsIHNlY29uZHMsIG1zKTsKK3Nob3VsZEJlKCd0ZXN0U3RyJywgJ1wiMTIzNDU2N1wiJyk7
CisKK3Rlc3RTdHIgPSAiIjsKK0RhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXRlLCBob3VycywgbWlu
dXRlcywgc2Vjb25kcywgbXMpOworc2hvdWxkQmUoJ3Rlc3RTdHInLCAnXCIxMjM0NTY3XCInKTsK
KwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="58410"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68842</attachid>
            <date>2010-09-25 21:48:43 -0700</date>
            <delta_ts>2010-09-26 09:39:11 -0700</delta_ts>
            <desc>Fix for atan2</desc>
            <filename>patch26978_b.txt</filename>
            <type>text/plain</type>
            <size>2082</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAkocmV2aXNpb24gNjgzMzYp
CisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzUsNyArMTM1LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuMihF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51
bWJlcihleGVjLCBhdGFuMihleGVjLT5hcmd1bWVudCgwKS50b051bWJlcihleGVjKSwgZXhlYy0+
YXJndW1lbnQoMSkudG9OdW1iZXIoZXhlYykpKSk7CisgICAgZG91YmxlIGFyZzAgPSBleGVjLT5h
cmd1bWVudCgwKS50b051bWJlcihleGVjKTsKKyAgICBkb3VibGUgYXJnMSA9IGV4ZWMtPmFyZ3Vt
ZW50KDEpLnRvTnVtYmVyKGV4ZWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3Vi
bGVOdW1iZXIoZXhlYywgYXRhbjIoYXJnMCwgYXJnMSkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQ2VpbChFeGVjU3RhdGUqIGV4ZWMpCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2pzL21hdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvanMvbWF0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY4MzM2KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9tYXRoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NiArNDQsNyBAQCBQQVNTIE1hdGguYXRhbjIoLTAsIE5hTikgaXMgTmFOCiBQQVNTIE1hdGguYXRh
bjIoMSwgTmFOKSBpcyBOYU4KIFBBU1MgTWF0aC5hdGFuMihJbmZpbml0eSwgTmFOKSBpcyBOYU4K
IFBBU1MgTWF0aC5hdGFuMigtSW5maW5pdHksIE5hTikgaXMgTmFOCitQQVNTIHRlc3RTdHIgaXMg
Im9uZXR3byIKIFBBU1MgTWF0aC5jZWlsKE5hTikgaXMgTmFOCiBQQVNTIE1hdGguY2VpbCgwKSBp
cyAwCiBQQVNTIE1hdGguY2VpbCgtMCkgaXMgLTAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMv
c2NyaXB0LXRlc3RzL21hdGguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9z
Y3JpcHQtdGVzdHMvbWF0aC5qcwkocmV2aXNpb24gNjgzMzYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2pzL3NjcmlwdC10ZXN0cy9tYXRoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCwxMyBA
QCBzaG91bGRCZSgiTWF0aC5hdGFuMigxLCBOYU4pIiwgIk5hTiIpOwogc2hvdWxkQmUoIk1hdGgu
YXRhbjIoSW5maW5pdHksIE5hTikiLCAiTmFOIik7CiBzaG91bGRCZSgiTWF0aC5hdGFuMigtSW5m
aW5pdHksIE5hTikiLCAiTmFOIik7CiAKKy8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgQnVnIDI2OTc4
IChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5NzgpCit2YXIgdGVz
dFN0ciA9ICIiOwordmFyIHYgPSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyB0ZXN0U3RyICs9ICJv
bmUiOyByZXR1cm4gMTsgfSB9OwordmFyIHcgPSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyB0ZXN0
U3RyICs9ICJ0d28iOyByZXR1cm4gMjsgfSB9OworTWF0aC5hdGFuMih2LCB3KTsKK3Nob3VsZEJl
KCd0ZXN0U3RyJywgJ1wib25ldHdvXCInKTsKKwogLyoKIOKAoiBJZnk+MGFuZHhpcyswLCB0aGVy
ZXN1bHQgaXNhbmltcGxlbWVudGF0aW9uLWRlcGVuZGVudCBhcHByb3hpbWF0aW9udG8gK8+ALzIu
IAog4oCiIElmeT4wYW5keGlz4oiSMCwgdGhlcmVzdWx0IGlzYW5pbXBsZW1lbnRhdGlvbi1kZXBl
bmRlbnQgYXBwcm94aW1hdGlvbnRvICvPgC8yLiAK
</data>
<flag name="review"
          id="58411"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68843</attachid>
            <date>2010-09-25 21:49:21 -0700</date>
            <delta_ts>2010-09-26 09:38:20 -0700</delta_ts>
            <desc>Change to ChangeLog</desc>
            <filename>patch26978_c.txt</filename>
            <type>text/plain</type>
            <size>1070</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4MzM5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMjUgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICB2YWx1ZU9mIGNhbGxlZCBpbiB3cm9uZyBvcmRlciBpbiBh
dGFuMiBhbmQgZGF0ZSBjb25zdHJ1Y3RvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk3OAorCisgICAgICAgIEZpeGVkIHRoZSBhdGFuMiBmdW5j
dGlvbiB0byBldmFsdWF0ZSBpdHMgYXJndW1lbnRzIGluIG9yZGVyLgorCisgICAgICAgICogcnVu
dGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0FUYW4yKToK
KworMjAxMC0wOS0yNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJAZ21haWwuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHZhbHVlT2YgY2Fs
bGVkIGluIHdyb25nIG9yZGVyIGluIGF0YW4yIGFuZCBkYXRlIGNvbnN0cnVjdG9ycy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2OTc4CisKKyAgICAg
ICAgRml4ZWQgdGhlIERhdGUgY29uc3RydWN0b3Igc28gdGhhdCB0aGUgYXJndW1lbnRzIGFyZSBv
bmx5IGV2YWx1dGVkIHRvIAorICAgICAgICBudW1iZXJzIG9uY2UuCisKKyAgICAgICAgKiBydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdERhdGUpOgor
ICAgICAgICAoSlNDOjpkYXRlVVRDKToKKwogMjAxMC0wOS0yNSAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB2YXJpb3VzIGJ1aWxkcwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68849</attachid>
            <date>2010-09-26 09:38:20 -0700</date>
            <delta_ts>2010-09-26 14:26:32 -0700</delta_ts>
            <desc>Fix for DateConstructor v2</desc>
            <filename>patch26978_a.txt</filename>
            <type>text/plain</type>
            <size>8677</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4MzQwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMjUgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICB2YWx1ZU9mIGNhbGxlZCBpbiB3cm9uZyBvcmRlciBpbiBh
dGFuMiBhbmQgZGF0ZSBjb25zdHJ1Y3RvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk3OAorCisgICAgICAgIEZpeGVkIHRoZSBpc3N1ZSB3aGVy
ZSB0aGUgcGFyYW1ldGVycyB0byB0aGUgRGF0ZSBjb25zdHJ1Y3RvcgorICAgICAgICB3ZXJlIGJl
aW5nIGV2YWx1YXRlZCB0byBudW1iZXJzIG1vcmUgdGhhbiBvbmNlLgorCisgICAgICAgICogcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3REYXRlKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVVUQyk6CisKIDIwMTAtMDktMjUgIE9saXZlciBIdW50ICA8b2xp
dmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdmFyaW91cyBidWlsZHMKSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDY4MzM5KQor
KysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MCwyNSArOTAsMzQgQEAgSlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRl
KiBleGVjLAogICAgICAgICAgICAgICAgIHZhbHVlID0gcHJpbWl0aXZlLnRvTnVtYmVyKGV4ZWMp
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGlzbmFuKGFyZ3MuYXQoMCku
dG9OdW1iZXIoZXhlYykpCi0gICAgICAgICAgICAgICAgfHwgaXNuYW4oYXJncy5hdCgxKS50b051
bWJlcihleGVjKSkKLSAgICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSAzICYmIGlzbmFuKGFy
Z3MuYXQoMikudG9OdW1iZXIoZXhlYykpKQotICAgICAgICAgICAgICAgIHx8IChudW1BcmdzID49
IDQgJiYgaXNuYW4oYXJncy5hdCgzKS50b051bWJlcihleGVjKSkpCi0gICAgICAgICAgICAgICAg
fHwgKG51bUFyZ3MgPj0gNSAmJiBpc25hbihhcmdzLmF0KDQpLnRvTnVtYmVyKGV4ZWMpKSkKLSAg
ICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSA2ICYmIGlzbmFuKGFyZ3MuYXQoNSkudG9OdW1i
ZXIoZXhlYykpKQotICAgICAgICAgICAgICAgIHx8IChudW1BcmdzID49IDcgJiYgaXNuYW4oYXJn
cy5hdCg2KS50b051bWJlcihleGVjKSkpKQorICAgICAgICBkb3VibGUgZG91YmxlQXJndW1lbnRz
WzddID0geworICAgICAgICAgICAgYXJncy5hdCgwKS50b051bWJlcihleGVjKSwgCisgICAgICAg
ICAgICBhcmdzLmF0KDEpLnRvTnVtYmVyKGV4ZWMpLCAKKyAgICAgICAgICAgIGFyZ3MuYXQoMiku
dG9OdW1iZXIoZXhlYyksIAorICAgICAgICAgICAgYXJncy5hdCgzKS50b051bWJlcihleGVjKSwg
CisgICAgICAgICAgICBhcmdzLmF0KDQpLnRvTnVtYmVyKGV4ZWMpLCAKKyAgICAgICAgICAgIGFy
Z3MuYXQoNSkudG9OdW1iZXIoZXhlYyksIAorICAgICAgICAgICAgYXJncy5hdCg2KS50b051bWJl
cihleGVjKQorICAgICAgICB9OworICAgICAgICBpZiAoaXNuYW4oZG91YmxlQXJndW1lbnRzWzBd
KQorICAgICAgICAgICAgICAgIHx8IGlzbmFuKGRvdWJsZUFyZ3VtZW50c1sxXSkKKyAgICAgICAg
ICAgICAgICB8fCAobnVtQXJncyA+PSAzICYmIGlzbmFuKGRvdWJsZUFyZ3VtZW50c1syXSkpCisg
ICAgICAgICAgICAgICAgfHwgKG51bUFyZ3MgPj0gNCAmJiBpc25hbihkb3VibGVBcmd1bWVudHNb
M10pKQorICAgICAgICAgICAgICAgIHx8IChudW1BcmdzID49IDUgJiYgaXNuYW4oZG91YmxlQXJn
dW1lbnRzWzRdKSkKKyAgICAgICAgICAgICAgICB8fCAobnVtQXJncyA+PSA2ICYmIGlzbmFuKGRv
dWJsZUFyZ3VtZW50c1s1XSkpCisgICAgICAgICAgICAgICAgfHwgKG51bUFyZ3MgPj0gNyAmJiBp
c25hbihkb3VibGVBcmd1bWVudHNbNl0pKSkKICAgICAgICAgICAgIHZhbHVlID0gTmFOOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIEdyZWdvcmlhbkRhdGVUaW1lIHQ7Ci0gICAgICAgICAg
ICBpbnQgeWVhciA9IGFyZ3MuYXQoMCkudG9JbnQzMihleGVjKTsKKyAgICAgICAgICAgIGludCB5
ZWFyID0gSlNDOjp0b0ludDMyKGRvdWJsZUFyZ3VtZW50c1swXSk7CiAgICAgICAgICAgICB0Lnll
YXIgPSAoeWVhciA+PSAwICYmIHllYXIgPD0gOTkpID8geWVhciA6IHllYXIgLSAxOTAwOwotICAg
ICAgICAgICAgdC5tb250aCA9IGFyZ3MuYXQoMSkudG9JbnQzMihleGVjKTsKLSAgICAgICAgICAg
IHQubW9udGhEYXkgPSAobnVtQXJncyA+PSAzKSA/IGFyZ3MuYXQoMikudG9JbnQzMihleGVjKSA6
IDE7Ci0gICAgICAgICAgICB0LmhvdXIgPSBhcmdzLmF0KDMpLnRvSW50MzIoZXhlYyk7Ci0gICAg
ICAgICAgICB0Lm1pbnV0ZSA9IGFyZ3MuYXQoNCkudG9JbnQzMihleGVjKTsKLSAgICAgICAgICAg
IHQuc2Vjb25kID0gYXJncy5hdCg1KS50b0ludDMyKGV4ZWMpOworICAgICAgICAgICAgdC5tb250
aCA9IEpTQzo6dG9JbnQzMihkb3VibGVBcmd1bWVudHNbMV0pOworICAgICAgICAgICAgdC5tb250
aERheSA9IChudW1BcmdzID49IDMpID8gSlNDOjp0b0ludDMyKGRvdWJsZUFyZ3VtZW50c1syXSkg
OiAxOworICAgICAgICAgICAgdC5ob3VyID0gSlNDOjp0b0ludDMyKGRvdWJsZUFyZ3VtZW50c1sz
XSk7CisgICAgICAgICAgICB0Lm1pbnV0ZSA9IEpTQzo6dG9JbnQzMihkb3VibGVBcmd1bWVudHNb
NF0pOworICAgICAgICAgICAgdC5zZWNvbmQgPSBKU0M6OnRvSW50MzIoZG91YmxlQXJndW1lbnRz
WzVdKTsKICAgICAgICAgICAgIHQuaXNEU1QgPSAtMTsKLSAgICAgICAgICAgIGRvdWJsZSBtcyA9
IChudW1BcmdzID49IDcpID8gYXJncy5hdCg2KS50b051bWJlcihleGVjKSA6IDA7CisgICAgICAg
ICAgICBkb3VibGUgbXMgPSAobnVtQXJncyA+PSA3KSA/IGRvdWJsZUFyZ3VtZW50c1s2XSA6IDA7
CiAgICAgICAgICAgICB2YWx1ZSA9IGdyZWdvcmlhbkRhdGVUaW1lVG9NUyhleGVjLCB0LCBtcywg
ZmFsc2UpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTYwLDI1ICsxNjksMzQgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlVVRDKEV4ZWNTdGF0ZSogZXhlYykgCiB7CisgICAgZG91YmxlIGRv
dWJsZUFyZ3VtZW50c1s3XSA9IHsKKyAgICAgICAgZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIo
ZXhlYyksIAorICAgICAgICBleGVjLT5hcmd1bWVudCgxKS50b051bWJlcihleGVjKSwgCisgICAg
ICAgIGV4ZWMtPmFyZ3VtZW50KDIpLnRvTnVtYmVyKGV4ZWMpLCAKKyAgICAgICAgZXhlYy0+YXJn
dW1lbnQoMykudG9OdW1iZXIoZXhlYyksIAorICAgICAgICBleGVjLT5hcmd1bWVudCg0KS50b051
bWJlcihleGVjKSwgCisgICAgICAgIGV4ZWMtPmFyZ3VtZW50KDUpLnRvTnVtYmVyKGV4ZWMpLCAK
KyAgICAgICAgZXhlYy0+YXJndW1lbnQoNikudG9OdW1iZXIoZXhlYykKKyAgICB9OwogICAgIGlu
dCBuID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChpc25hbihleGVjLT5hcmd1bWVu
dCgwKS50b051bWJlcihleGVjKSkKLSAgICAgICAgICAgIHx8IGlzbmFuKGV4ZWMtPmFyZ3VtZW50
KDEpLnRvTnVtYmVyKGV4ZWMpKQotICAgICAgICAgICAgfHwgKG4gPj0gMyAmJiBpc25hbihleGVj
LT5hcmd1bWVudCgyKS50b051bWJlcihleGVjKSkpCi0gICAgICAgICAgICB8fCAobiA+PSA0ICYm
IGlzbmFuKGV4ZWMtPmFyZ3VtZW50KDMpLnRvTnVtYmVyKGV4ZWMpKSkKLSAgICAgICAgICAgIHx8
IChuID49IDUgJiYgaXNuYW4oZXhlYy0+YXJndW1lbnQoNCkudG9OdW1iZXIoZXhlYykpKQotICAg
ICAgICAgICAgfHwgKG4gPj0gNiAmJiBpc25hbihleGVjLT5hcmd1bWVudCg1KS50b051bWJlcihl
eGVjKSkpCi0gICAgICAgICAgICB8fCAobiA+PSA3ICYmIGlzbmFuKGV4ZWMtPmFyZ3VtZW50KDYp
LnRvTnVtYmVyKGV4ZWMpKSkpCisgICAgaWYgKGlzbmFuKGRvdWJsZUFyZ3VtZW50c1swXSkKKyAg
ICAgICAgICAgIHx8IGlzbmFuKGRvdWJsZUFyZ3VtZW50c1sxXSkKKyAgICAgICAgICAgIHx8IChu
ID49IDMgJiYgaXNuYW4oZG91YmxlQXJndW1lbnRzWzJdKSkKKyAgICAgICAgICAgIHx8IChuID49
IDQgJiYgaXNuYW4oZG91YmxlQXJndW1lbnRzWzNdKSkKKyAgICAgICAgICAgIHx8IChuID49IDUg
JiYgaXNuYW4oZG91YmxlQXJndW1lbnRzWzRdKSkKKyAgICAgICAgICAgIHx8IChuID49IDYgJiYg
aXNuYW4oZG91YmxlQXJndW1lbnRzWzVdKSkKKyAgICAgICAgICAgIHx8IChuID49IDcgJiYgaXNu
YW4oZG91YmxlQXJndW1lbnRzWzZdKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oZXhlYykpOwogCiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUgdDsKLSAgICBpbnQgeWVhciA9
IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CisgICAgaW50IHllYXIgPSBKU0M6OnRv
SW50MzIoZG91YmxlQXJndW1lbnRzWzBdKTsKICAgICB0LnllYXIgPSAoeWVhciA+PSAwICYmIHll
YXIgPD0gOTkpID8geWVhciA6IHllYXIgLSAxOTAwOwotICAgIHQubW9udGggPSBleGVjLT5hcmd1
bWVudCgxKS50b0ludDMyKGV4ZWMpOwotICAgIHQubW9udGhEYXkgPSAobiA+PSAzKSA/IGV4ZWMt
PmFyZ3VtZW50KDIpLnRvSW50MzIoZXhlYykgOiAxOwotICAgIHQuaG91ciA9IGV4ZWMtPmFyZ3Vt
ZW50KDMpLnRvSW50MzIoZXhlYyk7Ci0gICAgdC5taW51dGUgPSBleGVjLT5hcmd1bWVudCg0KS50
b0ludDMyKGV4ZWMpOwotICAgIHQuc2Vjb25kID0gZXhlYy0+YXJndW1lbnQoNSkudG9JbnQzMihl
eGVjKTsKLSAgICBkb3VibGUgbXMgPSAobiA+PSA3KSA/IGV4ZWMtPmFyZ3VtZW50KDYpLnRvTnVt
YmVyKGV4ZWMpIDogMDsKKyAgICB0Lm1vbnRoID0gSlNDOjp0b0ludDMyKGRvdWJsZUFyZ3VtZW50
c1sxXSk7CisgICAgdC5tb250aERheSA9IChuID49IDMpID8gSlNDOjp0b0ludDMyKGRvdWJsZUFy
Z3VtZW50c1syXSkgOiAxOworICAgIHQuaG91ciA9IEpTQzo6dG9JbnQzMihkb3VibGVBcmd1bWVu
dHNbM10pOworICAgIHQubWludXRlID0gSlNDOjp0b0ludDMyKGRvdWJsZUFyZ3VtZW50c1s0XSk7
CisgICAgdC5zZWNvbmQgPSBKU0M6OnRvSW50MzIoZG91YmxlQXJndW1lbnRzWzVdKTsKKyAgICBk
b3VibGUgbXMgPSAobiA+PSA3KSA/IGRvdWJsZUFyZ3VtZW50c1s2XSA6IDA7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihleGVjLCB0aW1lQ2xpcChncmVnb3JpYW5EYXRlVGlt
ZVRvTVMoZXhlYywgdCwgbXMsIHRydWUpKSkpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2ODM0
MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIy
IEBACisyMDEwLTA5LTI1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYkBnbWFpbC5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdmFsdWVPZiBj
YWxsZWQgaW4gd3Jvbmcgb3JkZXIgaW4gYXRhbjIgYW5kIGRhdGUgY29uc3RydWN0b3JzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5NzgKKworICAg
ICAgICBBZGRlZCByZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBEYXRlIGNvbnN0cnVjdG9yIGlzc3Vl
LgorCisgICAgICAgICogZmFzdC9qcy9kYXRlLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kYXRlLWNvbnN0cnVjdG9yLmpzOgorICAgICAg
ICAoeWVhci52YWx1ZU9mKToKKyAgICAgICAgKG1vbnRoLnZhbHVlT2YpOgorICAgICAgICAoZGF0
ZS52YWx1ZU9mKToKKyAgICAgICAgKGhvdXJzLnZhbHVlT2YpOgorICAgICAgICAobWludXRlcy52
YWx1ZU9mKToKKyAgICAgICAgKHNlY29uZHMudmFsdWVPZik6CisgICAgICAgIChtcy52YWx1ZU9m
KToKKwogMjAxMC0wOS0yNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE5pa29sYXMgWmltbWVybWFubi4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvZGF0ZS1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy9kYXRlLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gNjgzMzkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RhdGUtY29uc3RydWN0b3ItZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw4IEBAIFBBU1MgbmV3IERhdGUobmV3
IERhdGUoMTExMSwgMSwgMSwgMSwgMSwKIFBBU1MgbmV3IERhdGUobmV3IERhdGUoMTExMSwgMSwg
MSwgMSwgMSwgMSwgMSkpLmdldFRpbWUoKSAtIHRpbWVab25lT2Zmc2V0IGlzIC0yNzEwNDc5OTUz
ODk5OQogUEFTUyBuZXcgRGF0ZShuZXcgRGF0ZSgxMTExLCAxLCAxLCAxLCAxLCAxLCAxLCAxKSku
Z2V0VGltZSgpIC0gdGltZVpvbmVPZmZzZXQgaXMgLTI3MTA0Nzk5NTM4OTk5CiBQQVNTIG5ldyBE
YXRlKG5ldyBEYXRlKDExMTEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEpKS5nZXRUaW1lKCkgLSB0
aW1lWm9uZU9mZnNldCBpcyAtMjcxMDQ3OTk1Mzg5OTkKK1BBU1MgdGVzdFN0ciBpcyAiMTIzNDU2
NyIKK1BBU1MgdGVzdFN0ciBpcyAiMTIzNDU2NyIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQt
dGVzdHMvZGF0ZS1jb25zdHJ1Y3Rvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3NjcmlwdC10ZXN0cy9kYXRlLWNvbnN0cnVjdG9yLmpzCShyZXZpc2lvbiA2ODMzOSkKKysr
IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RhdGUtY29uc3RydWN0b3IuanMJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDQgKzQwLDIyIEBAIHNob3VsZEJlKCduZXcgRGF0ZShuZXcgRGF0
ZSgxMTExLCAxLCAxLCAKIC8vIHNob3VsZEJlKCduZXcgRGF0ZSgxMTExLCAxMTExLCAxMTExLCAx
MTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExKS5nZXRUaW1lKCkgLSB0aW1lWm9uZU9mZnNldCcs
ICctMjQwODU4OTQyMjc4ODknKTsKIC8vIHNob3VsZEJlKCduZXcgRGF0ZShuZXcgRGF0ZSgxMTEx
LCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExLCAxMTExKSkuZ2V0VGltZSgpIC0g
dGltZVpvbmVPZmZzZXQnLCAnLTI0MDg1ODk0MjI3ODg5Jyk7CiAKKy8vIFJlZ3Jlc3Npb24gdGVz
dCBmb3IgQnVnIDI2OTc4IChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjY5NzgpCit2YXIgdGVzdFN0ciA9ICIiOwordmFyIHllYXIgPSB7IHZhbHVlT2Y6IGZ1bmN0aW9u
KCkgeyB0ZXN0U3RyICs9IDE7IHJldHVybiAyMDA3OyB9IH07Cit2YXIgbW9udGggPSB7IHZhbHVl
T2Y6IGZ1bmN0aW9uKCkgeyB0ZXN0U3RyICs9IDI7IHJldHVybiAyOyB9IH07Cit2YXIgZGF0ZSA9
IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHRlc3RTdHIgKz0gMzsgcmV0dXJuIDQ7IH0gfTsKK3Zh
ciBob3VycyA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHRlc3RTdHIgKz0gNDsgcmV0dXJuIDEz
OyB9IH07Cit2YXIgbWludXRlcyA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHRlc3RTdHIgKz0g
NTsgcmV0dXJuIDUwOyB9IH07Cit2YXIgc2Vjb25kcyA9IHsgdmFsdWVPZjogZnVuY3Rpb24oKSB7
IHRlc3RTdHIgKz0gNjsgcmV0dXJuIDA7IH0gfTsKK3ZhciBtcyA9IHsgdmFsdWVPZjogZnVuY3Rp
b24oKSB7IHRlc3RTdHIgKz0gNzsgcmV0dXJuIDk5OTsgfSB9OworCit0ZXN0U3RyID0gIiI7Citu
ZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1zKTsK
K3Nob3VsZEJlKCd0ZXN0U3RyJywgJ1wiMTIzNDU2N1wiJyk7CisKK3Rlc3RTdHIgPSAiIjsKK0Rh
dGUuVVRDKHllYXIsIG1vbnRoLCBkYXRlLCBob3VycywgbWludXRlcywgc2Vjb25kcywgbXMpOwor
c2hvdWxkQmUoJ3Rlc3RTdHInLCAnXCIxMjM0NTY3XCInKTsKKwogdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68850</attachid>
            <date>2010-09-26 09:39:11 -0700</date>
            <delta_ts>2010-09-26 14:38:39 -0700</delta_ts>
            <desc>Fix for atan2 v2</desc>
            <filename>patch26978_b.txt</filename>
            <type>text/plain</type>
            <size>3501</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4MzQwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMjUgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICB2YWx1ZU9mIGNhbGxlZCBpbiB3cm9uZyBvcmRlciBpbiBh
dGFuMiBhbmQgZGF0ZSBjb25zdHJ1Y3RvcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk3OAorCisgICAgICAgIEZpeGVkIHRoZSBidWcgd2hlcmUg
dGhlIGFyZ3VtZW50cyB0byBhdGFuMiB3ZXJlIGJlaW5nIGV2YWx1YXRlZCAKKyAgICAgICAgb3V0
IG9mIG9yZGVyLgorCisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6bWF0aFByb3RvRnVuY0FUYW4yKToKKwogMjAxMC0wOS0yNSAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB2YXJpb3VzIGJ1aWxkcwpJbmRleDogSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCShyZXZpc2lvbiA2ODMzOSkKKysrIEphdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw3
ICsxMzUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1CiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FUYW4yKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKGV4ZWMs
IGF0YW4yKGV4ZWMtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpLCBleGVjLT5hcmd1bWVudCgx
KS50b051bWJlcihleGVjKSkpKTsKKyAgICBkb3VibGUgYXJnMCA9IGV4ZWMtPmFyZ3VtZW50KDAp
LnRvTnVtYmVyKGV4ZWMpOworICAgIGRvdWJsZSBhcmcxID0gZXhlYy0+YXJndW1lbnQoMSkudG9O
dW1iZXIoZXhlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihl
eGVjLCBhdGFuMihhcmcwLCBhcmcxKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hdGhQcm90b0Z1bmNDZWlsKEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDY4MzQwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTAtMDktMjUgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iQGdtYWlsLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB2YWx1
ZU9mIGNhbGxlZCBpbiB3cm9uZyBvcmRlciBpbiBhdGFuMiBhbmQgZGF0ZSBjb25zdHJ1Y3RvcnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk3OAor
CisgICAgICAgIFJlZ3Jlc3Npb24gdGVzdCBmb3IgdGhlIGlzc3VlIHdoZXJlIHRoZSBhcmd1bWVu
dHMgdG8gYXRhbjIgd2VyZQorICAgICAgICBldmFsdWF0ZWQgb3V0IG9mIG9yZGVyLgorCisgICAg
ICAgICogZmFzdC9qcy9tYXRoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL3Njcmlw
dC10ZXN0cy9tYXRoLmpzOgorICAgICAgICAodi52YWx1ZU9mKToKKyAgICAgICAgKHcudmFsdWVP
Zik6CisKIDIwMTAtMDktMjUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL21hdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvbWF0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY4MzM5KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9qcy9tYXRoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQs
NyBAQCBQQVNTIE1hdGguYXRhbjIoLTAsIE5hTikgaXMgTmFOCiBQQVNTIE1hdGguYXRhbjIoMSwg
TmFOKSBpcyBOYU4KIFBBU1MgTWF0aC5hdGFuMihJbmZpbml0eSwgTmFOKSBpcyBOYU4KIFBBU1Mg
TWF0aC5hdGFuMigtSW5maW5pdHksIE5hTikgaXMgTmFOCitQQVNTIHRlc3RTdHIgaXMgIm9uZXR3
byIKIFBBU1MgTWF0aC5jZWlsKE5hTikgaXMgTmFOCiBQQVNTIE1hdGguY2VpbCgwKSBpcyAwCiBQ
QVNTIE1hdGguY2VpbCgtMCkgaXMgLTAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0
LXRlc3RzL21hdGguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQt
dGVzdHMvbWF0aC5qcwkocmV2aXNpb24gNjgzMzkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9tYXRoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCwxMyBAQCBzaG91
bGRCZSgiTWF0aC5hdGFuMigxLCBOYU4pIiwgIk5hTiIpOwogc2hvdWxkQmUoIk1hdGguYXRhbjIo
SW5maW5pdHksIE5hTikiLCAiTmFOIik7CiBzaG91bGRCZSgiTWF0aC5hdGFuMigtSW5maW5pdHks
IE5hTikiLCAiTmFOIik7CiAKKy8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgQnVnIDI2OTc4IChodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5NzgpCit2YXIgdGVzdFN0ciA9
ICIiOwordmFyIHYgPSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyB0ZXN0U3RyICs9ICJvbmUiOyBy
ZXR1cm4gMTsgfSB9OwordmFyIHcgPSB7IHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyB0ZXN0U3RyICs9
ICJ0d28iOyByZXR1cm4gMjsgfSB9OworTWF0aC5hdGFuMih2LCB3KTsKK3Nob3VsZEJlKCd0ZXN0
U3RyJywgJ1wib25ldHdvXCInKTsKKwogLyoKIOKAoiBJZnk+MGFuZHhpcyswLCB0aGVyZXN1bHQg
aXNhbmltcGxlbWVudGF0aW9uLWRlcGVuZGVudCBhcHByb3hpbWF0aW9udG8gK8+ALzIuIAog4oCi
IElmeT4wYW5keGlz4oiSMCwgdGhlcmVzdWx0IGlzYW5pbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQg
YXBwcm94aW1hdGlvbnRvICvPgC8yLiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>