pixel-react 1.14.91 → 1.14.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/assets/icons/lambda_icon.svg.js +1 -1
- package/lib/assets/icons/lambda_icon.svg.js.map +1 -1
- package/lib/components/Comments/Comments.js +5 -3
- package/lib/components/Comments/Comments.js.map +1 -1
- package/lib/components/SessionManager/SessionManager.js +28 -21
- package/lib/components/SessionManager/SessionManager.js.map +1 -1
- package/lib/components/SessionManager/types.d.ts +1 -0
- package/lib/components/Tooltip/Tooltip.js +19 -0
- package/lib/components/Tooltip/Tooltip.js.map +1 -1
- package/lib/components/TruncatedTooltip/TruncatedTooltip.js +3 -0
- package/lib/components/TruncatedTooltip/TruncatedTooltip.js.map +1 -1
- package/lib/index.cjs +75 -5243
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/node_modules/js-beautify/js/src/css/beautifier.js +1 -1
- package/lib/node_modules/js-beautify/js/src/css/options.js +1 -1
- package/lib/node_modules/js-beautify/js/src/html/beautifier.js +1 -1
- package/lib/node_modules/js-beautify/js/src/html/options.js +1 -1
- package/lib/node_modules/js-beautify/js/src/html/tokenizer.js +1 -1
- package/lib/node_modules/js-beautify/js/src/javascript/beautifier.js +1 -1
- package/lib/node_modules/js-beautify/js/src/javascript/options.js +1 -1
- package/lib/node_modules/js-beautify/js/src/javascript/tokenizer.js +1 -1
- package/lib/styles.css +1 -1
- package/lib/styles.css.map +1 -1
- package/lib/utils/getEncryptedData/getEncryptedData.d.ts +1 -1
- package/lib/utils/getEncryptedData/getEncryptedData.js +17 -8
- package/lib/utils/getEncryptedData/getEncryptedData.js.map +1 -1
- package/package.json +2 -3
- package/lib/node_modules/jsencrypt/lib/JSEncrypt.js +0 -189
- package/lib/node_modules/jsencrypt/lib/JSEncrypt.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/JSEncryptRSAKey.js +0 -323
- package/lib/node_modules/jsencrypt/lib/JSEncryptRSAKey.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/index.js +0 -6
- package/lib/node_modules/jsencrypt/lib/index.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/asn1.js +0 -570
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/asn1.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/base64.js +0 -88
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/base64.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/hex.js +0 -66
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/hex.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/int10.js +0 -87
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/int10.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/base64.js +0 -65
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/base64.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js +0 -1700
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/prng4.js +0 -48
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/prng4.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rng.js +0 -77
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rng.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rsa.js +0 -371
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rsa.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/util.js +0 -61
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/util.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js +0 -1547
- package/lib/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js +0 -71
- package/lib/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"jsbn.js","sources":["../../../../../../node_modules/jsencrypt/lib/lib/jsbn/jsbn.js"],"sourcesContent":["// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\nimport { cbit, int2char, lbit, op_and, op_andnot, op_or, op_xor } from \"./util\";\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += int2char(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBitLength;\n // (public) return the number of bits in \"this\"\n BigInteger.prototype.bitLength = function () {\n if (this.t <= 0) {\n return 0;\n }\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n };\n // BigInteger.prototype.mod = bnMod;\n // (public) this mod a\n BigInteger.prototype.mod = function (a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n a.subTo(r, r);\n }\n return r;\n };\n // BigInteger.prototype.modPowInt = bnModPowInt;\n // (public) this^e % m, 0 <= e < 2^32\n BigInteger.prototype.modPowInt = function (e, m) {\n var z;\n if (e < 256 || m.isEven()) {\n z = new Classic(m);\n }\n else {\n z = new Montgomery(m);\n }\n return this.exp(e, z);\n };\n // BigInteger.prototype.clone = bnClone;\n // (public)\n BigInteger.prototype.clone = function () {\n var r = nbi();\n this.copyTo(r);\n return r;\n };\n // BigInteger.prototype.intValue = bnIntValue;\n // (public) return value as integer\n BigInteger.prototype.intValue = function () {\n if (this.s < 0) {\n if (this.t == 1) {\n return this[0] - this.DV;\n }\n else if (this.t == 0) {\n return -1;\n }\n }\n else if (this.t == 1) {\n return this[0];\n }\n else if (this.t == 0) {\n return 0;\n }\n // assumes 16 < DB < 32\n return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0];\n };\n // BigInteger.prototype.byteValue = bnByteValue;\n // (public) return value as byte\n BigInteger.prototype.byteValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 24) >> 24;\n };\n // BigInteger.prototype.shortValue = bnShortValue;\n // (public) return value as short (assumes DB>=16)\n BigInteger.prototype.shortValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 16) >> 16;\n };\n // BigInteger.prototype.signum = bnSigNum;\n // (public) 0 if this == 0, 1 if this > 0\n BigInteger.prototype.signum = function () {\n if (this.s < 0) {\n return -1;\n }\n else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) {\n return 0;\n }\n else {\n return 1;\n }\n };\n // BigInteger.prototype.toByteArray = bnToByteArray;\n // (public) convert to bigendian byte array\n BigInteger.prototype.toByteArray = function () {\n var i = this.t;\n var r = [];\n r[0] = this.s;\n var p = this.DB - (i * this.DB) % 8;\n var d;\n var k = 0;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\n r[k++] = d | (this.s << (this.DB - p));\n }\n while (i >= 0) {\n if (p < 8) {\n d = (this[i] & ((1 << p) - 1)) << (8 - p);\n d |= this[--i] >> (p += this.DB - 8);\n }\n else {\n d = (this[i] >> (p -= 8)) & 0xff;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if ((d & 0x80) != 0) {\n d |= -256;\n }\n if (k == 0 && (this.s & 0x80) != (d & 0x80)) {\n ++k;\n }\n if (k > 0 || d != this.s) {\n r[k++] = d;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.equals = bnEquals;\n BigInteger.prototype.equals = function (a) {\n return (this.compareTo(a) == 0);\n };\n // BigInteger.prototype.min = bnMin;\n BigInteger.prototype.min = function (a) {\n return (this.compareTo(a) < 0) ? this : a;\n };\n // BigInteger.prototype.max = bnMax;\n BigInteger.prototype.max = function (a) {\n return (this.compareTo(a) > 0) ? this : a;\n };\n // BigInteger.prototype.and = bnAnd;\n BigInteger.prototype.and = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_and, r);\n return r;\n };\n // BigInteger.prototype.or = bnOr;\n BigInteger.prototype.or = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_or, r);\n return r;\n };\n // BigInteger.prototype.xor = bnXor;\n BigInteger.prototype.xor = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_xor, r);\n return r;\n };\n // BigInteger.prototype.andNot = bnAndNot;\n BigInteger.prototype.andNot = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_andnot, r);\n return r;\n };\n // BigInteger.prototype.not = bnNot;\n // (public) ~this\n BigInteger.prototype.not = function () {\n var r = nbi();\n for (var i = 0; i < this.t; ++i) {\n r[i] = this.DM & ~this[i];\n }\n r.t = this.t;\n r.s = ~this.s;\n return r;\n };\n // BigInteger.prototype.shiftLeft = bnShiftLeft;\n // (public) this << n\n BigInteger.prototype.shiftLeft = function (n) {\n var r = nbi();\n if (n < 0) {\n this.rShiftTo(-n, r);\n }\n else {\n this.lShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.shiftRight = bnShiftRight;\n // (public) this >> n\n BigInteger.prototype.shiftRight = function (n) {\n var r = nbi();\n if (n < 0) {\n this.lShiftTo(-n, r);\n }\n else {\n this.rShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n // (public) returns index of lowest 1-bit (or -1 if none)\n BigInteger.prototype.getLowestSetBit = function () {\n for (var i = 0; i < this.t; ++i) {\n if (this[i] != 0) {\n return i * this.DB + lbit(this[i]);\n }\n }\n if (this.s < 0) {\n return this.t * this.DB;\n }\n return -1;\n };\n // BigInteger.prototype.bitCount = bnBitCount;\n // (public) return number of set bits\n BigInteger.prototype.bitCount = function () {\n var r = 0;\n var x = this.s & this.DM;\n for (var i = 0; i < this.t; ++i) {\n r += cbit(this[i] ^ x);\n }\n return r;\n };\n // BigInteger.prototype.testBit = bnTestBit;\n // (public) true iff nth bit is set\n BigInteger.prototype.testBit = function (n) {\n var j = Math.floor(n / this.DB);\n if (j >= this.t) {\n return (this.s != 0);\n }\n return ((this[j] & (1 << (n % this.DB))) != 0);\n };\n // BigInteger.prototype.setBit = bnSetBit;\n // (public) this | (1<<n)\n BigInteger.prototype.setBit = function (n) {\n return this.changeBit(n, op_or);\n };\n // BigInteger.prototype.clearBit = bnClearBit;\n // (public) this & ~(1<<n)\n BigInteger.prototype.clearBit = function (n) {\n return this.changeBit(n, op_andnot);\n };\n // BigInteger.prototype.flipBit = bnFlipBit;\n // (public) this ^ (1<<n)\n BigInteger.prototype.flipBit = function (n) {\n return this.changeBit(n, op_xor);\n };\n // BigInteger.prototype.add = bnAdd;\n // (public) this + a\n BigInteger.prototype.add = function (a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n };\n // BigInteger.prototype.subtract = bnSubtract;\n // (public) this - a\n BigInteger.prototype.subtract = function (a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n };\n // BigInteger.prototype.multiply = bnMultiply;\n // (public) this * a\n BigInteger.prototype.multiply = function (a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n };\n // BigInteger.prototype.divide = bnDivide;\n // (public) this / a\n BigInteger.prototype.divide = function (a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n };\n // BigInteger.prototype.remainder = bnRemainder;\n // (public) this % a\n BigInteger.prototype.remainder = function (a) {\n var r = nbi();\n this.divRemTo(a, null, r);\n return r;\n };\n // BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\n // (public) [this/a,this%a]\n BigInteger.prototype.divideAndRemainder = function (a) {\n var q = nbi();\n var r = nbi();\n this.divRemTo(a, q, r);\n return [q, r];\n };\n // BigInteger.prototype.modPow = bnModPow;\n // (public) this^e % m (HAC 14.85)\n BigInteger.prototype.modPow = function (e, m) {\n var i = e.bitLength();\n var k;\n var r = nbv(1);\n var z;\n if (i <= 0) {\n return r;\n }\n else if (i < 18) {\n k = 1;\n }\n else if (i < 48) {\n k = 3;\n }\n else if (i < 144) {\n k = 4;\n }\n else if (i < 768) {\n k = 5;\n }\n else {\n k = 6;\n }\n if (i < 8) {\n z = new Classic(m);\n }\n else if (m.isEven()) {\n z = new Barrett(m);\n }\n else {\n z = new Montgomery(m);\n }\n // precomputation\n var g = [];\n var n = 3;\n var k1 = k - 1;\n var km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1;\n var w;\n var is1 = true;\n var r2 = nbi();\n var t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) {\n w = (e[j] >> (i - k1)) & km;\n }\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0) {\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) {\n z.sqrTo(r, r2);\n }\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.modInverse = bnModInverse;\n // (public) 1/this % m (HAC 14.61)\n BigInteger.prototype.modInverse = function (m) {\n var ac = m.isEven();\n if ((this.isEven() && ac) || m.signum() == 0) {\n return BigInteger.ZERO;\n }\n var u = m.clone();\n var v = this.clone();\n var a = nbv(1);\n var b = nbv(0);\n var c = nbv(0);\n var d = nbv(1);\n while (u.signum() != 0) {\n while (u.isEven()) {\n u.rShiftTo(1, u);\n if (ac) {\n if (!a.isEven() || !b.isEven()) {\n a.addTo(this, a);\n b.subTo(m, b);\n }\n a.rShiftTo(1, a);\n }\n else if (!b.isEven()) {\n b.subTo(m, b);\n }\n b.rShiftTo(1, b);\n }\n while (v.isEven()) {\n v.rShiftTo(1, v);\n if (ac) {\n if (!c.isEven() || !d.isEven()) {\n c.addTo(this, c);\n d.subTo(m, d);\n }\n c.rShiftTo(1, c);\n }\n else if (!d.isEven()) {\n d.subTo(m, d);\n }\n d.rShiftTo(1, d);\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u);\n if (ac) {\n a.subTo(c, a);\n }\n b.subTo(d, b);\n }\n else {\n v.subTo(u, v);\n if (ac) {\n c.subTo(a, c);\n }\n d.subTo(b, d);\n }\n }\n if (v.compareTo(BigInteger.ONE) != 0) {\n return BigInteger.ZERO;\n }\n if (d.compareTo(m) >= 0) {\n return d.subtract(m);\n }\n if (d.signum() < 0) {\n d.addTo(m, d);\n }\n else {\n return d;\n }\n if (d.signum() < 0) {\n return d.add(m);\n }\n else {\n return d;\n }\n };\n // BigInteger.prototype.pow = bnPow;\n // (public) this^e\n BigInteger.prototype.pow = function (e) {\n return this.exp(e, new NullExp());\n };\n // BigInteger.prototype.gcd = bnGCD;\n // (public) gcd(this,a) (HAC 14.54)\n BigInteger.prototype.gcd = function (a) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n return x;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n while (x.signum() > 0) {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n }\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n return y;\n };\n // BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n // (public) test primality with certainty >= 1-.5^t\n BigInteger.prototype.isProbablePrime = function (t) {\n var i;\n var x = this.abs();\n if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n for (i = 0; i < lowprimes.length; ++i) {\n if (x[0] == lowprimes[i]) {\n return true;\n }\n }\n return false;\n }\n if (x.isEven()) {\n return false;\n }\n i = 1;\n while (i < lowprimes.length) {\n var m = lowprimes[i];\n var j = i + 1;\n while (j < lowprimes.length && m < lplim) {\n m *= lowprimes[j++];\n }\n m = x.modInt(m);\n while (i < j) {\n if (m % lowprimes[i++] == 0) {\n return false;\n }\n }\n }\n return x.millerRabin(t);\n };\n //#endregion PUBLIC\n //#region PROTECTED\n // BigInteger.prototype.copyTo = bnpCopyTo;\n // (protected) copy this to r\n BigInteger.prototype.copyTo = function (r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n r.t = this.t;\n r.s = this.s;\n };\n // BigInteger.prototype.fromInt = bnpFromInt;\n // (protected) set from integer value x, -DV <= x < DV\n BigInteger.prototype.fromInt = function (x) {\n this.t = 1;\n this.s = (x < 0) ? -1 : 0;\n if (x > 0) {\n this[0] = x;\n }\n else if (x < -1) {\n this[0] = x + this.DV;\n }\n else {\n this.t = 0;\n }\n };\n // BigInteger.prototype.fromString = bnpFromString;\n // (protected) set from string and radix\n BigInteger.prototype.fromString = function (s, b) {\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 256) {\n k = 8;\n /* byte array */\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n this.fromRadix(s, b);\n return;\n }\n this.t = 0;\n this.s = 0;\n var i = s.length;\n var mi = false;\n var sh = 0;\n while (--i >= 0) {\n var x = (k == 8) ? (+s[i]) & 0xff : intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") {\n mi = true;\n }\n continue;\n }\n mi = false;\n if (sh == 0) {\n this[this.t++] = x;\n }\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = (x >> (this.DB - sh));\n }\n else {\n this[this.t - 1] |= x << sh;\n }\n sh += k;\n if (sh >= this.DB) {\n sh -= this.DB;\n }\n }\n if (k == 8 && ((+s[0]) & 0x80) != 0) {\n this.s = -1;\n if (sh > 0) {\n this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh;\n }\n }\n this.clamp();\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.clamp = bnpClamp;\n // (protected) clamp off excess high words\n BigInteger.prototype.clamp = function () {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n };\n // BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n // (protected) r = this << n*DB\n BigInteger.prototype.dlShiftTo = function (n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r.t = this.t + n;\n r.s = this.s;\n };\n // BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n // (protected) r = this >> n*DB\n BigInteger.prototype.drShiftTo = function (n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n };\n // BigInteger.prototype.lShiftTo = bnpLShiftTo;\n // (protected) r = this << n\n BigInteger.prototype.lShiftTo = function (n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = (this.s << bs) & this.DM;\n for (var i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (var i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n };\n // BigInteger.prototype.rShiftTo = bnpRShiftTo;\n // (protected) r = this >> n\n BigInteger.prototype.rShiftTo = function (n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) {\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n }\n r.t = this.t - ds;\n r.clamp();\n };\n // BigInteger.prototype.subTo = bnpSubTo;\n // (protected) r = this - a\n BigInteger.prototype.subTo = function (a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c < -1) {\n r[i++] = this.DV + c;\n }\n else if (c > 0) {\n r[i++] = c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n // (protected) r = this * a, r != this,a (HAC 14.12)\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyTo = function (a, r) {\n var x = this.abs();\n var y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n r.s = 0;\n r.clamp();\n if (this.s != a.s) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.squareTo = bnpSquareTo;\n // (protected) r = this^2, r != this (HAC 14.16)\n BigInteger.prototype.squareTo = function (r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) {\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n }\n r.s = 0;\n r.clamp();\n };\n // BigInteger.prototype.divRemTo = bnpDivRemTo;\n // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n // r != q, this != m. q or r may be null.\n BigInteger.prototype.divRemTo = function (m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) {\n return;\n }\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) {\n q.fromInt(0);\n }\n if (r != null) {\n this.copyTo(r);\n }\n return;\n }\n if (r == null) {\n r = nbi();\n }\n var y = nbi();\n var ts = this.s;\n var ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) {\n return;\n }\n var yt = y0 * (1 << this.F1) + ((ys > 1) ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt;\n var d2 = (1 << this.F1) / yt;\n var e = 1 << this.F2;\n var i = r.t;\n var j = i - ys;\n var t = (q == null) ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) {\n BigInteger.ZERO.subTo(q, q);\n }\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) {\n r.rShiftTo(nsh, r);\n } // Denormalize remainder\n if (ts < 0) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.invDigit = bnpInvDigit;\n // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n // justification:\n // xy == 1 (mod m)\n // xy = 1+km\n // xy(2-xy) = (1+km)(1-km)\n // x[y(2-xy)] = 1-k^2m^2\n // x[y(2-xy)] == 1 (mod m^2)\n // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n BigInteger.prototype.invDigit = function () {\n if (this.t < 1) {\n return 0;\n }\n var x = this[0];\n if ((x & 1) == 0) {\n return 0;\n }\n var y = x & 3; // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y > 0) ? this.DV - y : -y;\n };\n // BigInteger.prototype.isEven = bnpIsEven;\n // (protected) true iff this is even\n BigInteger.prototype.isEven = function () {\n return ((this.t > 0) ? (this[0] & 1) : this.s) == 0;\n };\n // BigInteger.prototype.exp = bnpExp;\n // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n BigInteger.prototype.exp = function (e, z) {\n if (e > 0xffffffff || e < 1) {\n return BigInteger.ONE;\n }\n var r = nbi();\n var r2 = nbi();\n var g = z.convert(this);\n var i = nbits(e) - 1;\n g.copyTo(r);\n while (--i >= 0) {\n z.sqrTo(r, r2);\n if ((e & (1 << i)) > 0) {\n z.mulTo(r2, g, r);\n }\n else {\n var t = r;\n r = r2;\n r2 = t;\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.chunkSize = bnpChunkSize;\n // (protected) return x s.t. r^x < DV\n BigInteger.prototype.chunkSize = function (r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r));\n };\n // BigInteger.prototype.toRadix = bnpToRadix;\n // (protected) convert to radix string\n BigInteger.prototype.toRadix = function (b) {\n if (b == null) {\n b = 10;\n }\n if (this.signum() == 0 || b < 2 || b > 36) {\n return \"0\";\n }\n var cs = this.chunkSize(b);\n var a = Math.pow(b, cs);\n var d = nbv(a);\n var y = nbi();\n var z = nbi();\n var r = \"\";\n this.divRemTo(d, y, z);\n while (y.signum() > 0) {\n r = (a + z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d, y, z);\n }\n return z.intValue().toString(b) + r;\n };\n // BigInteger.prototype.fromRadix = bnpFromRadix;\n // (protected) convert from radix string\n BigInteger.prototype.fromRadix = function (s, b) {\n this.fromInt(0);\n if (b == null) {\n b = 10;\n }\n var cs = this.chunkSize(b);\n var d = Math.pow(b, cs);\n var mi = false;\n var j = 0;\n var w = 0;\n for (var i = 0; i < s.length; ++i) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\" && this.signum() == 0) {\n mi = true;\n }\n continue;\n }\n w = b * w + x;\n if (++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w, 0);\n j = 0;\n w = 0;\n }\n }\n if (j > 0) {\n this.dMultiply(Math.pow(b, j));\n this.dAddOffset(w, 0);\n }\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.fromNumber = bnpFromNumber;\n // (protected) alternate constructor\n BigInteger.prototype.fromNumber = function (a, b, c) {\n if (\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n } // force odd\n while (!this.isProbablePrime(b)) {\n this.dAddOffset(2, 0);\n if (this.bitLength() > a) {\n this.subTo(BigInteger.ONE.shiftLeft(a - 1), this);\n }\n }\n }\n }\n else {\n // new BigInteger(int,RNG)\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n // BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n // (protected) r = this op a (bitwise)\n BigInteger.prototype.bitwiseTo = function (a, op, r) {\n var i;\n var f;\n var m = Math.min(a.t, this.t);\n for (i = 0; i < m; ++i) {\n r[i] = op(this[i], a[i]);\n }\n if (a.t < this.t) {\n f = a.s & this.DM;\n for (i = m; i < this.t; ++i) {\n r[i] = op(this[i], f);\n }\n r.t = this.t;\n }\n else {\n f = this.s & this.DM;\n for (i = m; i < a.t; ++i) {\n r[i] = op(f, a[i]);\n }\n r.t = a.t;\n }\n r.s = op(this.s, a.s);\n r.clamp();\n };\n // BigInteger.prototype.changeBit = bnpChangeBit;\n // (protected) this op (1<<n)\n BigInteger.prototype.changeBit = function (n, op) {\n var r = BigInteger.ONE.shiftLeft(n);\n this.bitwiseTo(r, op, r);\n return r;\n };\n // BigInteger.prototype.addTo = bnpAddTo;\n // (protected) r = this + a\n BigInteger.prototype.addTo = function (a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c > 0) {\n r[i++] = c;\n }\n else if (c < -1) {\n r[i++] = this.DV + c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.dMultiply = bnpDMultiply;\n // (protected) this *= n, this >= 0, 1 < n < DV\n BigInteger.prototype.dMultiply = function (n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t);\n ++this.t;\n this.clamp();\n };\n // BigInteger.prototype.dAddOffset = bnpDAddOffset;\n // (protected) this += n << w words, this >= 0\n BigInteger.prototype.dAddOffset = function (n, w) {\n if (n == 0) {\n return;\n }\n while (this.t <= w) {\n this[this.t++] = 0;\n }\n this[w] += n;\n while (this[w] >= this.DV) {\n this[w] -= this.DV;\n if (++w >= this.t) {\n this[this.t++] = 0;\n }\n ++this[w];\n }\n };\n // BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n // (protected) r = lower n words of \"this * a\", a.t <= n\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyLowerTo = function (a, n, r) {\n var i = Math.min(this.t + a.t, n);\n r.s = 0; // assumes a,this >= 0\n r.t = i;\n while (i > 0) {\n r[--i] = 0;\n }\n for (var j = r.t - this.t; i < j; ++i) {\n r[i + this.t] = this.am(0, a[i], r, i, 0, this.t);\n }\n for (var j = Math.min(a.t, n); i < j; ++i) {\n this.am(0, a[i], r, i, 0, n - i);\n }\n r.clamp();\n };\n // BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n // (protected) r = \"this * a\" without lower n words, n > 0\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyUpperTo = function (a, n, r) {\n --n;\n var i = r.t = this.t + a.t - n;\n r.s = 0; // assumes a,this >= 0\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = Math.max(n - this.t, 0); i < a.t; ++i) {\n r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n);\n }\n r.clamp();\n r.drShiftTo(1, r);\n };\n // BigInteger.prototype.modInt = bnpModInt;\n // (protected) this % n, n < 2^26\n BigInteger.prototype.modInt = function (n) {\n if (n <= 0) {\n return 0;\n }\n var d = this.DV % n;\n var r = (this.s < 0) ? n - 1 : 0;\n if (this.t > 0) {\n if (d == 0) {\n r = this[0] % n;\n }\n else {\n for (var i = this.t - 1; i >= 0; --i) {\n r = (d * r + this[i]) % n;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.millerRabin = bnpMillerRabin;\n // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n BigInteger.prototype.millerRabin = function (t) {\n var n1 = this.subtract(BigInteger.ONE);\n var k = n1.getLowestSetBit();\n if (k <= 0) {\n return false;\n }\n var r = n1.shiftRight(k);\n t = (t + 1) >> 1;\n if (t > lowprimes.length) {\n t = lowprimes.length;\n }\n var a = nbi();\n for (var i = 0; i < t; ++i) {\n // Pick bases at random, instead of starting at 2\n a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);\n var y = a.modPow(r, this);\n if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while (j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2, this);\n if (y.compareTo(BigInteger.ONE) == 0) {\n return false;\n }\n }\n if (y.compareTo(n1) != 0) {\n return false;\n }\n }\n }\n return true;\n };\n // BigInteger.prototype.square = bnSquare;\n // (public) this^2\n BigInteger.prototype.square = function () {\n var r = nbi();\n this.squareTo(r);\n return r;\n };\n //#region ASYNC\n // Public API method\n BigInteger.prototype.gcda = function (a, callback) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n callback(x);\n return;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n // Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.\n var gcda1 = function () {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n if (!(x.signum() > 0)) {\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n setTimeout(function () { callback(y); }, 0); // escape\n }\n else {\n setTimeout(gcda1, 0);\n }\n };\n setTimeout(gcda1, 10);\n };\n // (protected) alternate constructor\n BigInteger.prototype.fromNumberAsync = function (a, b, c, callback) {\n if (\"number\" == typeof b) {\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n }\n var bnp_1 = this;\n var bnpfn1_1 = function () {\n bnp_1.dAddOffset(2, 0);\n if (bnp_1.bitLength() > a) {\n bnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1);\n }\n if (bnp_1.isProbablePrime(b)) {\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(bnpfn1_1, 0);\n }\n };\n setTimeout(bnpfn1_1, 0);\n }\n }\n else {\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n return BigInteger;\n}());\nexport { BigInteger };\n//#region REDUCERS\n//#region NullExp\nvar NullExp = /** @class */ (function () {\n function NullExp() {\n }\n // NullExp.prototype.convert = nNop;\n NullExp.prototype.convert = function (x) {\n return x;\n };\n // NullExp.prototype.revert = nNop;\n NullExp.prototype.revert = function (x) {\n return x;\n };\n // NullExp.prototype.mulTo = nMulTo;\n NullExp.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n };\n // NullExp.prototype.sqrTo = nSqrTo;\n NullExp.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n };\n return NullExp;\n}());\n// Modular reduction using \"classic\" algorithm\nvar Classic = /** @class */ (function () {\n function Classic(m) {\n this.m = m;\n }\n // Classic.prototype.convert = cConvert;\n Classic.prototype.convert = function (x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) {\n return x.mod(this.m);\n }\n else {\n return x;\n }\n };\n // Classic.prototype.revert = cRevert;\n Classic.prototype.revert = function (x) {\n return x;\n };\n // Classic.prototype.reduce = cReduce;\n Classic.prototype.reduce = function (x) {\n x.divRemTo(this.m, null, x);\n };\n // Classic.prototype.mulTo = cMulTo;\n Classic.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Classic.prototype.sqrTo = cSqrTo;\n Classic.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Classic;\n}());\n//#endregion\n//#region Montgomery\n// Montgomery reduction\nvar Montgomery = /** @class */ (function () {\n function Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n }\n // Montgomery.prototype.convert = montConvert;\n // xR mod m\n Montgomery.prototype.convert = function (x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n this.m.subTo(r, r);\n }\n return r;\n };\n // Montgomery.prototype.revert = montRevert;\n // x/R mod m\n Montgomery.prototype.revert = function (x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n };\n // Montgomery.prototype.reduce = montReduce;\n // x = x/R mod m (HAC 14.32)\n Montgomery.prototype.reduce = function (x) {\n while (x.t <= this.mt2) {\n // pad x so am has enough room later\n x[x.t++] = 0;\n }\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Montgomery.prototype.mulTo = montMulTo;\n // r = \"xy/R mod m\"; x,y != r\n Montgomery.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Montgomery.prototype.sqrTo = montSqrTo;\n // r = \"x^2/R mod m\"; x != r\n Montgomery.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Montgomery;\n}());\n//#endregion Montgomery\n//#region Barrett\n// Barrett modular reduction\nvar Barrett = /** @class */ (function () {\n function Barrett(m) {\n this.m = m;\n // setup Barrett\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2);\n this.mu = this.r2.divide(m);\n }\n // Barrett.prototype.convert = barrettConvert;\n Barrett.prototype.convert = function (x) {\n if (x.s < 0 || x.t > 2 * this.m.t) {\n return x.mod(this.m);\n }\n else if (x.compareTo(this.m) < 0) {\n return x;\n }\n else {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n };\n // Barrett.prototype.revert = barrettRevert;\n Barrett.prototype.revert = function (x) {\n return x;\n };\n // Barrett.prototype.reduce = barrettReduce;\n // x = x mod m (HAC 14.42)\n Barrett.prototype.reduce = function (x) {\n x.drShiftTo(this.m.t - 1, this.r2);\n if (x.t > this.m.t + 1) {\n x.t = this.m.t + 1;\n x.clamp();\n }\n this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);\n this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);\n while (x.compareTo(this.r2) < 0) {\n x.dAddOffset(1, this.m.t + 1);\n }\n x.subTo(this.r2, x);\n while (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Barrett.prototype.mulTo = barrettMulTo;\n // r = x*y mod m; x,y != r\n Barrett.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Barrett.prototype.sqrTo = barrettSqrTo;\n // r = x^2 mod m; x != r\n Barrett.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Barrett;\n}());\n//#endregion\n//#endregion REDUCERS\n// return new, unset BigInteger\nexport function nbi() { return new BigInteger(null); }\nexport function parseBigInt(str, r) {\n return new BigInteger(str, r);\n}\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\nvar inBrowser = typeof navigator !== \"undefined\";\nif (inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n // am2 avoids a big mult-and-extract completely.\n // Max digit bits should be <= 30 because we do bitwise ops\n // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n BigInteger.prototype.am = function am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff;\n var xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n };\n dbits = 30;\n}\nelse if (inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n // am1: use a single mult and divide to get the high bits,\n // max digit bits should be 26 because\n // max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n BigInteger.prototype.am = function am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n };\n dbits = 26;\n}\nelse { // Mozilla/Netscape seems to prefer am3\n // Alternately, set max digit bits to 28 since some\n // browsers slow down when dealing with 32-bit numbers.\n BigInteger.prototype.am = function am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff;\n var xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n };\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1 << dbits) - 1);\nBigInteger.prototype.DV = (1 << dbits);\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nvar BI_RC = [];\nvar rr;\nvar vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nexport function intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return (c == null) ? -1 : c;\n}\n// return bigint initialized to value\nexport function nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n// returns bit length of the integer x\nexport function nbits(x) {\n var r = 1;\n var t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n"],"names":["dbits","canary","j_lm","lowprimes","lplim","length","BigInteger","a","b","c","fromNumber","fromString","prototype","toString","s","negate","k","toRadix","km","d","m","r","i","t","p","DB","int2char","nbi","ZERO","subTo","abs","compareTo","bitLength","nbits","DM","mod","divRemTo","modPowInt","e","z","isEven","Classic","Montgomery","exp","clone","copyTo","intValue","DV","byteValue","shortValue","signum","toByteArray","equals","min","max","and","bitwiseTo","op_and","or","op_or","xor","op_xor","andNot","op_andnot","not","shiftLeft","n","rShiftTo","lShiftTo","shiftRight","getLowestSetBit","lbit","bitCount","x","cbit","testBit","j","Math","floor","setBit","changeBit","clearBit","flipBit","add","addTo","subtract","multiply","multiplyTo","divide","remainder","divideAndRemainder","q","modPow","nbv","Barrett","g","k1","convert","g2","sqrTo","mulTo","w","is1","r2","revert","modInverse","ac","u","v","ONE","pow","NullExp","gcd","y","isProbablePrime","modInt","millerRabin","fromInt","fromRadix","mi","sh","intAt","charAt","clamp","dlShiftTo","drShiftTo","bs","cbs","bm","ds","am","squareTo","pm","pt","ts","ms","nsh","ys","y0","yt","F1","F2","d1","FV","d2","qd","invDigit","chunkSize","LN2","log","cs","substr","dMultiply","dAddOffset","nextBytes","op","f","multiplyLowerTo","multiplyUpperTo","n1","random","square","gcda","callback","gcda1","setTimeout","fromNumberAsync","bnp_1","bnpfn1_1","reduce","mp","mpl","mph","um","mt2","u0","q3","mu","parseBigInt","str","inBrowser","navigator","appName","am2","xl","xh","l","h","am1","am3","BI_FP","BI_RC","rr","vv","charCodeAt"],"mappings":"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","x_google_ignoreList":[0]}
|
@@ -1,48 +0,0 @@
|
|
1
|
-
// prng4.js - uses Arcfour as a PRNG
|
2
|
-
var Arcfour = /** @class */function () {
|
3
|
-
function Arcfour() {
|
4
|
-
this.i = 0;
|
5
|
-
this.j = 0;
|
6
|
-
this.S = [];
|
7
|
-
}
|
8
|
-
// Arcfour.prototype.init = ARC4init;
|
9
|
-
// Initialize arcfour context from key, an array of ints, each from [0..255]
|
10
|
-
Arcfour.prototype.init = function (key) {
|
11
|
-
var i;
|
12
|
-
var j;
|
13
|
-
var t;
|
14
|
-
for (i = 0; i < 256; ++i) {
|
15
|
-
this.S[i] = i;
|
16
|
-
}
|
17
|
-
j = 0;
|
18
|
-
for (i = 0; i < 256; ++i) {
|
19
|
-
j = j + this.S[i] + key[i % key.length] & 255;
|
20
|
-
t = this.S[i];
|
21
|
-
this.S[i] = this.S[j];
|
22
|
-
this.S[j] = t;
|
23
|
-
}
|
24
|
-
this.i = 0;
|
25
|
-
this.j = 0;
|
26
|
-
};
|
27
|
-
// Arcfour.prototype.next = ARC4next;
|
28
|
-
Arcfour.prototype.next = function () {
|
29
|
-
var t;
|
30
|
-
this.i = this.i + 1 & 255;
|
31
|
-
this.j = this.j + this.S[this.i] & 255;
|
32
|
-
t = this.S[this.i];
|
33
|
-
this.S[this.i] = this.S[this.j];
|
34
|
-
this.S[this.j] = t;
|
35
|
-
return this.S[t + this.S[this.i] & 255];
|
36
|
-
};
|
37
|
-
return Arcfour;
|
38
|
-
}();
|
39
|
-
// Plug in your RNG constructor here
|
40
|
-
function prng_newstate() {
|
41
|
-
return new Arcfour();
|
42
|
-
}
|
43
|
-
// Pool size must be a multiple of 4 and greater than 32.
|
44
|
-
// An array of bytes the size of the pool will be passed to init()
|
45
|
-
var rng_psize = 256;
|
46
|
-
|
47
|
-
export { Arcfour, prng_newstate, rng_psize };
|
48
|
-
//# sourceMappingURL=prng4.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"prng4.js","sources":["../../../../../../node_modules/jsencrypt/lib/lib/jsbn/prng4.js"],"sourcesContent":["// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\nexport { Arcfour };\n// Plug in your RNG constructor here\nexport function prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nexport var rng_psize = 256;\n"],"names":["Arcfour","i","j","S","prototype","init","key","t","length","next","prng_newstate","rng_psize"],"mappings":"AAAA;AACA,IAAIA,OAAO,gBAAkB,YAAY;EACrC,SAASA,OAAOA,GAAG;IACf,IAAI,CAACC,CAAC,GAAG,CAAC;IACV,IAAI,CAACC,CAAC,GAAG,CAAC;IACV,IAAI,CAACC,CAAC,GAAG,EAAE;AACf;AACA;AACA;AACAH,EAAAA,OAAO,CAACI,SAAS,CAACC,IAAI,GAAG,UAAUC,GAAG,EAAE;AACpC,IAAA,IAAIL,CAAC;AACL,IAAA,IAAIC,CAAC;AACL,IAAA,IAAIK,CAAC;IACL,KAAKN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAE,EAAEA,CAAC,EAAE;AACtB,MAAA,IAAI,CAACE,CAAC,CAACF,CAAC,CAAC,GAAGA,CAAC;AACjB;AACAC,IAAAA,CAAC,GAAG,CAAC;IACL,KAAKD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAE,EAAEA,CAAC,EAAE;AACtBC,MAAAA,CAAC,GAAIA,CAAC,GAAG,IAAI,CAACC,CAAC,CAACF,CAAC,CAAC,GAAGK,GAAG,CAACL,CAAC,GAAGK,GAAG,CAACE,MAAM,CAAC,GAAI,GAAG;AAC/CD,MAAAA,CAAC,GAAG,IAAI,CAACJ,CAAC,CAACF,CAAC,CAAC;MACb,IAAI,CAACE,CAAC,CAACF,CAAC,CAAC,GAAG,IAAI,CAACE,CAAC,CAACD,CAAC,CAAC;AACrB,MAAA,IAAI,CAACC,CAAC,CAACD,CAAC,CAAC,GAAGK,CAAC;AACjB;IACA,IAAI,CAACN,CAAC,GAAG,CAAC;IACV,IAAI,CAACC,CAAC,GAAG,CAAC;GACb;AACD;AACAF,EAAAA,OAAO,CAACI,SAAS,CAACK,IAAI,GAAG,YAAY;AACjC,IAAA,IAAIF,CAAC;IACL,IAAI,CAACN,CAAC,GAAI,IAAI,CAACA,CAAC,GAAG,CAAC,GAAI,GAAG;AAC3B,IAAA,IAAI,CAACC,CAAC,GAAI,IAAI,CAACA,CAAC,GAAG,IAAI,CAACC,CAAC,CAAC,IAAI,CAACF,CAAC,CAAC,GAAI,GAAG;IACxCM,CAAC,GAAG,IAAI,CAACJ,CAAC,CAAC,IAAI,CAACF,CAAC,CAAC;AAClB,IAAA,IAAI,CAACE,CAAC,CAAC,IAAI,CAACF,CAAC,CAAC,GAAG,IAAI,CAACE,CAAC,CAAC,IAAI,CAACD,CAAC,CAAC;IAC/B,IAAI,CAACC,CAAC,CAAC,IAAI,CAACD,CAAC,CAAC,GAAGK,CAAC;AAClB,IAAA,OAAO,IAAI,CAACJ,CAAC,CAAEI,CAAC,GAAG,IAAI,CAACJ,CAAC,CAAC,IAAI,CAACF,CAAC,CAAC,GAAI,GAAG,CAAC;GAC5C;AACD,EAAA,OAAOD,OAAO;AAClB,CAAC;AAED;AACO,SAASU,aAAaA,GAAG;EAC5B,OAAO,IAAIV,OAAO,EAAE;AACxB;AACA;AACA;AACO,IAAIW,SAAS,GAAG;;;;","x_google_ignoreList":[0]}
|
@@ -1,77 +0,0 @@
|
|
1
|
-
import { rng_psize, prng_newstate } from './prng4.js';
|
2
|
-
|
3
|
-
// Random number generator - requires a PRNG backend, e.g. prng4.js
|
4
|
-
var rng_state;
|
5
|
-
var rng_pool = null;
|
6
|
-
var rng_pptr;
|
7
|
-
// Initialize the pool with junk if needed.
|
8
|
-
if (rng_pool == null) {
|
9
|
-
rng_pool = [];
|
10
|
-
rng_pptr = 0;
|
11
|
-
var t = void 0;
|
12
|
-
if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {
|
13
|
-
// Extract entropy (2048 bits) from RNG if available
|
14
|
-
var z = new Uint32Array(256);
|
15
|
-
window.crypto.getRandomValues(z);
|
16
|
-
for (t = 0; t < z.length; ++t) {
|
17
|
-
rng_pool[rng_pptr++] = z[t] & 255;
|
18
|
-
}
|
19
|
-
}
|
20
|
-
// Use mouse events for entropy, if we do not have enough entropy by the time
|
21
|
-
// we need it, entropy will be generated by Math.random.
|
22
|
-
var count = 0;
|
23
|
-
var onMouseMoveListener_1 = function (ev) {
|
24
|
-
count = count || 0;
|
25
|
-
if (count >= 256 || rng_pptr >= rng_psize) {
|
26
|
-
if (window.removeEventListener) {
|
27
|
-
window.removeEventListener("mousemove", onMouseMoveListener_1, false);
|
28
|
-
} else if (window.detachEvent) {
|
29
|
-
window.detachEvent("onmousemove", onMouseMoveListener_1);
|
30
|
-
}
|
31
|
-
return;
|
32
|
-
}
|
33
|
-
try {
|
34
|
-
var mouseCoordinates = ev.x + ev.y;
|
35
|
-
rng_pool[rng_pptr++] = mouseCoordinates & 255;
|
36
|
-
count += 1;
|
37
|
-
} catch (e) {
|
38
|
-
// Sometimes Firefox will deny permission to access event properties for some reason. Ignore.
|
39
|
-
}
|
40
|
-
};
|
41
|
-
if (typeof window !== 'undefined') {
|
42
|
-
if (window.addEventListener) {
|
43
|
-
window.addEventListener("mousemove", onMouseMoveListener_1, false);
|
44
|
-
} else if (window.attachEvent) {
|
45
|
-
window.attachEvent("onmousemove", onMouseMoveListener_1);
|
46
|
-
}
|
47
|
-
}
|
48
|
-
}
|
49
|
-
function rng_get_byte() {
|
50
|
-
if (rng_state == null) {
|
51
|
-
rng_state = prng_newstate();
|
52
|
-
// At this point, we may not have collected enough entropy. If not, fall back to Math.random
|
53
|
-
while (rng_pptr < rng_psize) {
|
54
|
-
var random = Math.floor(65536 * Math.random());
|
55
|
-
rng_pool[rng_pptr++] = random & 255;
|
56
|
-
}
|
57
|
-
rng_state.init(rng_pool);
|
58
|
-
for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {
|
59
|
-
rng_pool[rng_pptr] = 0;
|
60
|
-
}
|
61
|
-
rng_pptr = 0;
|
62
|
-
}
|
63
|
-
// TODO: allow reseeding after first request
|
64
|
-
return rng_state.next();
|
65
|
-
}
|
66
|
-
var SecureRandom = /** @class */function () {
|
67
|
-
function SecureRandom() {}
|
68
|
-
SecureRandom.prototype.nextBytes = function (ba) {
|
69
|
-
for (var i = 0; i < ba.length; ++i) {
|
70
|
-
ba[i] = rng_get_byte();
|
71
|
-
}
|
72
|
-
};
|
73
|
-
return SecureRandom;
|
74
|
-
}();
|
75
|
-
|
76
|
-
export { SecureRandom };
|
77
|
-
//# sourceMappingURL=rng.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"rng.js","sources":["../../../../../../node_modules/jsencrypt/lib/lib/jsbn/rng.js"],"sourcesContent":["// Random number generator - requires a PRNG backend, e.g. prng4.js\nimport { prng_newstate, rng_psize } from \"./prng4\";\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = prng_newstate();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\nexport { SecureRandom };\n"],"names":["rng_state","rng_pool","rng_pptr","t","window","crypto","getRandomValues","z","Uint32Array","length","count","onMouseMoveListener_1","ev","rng_psize","removeEventListener","detachEvent","mouseCoordinates","x","y","e","addEventListener","attachEvent","rng_get_byte","prng_newstate","random","Math","floor","init","next","SecureRandom","prototype","nextBytes","ba","i"],"mappings":";;AAAA;AAEA,IAAIA,SAAS;AACb,IAAIC,QAAQ,GAAG,IAAI;AACnB,IAAIC,QAAQ;AACZ;AACA,IAAID,QAAQ,IAAI,IAAI,EAAE;AAClBA,EAAAA,QAAQ,GAAG,EAAE;AACbC,EAAAA,QAAQ,GAAG,CAAC;EACZ,IAAIC,CAAC,GAAG,MAAM;AACd,EAAA,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACC,MAAM,IAAID,MAAM,CAACC,MAAM,CAACC,eAAe,EAAE;AACjF;AACA,IAAA,IAAIC,CAAC,GAAG,IAAIC,WAAW,CAAC,GAAG,CAAC;AAC5BJ,IAAAA,MAAM,CAACC,MAAM,CAACC,eAAe,CAACC,CAAC,CAAC;AAChC,IAAA,KAAKJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGI,CAAC,CAACE,MAAM,EAAE,EAAEN,CAAC,EAAE;MAC3BF,QAAQ,CAACC,QAAQ,EAAE,CAAC,GAAGK,CAAC,CAACJ,CAAC,CAAC,GAAG,GAAG;AACrC;AACJ;AACA;AACA;EACA,IAAIO,KAAK,GAAG,CAAC;AACb,EAAA,IAAIC,qBAAqB,GAAG,UAAUC,EAAE,EAAE;IACtCF,KAAK,GAAGA,KAAK,IAAI,CAAC;AAClB,IAAA,IAAIA,KAAK,IAAI,GAAG,IAAIR,QAAQ,IAAIW,SAAS,EAAE;MACvC,IAAIT,MAAM,CAACU,mBAAmB,EAAE;QAC5BV,MAAM,CAACU,mBAAmB,CAAC,WAAW,EAAEH,qBAAqB,EAAE,KAAK,CAAC;AACzE,OAAC,MACI,IAAIP,MAAM,CAACW,WAAW,EAAE;AACzBX,QAAAA,MAAM,CAACW,WAAW,CAAC,aAAa,EAAEJ,qBAAqB,CAAC;AAC5D;AACA,MAAA;AACJ;IACA,IAAI;MACA,IAAIK,gBAAgB,GAAGJ,EAAE,CAACK,CAAC,GAAGL,EAAE,CAACM,CAAC;AAClCjB,MAAAA,QAAQ,CAACC,QAAQ,EAAE,CAAC,GAAGc,gBAAgB,GAAG,GAAG;AAC7CN,MAAAA,KAAK,IAAI,CAAC;KACb,CACD,OAAOS,CAAC,EAAE;AACN;AAAA;GAEP;AACD,EAAA,IAAI,OAAOf,MAAM,KAAK,WAAW,EAAE;IAC/B,IAAIA,MAAM,CAACgB,gBAAgB,EAAE;MACzBhB,MAAM,CAACgB,gBAAgB,CAAC,WAAW,EAAET,qBAAqB,EAAE,KAAK,CAAC;AACtE,KAAC,MACI,IAAIP,MAAM,CAACiB,WAAW,EAAE;AACzBjB,MAAAA,MAAM,CAACiB,WAAW,CAAC,aAAa,EAAEV,qBAAqB,CAAC;AAC5D;AACJ;AACJ;AACA,SAASW,YAAYA,GAAG;EACpB,IAAItB,SAAS,IAAI,IAAI,EAAE;IACnBA,SAAS,GAAGuB,aAAa,EAAE;AAC3B;IACA,OAAOrB,QAAQ,GAAGW,SAAS,EAAE;AACzB,MAAA,IAAIW,MAAM,GAAGC,IAAI,CAACC,KAAK,CAAC,KAAK,GAAGD,IAAI,CAACD,MAAM,EAAE,CAAC;AAC9CvB,MAAAA,QAAQ,CAACC,QAAQ,EAAE,CAAC,GAAGsB,MAAM,GAAG,GAAG;AACvC;AACAxB,IAAAA,SAAS,CAAC2B,IAAI,CAAC1B,QAAQ,CAAC;AACxB,IAAA,KAAKC,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGD,QAAQ,CAACQ,MAAM,EAAE,EAAEP,QAAQ,EAAE;AACvDD,MAAAA,QAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC;AAC1B;AACAA,IAAAA,QAAQ,GAAG,CAAC;AAChB;AACA;AACA,EAAA,OAAOF,SAAS,CAAC4B,IAAI,EAAE;AAC3B;AACA,IAAIC,YAAY,gBAAkB,YAAY;EAC1C,SAASA,YAAYA,GAAG;AAExBA,EAAAA,YAAY,CAACC,SAAS,CAACC,SAAS,GAAG,UAAUC,EAAE,EAAE;AAC7C,IAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,EAAE,CAACvB,MAAM,EAAE,EAAEwB,CAAC,EAAE;AAChCD,MAAAA,EAAE,CAACC,CAAC,CAAC,GAAGX,YAAY,EAAE;AAC1B;GACH;AACD,EAAA,OAAOO,YAAY;AACvB,CAAC;;;;","x_google_ignoreList":[0]}
|