# File lib/rhc/vendor/zliby.rb, line 18
def self.adler32 string="", adler=1
  if adler > (2**128) - 1 then raise RangeError.new end 
  accum1 = adler & 0xffff
  accum2 = (adler >> 16) & 0xffff
  
  len = string.length
  x = -1
  while len > 0 
    tlen = len > 5552 ? 5552 : len
    len -= tlen
    while tlen >0
      x += 1
      accum1 += string[x]
      accum2 += accum1
      tlen -= 1
    end
    accum1 %= 65521
    accum2 %= 65521
  end
  accum2 << 16 | accum1
end