// var d = c.MD5 = l.extend({
var d = {
_doReset: function() {
this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878])
},
_doProcessBlock: function(e, t) {
for (var i = 0; i < 16; i++) {
var n = t + i
, r = e[n];
e[n] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8)
}
var o = this._hash.words
, l = e[t + 0]
, c = e[t + 1]
, d = e[t + 2]
, _ = e[t + 3]
, x = e[t + 4]
, w = e[t + 5]
, S = e[t + 6]
, C = e[t + 7]
, k = e[t + 8]
, O = e[t + 9]
, M = e[t + 10]
, D = e[t + 11]
, I = e[t + 12]
, T = e[t + 13]
, A = e[t + 14]
, E = e[t + 15]
, a = o[0]
, b = o[1]
, P = o[2]
, j = o[3];
a = f(a, b, P, j, l, 7, h[0]),
j = f(j, a, b, P, c, 12, h[1]),
P = f(P, j, a, b, d, 17, h[2]),
b = f(b, P, j, a, _, 22, h[3]),
a = f(a, b, P, j, x, 7, h[4]),
j = f(j, a, b, P, w, 12, h[5]),
P = f(P, j, a, b, S, 17, h[6]),
b = f(b, P, j, a, C, 22, h[7]),
a = f(a, b, P, j, k, 7, h[8]),
j = f(j, a, b, P, O, 12, h[9]),
P = f(P, j, a, b, M, 17, h[10]),
b = f(b, P, j, a, D, 22, h[11]),
a = f(a, b, P, j, I, 7, h[12]),
j = f(j, a, b, P, T, 12, h[13]),
P = f(P, j, a, b, A, 17, h[14]),
a = m(a, b = f(b, P, j, a, E, 22, h[15]), P, j, c, 5, h[16]),
j = m(j, a, b, P, S, 9, h[17]),
P = m(P, j, a, b, D, 14, h[18]),
b = m(b, P, j, a, l, 20, h[19]),
a = m(a, b, P, j, w, 5, h[20]),
j = m(j, a, b, P, M, 9, h[21]),
P = m(P, j, a, b, E, 14, h[22]),
b = m(b, P, j, a, x, 20, h[23]),
a = m(a, b, P, j, O, 5, h[24]),
j = m(j, a, b, P, A, 9, h[25]),
P = m(P, j, a, b, _, 14, h[26]),
b = m(b, P, j, a, k, 20, h[27]),
a = m(a, b, P, j, T, 5, h[28]),
j = m(j, a, b, P, d, 9, h[29]),
P = m(P, j, a, b, C, 14, h[30]),
a = v(a, b = m(b, P, j, a, I, 20, h[31]), P, j, w, 4, h[32]),
j = v(j, a, b, P, k, 11, h[33]),
P = v(P, j, a, b, D, 16, h[34]),
b = v(b, P, j, a, A, 23, h[35]),
a = v(a, b, P, j, c, 4, h[36]),
j = v(j, a, b, P, x, 11, h[37]),
P = v(P, j, a, b, C, 16, h[38]),
b = v(b, P, j, a, M, 23, h[39]),
a = v(a, b, P, j, T, 4, h[40]),
j = v(j, a, b, P, l, 11, h[41]),
P = v(P, j, a, b, _, 16, h[42]),
b = v(b, P, j, a, S, 23, h[43]),
a = v(a, b, P, j, O, 4, h[44]),
j = v(j, a, b, P, I, 11, h[45]),
P = v(P, j, a, b, E, 16, h[46]),
a = y(a, b = v(b, P, j, a, d, 23, h[47]), P, j, l, 6, h[48]),
j = y(j, a, b, P, C, 10, h[49]),
P = y(P, j, a, b, A, 15, h[50]),
b = y(b, P, j, a, w, 21, h[51]),
a = y(a, b, P, j, I, 6, h[52]),
j = y(j, a, b, P, _, 10, h[53]),
P = y(P, j, a, b, M, 15, h[54]),
b = y(b, P, j, a, c, 21, h[55]),
a = y(a, b, P, j, k, 6, h[56]),
j = y(j, a, b, P, E, 10, h[57]),
P = y(P, j, a, b, S, 15, h[58]),
b = y(b, P, j, a, T, 21, h[59]),
a = y(a, b, P, j, x, 6, h[60]),
j = y(j, a, b, P, D, 10, h[61]),
P = y(P, j, a, b, d, 15, h[62]),
b = y(b, P, j, a, O, 21, h[63]),
o[0] = o[0] + a | 0,
o[1] = o[1] + b | 0,
o[2] = o[2] + P | 0,
o[3] = o[3] + j | 0
},
_doFinalize: function() {
var data = this._data
, t = data.words
, n = 8 * this._nDataBytes
, r = 8 * data.sigBytes;
t[r >>> 5] |= 128 << 24 - r % 32;
var o = e.floor(n / 4294967296)
, l = n;
t[15 + (r + 64 >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8),
t[14 + (r + 64 >>> 9 << 4)] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8),
data.sigBytes = 4 * (t.length + 1),
this._process();
for (var c = this._hash, h = c.words, i = 0; i < 4; i++) {
var d = h[i];
h[i] = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8)
}
return c
},
clone: function() {
var e = l.clone.call(this);
return e._hash = this._hash.clone(),
e
}
};
x = {
stringify: function(e) {
try {
return decodeURIComponent(escape(_.stringify(e)))
} catch (e) {
throw new Error("Malformed UTF-8 data")
}
},
parse: function(e) {
return _.parse(unescape(encodeURIComponent(e)))
}
}
function concat(e) {
var t = this.words
, n = e.words
, r = this.sigBytes
, o = e.sigBytes;
if (this.clamp(),
r % 4)
for (var i = 0; i < o; i++) {
var l = n[i >>> 2] >>> 24 - i % 4 * 8 & 255;
t[r + i >>> 2] |= l << 24 - (r + i) % 4 * 8
}
else
for (var c = 0; c < o; c += 4)
t[r + c >>> 2] = n[c >>> 2];
return this.sigBytes += o,
this
}
function _append(data) {
"string" == typeof data && (data = x.parse(data)),
console.log("data: " + data);
this._data.concat(data),
this._nDataBytes += data.sigBytes
}
function finalize(e) {
return e && _append(e),
d._doFinalize()
}
var str = "1735525479019PC3661pc(%+(-A/#*-C^%!.$)";
console.log("str: " + finalize(str));
// console.log("str: " + JSON.stringify(d))
console