var _deflate = (function() { var _deflateRaw = (function() { return function deflateRaw(data, out) { var boff = 0; while(boff < data.length) { var L = Math.min(0xFFFF, data.length - boff); var h = boff + L == data.length; /* TODO: this is only type 0 stored */ out.write_shift(1, +h); out.write_shift(2, L); out.write_shift(2, (~L) & 0xFFFF); while(L-- > 0) out[out.l++] = data[boff++]; } return out.l; }; })(); return function(data) { var buf = new_buf(50+Math.floor(data.length*1.1)); var off = _deflateRaw(data, buf); return buf.slice(0, off); }; })();