<?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>45970</bug_id>
          
          <creation_ts>2010-09-17 10:06:47 -0700</creation_ts>
          <short_desc>Add StringHasher class</short_desc>
          <delta_ts>2010-09-26 11:58:45 -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>Web Template Framework</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>abarth</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>mihaip</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280698</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-17 10:06:47 -0700</bug_when>
    <thetext>This is the the first patch required for adding AtomicString::fromUTF8.
(see https://bugs.webkit.org/show_bug.cgi?id=45594#c10)

required work after this patch (1-3 is cleanup):
1) Use StringHasher::createHash directly insted of WTF::stringHash.
2) Use StringHasher::createHash in StringHash.h and differenct WebCore files (e.g. QualifiedName).
3) Rename StringHashFunctions.h into StringHasher.h
4) Create a function for calculating the hash directly out of null terminated UTF-8 data
5) Use this UTF8-&gt;hash function in AtomicString::fromUTF8.
6) Use AtomicString::fromUTF8 in XMLParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280717</commentid>
    <comment_count>1</comment_count>
      <attachid>67916</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-17 10:23:57 -0700</bug_when>
    <thetext>Created attachment 67916
Patch

&gt; +        if (m_cachedCharacter != invalidCharacterValue) {
&gt; +            addCharactersToHash(m_cachedCharacter, ch);
&gt; +            m_cachedCharacter = invalidCharacterValue;
&gt; +            return;
&gt; +        }
Will be used later in the UTF8 to hash function to add each single character (avoids caching there).


&gt; -    hash &amp;= 0x7fffffff;
&gt; -
&gt; -    // this avoids ever returning a hash code of 0, since that is used to
&gt; -    // signal &quot;hash not computed yet&quot;, using a value that is likely to be
&gt; -    // effectively the same as 0 when the low bits are masked
&gt; -    if (hash == 0)
&gt; -        hash = 0x40000000;
&gt; +        if (!result)
&gt; +            return 0x80000000;
This is the same algorithm as in StringHash.h.


&gt; +    template&lt;typename T, UChar Coverter(T)&gt; static inline unsigned createHash(const T* data, unsigned length)
&quot;UChar Coverter(T)&quot; will be used later in CaseFoldingHash::hash to do a createHash&lt;UChar, WTF::Unicode::foldCase&gt;().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280725</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-17 10:35:38 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; &gt; -    hash &amp;= 0x7fffffff;
&gt; &gt; -
&gt; &gt; -    // this avoids ever returning a hash code of 0, since that is used to
&gt; &gt; -    // signal &quot;hash not computed yet&quot;, using a value that is likely to be
&gt; &gt; -    // effectively the same as 0 when the low bits are masked
&gt; &gt; -    if (hash == 0)
&gt; &gt; -        hash = 0x40000000;
&gt; &gt; +        if (!result)
&gt; &gt; +            return 0x80000000;
&gt; This is the same algorithm as in StringHash.h.

Changing this will almost certainly break JavaScriptCore, which uses the high bit for something else. Please talk to Gavin Barraclough about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280737</commentid>
    <comment_count>3</comment_count>
      <attachid>67920</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-17 10:55:49 -0700</bug_when>
    <thetext>Created attachment 67920
Patch (use one 31 bit)

