Files
portfolio/node_modules/.cache/babel-loader/bff4f87ca8e7b721dc1320fcc8b39031.json
2021-09-20 16:54:47 -04:00

1 line
258 KiB
JSON

{"ast":null,"code":"(function (nacl) {\n 'use strict'; // Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n // Public domain.\n //\n // Implementation derived from TweetNaCl version 20140427.\n // See for details: http://tweetnacl.cr.yp.to/\n\n var gf = function (init) {\n var i,\n r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n }; // Pluggable, initialized in high-level API below.\n\n\n var randombytes = function () {\n throw new Error('no PRNG');\n };\n\n var _0 = new Uint8Array(16);\n\n var _9 = new Uint8Array(32);\n\n _9[0] = 9;\n\n var gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\n function ts64(x, i, h, l) {\n x[i] = h >> 24 & 0xff;\n x[i + 1] = h >> 16 & 0xff;\n x[i + 2] = h >> 8 & 0xff;\n x[i + 3] = h & 0xff;\n x[i + 4] = l >> 24 & 0xff;\n x[i + 5] = l >> 16 & 0xff;\n x[i + 6] = l >> 8 & 0xff;\n x[i + 7] = l & 0xff;\n }\n\n function vn(x, xi, y, yi, n) {\n var i,\n d = 0;\n\n for (i = 0; i < n; i++) d |= x[xi + i] ^ y[yi + i];\n\n return (1 & d - 1 >>> 8) - 1;\n }\n\n function crypto_verify_16(x, xi, y, yi) {\n return vn(x, xi, y, yi, 16);\n }\n\n function crypto_verify_32(x, xi, y, yi) {\n return vn(x, xi, y, yi, 32);\n }\n\n function core_salsa20(o, p, k, c) {\n var j0 = c[0] & 0xff | (c[1] & 0xff) << 8 | (c[2] & 0xff) << 16 | (c[3] & 0xff) << 24,\n j1 = k[0] & 0xff | (k[1] & 0xff) << 8 | (k[2] & 0xff) << 16 | (k[3] & 0xff) << 24,\n j2 = k[4] & 0xff | (k[5] & 0xff) << 8 | (k[6] & 0xff) << 16 | (k[7] & 0xff) << 24,\n j3 = k[8] & 0xff | (k[9] & 0xff) << 8 | (k[10] & 0xff) << 16 | (k[11] & 0xff) << 24,\n j4 = k[12] & 0xff | (k[13] & 0xff) << 8 | (k[14] & 0xff) << 16 | (k[15] & 0xff) << 24,\n j5 = c[4] & 0xff | (c[5] & 0xff) << 8 | (c[6] & 0xff) << 16 | (c[7] & 0xff) << 24,\n j6 = p[0] & 0xff | (p[1] & 0xff) << 8 | (p[2] & 0xff) << 16 | (p[3] & 0xff) << 24,\n j7 = p[4] & 0xff | (p[5] & 0xff) << 8 | (p[6] & 0xff) << 16 | (p[7] & 0xff) << 24,\n j8 = p[8] & 0xff | (p[9] & 0xff) << 8 | (p[10] & 0xff) << 16 | (p[11] & 0xff) << 24,\n j9 = p[12] & 0xff | (p[13] & 0xff) << 8 | (p[14] & 0xff) << 16 | (p[15] & 0xff) << 24,\n j10 = c[8] & 0xff | (c[9] & 0xff) << 8 | (c[10] & 0xff) << 16 | (c[11] & 0xff) << 24,\n j11 = k[16] & 0xff | (k[17] & 0xff) << 8 | (k[18] & 0xff) << 16 | (k[19] & 0xff) << 24,\n j12 = k[20] & 0xff | (k[21] & 0xff) << 8 | (k[22] & 0xff) << 16 | (k[23] & 0xff) << 24,\n j13 = k[24] & 0xff | (k[25] & 0xff) << 8 | (k[26] & 0xff) << 16 | (k[27] & 0xff) << 24,\n j14 = k[28] & 0xff | (k[29] & 0xff) << 8 | (k[30] & 0xff) << 16 | (k[31] & 0xff) << 24,\n j15 = c[12] & 0xff | (c[13] & 0xff) << 8 | (c[14] & 0xff) << 16 | (c[15] & 0xff) << 24;\n var x0 = j0,\n x1 = j1,\n x2 = j2,\n x3 = j3,\n x4 = j4,\n x5 = j5,\n x6 = j6,\n x7 = j7,\n x8 = j8,\n x9 = j9,\n x10 = j10,\n x11 = j11,\n x12 = j12,\n x13 = j13,\n x14 = j14,\n x15 = j15,\n u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u << 7 | u >>> 32 - 7;\n u = x4 + x0 | 0;\n x8 ^= u << 9 | u >>> 32 - 9;\n u = x8 + x4 | 0;\n x12 ^= u << 13 | u >>> 32 - 13;\n u = x12 + x8 | 0;\n x0 ^= u << 18 | u >>> 32 - 18;\n u = x5 + x1 | 0;\n x9 ^= u << 7 | u >>> 32 - 7;\n u = x9 + x5 | 0;\n x13 ^= u << 9 | u >>> 32 - 9;\n u = x13 + x9 | 0;\n x1 ^= u << 13 | u >>> 32 - 13;\n u = x1 + x13 | 0;\n x5 ^= u << 18 | u >>> 32 - 18;\n u = x10 + x6 | 0;\n x14 ^= u << 7 | u >>> 32 - 7;\n u = x14 + x10 | 0;\n x2 ^= u << 9 | u >>> 32 - 9;\n u = x2 + x14 | 0;\n x6 ^= u << 13 | u >>> 32 - 13;\n u = x6 + x2 | 0;\n x10 ^= u << 18 | u >>> 32 - 18;\n u = x15 + x11 | 0;\n x3 ^= u << 7 | u >>> 32 - 7;\n u = x3 + x15 | 0;\n x7 ^= u << 9 | u >>> 32 - 9;\n u = x7 + x3 | 0;\n x11 ^= u << 13 | u >>> 32 - 13;\n u = x11 + x7 | 0;\n x15 ^= u << 18 | u >>> 32 - 18;\n u = x0 + x3 | 0;\n x1 ^= u << 7 | u >>> 32 - 7;\n u = x1 + x0 | 0;\n x2 ^= u << 9 | u >>> 32 - 9;\n u = x2 + x1 | 0;\n x3 ^= u << 13 | u >>> 32 - 13;\n u = x3 + x2 | 0;\n x0 ^= u << 18 | u >>> 32 - 18;\n u = x5 + x4 | 0;\n x6 ^= u << 7 | u >>> 32 - 7;\n u = x6 + x5 | 0;\n x7 ^= u << 9 | u >>> 32 - 9;\n u = x7 + x6 | 0;\n x4 ^= u << 13 | u >>> 32 - 13;\n u = x4 + x7 | 0;\n x5 ^= u << 18 | u >>> 32 - 18;\n u = x10 + x9 | 0;\n x11 ^= u << 7 | u >>> 32 - 7;\n u = x11 + x10 | 0;\n x8 ^= u << 9 | u >>> 32 - 9;\n u = x8 + x11 | 0;\n x9 ^= u << 13 | u >>> 32 - 13;\n u = x9 + x8 | 0;\n x10 ^= u << 18 | u >>> 32 - 18;\n u = x15 + x14 | 0;\n x12 ^= u << 7 | u >>> 32 - 7;\n u = x12 + x15 | 0;\n x13 ^= u << 9 | u >>> 32 - 9;\n u = x13 + x12 | 0;\n x14 ^= u << 13 | u >>> 32 - 13;\n u = x14 + x13 | 0;\n x15 ^= u << 18 | u >>> 32 - 18;\n }\n\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n o[0] = x0 >>> 0 & 0xff;\n o[1] = x0 >>> 8 & 0xff;\n o[2] = x0 >>> 16 & 0xff;\n o[3] = x0 >>> 24 & 0xff;\n o[4] = x1 >>> 0 & 0xff;\n o[5] = x1 >>> 8 & 0xff;\n o[6] = x1 >>> 16 & 0xff;\n o[7] = x1 >>> 24 & 0xff;\n o[8] = x2 >>> 0 & 0xff;\n o[9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n }\n\n function core_hsalsa20(o, p, k, c) {\n var j0 = c[0] & 0xff | (c[1] & 0xff) << 8 | (c[2] & 0xff) << 16 | (c[3] & 0xff) << 24,\n j1 = k[0] & 0xff | (k[1] & 0xff) << 8 | (k[2] & 0xff) << 16 | (k[3] & 0xff) << 24,\n j2 = k[4] & 0xff | (k[5] & 0xff) << 8 | (k[6] & 0xff) << 16 | (k[7] & 0xff) << 24,\n j3 = k[8] & 0xff | (k[9] & 0xff) << 8 | (k[10] & 0xff) << 16 | (k[11] & 0xff) << 24,\n j4 = k[12] & 0xff | (k[13] & 0xff) << 8 | (k[14] & 0xff) << 16 | (k[15] & 0xff) << 24,\n j5 = c[4] & 0xff | (c[5] & 0xff) << 8 | (c[6] & 0xff) << 16 | (c[7] & 0xff) << 24,\n j6 = p[0] & 0xff | (p[1] & 0xff) << 8 | (p[2] & 0xff) << 16 | (p[3] & 0xff) << 24,\n j7 = p[4] & 0xff | (p[5] & 0xff) << 8 | (p[6] & 0xff) << 16 | (p[7] & 0xff) << 24,\n j8 = p[8] & 0xff | (p[9] & 0xff) << 8 | (p[10] & 0xff) << 16 | (p[11] & 0xff) << 24,\n j9 = p[12] & 0xff | (p[13] & 0xff) << 8 | (p[14] & 0xff) << 16 | (p[15] & 0xff) << 24,\n j10 = c[8] & 0xff | (c[9] & 0xff) << 8 | (c[10] & 0xff) << 16 | (c[11] & 0xff) << 24,\n j11 = k[16] & 0xff | (k[17] & 0xff) << 8 | (k[18] & 0xff) << 16 | (k[19] & 0xff) << 24,\n j12 = k[20] & 0xff | (k[21] & 0xff) << 8 | (k[22] & 0xff) << 16 | (k[23] & 0xff) << 24,\n j13 = k[24] & 0xff | (k[25] & 0xff) << 8 | (k[26] & 0xff) << 16 | (k[27] & 0xff) << 24,\n j14 = k[28] & 0xff | (k[29] & 0xff) << 8 | (k[30] & 0xff) << 16 | (k[31] & 0xff) << 24,\n j15 = c[12] & 0xff | (c[13] & 0xff) << 8 | (c[14] & 0xff) << 16 | (c[15] & 0xff) << 24;\n var x0 = j0,\n x1 = j1,\n x2 = j2,\n x3 = j3,\n x4 = j4,\n x5 = j5,\n x6 = j6,\n x7 = j7,\n x8 = j8,\n x9 = j9,\n x10 = j10,\n x11 = j11,\n x12 = j12,\n x13 = j13,\n x14 = j14,\n x15 = j15,\n u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u << 7 | u >>> 32 - 7;\n u = x4 + x0 | 0;\n x8 ^= u << 9 | u >>> 32 - 9;\n u = x8 + x4 | 0;\n x12 ^= u << 13 | u >>> 32 - 13;\n u = x12 + x8 | 0;\n x0 ^= u << 18 | u >>> 32 - 18;\n u = x5 + x1 | 0;\n x9 ^= u << 7 | u >>> 32 - 7;\n u = x9 + x5 | 0;\n x13 ^= u << 9 | u >>> 32 - 9;\n u = x13 + x9 | 0;\n x1 ^= u << 13 | u >>> 32 - 13;\n u = x1 + x13 | 0;\n x5 ^= u << 18 | u >>> 32 - 18;\n u = x10 + x6 | 0;\n x14 ^= u << 7 | u >>> 32 - 7;\n u = x14 + x10 | 0;\n x2 ^= u << 9 | u >>> 32 - 9;\n u = x2 + x14 | 0;\n x6 ^= u << 13 | u >>> 32 - 13;\n u = x6 + x2 | 0;\n x10 ^= u << 18 | u >>> 32 - 18;\n u = x15 + x11 | 0;\n x3 ^= u << 7 | u >>> 32 - 7;\n u = x3 + x15 | 0;\n x7 ^= u << 9 | u >>> 32 - 9;\n u = x7 + x3 | 0;\n x11 ^= u << 13 | u >>> 32 - 13;\n u = x11 + x7 | 0;\n x15 ^= u << 18 | u >>> 32 - 18;\n u = x0 + x3 | 0;\n x1 ^= u << 7 | u >>> 32 - 7;\n u = x1 + x0 | 0;\n x2 ^= u << 9 | u >>> 32 - 9;\n u = x2 + x1 | 0;\n x3 ^= u << 13 | u >>> 32 - 13;\n u = x3 + x2 | 0;\n x0 ^= u << 18 | u >>> 32 - 18;\n u = x5 + x4 | 0;\n x6 ^= u << 7 | u >>> 32 - 7;\n u = x6 + x5 | 0;\n x7 ^= u << 9 | u >>> 32 - 9;\n u = x7 + x6 | 0;\n x4 ^= u << 13 | u >>> 32 - 13;\n u = x4 + x7 | 0;\n x5 ^= u << 18 | u >>> 32 - 18;\n u = x10 + x9 | 0;\n x11 ^= u << 7 | u >>> 32 - 7;\n u = x11 + x10 | 0;\n x8 ^= u << 9 | u >>> 32 - 9;\n u = x8 + x11 | 0;\n x9 ^= u << 13 | u >>> 32 - 13;\n u = x9 + x8 | 0;\n x10 ^= u << 18 | u >>> 32 - 18;\n u = x15 + x14 | 0;\n x12 ^= u << 7 | u >>> 32 - 7;\n u = x12 + x15 | 0;\n x13 ^= u << 9 | u >>> 32 - 9;\n u = x13 + x12 | 0;\n x14 ^= u << 13 | u >>> 32 - 13;\n u = x14 + x13 | 0;\n x15 ^= u << 18 | u >>> 32 - 18;\n }\n\n o[0] = x0 >>> 0 & 0xff;\n o[1] = x0 >>> 8 & 0xff;\n o[2] = x0 >>> 16 & 0xff;\n o[3] = x0 >>> 24 & 0xff;\n o[4] = x5 >>> 0 & 0xff;\n o[5] = x5 >>> 8 & 0xff;\n o[6] = x5 >>> 16 & 0xff;\n o[7] = x5 >>> 24 & 0xff;\n o[8] = x10 >>> 0 & 0xff;\n o[9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n }\n\n function crypto_core_salsa20(out, inp, k, c) {\n core_salsa20(out, inp, k, c);\n }\n\n function crypto_core_hsalsa20(out, inp, k, c) {\n core_hsalsa20(out, inp, k, c);\n }\n\n var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]); // \"expand 32-byte k\"\n\n function crypto_stream_salsa20_xor(c, cpos, m, mpos, b, n, k) {\n var z = new Uint8Array(16),\n x = new Uint8Array(64);\n var u, i;\n\n for (i = 0; i < 16; i++) z[i] = 0;\n\n for (i = 0; i < 8; i++) z[i] = n[i];\n\n while (b >= 64) {\n crypto_core_salsa20(x, z, k, sigma);\n\n for (i = 0; i < 64; i++) c[cpos + i] = m[mpos + i] ^ x[i];\n\n u = 1;\n\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n\n if (b > 0) {\n crypto_core_salsa20(x, z, k, sigma);\n\n for (i = 0; i < b; i++) c[cpos + i] = m[mpos + i] ^ x[i];\n }\n\n return 0;\n }\n\n function crypto_stream_salsa20(c, cpos, b, n, k) {\n var z = new Uint8Array(16),\n x = new Uint8Array(64);\n var u, i;\n\n for (i = 0; i < 16; i++) z[i] = 0;\n\n for (i = 0; i < 8; i++) z[i] = n[i];\n\n while (b >= 64) {\n crypto_core_salsa20(x, z, k, sigma);\n\n for (i = 0; i < 64; i++) c[cpos + i] = x[i];\n\n u = 1;\n\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n\n b -= 64;\n cpos += 64;\n }\n\n if (b > 0) {\n crypto_core_salsa20(x, z, k, sigma);\n\n for (i = 0; i < b; i++) c[cpos + i] = x[i];\n }\n\n return 0;\n }\n\n function crypto_stream(c, cpos, d, n, k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s, n, k, sigma);\n var sn = new Uint8Array(8);\n\n for (var i = 0; i < 8; i++) sn[i] = n[i + 16];\n\n return crypto_stream_salsa20(c, cpos, d, sn, s);\n }\n\n function crypto_stream_xor(c, cpos, m, mpos, d, n, k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s, n, k, sigma);\n var sn = new Uint8Array(8);\n\n for (var i = 0; i < 8; i++) sn[i] = n[i + 16];\n\n return crypto_stream_salsa20_xor(c, cpos, m, mpos, d, sn, s);\n }\n /*\n * Port of Andrew Moon's Poly1305-donna-16. Public domain.\n * https://github.com/floodyberry/poly1305-donna\n */\n\n\n var poly1305 = function (key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n var t0, t1, t2, t3, t4, t5, t6, t7;\n t0 = key[0] & 0xff | (key[1] & 0xff) << 8;\n this.r[0] = t0 & 0x1fff;\n t1 = key[2] & 0xff | (key[3] & 0xff) << 8;\n this.r[1] = (t0 >>> 13 | t1 << 3) & 0x1fff;\n t2 = key[4] & 0xff | (key[5] & 0xff) << 8;\n this.r[2] = (t1 >>> 10 | t2 << 6) & 0x1f03;\n t3 = key[6] & 0xff | (key[7] & 0xff) << 8;\n this.r[3] = (t2 >>> 7 | t3 << 9) & 0x1fff;\n t4 = key[8] & 0xff | (key[9] & 0xff) << 8;\n this.r[4] = (t3 >>> 4 | t4 << 12) & 0x00ff;\n this.r[5] = t4 >>> 1 & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8;\n this.r[6] = (t4 >>> 14 | t5 << 2) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8;\n this.r[7] = (t5 >>> 11 | t6 << 5) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8;\n this.r[8] = (t6 >>> 8 | t7 << 8) & 0x1fff;\n this.r[9] = t7 >>> 5 & 0x007f;\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n };\n\n poly1305.prototype.blocks = function (m, mpos, bytes) {\n var hibit = this.fin ? 0 : 1 << 11;\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos + 0] & 0xff | (m[mpos + 1] & 0xff) << 8;\n h0 += t0 & 0x1fff;\n t1 = m[mpos + 2] & 0xff | (m[mpos + 3] & 0xff) << 8;\n h1 += (t0 >>> 13 | t1 << 3) & 0x1fff;\n t2 = m[mpos + 4] & 0xff | (m[mpos + 5] & 0xff) << 8;\n h2 += (t1 >>> 10 | t2 << 6) & 0x1fff;\n t3 = m[mpos + 6] & 0xff | (m[mpos + 7] & 0xff) << 8;\n h3 += (t2 >>> 7 | t3 << 9) & 0x1fff;\n t4 = m[mpos + 8] & 0xff | (m[mpos + 9] & 0xff) << 8;\n h4 += (t3 >>> 4 | t4 << 12) & 0x1fff;\n h5 += t4 >>> 1 & 0x1fff;\n t5 = m[mpos + 10] & 0xff | (m[mpos + 11] & 0xff) << 8;\n h6 += (t4 >>> 14 | t5 << 2) & 0x1fff;\n t6 = m[mpos + 12] & 0xff | (m[mpos + 13] & 0xff) << 8;\n h7 += (t5 >>> 11 | t6 << 5) & 0x1fff;\n t7 = m[mpos + 14] & 0xff | (m[mpos + 15] & 0xff) << 8;\n h8 += (t6 >>> 8 | t7 << 8) & 0x1fff;\n h9 += t7 >>> 5 | hibit;\n c = 0;\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = d0 >>> 13;\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += d0 >>> 13;\n d0 &= 0x1fff;\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = d1 >>> 13;\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += d1 >>> 13;\n d1 &= 0x1fff;\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = d2 >>> 13;\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += d2 >>> 13;\n d2 &= 0x1fff;\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = d3 >>> 13;\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += d3 >>> 13;\n d3 &= 0x1fff;\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = d4 >>> 13;\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += d4 >>> 13;\n d4 &= 0x1fff;\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = d5 >>> 13;\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += d5 >>> 13;\n d5 &= 0x1fff;\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = d6 >>> 13;\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += d6 >>> 13;\n d6 &= 0x1fff;\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = d7 >>> 13;\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += d7 >>> 13;\n d7 &= 0x1fff;\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = d8 >>> 13;\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += d8 >>> 13;\n d8 &= 0x1fff;\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = d9 >>> 13;\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += d9 >>> 13;\n d9 &= 0x1fff;\n c = (c << 2) + c | 0;\n c = c + d0 | 0;\n d0 = c & 0x1fff;\n c = c >>> 13;\n d1 += c;\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n mpos += 16;\n bytes -= 16;\n }\n\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n };\n\n poly1305.prototype.finish = function (mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n\n for (; i < 16; i++) this.buffer[i] = 0;\n\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n\n this.h[0] += c * 5;\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n\n g[9] -= 1 << 13;\n mask = (c ^ 1) - 1;\n\n for (i = 0; i < 10; i++) g[i] &= mask;\n\n mask = ~mask;\n\n for (i = 0; i < 10; i++) this.h[i] = this.h[i] & mask | g[i];\n\n this.h[0] = (this.h[0] | this.h[1] << 13) & 0xffff;\n this.h[1] = (this.h[1] >>> 3 | this.h[2] << 10) & 0xffff;\n this.h[2] = (this.h[2] >>> 6 | this.h[3] << 7) & 0xffff;\n this.h[3] = (this.h[3] >>> 9 | this.h[4] << 4) & 0xffff;\n this.h[4] = (this.h[4] >>> 12 | this.h[5] << 1 | this.h[6] << 14) & 0xffff;\n this.h[5] = (this.h[6] >>> 2 | this.h[7] << 11) & 0xffff;\n this.h[6] = (this.h[7] >>> 5 | this.h[8] << 8) & 0xffff;\n this.h[7] = (this.h[8] >>> 8 | this.h[9] << 5) & 0xffff;\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n\n for (i = 1; i < 8; i++) {\n f = (this.h[i] + this.pad[i] | 0) + (f >>> 16) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos + 0] = this.h[0] >>> 0 & 0xff;\n mac[macpos + 1] = this.h[0] >>> 8 & 0xff;\n mac[macpos + 2] = this.h[1] >>> 0 & 0xff;\n mac[macpos + 3] = this.h[1] >>> 8 & 0xff;\n mac[macpos + 4] = this.h[2] >>> 0 & 0xff;\n mac[macpos + 5] = this.h[2] >>> 8 & 0xff;\n mac[macpos + 6] = this.h[3] >>> 0 & 0xff;\n mac[macpos + 7] = this.h[3] >>> 8 & 0xff;\n mac[macpos + 8] = this.h[4] >>> 0 & 0xff;\n mac[macpos + 9] = this.h[4] >>> 8 & 0xff;\n mac[macpos + 10] = this.h[5] >>> 0 & 0xff;\n mac[macpos + 11] = this.h[5] >>> 8 & 0xff;\n mac[macpos + 12] = this.h[6] >>> 0 & 0xff;\n mac[macpos + 13] = this.h[6] >>> 8 & 0xff;\n mac[macpos + 14] = this.h[7] >>> 0 & 0xff;\n mac[macpos + 15] = this.h[7] >>> 8 & 0xff;\n };\n\n poly1305.prototype.update = function (m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = 16 - this.leftover;\n if (want > bytes) want = bytes;\n\n for (i = 0; i < want; i++) this.buffer[this.leftover + i] = m[mpos + i];\n\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16) return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - bytes % 16;\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++) this.buffer[this.leftover + i] = m[mpos + i];\n\n this.leftover += bytes;\n }\n };\n\n function crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n }\n\n function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x, 0, m, mpos, n, k);\n return crypto_verify_16(h, hpos, x, 0);\n }\n\n function crypto_secretbox(c, m, d, n, k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c, 0, m, 0, d, n, k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n\n for (i = 0; i < 16; i++) c[i] = 0;\n\n return 0;\n }\n\n function crypto_secretbox_open(m, c, d, n, k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x, 0, 32, n, k);\n if (crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0) return -1;\n crypto_stream_xor(m, 0, c, 0, d, n, k);\n\n for (i = 0; i < 32; i++) m[i] = 0;\n\n return 0;\n }\n\n function set25519(r, a) {\n var i;\n\n for (i = 0; i < 16; i++) r[i] = a[i] | 0;\n }\n\n function car25519(o) {\n var i,\n v,\n c = 1;\n\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n\n o[0] += c - 1 + 37 * (c - 1);\n }\n\n function sel25519(p, q, b) {\n var t,\n c = ~(b - 1);\n\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n }\n\n function pack25519(o, n) {\n var i, j, b;\n var m = gf(),\n t = gf();\n\n for (i = 0; i < 16; i++) t[i] = n[i];\n\n car25519(t);\n car25519(t);\n car25519(t);\n\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - (m[i - 1] >> 16 & 1);\n m[i - 1] &= 0xffff;\n }\n\n m[15] = t[15] - 0x7fff - (m[14] >> 16 & 1);\n b = m[15] >> 16 & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n }\n\n function neq25519(a, b) {\n var c = new Uint8Array(32),\n d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n }\n\n function par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n }\n\n function unpack25519(o, n) {\n var i;\n\n for (i = 0; i < 16; i++) o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n\n o[15] &= 0x7fff;\n }\n\n function A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n }\n\n function Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n }\n\n function M(o, a, b) {\n var v,\n c,\n t0 = 0,\n t1 = 0,\n t2 = 0,\n t3 = 0,\n t4 = 0,\n t5 = 0,\n t6 = 0,\n t7 = 0,\n t8 = 0,\n t9 = 0,\n t10 = 0,\n t11 = 0,\n t12 = 0,\n t13 = 0,\n t14 = 0,\n t15 = 0,\n t16 = 0,\n t17 = 0,\n t18 = 0,\n t19 = 0,\n t20 = 0,\n t21 = 0,\n t22 = 0,\n t23 = 0,\n t24 = 0,\n t25 = 0,\n t26 = 0,\n t27 = 0,\n t28 = 0,\n t29 = 0,\n t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30; // t15 left as is\n // first car\n\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1); // second car\n\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n }\n\n function S(o, a) {\n M(o, a, a);\n }\n\n function inv25519(o, i) {\n var c = gf();\n var a;\n\n for (a = 0; a < 16; a++) c[a] = i[a];\n\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if (a !== 2 && a !== 4) M(c, c, i);\n }\n\n for (a = 0; a < 16; a++) o[a] = c[a];\n }\n\n function pow2523(o, i) {\n var c = gf();\n var a;\n\n for (a = 0; a < 16; a++) c[a] = i[a];\n\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if (a !== 1) M(c, c, i);\n }\n\n for (a = 0; a < 16; a++) o[a] = c[a];\n }\n\n function crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80),\n r,\n i;\n var a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf();\n\n for (i = 0; i < 31; i++) z[i] = n[i];\n\n z[31] = n[31] & 127 | 64;\n z[0] &= 248;\n unpack25519(x, p);\n\n for (i = 0; i < 16; i++) {\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n\n a[0] = d[0] = 1;\n\n for (i = 254; i >= 0; --i) {\n r = z[i >>> 3] >>> (i & 7) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n\n for (i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n }\n\n function crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n }\n\n function crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n }\n\n function crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n }\n\n var crypto_box_afternm = crypto_secretbox;\n var crypto_box_open_afternm = crypto_secretbox_open;\n\n function crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n }\n\n function crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n }\n\n var K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];\n\n function crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16),\n wl = new Int32Array(16),\n bh0,\n bh1,\n bh2,\n bh3,\n bh4,\n bh5,\n bh6,\n bh7,\n bl0,\n bl1,\n bl2,\n bl3,\n bl4,\n bl5,\n bl6,\n bl7,\n th,\n tl,\n i,\n j,\n h,\n l,\n a,\n b,\n c,\n d;\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n var pos = 0;\n\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = m[j + 0] << 24 | m[j + 1] << 16 | m[j + 2] << 8 | m[j + 3];\n wl[i] = m[j + 4] << 24 | m[j + 5] << 16 | m[j + 6] << 8 | m[j + 7];\n }\n\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7; // add\n\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16; // Sigma1\n\n h = (ah4 >>> 14 | al4 << 32 - 14) ^ (ah4 >>> 18 | al4 << 32 - 18) ^ (al4 >>> 41 - 32 | ah4 << 32 - (41 - 32));\n l = (al4 >>> 14 | ah4 << 32 - 14) ^ (al4 >>> 18 | ah4 << 32 - 18) ^ (ah4 >>> 41 - 32 | al4 << 32 - (41 - 32));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16; // Ch\n\n h = ah4 & ah5 ^ ~ah4 & ah6;\n l = al4 & al5 ^ ~al4 & al6;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16; // K\n\n h = K[i * 2];\n l = K[i * 2 + 1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16; // w\n\n h = wh[i % 16];\n l = wl[i % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16; // add\n\n h = th;\n l = tl;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16; // Sigma0\n\n h = (ah0 >>> 28 | al0 << 32 - 28) ^ (al0 >>> 34 - 32 | ah0 << 32 - (34 - 32)) ^ (al0 >>> 39 - 32 | ah0 << 32 - (39 - 32));\n l = (al0 >>> 28 | ah0 << 32 - 28) ^ (ah0 >>> 34 - 32 | al0 << 32 - (34 - 32)) ^ (ah0 >>> 39 - 32 | al0 << 32 - (39 - 32));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16; // Maj\n\n h = ah0 & ah1 ^ ah0 & ah2 ^ ah1 & ah2;\n l = al0 & al1 ^ al0 & al2 ^ al1 & al2;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh7 = c & 0xffff | d << 16;\n bl7 = a & 0xffff | b << 16; // add\n\n h = bh3;\n l = bl3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = th;\n l = tl;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh3 = c & 0xffff | d << 16;\n bl3 = a & 0xffff | b << 16;\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i % 16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16; // sigma0\n\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h = (th >>> 1 | tl << 32 - 1) ^ (th >>> 8 | tl << 32 - 8) ^ th >>> 7;\n l = (tl >>> 1 | th << 32 - 1) ^ (tl >>> 8 | th << 32 - 8) ^ (tl >>> 7 | th << 32 - 7);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16; // sigma1\n\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h = (th >>> 19 | tl << 32 - 19) ^ (tl >>> 61 - 32 | th << 32 - (61 - 32)) ^ th >>> 6;\n l = (tl >>> 19 | th << 32 - 19) ^ (th >>> 61 - 32 | tl << 32 - (61 - 32)) ^ (tl >>> 6 | th << 32 - 6);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n wh[j] = c & 0xffff | d << 16;\n wl[j] = a & 0xffff | b << 16;\n }\n }\n } // add\n\n\n h = ah0;\n l = al0;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[0];\n l = hl[0];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[0] = ah0 = c & 0xffff | d << 16;\n hl[0] = al0 = a & 0xffff | b << 16;\n h = ah1;\n l = al1;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[1];\n l = hl[1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[1] = ah1 = c & 0xffff | d << 16;\n hl[1] = al1 = a & 0xffff | b << 16;\n h = ah2;\n l = al2;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[2];\n l = hl[2];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[2] = ah2 = c & 0xffff | d << 16;\n hl[2] = al2 = a & 0xffff | b << 16;\n h = ah3;\n l = al3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[3];\n l = hl[3];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[3] = ah3 = c & 0xffff | d << 16;\n hl[3] = al3 = a & 0xffff | b << 16;\n h = ah4;\n l = al4;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[4];\n l = hl[4];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[4] = ah4 = c & 0xffff | d << 16;\n hl[4] = al4 = a & 0xffff | b << 16;\n h = ah5;\n l = al5;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[5];\n l = hl[5];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[5] = ah5 = c & 0xffff | d << 16;\n hl[5] = al5 = a & 0xffff | b << 16;\n h = ah6;\n l = al6;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[6];\n l = hl[6];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[6] = ah6 = c & 0xffff | d << 16;\n hl[6] = al6 = a & 0xffff | b << 16;\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[7];\n l = hl[7];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[7] = ah7 = c & 0xffff | d << 16;\n hl[7] = al7 = a & 0xffff | b << 16;\n pos += 128;\n n -= 128;\n }\n\n return n;\n }\n\n function crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i,\n b = n;\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b - n + i];\n\n x[n] = 128;\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, b / 0x20000000 | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8 * i, hh[i], hl[i]);\n\n return 0;\n }\n\n function add(p, q) {\n var a = gf(),\n b = gf(),\n c = gf(),\n d = gf(),\n e = gf(),\n f = gf(),\n g = gf(),\n h = gf(),\n t = gf();\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n }\n\n function cswap(p, q, b) {\n var i;\n\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n }\n\n function pack(r, p) {\n var tx = gf(),\n ty = gf(),\n zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n }\n\n function scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n\n for (i = 255; i >= 0; --i) {\n b = s[i / 8 | 0] >> (i & 7) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n }\n\n function scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n }\n\n function crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i + 32] = pk[i];\n\n return 0;\n }\n\n var L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\n function modL(r, x) {\n var carry, i, j, k;\n\n for (i = 63; i >= 32; --i) {\n carry = 0;\n\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = x[j] + 128 >> 8;\n x[j] -= carry * 256;\n }\n\n x[j] += carry;\n x[i] = 0;\n }\n\n carry = 0;\n\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n }\n\n function reduce(r) {\n var x = new Float64Array(64),\n i;\n\n for (i = 0; i < 64; i++) x[i] = r[i];\n\n for (i = 0; i < 64; i++) r[i] = 0;\n\n modL(r, x);\n } // Note: difference from C - smlen returned, not passed as argument.\n\n\n function crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64),\n h = new Uint8Array(64),\n r = new Uint8Array(64);\n var i,\n j,\n x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n var smlen = n + 64;\n\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n\n for (i = 0; i < 32; i++) x[i] = r[i];\n\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n }\n\n function unpackneg(r, p) {\n var t = gf(),\n chk = gf(),\n num = gf(),\n den = gf(),\n den2 = gf(),\n den4 = gf(),\n den6 = gf();\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n if (par25519(r[0]) === p[31] >> 7) Z(r[0], gf0, r[0]);\n M(r[3], r[0], r[1]);\n return 0;\n }\n\n function crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new Uint8Array(32),\n h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n mlen = -1;\n if (n < 64) return -1;\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n\n for (i = 0; i < 32; i++) m[i + 32] = pk[i];\n\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n n -= 64;\n\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n\n mlen = n;\n return mlen;\n }\n\n var crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n nacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES\n };\n /* High-level API */\n\n function checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n }\n\n function checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n }\n\n function checkArrayTypes() {\n var t, i;\n\n for (i = 0; i < arguments.length; i++) {\n if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]') throw new TypeError('unexpected type ' + t + ', use Uint8Array');\n }\n }\n\n function cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n } // TODO: Completely remove this in v0.15.\n\n\n if (!nacl.util) {\n nacl.util = {};\n\n nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function () {\n throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js');\n };\n }\n\n nacl.randomBytes = function (n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n };\n\n nacl.secretbox = function (msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n\n for (var i = 0; i < msg.length; i++) m[i + crypto_secretbox_ZEROBYTES] = msg[i];\n\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n };\n\n nacl.secretbox.open = function (box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n\n for (var i = 0; i < box.length; i++) c[i + crypto_secretbox_BOXZEROBYTES] = box[i];\n\n if (c.length < 32) return false;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n };\n\n nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\n nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\n nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\n nacl.scalarMult = function (n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n };\n\n nacl.scalarMult.base = function (n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n };\n\n nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\n nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\n nacl.box = function (msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n };\n\n nacl.box.before = function (publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n };\n\n nacl.box.after = nacl.secretbox;\n\n nacl.box.open = function (msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n };\n\n nacl.box.open.after = nacl.secretbox.open;\n\n nacl.box.keyPair = function () {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {\n publicKey: pk,\n secretKey: sk\n };\n };\n\n nacl.box.keyPair.fromSecretKey = function (secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {\n publicKey: pk,\n secretKey: new Uint8Array(secretKey)\n };\n };\n\n nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\n nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\n nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\n nacl.box.nonceLength = crypto_box_NONCEBYTES;\n nacl.box.overheadLength = nacl.secretbox.overheadLength;\n\n nacl.sign = function (msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES) throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES + msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n };\n\n nacl.sign.open = function (signedMsg, publicKey) {\n if (arguments.length !== 2) throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?');\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n\n return m;\n };\n\n nacl.sign.detached = function (msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n\n return sig;\n };\n\n nacl.sign.detached.verify = function (msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES) throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n\n for (i = 0; i < msg.length; i++) sm[i + crypto_sign_BYTES] = msg[i];\n\n return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;\n };\n\n nacl.sign.keyPair = function () {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {\n publicKey: pk,\n secretKey: sk\n };\n };\n\n nacl.sign.keyPair.fromSecretKey = function (secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES) throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32 + i];\n\n return {\n publicKey: pk,\n secretKey: new Uint8Array(secretKey)\n };\n };\n\n nacl.sign.keyPair.fromSeed = function (seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES) throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n\n crypto_sign_keypair(pk, sk, true);\n return {\n publicKey: pk,\n secretKey: sk\n };\n };\n\n nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\n nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\n nacl.sign.seedLength = crypto_sign_SEEDBYTES;\n nacl.sign.signatureLength = crypto_sign_BYTES;\n\n nacl.hash = function (msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n };\n\n nacl.hash.hashLength = crypto_hash_BYTES;\n\n nacl.verify = function (x, y) {\n checkArrayTypes(x, y); // Zero length arguments are considered not equal.\n\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return vn(x, 0, y, 0, x.length) === 0 ? true : false;\n };\n\n nacl.setPRNG = function (fn) {\n randombytes = fn;\n };\n\n (function () {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? self.crypto || self.msCrypto : null;\n\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function (x, n) {\n var i,\n v = new Uint8Array(n);\n\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n\n for (i = 0; i < n; i++) x[i] = v[i];\n\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function (x, n) {\n var i,\n v = crypto.randomBytes(n);\n\n for (i = 0; i < n; i++) x[i] = v[i];\n\n cleanup(v);\n });\n }\n }\n })();\n})(typeof module !== 'undefined' && module.exports ? module.exports : self.nacl = self.nacl || {});","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/tweetnacl/nacl-fast.js"],"names":["nacl","gf","init","i","r","Float64Array","length","randombytes","Error","_0","Uint8Array","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","vn","xi","y","yi","n","d","crypto_verify_16","crypto_verify_32","core_salsa20","o","p","k","c","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","u","core_hsalsa20","crypto_core_salsa20","out","inp","crypto_core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","m","mpos","b","z","crypto_stream_salsa20","crypto_stream","s","sn","crypto_stream_xor","poly1305","key","buffer","Uint16Array","pad","leftover","fin","t0","t1","t2","t3","t4","t5","t6","t7","prototype","blocks","bytes","hibit","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","finish","mac","macpos","g","mask","f","update","want","crypto_onetimeauth","outpos","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","Math","floor","sel25519","q","t","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","e","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","crypto_box_afternm","crypto_box_open_afternm","crypto_box","crypto_box_open","K","crypto_hashblocks_hl","hh","hl","wh","Int32Array","wl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","unpackneg","chk","num","den","den2","den4","den6","crypto_sign_open","mlen","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","lowlevel","checkLengths","checkBoxLengths","checkArrayTypes","arguments","Object","toString","call","TypeError","cleanup","arr","util","decodeUTF8","encodeUTF8","encodeBase64","decodeBase64","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","crypto","self","msCrypto","getRandomValues","QUOTA","min","require","module","exports"],"mappings":"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","sourcesContent":["(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n mlen = n;\n return mlen;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n var t, i;\n for (i = 0; i < arguments.length; i++) {\n if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]')\n throw new TypeError('unexpected type ' + t + ', use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\n// TODO: Completely remove this in v0.15.\nif (!nacl.util) {\n nacl.util = {};\n nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() {\n throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js');\n };\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return false;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n if (arguments.length !== 2)\n throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?');\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n"]},"metadata":{},"sourceType":"script"}