(In reply to comment #2)
&gt; Changing this will almost certainly break JavaScriptCore, which uses the high bit for something else. Please talk to Gavin Barraclough about this.
http://trac.webkit.org/changeset/53456: I don&apos;t know what &quot;it causes much sadness in this world&quot; means exactly ;-)
http://trac.webkit.org/changeset/52856: &quot;change string hash result from 32-bit to 31-bit, to free a bit in UStringImpl for m_isIdentifier&quot;

I changed it to use only 31 bits and added a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281183</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-18 15:31:09 -0700</bug_when>
    <thetext>Attachment 67920 did not build on qt:
Build output: http://queues.webkit.org/results/4054067</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281187</commentid>
    <comment_count>5</comment_count>
      <attachid>68017</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-18 15:37:03 -0700</bug_when>
    <thetext>Created attachment 68017
Patch (use one 31 bit)

Make Qt build happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284508</commentid>
    <comment_count>6</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-24 10:32:52 -0700</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284598</commentid>
    <comment_count>7</comment_count>
      <attachid>68017</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-09-24 12:05:03 -0700</bug_when>
    <thetext>Comment on attachment 68017
Patch (use one 31 bit)

Sorry for the delay - looks like a nice improvement!
We could probably switch back to a 32-bit hash now, if we wanted - I&apos;d have to check, but I don&apos;t think we&apos;re stealing a bit for anything at the minute.  However the hash algorithm is used in a compile stage, adding constant hashes to autogenerated tables, so we&apos;d have to change that too. r+.

G.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284679</commentid>
    <comment_count>8</comment_count>
      <attachid>68017</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-24 14:06:41 -0700</bug_when>
    <thetext>Comment on attachment 68017
Patch (use one 31 bit)

Clearing flags on attachment: 68017

Committed r68289: &lt;http://trac.webkit.org/changeset/68289&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284680</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-24 14:06:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284775</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-24 15:37:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/68289 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284899</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-24 18:35:44 -0700</bug_when>
    <thetext>There’s a typo: &quot;coverter&quot; in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284971</commentid>
    <comment_count>12</comment_count>
      <attachid>68816</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-25 01:31:04 -0700</bug_when>
    <thetext>Created attachment 68816
Fix typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284973</commentid>
    <comment_count>13</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-25 01:34:38 -0700</bug_when>
    <thetext>Reopen for commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284974</commentid>
    <comment_count>14</comment_count>
      <attachid>68816</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-25 02:07:15 -0700</bug_when>
    <thetext>Comment on attachment 68816
Fix typo

Clearing flags on attachment: 68816

Committed r68330: &lt;http://trac.webkit.org/changeset/68330&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284975</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-25 02:07:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285014</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-25 09:10:30 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/68330 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/68329
http://trac.webkit.org/changeset/68330
http://trac.webkit.org/changeset/68331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285048</commentid>
    <comment_count>17</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-09-25 13:51:02 -0700</bug_when>
    <thetext>This change causes the DRT to crash on fast/js/encode-URI-test.html (I can reproduce on Snow Leopard locally, but you can also see it on the Leopard bot (not sure why the SL one isn&apos;t crashing): http://build.webkit.org/results/Leopard%20Intel%20Debug%20(Tests)/r68336%20(20697)/results.html).

The culprit appears to be the &quot;\uFFFE&quot; string literal in the test, just entering that string into the JS console in a build with this change is enough to trigger the assert on line 50 of StringHashFunctions.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285070</commentid>
    <comment_count>18</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-25 19:02:44 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; This change causes the DRT to crash on fast/js/encode-URI-test.html (I can reproduce on Snow Leopard locally, but you can also see it on the Leopard bot (not sure why the SL one isn&apos;t crashing): http://build.webkit.org/results/Leopard%20Intel%20Debug%20(Tests)/r68336%20(20697)/results.html).
Sorry for that! The patch at bug 46553 (needs r+) should fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285139</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-26 11:54:12 -0700</bug_when>
    <thetext>Reopen for commit-queue to see the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285141</commentid>
    <comment_count>20</comment_count>
      <attachid>68816</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-26 11:55:17 -0700</bug_when>
    <thetext>Comment on attachment 68816
Fix typo

Rejecting patch 68816 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 68816]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=68816&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=45970&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 68816 from bug 45970.
Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Gavin Barraclough&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4049167</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285142</commentid>
    <comment_count>21</comment_count>
      <attachid>68816</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-26 11:58:17 -0700</bug_when>
    <thetext>Comment on attachment 68816
Fix typo

Clearing flags on attachment: 68816

Already committed r68330: &lt;http://trac.webkit.org/changeset/68330&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67916</attachid>
            <date>2010-09-17 10:23:57 -0700</date>
            <delta_ts>2010-09-17 10:55:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45970.patch</filename>
            <type>text/plain</type>
            <size>8497</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAyY2NkYzk2Li40NzI2YTY3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTAtMDktMTcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBhcm9nYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdURjo6
U3RyaW5nSGFzaGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTk3MAorCisgICAgICAgIFN0cmluZ0hhc2hlciBpcyBhIGNsYXNzIGZvciBjYWxjdWxh
dGlvbiBzdHJpbmdIYXNoIG91dCBvZiBjaGFyYWN0ZXIgc3RyaW5nLgorICAgICAgICBUaGlzIGNs
YXNzIHdpbGwgdW5pZnkgdGhlIGRpZmZlcmVudCB1c2FnZXMgb2YgdGhlIHNhbWUgYWxnb3JpdGht
LgorCisgICAgICAgICogd3RmL1N0cmluZ0hhc2hGdW5jdGlvbnMuaDoKKyAgICAgICAgKFdURjo6
U3RyaW5nSGFzaGVyOjpTdHJpbmdIYXNoZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6
OmFkZENoYXJhY3RlcnMpOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6OmFkZENoYXJhY3Rl
cik6CisgICAgICAgIChXVEY6OlN0cmluZ0hhc2hlcjo6aGFzaCk6CisgICAgICAgIChXVEY6OlN0
cmluZ0hhc2hlcjo6Y3JlYXRlSGFzaCk6CisgICAgICAgIChXVEY6OlN0cmluZ0hhc2hlcjo6ZGVm
YXVsdENvdmVydGVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nSGFzaGVyOjphZGRDaGFyYWN0ZXJz
VG9IYXNoKToKKyAgICAgICAgKFdURjo6c3RyaW5nSGFzaCk6CisKIDIwMTAtMDktMTYgIEVyaWMg
VWhyaGFuZSAgPGVyaWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKaWFu
IExpLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5jdGlvbnMu
aCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoRnVuY3Rpb25zLmgKaW5kZXggMDdmMTE3
Zi4uMzVjYmIwYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5j
dGlvbnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nSGFzaEZ1bmN0aW9ucy5oCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
UGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yNywxMjkgKzI4LDE0OSBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIEdvbGRlbiByYXRpbyAt
IGFyYml0cmFyeSBzdGFydCB2YWx1ZSB0byBhdm9pZCBtYXBwaW5nIGFsbCAwJ3MgdG8gYWxsIDAn
cwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0cmluZ0hhc2hpbmdTdGFydFZhbHVlID0gMHg5ZTM3
NzliOVU7CiAKLS8vIHN0cmluZ0hhc2ggbWV0aG9kcyBiYXNlZCBvbiBQYXVsIEhzaWVoJ3MgU3Vw
ZXJGYXN0SGFzaC4KKy8vIFBhdWwgSHNpZWgncyBTdXBlckZhc3RIYXNoCiAvLyBodHRwOi8vd3d3
LmF6aWxsaW9ubW9ua2V5cy5jb20vcWVkL2hhc2guaHRtbAogLy8gY2hhciogZGF0YSBpcyBpbnRl
cnByZXRlZCBhcyBsYXRpbi1lbmNvZGVkICh6ZXJvIGV4dGVuZGVkIHRvIDE2IGJpdHMpLgorY2xh
c3MgU3RyaW5nSGFzaGVyIHsKK3B1YmxpYzoKKyAgICBpbmxpbmUgU3RyaW5nSGFzaGVyKCkKKyAg
ICAgICAgOiBtX2hhc2goc3RyaW5nSGFzaGluZ1N0YXJ0VmFsdWUpCisgICAgICAgICwgbV9jYWNo
ZWRDaGFyYWN0ZXIoaW52YWxpZENoYXJhY3RlclZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICBp
bmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzKFVDaGFyIGEsIFVDaGFyIGIpCisgICAgeworICAgICAg
ICBBU1NFUlQobV9jYWNoZWRDaGFyYWN0ZXIgPT0gaW52YWxpZENoYXJhY3RlclZhbHVlKTsKKyAg
ICAgICAgYWRkQ2hhcmFjdGVyc1RvSGFzaChhLCBiKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9p
ZCBhZGRDaGFyYWN0ZXIoVUNoYXIgY2gpCisgICAgeworICAgICAgICBBU1NFUlQoY2ggIT0gaW52
YWxpZENoYXJhY3RlclZhbHVlKTsKKyAgICAgICAgaWYgKG1fY2FjaGVkQ2hhcmFjdGVyICE9IGlu
dmFsaWRDaGFyYWN0ZXJWYWx1ZSkgeworICAgICAgICAgICAgYWRkQ2hhcmFjdGVyc1RvSGFzaCht
X2NhY2hlZENoYXJhY3RlciwgY2gpOworICAgICAgICAgICAgbV9jYWNoZWRDaGFyYWN0ZXIgPSBp
bnZhbGlkQ2hhcmFjdGVyVmFsdWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBtX2NhY2hlZENoYXJhY3RlciA9IGNoOworICAgIH0KKworICAgIGlubGluZSB1bnNp
Z25lZCBoYXNoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1faGFz
aDsKKworICAgICAgICAvLyBIYW5kbGUgZW5kIGNhc2UuCisgICAgICAgIGlmIChtX2NhY2hlZENo
YXJhY3RlciAhPSBpbnZhbGlkQ2hhcmFjdGVyVmFsdWUpIHsKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBtX2NhY2hlZENoYXJhY3RlcjsKKyAgICAgICAgICAgIHJlc3VsdCBePSByZXN1bHQgPDwgMTE7
CisgICAgICAgICAgICByZXN1bHQgKz0gcmVzdWx0ID4+IDE3OworICAgICAgICB9CisKKyAgICAg
ICAgLy8gRm9yY2UgImF2YWxhbmNoaW5nIiBvZiBmaW5hbCAzMSBiaXRzLgorICAgICAgICByZXN1
bHQgXj0gcmVzdWx0IDw8IDM7CisgICAgICAgIHJlc3VsdCArPSByZXN1bHQgPj4gNTsKKyAgICAg
ICAgcmVzdWx0IF49IHJlc3VsdCA8PCAyOworICAgICAgICByZXN1bHQgKz0gcmVzdWx0ID4+IDE1
OworICAgICAgICByZXN1bHQgXj0gcmVzdWx0IDw8IDEwOworCisgICAgICAgIC8vIFRoaXMgYXZv
aWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0
bworICAgICAgICAvLyBzaWduYWwgImhhc2ggbm90IGNvbXB1dGVkIHlldCIsIHVzaW5nIGEgdmFs
dWUgdGhhdCBpcyBsaWtlbHkgdG8gYmUKKyAgICAgICAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUg
YXMgMCB3aGVuIHRoZSBsb3cgYml0cyBhcmUgbWFza2VkLgorICAgICAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgICAgIHJldHVybiAweDgwMDAwMDAwOworCisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgVUNoYXIgQ292ZXJ0ZXIoVCk+IHN0
YXRpYyBpbmxpbmUgdW5zaWduZWQgY3JlYXRlSGFzaChjb25zdCBUKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgpCisgICAgeworICAgICAgICBTdHJpbmdIYXNoZXIgaGFzaGVyOworICAgICAgICBib29s
IHJlbSA9IGxlbmd0aCAmIDE7CisgICAgICAgIGxlbmd0aCA+Pj0gMTsKKworICAgICAgICB3aGls
ZSAobGVuZ3RoLS0pIHsKKyAgICAgICAgICAgIGhhc2hlci5hZGRDaGFyYWN0ZXJzKENvdmVydGVy
KGRhdGFbMF0pLCBDb3ZlcnRlcihkYXRhWzFdKSk7CisgICAgICAgICAgICBkYXRhICs9IDI7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAocmVtKQorICAgICAgICAgICAgaGFzaGVyLmFkZENoYXJh
Y3RlcihDb3ZlcnRlcigqZGF0YSkpOworCisgICAgICAgIHJldHVybiBoYXNoZXIuaGFzaCgpOwor
ICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFVDaGFyIENvdmVydGVyKFQpPiBzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGNyZWF0ZUhhc2goY29uc3QgVCogZGF0YSkKKyAgICB7CisgICAg
ICAgIFN0cmluZ0hhc2hlciBoYXNoZXI7CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAg
ICAgICAgIFVDaGFyIGIwID0gQ292ZXJ0ZXIoKmRhdGErKyk7CisgICAgICAgICAgICBpZiAoIWIw
KQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgVUNoYXIgYjEgPSBDb3ZlcnRl
cigqZGF0YSsrKTsKKyAgICAgICAgICAgIGlmICghYjEpIHsKKyAgICAgICAgICAgICAgICBoYXNo
ZXIuYWRkQ2hhcmFjdGVyKGIwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaGFzaGVyLmFkZENoYXJhY3RlcnMoYjAsIGIxKTsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybiBoYXNoZXIuaGFzaCgpOworICAgIH0KKworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY3JlYXRlSGFzaChjb25zdCBUKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlSGFzaDxU
LCBkZWZhdWx0Q292ZXJ0ZXI+KGRhdGEsIGxlbmd0aCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB1bnNpZ25lZCBjcmVhdGVIYXNoKGNvbnN0IFQqIGRh
dGEpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlSGFzaDxULCBkZWZhdWx0Q292ZXJ0ZXI+
KGRhdGEpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgaW5saW5lIFVDaGFyIGRlZmF1
bHRDb3ZlcnRlcihVQ2hhciBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisK
KyAgICBzdGF0aWMgaW5saW5lIFVDaGFyIGRlZmF1bHRDb3ZlcnRlcihjaGFyIGNoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGNoKTsKKyAgICB9CisK
KyAgICBpbmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzVG9IYXNoKFVDaGFyIGEsIFVDaGFyIGIpCisg
ICAgeworICAgICAgICBtX2hhc2ggKz0gYTsKKyAgICAgICAgdW5zaWduZWQgdG1wID0gKGIgPDwg
MTEpIF4gbV9oYXNoOworICAgICAgICBtX2hhc2ggPSAobV9oYXNoIDw8IDE2KSBeIHRtcDsKKyAg
ICAgICAgbV9oYXNoICs9IG1faGFzaCA+PiAxMTsKKyAgICB9CisKKyAgICBVQ2hhciBtX2NhY2hl
ZENoYXJhY3RlcjsKKyAgICB1bnNpZ25lZCBtX2hhc2g7CisKKyAgICBzdGF0aWMgY29uc3QgVUNo
YXIgaW52YWxpZENoYXJhY3RlclZhbHVlID0gMHhmZmZlOworfTsKKworCiAKIGlubGluZSB1bnNp
Z25lZCBzdHJpbmdIYXNoKGNvbnN0IFVDaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0g
ICAgdW5zaWduZWQgaGFzaCA9IFdURjo6c3RyaW5nSGFzaGluZ1N0YXJ0VmFsdWU7Ci0gICAgdW5z
aWduZWQgcmVtID0gbGVuZ3RoICYgMTsKLSAgICBsZW5ndGggPj49IDE7Ci0KLSAgICAvLyBNYWlu
IGxvb3AKLSAgICBmb3IgKDsgbGVuZ3RoID4gMDsgbGVuZ3RoLS0pIHsKLSAgICAgICAgaGFzaCAr
PSBkYXRhWzBdOwotICAgICAgICB1bnNpZ25lZCB0bXAgPSAoZGF0YVsxXSA8PCAxMSkgXiBoYXNo
OwotICAgICAgICBoYXNoID0gKGhhc2ggPDwgMTYpIF4gdG1wOwotICAgICAgICBkYXRhICs9IDI7
Ci0gICAgICAgIGhhc2ggKz0gaGFzaCA+PiAxMTsKLSAgICB9Ci0KLSAgICAvLyBIYW5kbGUgZW5k
IGNhc2UKLSAgICBpZiAocmVtKSB7Ci0gICAgICAgIGhhc2ggKz0gZGF0YVswXTsKLSAgICAgICAg
aGFzaCBePSBoYXNoIDw8IDExOwotICAgICAgICBoYXNoICs9IGhhc2ggPj4gMTc7Ci0gICAgfQot
Ci0gICAgLy8gRm9yY2UgImF2YWxhbmNoaW5nIiBvZiBmaW5hbCAxMjcgYml0cwotICAgIGhhc2gg
Xj0gaGFzaCA8PCAzOwotICAgIGhhc2ggKz0gaGFzaCA+PiA1OwotICAgIGhhc2ggXj0gaGFzaCA8
PCAyOwotICAgIGhhc2ggKz0gaGFzaCA+PiAxNTsKLSAgICBoYXNoIF49IGhhc2ggPDwgMTA7Ci0K
LSAgICBoYXNoICY9IDB4N2ZmZmZmZmY7Ci0KLSAgICAvLyB0aGlzIGF2b2lkcyBldmVyIHJldHVy
bmluZyBhIGhhc2ggY29kZSBvZiAwLCBzaW5jZSB0aGF0IGlzIHVzZWQgdG8KLSAgICAvLyBzaWdu
YWwgImhhc2ggbm90IGNvbXB1dGVkIHlldCIsIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyBsaWtlbHkg
dG8gYmUKLSAgICAvLyBlZmZlY3RpdmVseSB0aGUgc2FtZSBhcyAwIHdoZW4gdGhlIGxvdyBiaXRz
IGFyZSBtYXNrZWQKLSAgICBpZiAoaGFzaCA9PSAwKQotICAgICAgICBoYXNoID0gMHg0MDAwMDAw
MDsKLQotICAgIHJldHVybiBoYXNoOworICAgIHJldHVybiBTdHJpbmdIYXNoZXI6OmNyZWF0ZUhh
c2g8VUNoYXI+KGRhdGEsIGxlbmd0aCk7CiB9CiAKIGlubGluZSB1bnNpZ25lZCBzdHJpbmdIYXNo
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICB1bnNpZ25lZCBoYXNo
ID0gV1RGOjpzdHJpbmdIYXNoaW5nU3RhcnRWYWx1ZTsKLSAgICB1bnNpZ25lZCByZW0gPSBsZW5n
dGggJiAxOwotICAgIGxlbmd0aCA+Pj0gMTsKLQotICAgIC8vIE1haW4gbG9vcAotICAgIGZvciAo
OyBsZW5ndGggPiAwOyBsZW5ndGgtLSkgewotICAgICAgICBoYXNoICs9IHN0YXRpY19jYXN0PHVu
c2lnbmVkIGNoYXI+KGRhdGFbMF0pOwotICAgICAgICB1bnNpZ25lZCB0bXAgPSAoc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4oZGF0YVsxXSkgPDwgMTEpIF4gaGFzaDsKLSAgICAgICAgaGFzaCA9
IChoYXNoIDw8IDE2KSBeIHRtcDsKLSAgICAgICAgZGF0YSArPSAyOwotICAgICAgICBoYXNoICs9
IGhhc2ggPj4gMTE7Ci0gICAgfQotCi0gICAgLy8gSGFuZGxlIGVuZCBjYXNlCi0gICAgaWYgKHJl
bSkgewotICAgICAgICBoYXNoICs9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGRhdGFbMF0p
OwotICAgICAgICBoYXNoIF49IGhhc2ggPDwgMTE7Ci0gICAgICAgIGhhc2ggKz0gaGFzaCA+PiAx
NzsKLSAgICB9Ci0KLSAgICAvLyBGb3JjZSAiYXZhbGFuY2hpbmciIG9mIGZpbmFsIDEyNyBiaXRz
Ci0gICAgaGFzaCBePSBoYXNoIDw8IDM7Ci0gICAgaGFzaCArPSBoYXNoID4+IDU7Ci0gICAgaGFz
aCBePSBoYXNoIDw8IDI7Ci0gICAgaGFzaCArPSBoYXNoID4+IDE1OwotICAgIGhhc2ggXj0gaGFz
aCA8PCAxMDsKLQotICAgIGhhc2ggJj0gMHg3ZmZmZmZmZjsKLQotICAgIC8vIHRoaXMgYXZvaWRz
IGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwot
ICAgIC8vIHNpZ25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0
IGlzIGxpa2VseSB0byBiZQotICAgIC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0
aGUgbG93IGJpdHMgYXJlIG1hc2tlZAotICAgIGlmIChoYXNoID09IDApCi0gICAgICAgIGhhc2gg
PSAweDQwMDAwMDAwOwotCi0gICAgcmV0dXJuIGhhc2g7CisgICAgcmV0dXJuIFN0cmluZ0hhc2hl
cjo6Y3JlYXRlSGFzaDxjaGFyPihkYXRhLCBsZW5ndGgpOwogfQogCiBpbmxpbmUgdW5zaWduZWQg
c3RyaW5nSGFzaChjb25zdCBjaGFyKiBkYXRhKQogewotICAgIHVuc2lnbmVkIGhhc2ggPSBXVEY6
OnN0cmluZ0hhc2hpbmdTdGFydFZhbHVlOwotCi0gICAgLy8gTWFpbiBsb29wCi0gICAgZm9yICg7
OykgewotICAgICAgICB1bnNpZ25lZCBjaGFyIGIwID0gZGF0YVswXTsKLSAgICAgICAgaWYgKCFi
MCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB1bnNpZ25lZCBjaGFyIGIxID0gZGF0YVsx
XTsKLSAgICAgICAgaWYgKCFiMSkgewotICAgICAgICAgICAgaGFzaCArPSBiMDsKLSAgICAgICAg
ICAgIGhhc2ggXj0gaGFzaCA8PCAxMTsKLSAgICAgICAgICAgIGhhc2ggKz0gaGFzaCA+PiAxNzsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGhhc2ggKz0gYjA7Ci0gICAg
ICAgIHVuc2lnbmVkIHRtcCA9IChiMSA8PCAxMSkgXiBoYXNoOwotICAgICAgICBoYXNoID0gKGhh
c2ggPDwgMTYpIF4gdG1wOwotICAgICAgICBkYXRhICs9IDI7Ci0gICAgICAgIGhhc2ggKz0gaGFz
aCA+PiAxMTsKLSAgICB9Ci0KLSAgICAvLyBGb3JjZSAiYXZhbGFuY2hpbmciIG9mIGZpbmFsIDEy
NyBiaXRzLgotICAgIGhhc2ggXj0gaGFzaCA8PCAzOwotICAgIGhhc2ggKz0gaGFzaCA+PiA1Owot
ICAgIGhhc2ggXj0gaGFzaCA8PCAyOwotICAgIGhhc2ggKz0gaGFzaCA+PiAxNTsKLSAgICBoYXNo
IF49IGhhc2ggPDwgMTA7Ci0KLSAgICBoYXNoICY9IDB4N2ZmZmZmZmY7Ci0KLSAgICAvLyBUaGlz
IGF2b2lkcyBldmVyIHJldHVybmluZyBhIGhhc2ggY29kZSBvZiAwLCBzaW5jZSB0aGF0IGlzIHVz
ZWQgdG8KLSAgICAvLyBzaWduYWwgImhhc2ggbm90IGNvbXB1dGVkIHlldCIsIHVzaW5nIGEgdmFs
dWUgdGhhdCBpcyBsaWtlbHkgdG8gYmUKLSAgICAvLyBlZmZlY3RpdmVseSB0aGUgc2FtZSBhcyAw
IHdoZW4gdGhlIGxvdyBiaXRzIGFyZSBtYXNrZWQuCi0gICAgaWYgKGhhc2ggPT0gMCkKLSAgICAg
ICAgaGFzaCA9IDB4NDAwMDAwMDA7Ci0KLSAgICByZXR1cm4gaGFzaDsKKyAgICByZXR1cm4gU3Ry
aW5nSGFzaGVyOjpjcmVhdGVIYXNoPGNoYXI+KGRhdGEpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67920</attachid>
            <date>2010-09-17 10:55:49 -0700</date>
            <delta_ts>2010-09-18 15:37:03 -0700</delta_ts>
            <desc>Patch (use one 31 bit)</desc>
            <filename>bug-45970b.patch</filename>
            <type>text/plain</type>
            <size>8595</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAyY2NkYzk2Li40NzI2YTY3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTAtMDktMTcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBhcm9nYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdURjo6
U3RyaW5nSGFzaGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTk3MAorCisgICAgICAgIFN0cmluZ0hhc2hlciBpcyBhIGNsYXNzIGZvciBjYWxjdWxh
dGlvbiBzdHJpbmdIYXNoIG91dCBvZiBjaGFyYWN0ZXIgc3RyaW5nLgorICAgICAgICBUaGlzIGNs
YXNzIHdpbGwgdW5pZnkgdGhlIGRpZmZlcmVudCB1c2FnZXMgb2YgdGhlIHNhbWUgYWxnb3JpdGht
LgorCisgICAgICAgICogd3RmL1N0cmluZ0hhc2hGdW5jdGlvbnMuaDoKKyAgICAgICAgKFdURjo6
U3RyaW5nSGFzaGVyOjpTdHJpbmdIYXNoZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6
OmFkZENoYXJhY3RlcnMpOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6OmFkZENoYXJhY3Rl
cik6CisgICAgICAgIChXVEY6OlN0cmluZ0hhc2hlcjo6aGFzaCk6CisgICAgICAgIChXVEY6OlN0
cmluZ0hhc2hlcjo6Y3JlYXRlSGFzaCk6CisgICAgICAgIChXVEY6OlN0cmluZ0hhc2hlcjo6ZGVm
YXVsdENvdmVydGVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nSGFzaGVyOjphZGRDaGFyYWN0ZXJz
VG9IYXNoKToKKyAgICAgICAgKFdURjo6c3RyaW5nSGFzaCk6CisKIDIwMTAtMDktMTYgIEVyaWMg
VWhyaGFuZSAgPGVyaWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKaWFu
IExpLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5jdGlvbnMu
aCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoRnVuY3Rpb25zLmgKaW5kZXggMDdmMTE3
Zi4uMzVjYmIwYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5j
dGlvbnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nSGFzaEZ1bmN0aW9ucy5oCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
UGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yNywxMjkgKzI4LDE1MiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIEdvbGRlbiByYXRpbyAt
IGFyYml0cmFyeSBzdGFydCB2YWx1ZSB0byBhdm9pZCBtYXBwaW5nIGFsbCAwJ3MgdG8gYWxsIDAn
cwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0cmluZ0hhc2hpbmdTdGFydFZhbHVlID0gMHg5ZTM3
NzliOVU7CiAKLS8vIHN0cmluZ0hhc2ggbWV0aG9kcyBiYXNlZCBvbiBQYXVsIEhzaWVoJ3MgU3Vw
ZXJGYXN0SGFzaC4KKy8vIFBhdWwgSHNpZWgncyBTdXBlckZhc3RIYXNoCiAvLyBodHRwOi8vd3d3
LmF6aWxsaW9ubW9ua2V5cy5jb20vcWVkL2hhc2guaHRtbAogLy8gY2hhciogZGF0YSBpcyBpbnRl
cnByZXRlZCBhcyBsYXRpbi1lbmNvZGVkICh6ZXJvIGV4dGVuZGVkIHRvIDE2IGJpdHMpLgorY2xh
c3MgU3RyaW5nSGFzaGVyIHsKK3B1YmxpYzoKKyAgICBpbmxpbmUgU3RyaW5nSGFzaGVyKCkKKyAg
ICAgICAgOiBtX2hhc2goc3RyaW5nSGFzaGluZ1N0YXJ0VmFsdWUpCisgICAgICAgICwgbV9jYWNo
ZWRDaGFyYWN0ZXIoaW52YWxpZENoYXJhY3RlclZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICBp
bmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzKFVDaGFyIGEsIFVDaGFyIGIpCisgICAgeworICAgICAg
ICBBU1NFUlQobV9jYWNoZWRDaGFyYWN0ZXIgPT0gaW52YWxpZENoYXJhY3RlclZhbHVlKTsKKyAg
ICAgICAgYWRkQ2hhcmFjdGVyc1RvSGFzaChhLCBiKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9p
ZCBhZGRDaGFyYWN0ZXIoVUNoYXIgY2gpCisgICAgeworICAgICAgICBBU1NFUlQoY2ggIT0gaW52
YWxpZENoYXJhY3RlclZhbHVlKTsKKyAgICAgICAgaWYgKG1fY2FjaGVkQ2hhcmFjdGVyICE9IGlu
dmFsaWRDaGFyYWN0ZXJWYWx1ZSkgeworICAgICAgICAgICAgYWRkQ2hhcmFjdGVyc1RvSGFzaCht
X2NhY2hlZENoYXJhY3RlciwgY2gpOworICAgICAgICAgICAgbV9jYWNoZWRDaGFyYWN0ZXIgPSBp
bnZhbGlkQ2hhcmFjdGVyVmFsdWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBtX2NhY2hlZENoYXJhY3RlciA9IGNoOworICAgIH0KKworICAgIGlubGluZSB1bnNp
Z25lZCBoYXNoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1faGFz
aDsKKworICAgICAgICAvLyBIYW5kbGUgZW5kIGNhc2UuCisgICAgICAgIGlmIChtX2NhY2hlZENo
YXJhY3RlciAhPSBpbnZhbGlkQ2hhcmFjdGVyVmFsdWUpIHsKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBtX2NhY2hlZENoYXJhY3RlcjsKKyAgICAgICAgICAgIHJlc3VsdCBePSByZXN1bHQgPDwgMTE7
CisgICAgICAgICAgICByZXN1bHQgKz0gcmVzdWx0ID4+IDE3OworICAgICAgICB9CisKKyAgICAg
ICAgLy8gRm9yY2UgImF2YWxhbmNoaW5nIiBvZiBmaW5hbCAzMSBiaXRzLgorICAgICAgICByZXN1
bHQgXj0gcmVzdWx0IDw8IDM7CisgICAgICAgIHJlc3VsdCArPSByZXN1bHQgPj4gNTsKKyAgICAg
ICAgcmVzdWx0IF49IHJlc3VsdCA8PCAyOworICAgICAgICByZXN1bHQgKz0gcmVzdWx0ID4+IDE1
OworICAgICAgICByZXN1bHQgXj0gcmVzdWx0IDw8IDEwOworCisgICAgICAgIC8vIEZpcnN0IGJp
dCBpcyB1c2VkIGluIFVTdHJpbmdJbXBsIGZvciBtX2lzSWRlbnRpZmllci4KKyAgICAgICAgcmVz
dWx0ICY9IDB4N2ZmZmZmZmY7CisKKyAgICAgICAgLy8gVGhpcyBhdm9pZHMgZXZlciByZXR1cm5p
bmcgYSBoYXNoIGNvZGUgb2YgMCwgc2luY2UgdGhhdCBpcyB1c2VkIHRvCisgICAgICAgIC8vIHNp
Z25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2Vs
eSB0byBiZQorICAgICAgICAvLyBlZmZlY3RpdmVseSB0aGUgc2FtZSBhcyAwIHdoZW4gdGhlIGxv
dyBiaXRzIGFyZSBtYXNrZWQuCisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0
dXJuIDB4NDAwMDAwMDA7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBVQ2hhciBDb3ZlcnRlcihUKT4gc3RhdGljIGlubGluZSB1bnNp
Z25lZCBjcmVhdGVIYXNoKGNvbnN0IFQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICB7Cisg
ICAgICAgIFN0cmluZ0hhc2hlciBoYXNoZXI7CisgICAgICAgIGJvb2wgcmVtID0gbGVuZ3RoICYg
MTsKKyAgICAgICAgbGVuZ3RoID4+PSAxOworCisgICAgICAgIHdoaWxlIChsZW5ndGgtLSkgewor
ICAgICAgICAgICAgaGFzaGVyLmFkZENoYXJhY3RlcnMoQ292ZXJ0ZXIoZGF0YVswXSksIENvdmVy
dGVyKGRhdGFbMV0pKTsKKyAgICAgICAgICAgIGRhdGEgKz0gMjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChyZW0pCisgICAgICAgICAgICBoYXNoZXIuYWRkQ2hhcmFjdGVyKENvdmVydGVyKCpk
YXRhKSk7CisKKyAgICAgICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7CisgICAgfQorCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgVUNoYXIgQ292ZXJ0ZXIoVCk+IHN0YXRpYyBpbmxpbmUgdW5zaWdu
ZWQgY3JlYXRlSGFzaChjb25zdCBUKiBkYXRhKQorICAgIHsKKyAgICAgICAgU3RyaW5nSGFzaGVy
IGhhc2hlcjsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgVUNoYXIgYjAg
PSBDb3ZlcnRlcigqZGF0YSsrKTsKKyAgICAgICAgICAgIGlmICghYjApCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBVQ2hhciBiMSA9IENvdmVydGVyKCpkYXRhKyspOworICAg
ICAgICAgICAgaWYgKCFiMSkgeworICAgICAgICAgICAgICAgIGhhc2hlci5hZGRDaGFyYWN0ZXIo
YjApOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBoYXNoZXIuYWRkQ2hhcmFjdGVycyhiMCwgYjEpOworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuIGhhc2hlci5oYXNoKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Rh
dGljIGlubGluZSB1bnNpZ25lZCBjcmVhdGVIYXNoKGNvbnN0IFQqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGVIYXNoPFQsIGRlZmF1bHRDb3ZlcnRl
cj4oZGF0YSwgbGVuZ3RoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGNyZWF0ZUhhc2goY29uc3QgVCogZGF0YSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBjcmVhdGVIYXNoPFQsIGRlZmF1bHRDb3ZlcnRlcj4oZGF0YSk7CisgICAgfQor
Citwcml2YXRlOgorICAgIHN0YXRpYyBpbmxpbmUgVUNoYXIgZGVmYXVsdENvdmVydGVyKFVDaGFy
IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIHN0YXRpYyBpbmxp
bmUgVUNoYXIgZGVmYXVsdENvdmVydGVyKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpOworICAgIH0KKworICAgIGlubGluZSB2b2lk
IGFkZENoYXJhY3RlcnNUb0hhc2goVUNoYXIgYSwgVUNoYXIgYikKKyAgICB7CisgICAgICAgIG1f
aGFzaCArPSBhOworICAgICAgICB1bnNpZ25lZCB0bXAgPSAoYiA8PCAxMSkgXiBtX2hhc2g7Cisg
ICAgICAgIG1faGFzaCA9IChtX2hhc2ggPDwgMTYpIF4gdG1wOworICAgICAgICBtX2hhc2ggKz0g
bV9oYXNoID4+IDExOworICAgIH0KKworICAgIFVDaGFyIG1fY2FjaGVkQ2hhcmFjdGVyOworICAg
IHVuc2lnbmVkIG1faGFzaDsKKworICAgIHN0YXRpYyBjb25zdCBVQ2hhciBpbnZhbGlkQ2hhcmFj
dGVyVmFsdWUgPSAweGZmZmU7Cit9OworCisKIAogaW5saW5lIHVuc2lnbmVkIHN0cmluZ0hhc2go
Y29uc3QgVUNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICB1bnNpZ25lZCBoYXNo
ID0gV1RGOjpzdHJpbmdIYXNoaW5nU3RhcnRWYWx1ZTsKLSAgICB1bnNpZ25lZCByZW0gPSBsZW5n
dGggJiAxOwotICAgIGxlbmd0aCA+Pj0gMTsKLQotICAgIC8vIE1haW4gbG9vcAotICAgIGZvciAo
OyBsZW5ndGggPiAwOyBsZW5ndGgtLSkgewotICAgICAgICBoYXNoICs9IGRhdGFbMF07Ci0gICAg
ICAgIHVuc2lnbmVkIHRtcCA9IChkYXRhWzFdIDw8IDExKSBeIGhhc2g7Ci0gICAgICAgIGhhc2gg
PSAoaGFzaCA8PCAxNikgXiB0bXA7Ci0gICAgICAgIGRhdGEgKz0gMjsKLSAgICAgICAgaGFzaCAr
PSBoYXNoID4+IDExOwotICAgIH0KLQotICAgIC8vIEhhbmRsZSBlbmQgY2FzZQotICAgIGlmIChy
ZW0pIHsKLSAgICAgICAgaGFzaCArPSBkYXRhWzBdOwotICAgICAgICBoYXNoIF49IGhhc2ggPDwg
MTE7Ci0gICAgICAgIGhhc2ggKz0gaGFzaCA+PiAxNzsKLSAgICB9Ci0KLSAgICAvLyBGb3JjZSAi
YXZhbGFuY2hpbmciIG9mIGZpbmFsIDEyNyBiaXRzCi0gICAgaGFzaCBePSBoYXNoIDw8IDM7Ci0g
ICAgaGFzaCArPSBoYXNoID4+IDU7Ci0gICAgaGFzaCBePSBoYXNoIDw8IDI7Ci0gICAgaGFzaCAr
PSBoYXNoID4+IDE1OwotICAgIGhhc2ggXj0gaGFzaCA8PCAxMDsKLQotICAgIGhhc2ggJj0gMHg3
ZmZmZmZmZjsKLQotICAgIC8vIHRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2Rl
IG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwotICAgIC8vIHNpZ25hbCAiaGFzaCBub3QgY29t
cHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2VseSB0byBiZQotICAgIC8vIGVm
ZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0aGUgbG93IGJpdHMgYXJlIG1hc2tlZAotICAg
IGlmIChoYXNoID09IDApCi0gICAgICAgIGhhc2ggPSAweDQwMDAwMDAwOwotCi0gICAgcmV0dXJu
IGhhc2g7CisgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6Y3JlYXRlSGFzaDxVQ2hhcj4oZGF0YSwg
bGVuZ3RoKTsKIH0KIAogaW5saW5lIHVuc2lnbmVkIHN0cmluZ0hhc2goY29uc3QgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIHVuc2lnbmVkIGhhc2ggPSBXVEY6OnN0cmluZ0hh
c2hpbmdTdGFydFZhbHVlOwotICAgIHVuc2lnbmVkIHJlbSA9IGxlbmd0aCAmIDE7Ci0gICAgbGVu
Z3RoID4+PSAxOwotCi0gICAgLy8gTWFpbiBsb29wCi0gICAgZm9yICg7IGxlbmd0aCA+IDA7IGxl
bmd0aC0tKSB7Ci0gICAgICAgIGhhc2ggKz0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oZGF0
YVswXSk7Ci0gICAgICAgIHVuc2lnbmVkIHRtcCA9IChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFy
PihkYXRhWzFdKSA8PCAxMSkgXiBoYXNoOwotICAgICAgICBoYXNoID0gKGhhc2ggPDwgMTYpIF4g
dG1wOwotICAgICAgICBkYXRhICs9IDI7Ci0gICAgICAgIGhhc2ggKz0gaGFzaCA+PiAxMTsKLSAg
ICB9Ci0KLSAgICAvLyBIYW5kbGUgZW5kIGNhc2UKLSAgICBpZiAocmVtKSB7Ci0gICAgICAgIGhh
c2ggKz0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oZGF0YVswXSk7Ci0gICAgICAgIGhhc2gg
Xj0gaGFzaCA8PCAxMTsKLSAgICAgICAgaGFzaCArPSBoYXNoID4+IDE3OwotICAgIH0KLQotICAg
IC8vIEZvcmNlICJhdmFsYW5jaGluZyIgb2YgZmluYWwgMTI3IGJpdHMKLSAgICBoYXNoIF49IGhh
c2ggPDwgMzsKLSAgICBoYXNoICs9IGhhc2ggPj4gNTsKLSAgICBoYXNoIF49IGhhc2ggPDwgMjsK
LSAgICBoYXNoICs9IGhhc2ggPj4gMTU7Ci0gICAgaGFzaCBePSBoYXNoIDw8IDEwOwotCi0gICAg
aGFzaCAmPSAweDdmZmZmZmZmOwotCi0gICAgLy8gdGhpcyBhdm9pZHMgZXZlciByZXR1cm5pbmcg
YSBoYXNoIGNvZGUgb2YgMCwgc2luY2UgdGhhdCBpcyB1c2VkIHRvCi0gICAgLy8gc2lnbmFsICJo
YXNoIG5vdCBjb21wdXRlZCB5ZXQiLCB1c2luZyBhIHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJl
Ci0gICAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgMCB3aGVuIHRoZSBsb3cgYml0cyBhcmUg
bWFza2VkCi0gICAgaWYgKGhhc2ggPT0gMCkKLSAgICAgICAgaGFzaCA9IDB4NDAwMDAwMDA7Ci0K
LSAgICByZXR1cm4gaGFzaDsKKyAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpjcmVhdGVIYXNoPGNo
YXI+KGRhdGEsIGxlbmd0aCk7CiB9CiAKIGlubGluZSB1bnNpZ25lZCBzdHJpbmdIYXNoKGNvbnN0
IGNoYXIqIGRhdGEpCiB7Ci0gICAgdW5zaWduZWQgaGFzaCA9IFdURjo6c3RyaW5nSGFzaGluZ1N0
YXJ0VmFsdWU7Ci0KLSAgICAvLyBNYWluIGxvb3AKLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIHVu
c2lnbmVkIGNoYXIgYjAgPSBkYXRhWzBdOwotICAgICAgICBpZiAoIWIwKQotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYjEgPSBkYXRhWzFdOwotICAgICAgICBpZiAo
IWIxKSB7Ci0gICAgICAgICAgICBoYXNoICs9IGIwOwotICAgICAgICAgICAgaGFzaCBePSBoYXNo
IDw8IDExOwotICAgICAgICAgICAgaGFzaCArPSBoYXNoID4+IDE3OwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgICAgaGFzaCArPSBiMDsKLSAgICAgICAgdW5zaWduZWQgdG1w
ID0gKGIxIDw8IDExKSBeIGhhc2g7Ci0gICAgICAgIGhhc2ggPSAoaGFzaCA8PCAxNikgXiB0bXA7
Ci0gICAgICAgIGRhdGEgKz0gMjsKLSAgICAgICAgaGFzaCArPSBoYXNoID4+IDExOwotICAgIH0K
LQotICAgIC8vIEZvcmNlICJhdmFsYW5jaGluZyIgb2YgZmluYWwgMTI3IGJpdHMuCi0gICAgaGFz
aCBePSBoYXNoIDw8IDM7Ci0gICAgaGFzaCArPSBoYXNoID4+IDU7Ci0gICAgaGFzaCBePSBoYXNo
IDw8IDI7Ci0gICAgaGFzaCArPSBoYXNoID4+IDE1OwotICAgIGhhc2ggXj0gaGFzaCA8PCAxMDsK
LQotICAgIGhhc2ggJj0gMHg3ZmZmZmZmZjsKLQotICAgIC8vIFRoaXMgYXZvaWRzIGV2ZXIgcmV0
dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwotICAgIC8vIHNp
Z25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2Vs
eSB0byBiZQotICAgIC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0aGUgbG93IGJp
dHMgYXJlIG1hc2tlZC4KLSAgICBpZiAoaGFzaCA9PSAwKQotICAgICAgICBoYXNoID0gMHg0MDAw
MDAwMDsKLQotICAgIHJldHVybiBoYXNoOworICAgIHJldHVybiBTdHJpbmdIYXNoZXI6OmNyZWF0
ZUhhc2g8Y2hhcj4oZGF0YSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgog
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68017</attachid>
            <date>2010-09-18 15:37:03 -0700</date>
            <delta_ts>2010-09-24 14:06:40 -0700</delta_ts>
            <desc>Patch (use one 31 bit)</desc>
            <filename>bug-49570c.patch</filename>
            <type>text/plain</type>
            <size>8595</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAyY2NkYzk2Li40NzI2YTY3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTAtMDktMTcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBhcm9nYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdURjo6
U3RyaW5nSGFzaGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTk3MAorCisgICAgICAgIFN0cmluZ0hhc2hlciBpcyBhIGNsYXNzIGZvciBjYWxjdWxh
dGlvbiBzdHJpbmdIYXNoIG91dCBvZiBjaGFyYWN0ZXIgc3RyaW5nLgorICAgICAgICBUaGlzIGNs
YXNzIHdpbGwgdW5pZnkgdGhlIGRpZmZlcmVudCB1c2FnZXMgb2YgdGhlIHNhbWUgYWxnb3JpdGht
LgorCisgICAgICAgICogd3RmL1N0cmluZ0hhc2hGdW5jdGlvbnMuaDoKKyAgICAgICAgKFdURjo6
U3RyaW5nSGFzaGVyOjpTdHJpbmdIYXNoZXIpOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6
OmFkZENoYXJhY3RlcnMpOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6OmFkZENoYXJhY3Rl
cik6CisgICAgICAgIChXVEY6OlN0cmluZ0hhc2hlcjo6aGFzaCk6CisgICAgICAgIChXVEY6OlN0
cmluZ0hhc2hlcjo6Y3JlYXRlSGFzaCk6CisgICAgICAgIChXVEY6OlN0cmluZ0hhc2hlcjo6ZGVm
YXVsdENvdmVydGVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nSGFzaGVyOjphZGRDaGFyYWN0ZXJz
VG9IYXNoKToKKyAgICAgICAgKFdURjo6c3RyaW5nSGFzaCk6CisKIDIwMTAtMDktMTYgIEVyaWMg
VWhyaGFuZSAgPGVyaWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKaWFu
IExpLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5jdGlvbnMu
aCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoRnVuY3Rpb25zLmgKaW5kZXggMDdmMTE3
Zi4uMzVjYmIwYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5j
dGlvbnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nSGFzaEZ1bmN0aW9ucy5oCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
UGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yNywxMjkgKzI4LDE1MiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vIEdvbGRlbiByYXRpbyAt
IGFyYml0cmFyeSBzdGFydCB2YWx1ZSB0byBhdm9pZCBtYXBwaW5nIGFsbCAwJ3MgdG8gYWxsIDAn
cwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0cmluZ0hhc2hpbmdTdGFydFZhbHVlID0gMHg5ZTM3
NzliOVU7CiAKLS8vIHN0cmluZ0hhc2ggbWV0aG9kcyBiYXNlZCBvbiBQYXVsIEhzaWVoJ3MgU3Vw
ZXJGYXN0SGFzaC4KKy8vIFBhdWwgSHNpZWgncyBTdXBlckZhc3RIYXNoCiAvLyBodHRwOi8vd3d3
LmF6aWxsaW9ubW9ua2V5cy5jb20vcWVkL2hhc2guaHRtbAogLy8gY2hhciogZGF0YSBpcyBpbnRl
cnByZXRlZCBhcyBsYXRpbi1lbmNvZGVkICh6ZXJvIGV4dGVuZGVkIHRvIDE2IGJpdHMpLgorY2xh
c3MgU3RyaW5nSGFzaGVyIHsKK3B1YmxpYzoKKyAgICBpbmxpbmUgU3RyaW5nSGFzaGVyKCkKKyAg
ICAgICAgOiBtX2hhc2goc3RyaW5nSGFzaGluZ1N0YXJ0VmFsdWUpCisgICAgICAgICwgbV9jYWNo
ZWRDaGFyYWN0ZXIoaW52YWxpZENoYXJhY3RlclZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICBp
bmxpbmUgdm9pZCBhZGRDaGFyYWN0ZXJzKFVDaGFyIGEsIFVDaGFyIGIpCisgICAgeworICAgICAg
ICBBU1NFUlQobV9jYWNoZWRDaGFyYWN0ZXIgPT0gaW52YWxpZENoYXJhY3RlclZhbHVlKTsKKyAg
ICAgICAgYWRkQ2hhcmFjdGVyc1RvSGFzaChhLCBiKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9p
ZCBhZGRDaGFyYWN0ZXIoVUNoYXIgY2gpCisgICAgeworICAgICAgICBBU1NFUlQoY2ggIT0gaW52
YWxpZENoYXJhY3RlclZhbHVlKTsKKyAgICAgICAgaWYgKG1fY2FjaGVkQ2hhcmFjdGVyICE9IGlu
dmFsaWRDaGFyYWN0ZXJWYWx1ZSkgeworICAgICAgICAgICAgYWRkQ2hhcmFjdGVyc1RvSGFzaCht
X2NhY2hlZENoYXJhY3RlciwgY2gpOworICAgICAgICAgICAgbV9jYWNoZWRDaGFyYWN0ZXIgPSBp
bnZhbGlkQ2hhcmFjdGVyVmFsdWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBtX2NhY2hlZENoYXJhY3RlciA9IGNoOworICAgIH0KKworICAgIGlubGluZSB1bnNp
Z25lZCBoYXNoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1faGFz
aDsKKworICAgICAgICAvLyBIYW5kbGUgZW5kIGNhc2UuCisgICAgICAgIGlmIChtX2NhY2hlZENo
YXJhY3RlciAhPSBpbnZhbGlkQ2hhcmFjdGVyVmFsdWUpIHsKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBtX2NhY2hlZENoYXJhY3RlcjsKKyAgICAgICAgICAgIHJlc3VsdCBePSByZXN1bHQgPDwgMTE7
CisgICAgICAgICAgICByZXN1bHQgKz0gcmVzdWx0ID4+IDE3OworICAgICAgICB9CisKKyAgICAg
ICAgLy8gRm9yY2UgImF2YWxhbmNoaW5nIiBvZiBmaW5hbCAzMSBiaXRzLgorICAgICAgICByZXN1
bHQgXj0gcmVzdWx0IDw8IDM7CisgICAgICAgIHJlc3VsdCArPSByZXN1bHQgPj4gNTsKKyAgICAg
ICAgcmVzdWx0IF49IHJlc3VsdCA8PCAyOworICAgICAgICByZXN1bHQgKz0gcmVzdWx0ID4+IDE1
OworICAgICAgICByZXN1bHQgXj0gcmVzdWx0IDw8IDEwOworCisgICAgICAgIC8vIEZpcnN0IGJp
dCBpcyB1c2VkIGluIFVTdHJpbmdJbXBsIGZvciBtX2lzSWRlbnRpZmllci4KKyAgICAgICAgcmVz
dWx0ICY9IDB4N2ZmZmZmZmY7CisKKyAgICAgICAgLy8gVGhpcyBhdm9pZHMgZXZlciByZXR1cm5p
bmcgYSBoYXNoIGNvZGUgb2YgMCwgc2luY2UgdGhhdCBpcyB1c2VkIHRvCisgICAgICAgIC8vIHNp
Z25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2Vs
eSB0byBiZQorICAgICAgICAvLyBlZmZlY3RpdmVseSB0aGUgc2FtZSBhcyAwIHdoZW4gdGhlIGxv
dyBiaXRzIGFyZSBtYXNrZWQuCisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0
dXJuIDB4NDAwMDAwMDA7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBVQ2hhciBDb3ZlcnRlcihUKT4gc3RhdGljIGlubGluZSB1bnNp
Z25lZCBjcmVhdGVIYXNoKGNvbnN0IFQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICB7Cisg
ICAgICAgIFN0cmluZ0hhc2hlciBoYXNoZXI7CisgICAgICAgIGJvb2wgcmVtID0gbGVuZ3RoICYg
MTsKKyAgICAgICAgbGVuZ3RoID4+PSAxOworCisgICAgICAgIHdoaWxlIChsZW5ndGgtLSkgewor
ICAgICAgICAgICAgaGFzaGVyLmFkZENoYXJhY3RlcnMoQ292ZXJ0ZXIoZGF0YVswXSksIENvdmVy
dGVyKGRhdGFbMV0pKTsKKyAgICAgICAgICAgIGRhdGEgKz0gMjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChyZW0pCisgICAgICAgICAgICBoYXNoZXIuYWRkQ2hhcmFjdGVyKENvdmVydGVyKCpk
YXRhKSk7CisKKyAgICAgICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7CisgICAgfQorCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgVUNoYXIgQ292ZXJ0ZXIoVCk+IHN0YXRpYyBpbmxpbmUgdW5zaWdu
ZWQgY3JlYXRlSGFzaChjb25zdCBUKiBkYXRhKQorICAgIHsKKyAgICAgICAgU3RyaW5nSGFzaGVy
IGhhc2hlcjsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgVUNoYXIgYjAg
PSBDb3ZlcnRlcigqZGF0YSsrKTsKKyAgICAgICAgICAgIGlmICghYjApCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBVQ2hhciBiMSA9IENvdmVydGVyKCpkYXRhKyspOworICAg
ICAgICAgICAgaWYgKCFiMSkgeworICAgICAgICAgICAgICAgIGhhc2hlci5hZGRDaGFyYWN0ZXIo
YjApOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBoYXNoZXIuYWRkQ2hhcmFjdGVycyhiMCwgYjEpOworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuIGhhc2hlci5oYXNoKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Rh
dGljIGlubGluZSB1bnNpZ25lZCBjcmVhdGVIYXNoKGNvbnN0IFQqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGVIYXNoPFQsIGRlZmF1bHRDb3ZlcnRl
cj4oZGF0YSwgbGVuZ3RoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGNyZWF0ZUhhc2goY29uc3QgVCogZGF0YSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBjcmVhdGVIYXNoPFQsIGRlZmF1bHRDb3ZlcnRlcj4oZGF0YSk7CisgICAgfQor
Citwcml2YXRlOgorICAgIHN0YXRpYyBpbmxpbmUgVUNoYXIgZGVmYXVsdENvdmVydGVyKFVDaGFy
IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIHN0YXRpYyBpbmxp
bmUgVUNoYXIgZGVmYXVsdENvdmVydGVyKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oY2gpOworICAgIH0KKworICAgIGlubGluZSB2b2lk
IGFkZENoYXJhY3RlcnNUb0hhc2goVUNoYXIgYSwgVUNoYXIgYikKKyAgICB7CisgICAgICAgIG1f
aGFzaCArPSBhOworICAgICAgICB1bnNpZ25lZCB0bXAgPSAoYiA8PCAxMSkgXiBtX2hhc2g7Cisg
ICAgICAgIG1faGFzaCA9IChtX2hhc2ggPDwgMTYpIF4gdG1wOworICAgICAgICBtX2hhc2ggKz0g
bV9oYXNoID4+IDExOworICAgIH0KKworICAgIHVuc2lnbmVkIG1faGFzaDsKKyAgICBVQ2hhciBt
X2NhY2hlZENoYXJhY3RlcjsKKworICAgIHN0YXRpYyBjb25zdCBVQ2hhciBpbnZhbGlkQ2hhcmFj
dGVyVmFsdWUgPSAweGZmZmU7Cit9OworCisKIAogaW5saW5lIHVuc2lnbmVkIHN0cmluZ0hhc2go
Y29uc3QgVUNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICB1bnNpZ25lZCBoYXNo
ID0gV1RGOjpzdHJpbmdIYXNoaW5nU3RhcnRWYWx1ZTsKLSAgICB1bnNpZ25lZCByZW0gPSBsZW5n
dGggJiAxOwotICAgIGxlbmd0aCA+Pj0gMTsKLQotICAgIC8vIE1haW4gbG9vcAotICAgIGZvciAo
OyBsZW5ndGggPiAwOyBsZW5ndGgtLSkgewotICAgICAgICBoYXNoICs9IGRhdGFbMF07Ci0gICAg
ICAgIHVuc2lnbmVkIHRtcCA9IChkYXRhWzFdIDw8IDExKSBeIGhhc2g7Ci0gICAgICAgIGhhc2gg
PSAoaGFzaCA8PCAxNikgXiB0bXA7Ci0gICAgICAgIGRhdGEgKz0gMjsKLSAgICAgICAgaGFzaCAr
PSBoYXNoID4+IDExOwotICAgIH0KLQotICAgIC8vIEhhbmRsZSBlbmQgY2FzZQotICAgIGlmIChy
ZW0pIHsKLSAgICAgICAgaGFzaCArPSBkYXRhWzBdOwotICAgICAgICBoYXNoIF49IGhhc2ggPDwg
MTE7Ci0gICAgICAgIGhhc2ggKz0gaGFzaCA+PiAxNzsKLSAgICB9Ci0KLSAgICAvLyBGb3JjZSAi
YXZhbGFuY2hpbmciIG9mIGZpbmFsIDEyNyBiaXRzCi0gICAgaGFzaCBePSBoYXNoIDw8IDM7Ci0g
ICAgaGFzaCArPSBoYXNoID4+IDU7Ci0gICAgaGFzaCBePSBoYXNoIDw8IDI7Ci0gICAgaGFzaCAr
PSBoYXNoID4+IDE1OwotICAgIGhhc2ggXj0gaGFzaCA8PCAxMDsKLQotICAgIGhhc2ggJj0gMHg3
ZmZmZmZmZjsKLQotICAgIC8vIHRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2Rl
IG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwotICAgIC8vIHNpZ25hbCAiaGFzaCBub3QgY29t
cHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2VseSB0byBiZQotICAgIC8vIGVm
ZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0aGUgbG93IGJpdHMgYXJlIG1hc2tlZAotICAg
IGlmIChoYXNoID09IDApCi0gICAgICAgIGhhc2ggPSAweDQwMDAwMDAwOwotCi0gICAgcmV0dXJu
IGhhc2g7CisgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6Y3JlYXRlSGFzaDxVQ2hhcj4oZGF0YSwg
bGVuZ3RoKTsKIH0KIAogaW5saW5lIHVuc2lnbmVkIHN0cmluZ0hhc2goY29uc3QgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIHVuc2lnbmVkIGhhc2ggPSBXVEY6OnN0cmluZ0hh
c2hpbmdTdGFydFZhbHVlOwotICAgIHVuc2lnbmVkIHJlbSA9IGxlbmd0aCAmIDE7Ci0gICAgbGVu
Z3RoID4+PSAxOwotCi0gICAgLy8gTWFpbiBsb29wCi0gICAgZm9yICg7IGxlbmd0aCA+IDA7IGxl
bmd0aC0tKSB7Ci0gICAgICAgIGhhc2ggKz0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oZGF0
YVswXSk7Ci0gICAgICAgIHVuc2lnbmVkIHRtcCA9IChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFy
PihkYXRhWzFdKSA8PCAxMSkgXiBoYXNoOwotICAgICAgICBoYXNoID0gKGhhc2ggPDwgMTYpIF4g
dG1wOwotICAgICAgICBkYXRhICs9IDI7Ci0gICAgICAgIGhhc2ggKz0gaGFzaCA+PiAxMTsKLSAg
ICB9Ci0KLSAgICAvLyBIYW5kbGUgZW5kIGNhc2UKLSAgICBpZiAocmVtKSB7Ci0gICAgICAgIGhh
c2ggKz0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oZGF0YVswXSk7Ci0gICAgICAgIGhhc2gg
Xj0gaGFzaCA8PCAxMTsKLSAgICAgICAgaGFzaCArPSBoYXNoID4+IDE3OwotICAgIH0KLQotICAg
IC8vIEZvcmNlICJhdmFsYW5jaGluZyIgb2YgZmluYWwgMTI3IGJpdHMKLSAgICBoYXNoIF49IGhh
c2ggPDwgMzsKLSAgICBoYXNoICs9IGhhc2ggPj4gNTsKLSAgICBoYXNoIF49IGhhc2ggPDwgMjsK
LSAgICBoYXNoICs9IGhhc2ggPj4gMTU7Ci0gICAgaGFzaCBePSBoYXNoIDw8IDEwOwotCi0gICAg
aGFzaCAmPSAweDdmZmZmZmZmOwotCi0gICAgLy8gdGhpcyBhdm9pZHMgZXZlciByZXR1cm5pbmcg
YSBoYXNoIGNvZGUgb2YgMCwgc2luY2UgdGhhdCBpcyB1c2VkIHRvCi0gICAgLy8gc2lnbmFsICJo
YXNoIG5vdCBjb21wdXRlZCB5ZXQiLCB1c2luZyBhIHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJl
Ci0gICAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgMCB3aGVuIHRoZSBsb3cgYml0cyBhcmUg
bWFza2VkCi0gICAgaWYgKGhhc2ggPT0gMCkKLSAgICAgICAgaGFzaCA9IDB4NDAwMDAwMDA7Ci0K
LSAgICByZXR1cm4gaGFzaDsKKyAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpjcmVhdGVIYXNoPGNo
YXI+KGRhdGEsIGxlbmd0aCk7CiB9CiAKIGlubGluZSB1bnNpZ25lZCBzdHJpbmdIYXNoKGNvbnN0
IGNoYXIqIGRhdGEpCiB7Ci0gICAgdW5zaWduZWQgaGFzaCA9IFdURjo6c3RyaW5nSGFzaGluZ1N0
YXJ0VmFsdWU7Ci0KLSAgICAvLyBNYWluIGxvb3AKLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIHVu
c2lnbmVkIGNoYXIgYjAgPSBkYXRhWzBdOwotICAgICAgICBpZiAoIWIwKQotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYjEgPSBkYXRhWzFdOwotICAgICAgICBpZiAo
IWIxKSB7Ci0gICAgICAgICAgICBoYXNoICs9IGIwOwotICAgICAgICAgICAgaGFzaCBePSBoYXNo
IDw8IDExOwotICAgICAgICAgICAgaGFzaCArPSBoYXNoID4+IDE3OwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICAgICAgaGFzaCArPSBiMDsKLSAgICAgICAgdW5zaWduZWQgdG1w
ID0gKGIxIDw8IDExKSBeIGhhc2g7Ci0gICAgICAgIGhhc2ggPSAoaGFzaCA8PCAxNikgXiB0bXA7
Ci0gICAgICAgIGRhdGEgKz0gMjsKLSAgICAgICAgaGFzaCArPSBoYXNoID4+IDExOwotICAgIH0K
LQotICAgIC8vIEZvcmNlICJhdmFsYW5jaGluZyIgb2YgZmluYWwgMTI3IGJpdHMuCi0gICAgaGFz
aCBePSBoYXNoIDw8IDM7Ci0gICAgaGFzaCArPSBoYXNoID4+IDU7Ci0gICAgaGFzaCBePSBoYXNo
IDw8IDI7Ci0gICAgaGFzaCArPSBoYXNoID4+IDE1OwotICAgIGhhc2ggXj0gaGFzaCA8PCAxMDsK
LQotICAgIGhhc2ggJj0gMHg3ZmZmZmZmZjsKLQotICAgIC8vIFRoaXMgYXZvaWRzIGV2ZXIgcmV0
dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwotICAgIC8vIHNp
Z25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2Vs
eSB0byBiZQotICAgIC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0aGUgbG93IGJp
dHMgYXJlIG1hc2tlZC4KLSAgICBpZiAoaGFzaCA9PSAwKQotICAgICAgICBoYXNoID0gMHg0MDAw
MDAwMDsKLQotICAgIHJldHVybiBoYXNoOworICAgIHJldHVybiBTdHJpbmdIYXNoZXI6OmNyZWF0
ZUhhc2g8Y2hhcj4oZGF0YSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgog
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68816</attachid>
            <date>2010-09-25 01:31:04 -0700</date>
            <delta_ts>2010-09-26 11:58:17 -0700</delta_ts>
            <desc>Fix typo</desc>
            <filename>bug-45970-typo.patch</filename>
            <type>text/plain</type>
            <size>2061</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkYzM4OWQzLi44OTFhYzEwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTAtMDktMjUgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVW5yZXZpZXdlZC4KKworICAgICAgICBGaXggdHlwbyBpbiBTdHJpbmdIYXNoZXIg
Y2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
OTcwCisKKyAgICAgICAgKiB3dGYvU3RyaW5nSGFzaEZ1bmN0aW9ucy5oOgorICAgICAgICAoV1RG
OjpTdHJpbmdIYXNoZXI6OmNyZWF0ZUhhc2gpOgorCiAyMDEwLTA5LTI0ICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJh
cnJhY2xvdWdoLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hGdW5j
dGlvbnMuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoRnVuY3Rpb25zLmgKaW5kZXgg
NjQ5ODhjYi4uODM1MGVhMSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hh
c2hGdW5jdGlvbnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nSGFzaEZ1bmN0aW9u
cy5oCkBAIC04NywzMiArODcsMzIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFVDaGFyIENvdmVydGVyKFQpPiBzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGNyZWF0ZUhhc2goY29uc3QgVCogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFVDaGFyIENvbnZlcnRlcihUKT4gc3RhdGlj
IGlubGluZSB1bnNpZ25lZCBjcmVhdGVIYXNoKGNvbnN0IFQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkKICAgICB7CiAgICAgICAgIFN0cmluZ0hhc2hlciBoYXNoZXI7CiAgICAgICAgIGJvb2wgcmVt
ID0gbGVuZ3RoICYgMTsKICAgICAgICAgbGVuZ3RoID4+PSAxOwogCiAgICAgICAgIHdoaWxlIChs
ZW5ndGgtLSkgewotICAgICAgICAgICAgaGFzaGVyLmFkZENoYXJhY3RlcnMoQ292ZXJ0ZXIoZGF0
YVswXSksIENvdmVydGVyKGRhdGFbMV0pKTsKKyAgICAgICAgICAgIGhhc2hlci5hZGRDaGFyYWN0
ZXJzKENvbnZlcnRlcihkYXRhWzBdKSwgQ29udmVydGVyKGRhdGFbMV0pKTsKICAgICAgICAgICAg
IGRhdGEgKz0gMjsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW0pCi0gICAgICAgICAgICBo
YXNoZXIuYWRkQ2hhcmFjdGVyKENvdmVydGVyKCpkYXRhKSk7CisgICAgICAgICAgICBoYXNoZXIu
YWRkQ2hhcmFjdGVyKENvbnZlcnRlcigqZGF0YSkpOwogCiAgICAgICAgIHJldHVybiBoYXNoZXIu
aGFzaCgpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFVDaGFyIENvdmVydGVy
KFQpPiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNyZWF0ZUhhc2goY29uc3QgVCogZGF0YSkKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBVQ2hhciBDb252ZXJ0ZXIoVCk+IHN0YXRpYyBpbmxpbmUg
dW5zaWduZWQgY3JlYXRlSGFzaChjb25zdCBUKiBkYXRhKQogICAgIHsKICAgICAgICAgU3RyaW5n
SGFzaGVyIGhhc2hlcjsKIAogICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgVUNo
YXIgYjAgPSBDb3ZlcnRlcigqZGF0YSsrKTsKKyAgICAgICAgICAgIFVDaGFyIGIwID0gQ29udmVy
dGVyKCpkYXRhKyspOwogICAgICAgICAgICAgaWYgKCFiMCkKICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIFVDaGFyIGIxID0gQ292ZXJ0ZXIoKmRhdGErKyk7CisgICAgICAgICAg
ICBVQ2hhciBiMSA9IENvbnZlcnRlcigqZGF0YSsrKTsKICAgICAgICAgICAgIGlmICghYjEpIHsK
ICAgICAgICAgICAgICAgICBoYXNoZXIuYWRkQ2hhcmFjdGVyKGIwKTsKICAgICAgICAgICAgICAg
ICBicmVhazsK
</data>

          </attachment>
      

    </bug>

</bugzilla>