{"version":3,"sources":["webpack:///./node_modules/bigi/lib/index.js","webpack:///./node_modules/bigi/lib/convert.js","webpack:///./node_modules/bigi/lib/bigi.js"],"names":["BigInteger","module","exports","assert","fromByteArrayUnsigned","byteArray","concat","prototype","toByteArrayUnsigned","this","toByteArray","slice","fromDERInteger","toDERInteger","fromBuffer","buffer","Array","call","fromHex","hex","ZERO","equal","match","length","toBuffer","size","zeros","padding","push","Buffer","toHex","toString","a","b","c","fromNumber","fromString","proto","__bigi","version","isBigInteger","obj","check_ver","am","i","x","w","j","n","v","Math","floor","DB","DM","DV","FV","pow","F1","BI_FP","F2","rr","vv","BI_RC","charCodeAt","int2char","charAt","intAt","s","nbv","r","fromInt","nbits","t","Classic","m","Montgomery","mp","invDigit","mpl","mph","um","mt2","op_and","y","op_or","op_xor","op_andnot","lbit","cbit","NullExp","nNop","Barrett","r2","q3","ONE","dlShiftTo","mu","divide","convert","compareTo","mod","revert","reduce","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","abs","subTo","copyTo","u0","clamp","drShiftTo","k","fromRadix","mi","sh","max","lShiftTo","bs","cbs","bm","ds","rShiftTo","min","q","pm","pt","ts","ms","nsh","ys","y0","yt","d1","d2","e","qd","isEven","exp","z","g","negate","toRadix","d","km","p","bitLength","byteLength","modPowInt","multiplyUpperTo","multiplyLowerTo","dAddOffset","lowprimes","lplim","chunkSize","LN2","log","signum","cs","intValue","substr","dMultiply","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","op","f","changeBit","addTo","modInt","millerRabin","n1","subtract","getLowestSetBit","shiftRight","bases","random","indexOf","modPow","clone","byteValue","shortValue","equals","and","or","xor","andNot","not","bitCount","setBit","clearBit","flipBit","add","multiply","remainder","divideAndRemainder","k1","g2","is1","modInverse","ac","Error","u","gcd","square","valueOf"],"mappings":"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","file":"vendor.bigi~8dd32c61.2dff96c11afc4fe0a9e8.chunk.js","sourcesContent":["var BigInteger = require('./bigi')\n\n//addons\nrequire('./convert')\n\nmodule.exports = BigInteger","// FIXME: Kind of a weird way to throw exceptions, consider removing\nvar assert = require('assert')\nvar BigInteger = require('./bigi')\n\n/**\n * Turns a byte array into a big integer.\n *\n * This function will interpret a byte array as a big integer in big\n * endian notation.\n */\nBigInteger.fromByteArrayUnsigned = function(byteArray) {\n // BigInteger expects a DER integer conformant byte array\n if (byteArray[0] & 0x80) {\n return new BigInteger([0].concat(byteArray))\n }\n\n return new BigInteger(byteArray)\n}\n\n/**\n * Returns a byte array representation of the big integer.\n *\n * This returns the absolute of the contained value in big endian\n * form. A value of zero results in an empty array.\n */\nBigInteger.prototype.toByteArrayUnsigned = function() {\n var byteArray = this.toByteArray()\n return byteArray[0] === 0 ? byteArray.slice(1) : byteArray\n}\n\nBigInteger.fromDERInteger = function(byteArray) {\n return new BigInteger(byteArray)\n}\n\n/*\n * Converts BigInteger to a DER integer representation.\n *\n * The format for this value uses the most significant bit as a sign\n * bit. If the most significant bit is already set and the integer is\n * positive, a 0x00 is prepended.\n *\n * Examples:\n *\n * 0 => 0x00\n * 1 => 0x01\n * -1 => 0xff\n * 127 => 0x7f\n * -127 => 0x81\n * 128 => 0x0080\n * -128 => 0x80\n * 255 => 0x00ff\n * -255 => 0xff01\n * 16300 => 0x3fac\n * -16300 => 0xc054\n * 62300 => 0x00f35c\n * -62300 => 0xff0ca4\n*/\nBigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray\n\nBigInteger.fromBuffer = function(buffer) {\n // BigInteger expects a DER integer conformant byte array\n if (buffer[0] & 0x80) {\n var byteArray = Array.prototype.slice.call(buffer)\n\n return new BigInteger([0].concat(byteArray))\n }\n\n return new BigInteger(buffer)\n}\n\nBigInteger.fromHex = function(hex) {\n if (hex === '') return BigInteger.ZERO\n\n assert.equal(hex, hex.match(/^[A-Fa-f0-9]+/), 'Invalid hex string')\n assert.equal(hex.length % 2, 0, 'Incomplete hex')\n return new BigInteger(hex, 16)\n}\n\nBigInteger.prototype.toBuffer = function(size) {\n var byteArray = this.toByteArrayUnsigned()\n var zeros = []\n\n var padding = size - byteArray.length\n while (zeros.length < padding) zeros.push(0)\n\n return new Buffer(zeros.concat(byteArray))\n}\n\nBigInteger.prototype.toHex = function(size) {\n return this.toBuffer(size).toString('hex')\n}\n","// (public) Constructor\nfunction BigInteger(a, b, c) {\n if (!(this instanceof BigInteger))\n return new BigInteger(a, b, c)\n\n if (a != null) {\n if (\"number\" == typeof a) this.fromNumber(a, b, c)\n else if (b == null && \"string\" != typeof a) this.fromString(a, 256)\n else this.fromString(a, b)\n }\n}\n\nvar proto = BigInteger.prototype\n\n// duck-typed isBigInteger\nproto.__bigi = require('../package.json').version\nBigInteger.isBigInteger = function (obj, check_ver) {\n return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)\n}\n\n// Bits per digit\nvar dbits\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.\n\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)\nfunction 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// 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)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n 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// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n 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\n// wtf?\nBigInteger.prototype.am = am1\ndbits = 26\n\nBigInteger.prototype.DB = dbits\nBigInteger.prototype.DM = ((1 << dbits) - 1)\nvar DV = BigInteger.prototype.DV = (1 << dbits)\n\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\n// Digit conversions\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\"\nvar BI_RC = new Array()\nvar rr, vv\nrr = \"0\".charCodeAt(0)\nfor (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv\nrr = \"a\".charCodeAt(0)\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv\nrr = \"A\".charCodeAt(0)\nfor (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv\n\nfunction int2char(n) {\n return BI_RM.charAt(n)\n}\n\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)]\n return (c == null) ? -1 : c\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) r[i] = this[i]\n r.t = this.t\n r.s = this.s\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1\n this.s = (x < 0) ? -1 : 0\n if (x > 0) this[0] = x\n else if (x < -1) this[0] = x + DV\n else this.t = 0\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = new BigInteger()\n r.fromInt(i)\n return r\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var self = this\n\n var k\n if (b == 16) k = 4\n else if (b == 8) k = 3\n else if (b == 256) k = 8; // byte array\n else if (b == 2) k = 1\n else if (b == 32) k = 5\n else if (b == 4) k = 2\n else {\n self.fromRadix(s, b)\n return\n }\n self.t = 0\n self.s = 0\n var i = s.length,\n mi = false,\n 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) == \"-\") mi = true\n continue\n }\n mi = false\n if (sh == 0)\n self[self.t++] = x\n else if (sh + k > self.DB) {\n self[self.t - 1] |= (x & ((1 << (self.DB - sh)) - 1)) << sh\n self[self.t++] = (x >> (self.DB - sh))\n } else\n self[self.t - 1] |= x << sh\n sh += k\n if (sh >= self.DB) sh -= self.DB\n }\n if (k == 8 && (s[0] & 0x80) != 0) {\n self.s = -1\n if (sh > 0) self[self.t - 1] |= ((1 << (self.DB - sh)) - 1) << sh\n }\n self.clamp()\n if (mi) BigInteger.ZERO.subTo(self, self)\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM\n while (this.t > 0 && this[this.t - 1] == c)--this.t\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n var self = this\n if (self.s < 0) return \"-\" + self.negate()\n .toString(b)\n var k\n if (b == 16) k = 4\n else if (b == 8) k = 3\n else if (b == 2) k = 1\n else if (b == 32) k = 5\n else if (b == 4) k = 2\n else return self.toRadix(b)\n var km = (1 << k) - 1,\n d, m = false,\n r = \"\",\n i = self.t\n var p = self.DB - (i * self.DB) % k\n if (i-- > 0) {\n if (p < self.DB && (d = self[i] >> p) > 0) {\n m = true\n r = int2char(d)\n }\n while (i >= 0) {\n if (p < k) {\n d = (self[i] & ((1 << p) - 1)) << (k - p)\n d |= self[--i] >> (p += self.DB - k)\n } else {\n d = (self[i] >> (p -= k)) & km\n if (p <= 0) {\n p += self.DB\n --i\n }\n }\n if (d > 0) m = true\n if (m) r += int2char(d)\n }\n }\n return m ? r : \"0\"\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = new BigInteger()\n BigInteger.ZERO.subTo(this, r)\n return r\n}\n\n// (public) |this|\nfunction bnAbs() {\n return (this.s < 0) ? this.negate() : this\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s - a.s\n if (r != 0) return r\n var i = this.t\n r = i - a.t\n if (r != 0) return (this.s < 0) ? -r : r\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0) return r\n return 0\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1,\n 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\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0) return 0\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM))\n}\n\n// (public) return the number of bytes in \"this\"\nfunction bnByteLength() {\n return this.bitLength() >> 3\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i\n for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i]\n for (i = n - 1; i >= 0; --i) r[i] = 0\n r.t = this.t + n\n r.s = this.s\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) r[i - n] = this[i]\n r.t = Math.max(this.t - n, 0)\n r.s = this.s\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n var self = this\n var bs = n % self.DB\n var cbs = self.DB - bs\n var bm = (1 << cbs) - 1\n var ds = Math.floor(n / self.DB),\n c = (self.s << bs) & self.DM,\n i\n for (i = self.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (self[i] >> cbs) | c\n c = (self[i] & bm) << bs\n }\n for (i = ds - 1; i >= 0; --i) r[i] = 0\n r[ds] = c\n r.t = self.t + ds + 1\n r.s = self.s\n r.clamp()\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n var self = this\n r.s = self.s\n var ds = Math.floor(n / self.DB)\n if (ds >= self.t) {\n r.t = 0\n return\n }\n var bs = n % self.DB\n var cbs = self.DB - bs\n var bm = (1 << bs) - 1\n r[0] = self[ds] >> bs\n for (var i = ds + 1; i < self.t; ++i) {\n r[i - ds - 1] |= (self[i] & bm) << cbs\n r[i - ds] = self[i] >> bs\n }\n if (bs > 0) r[self.t - ds - 1] |= (self.s & bm) << cbs\n r.t = self.t - ds\n r.clamp()\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var self = this\n var i = 0,\n c = 0,\n m = Math.min(a.t, self.t)\n while (i < m) {\n c += self[i] - a[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n if (a.t < self.t) {\n c -= a.s\n while (i < self.t) {\n c += self[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c += self.s\n } else {\n c += self.s\n while (i < a.t) {\n c -= a[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c -= a.s\n }\n r.s = (c < 0) ? -1 : 0\n if (c < -1) r[i++] = self.DV + c\n else if (c > 0) r[i++] = c\n r.t = i\n r.clamp()\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(),\n y = a.abs()\n var i = x.t\n r.t = i + y.t\n while (--i >= 0) r[i] = 0\n for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t)\n r.s = 0\n r.clamp()\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r)\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs()\n var i = r.t = 2 * x.t\n while (--i >= 0) r[i] = 0\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) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1)\n r.s = 0\n r.clamp()\n}\n\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.\nfunction bnpDivRemTo(m, q, r) {\n var self = this\n var pm = m.abs()\n if (pm.t <= 0) return\n var pt = self.abs()\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0)\n if (r != null) self.copyTo(r)\n return\n }\n if (r == null) r = new BigInteger()\n var y = new BigInteger(),\n ts = self.s,\n ms = m.s\n var nsh = self.DB - nbits(pm[pm.t - 1]); // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y)\n pt.lShiftTo(nsh, r)\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) return\n var yt = y0 * (1 << self.F1) + ((ys > 1) ? y[ys - 2] >> self.F2 : 0)\n var d1 = self.FV / yt,\n d2 = (1 << self.F1) / yt,\n e = 1 << self.F2\n var i = r.t,\n j = i - ys,\n t = (q == null) ? new BigInteger() : 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) y[y.t++] = 0\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i] == y0) ? self.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) r.subTo(t, r)\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q)\n if (ts != ms) BigInteger.ZERO.subTo(q, q)\n }\n r.t = ys\n r.clamp()\n if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r)\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = new BigInteger()\n this.abs()\n .divRemTo(a, null, r)\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r)\n return r\n}\n\n// Modular reduction using \"classic\" algorithm\nfunction Classic(m) {\n this.m = m\n}\n\nfunction cConvert(x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m)\n else return x\n}\n\nfunction cRevert(x) {\n return x\n}\n\nfunction cReduce(x) {\n x.divRemTo(this.m, null, x)\n}\n\nfunction cMulTo(x, y, r) {\n x.multiplyTo(y, r)\n this.reduce(r)\n}\n\nfunction cSqrTo(x, r) {\n x.squareTo(r)\n this.reduce(r)\n}\n\nClassic.prototype.convert = cConvert\nClassic.prototype.revert = cRevert\nClassic.prototype.reduce = cReduce\nClassic.prototype.mulTo = cMulTo\nClassic.prototype.sqrTo = cSqrTo\n\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.\nfunction bnpInvDigit() {\n if (this.t < 1) return 0\n var x = this[0]\n if ((x & 1) == 0) return 0\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\n// Montgomery reduction\nfunction 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\n// xR mod m\nfunction montConvert(x) {\n var r = new BigInteger()\n x.abs()\n .dlShiftTo(this.m.t, r)\n r.divRemTo(this.m, null, r)\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r)\n return r\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = new BigInteger()\n x.copyTo(r)\n this.reduce(r)\n return r\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2) // pad x so am has enough room later\n x[x.t++] = 0\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) x.subTo(this.m, x)\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r)\n this.reduce(r)\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r)\n this.reduce(r)\n}\n\nMontgomery.prototype.convert = montConvert\nMontgomery.prototype.revert = montRevert\nMontgomery.prototype.reduce = montReduce\nMontgomery.prototype.mulTo = montMulTo\nMontgomery.prototype.sqrTo = montSqrTo\n\n// (protected) true iff this is even\nfunction bnpIsEven() {\n return ((this.t > 0) ? (this[0] & 1) : this.s) == 0\n}\n\n// (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\nfunction bnpExp(e, z) {\n if (e > 0xffffffff || e < 1) return BigInteger.ONE\n var r = new BigInteger(),\n r2 = new BigInteger(),\n g = z.convert(this),\n i = nbits(e) - 1\n g.copyTo(r)\n while (--i >= 0) {\n z.sqrTo(r, r2)\n if ((e & (1 << i)) > 0) z.mulTo(r2, g, r)\n else {\n var t = r\n r = r2\n r2 = t\n }\n }\n return z.revert(r)\n}\n\n// (public) this^e % m, 0 <= e < 2^32\nfunction bnModPowInt(e, m) {\n var z\n if (e < 256 || m.isEven()) z = new Classic(m)\n else z = new Montgomery(m)\n return this.exp(e, z)\n}\n\n// protected\nproto.copyTo = bnpCopyTo\nproto.fromInt = bnpFromInt\nproto.fromString = bnpFromString\nproto.clamp = bnpClamp\nproto.dlShiftTo = bnpDLShiftTo\nproto.drShiftTo = bnpDRShiftTo\nproto.lShiftTo = bnpLShiftTo\nproto.rShiftTo = bnpRShiftTo\nproto.subTo = bnpSubTo\nproto.multiplyTo = bnpMultiplyTo\nproto.squareTo = bnpSquareTo\nproto.divRemTo = bnpDivRemTo\nproto.invDigit = bnpInvDigit\nproto.isEven = bnpIsEven\nproto.exp = bnpExp\n\n// public\nproto.toString = bnToString\nproto.negate = bnNegate\nproto.abs = bnAbs\nproto.compareTo = bnCompareTo\nproto.bitLength = bnBitLength\nproto.byteLength = bnByteLength\nproto.mod = bnMod\nproto.modPowInt = bnModPowInt\n\n// (public)\nfunction bnClone() {\n var r = new BigInteger()\n this.copyTo(r)\n return r\n}\n\n// (public) return value as integer\nfunction bnIntValue() {\n if (this.s < 0) {\n if (this.t == 1) return this[0] - this.DV\n else if (this.t == 0) return -1\n } else if (this.t == 1) return this[0]\n else if (this.t == 0) return 0\n // assumes 16 < DB < 32\n return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0]\n}\n\n// (public) return value as byte\nfunction bnByteValue() {\n return (this.t == 0) ? this.s : (this[0] << 24) >> 24\n}\n\n// (public) return value as short (assumes DB>=16)\nfunction bnShortValue() {\n return (this.t == 0) ? this.s : (this[0] << 16) >> 16\n}\n\n// (protected) return x s.t. r^x < DV\nfunction bnpChunkSize(r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r))\n}\n\n// (public) 0 if this == 0, 1 if this > 0\nfunction bnSigNum() {\n if (this.s < 0) return -1\n else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0\n else return 1\n}\n\n// (protected) convert to radix string\nfunction bnpToRadix(b) {\n if (b == null) b = 10\n if (this.signum() == 0 || b < 2 || b > 36) return \"0\"\n var cs = this.chunkSize(b)\n var a = Math.pow(b, cs)\n var d = nbv(a),\n y = new BigInteger(),\n z = new BigInteger(),\n r = \"\"\n this.divRemTo(d, y, z)\n while (y.signum() > 0) {\n r = (a + z.intValue())\n .toString(b)\n .substr(1) + r\n y.divRemTo(d, y, z)\n }\n return z.intValue()\n .toString(b) + r\n}\n\n// (protected) convert from radix string\nfunction bnpFromRadix(s, b) {\n var self = this\n self.fromInt(0)\n if (b == null) b = 10\n var cs = self.chunkSize(b)\n var d = Math.pow(b, cs),\n mi = false,\n j = 0,\n 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) == \"-\" && self.signum() == 0) mi = true\n continue\n }\n w = b * w + x\n if (++j >= cs) {\n self.dMultiply(d)\n self.dAddOffset(w, 0)\n j = 0\n w = 0\n }\n }\n if (j > 0) {\n self.dMultiply(Math.pow(b, j))\n self.dAddOffset(w, 0)\n }\n if (mi) BigInteger.ZERO.subTo(self, self)\n}\n\n// (protected) alternate constructor\nfunction bnpFromNumber(a, b, c) {\n var self = this\n if (\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if (a < 2) self.fromInt(1)\n else {\n self.fromNumber(a, c)\n if (!self.testBit(a - 1)) // force MSB set\n self.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, self)\n if (self.isEven()) self.dAddOffset(1, 0); // force odd\n while (!self.isProbablePrime(b)) {\n self.dAddOffset(2, 0)\n if (self.bitLength() > a) self.subTo(BigInteger.ONE.shiftLeft(a - 1), self)\n }\n }\n } else {\n // new BigInteger(int,RNG)\n var x = new Array(),\n t = a & 7\n x.length = (a >> 3) + 1\n b.nextBytes(x)\n if (t > 0) x[0] &= ((1 << t) - 1)\n else x[0] = 0\n self.fromString(x, 256)\n }\n}\n\n// (public) convert to bigendian byte array\nfunction bnToByteArray() {\n var self = this\n var i = self.t,\n r = new Array()\n r[0] = self.s\n var p = self.DB - (i * self.DB) % 8,\n d, k = 0\n if (i-- > 0) {\n if (p < self.DB && (d = self[i] >> p) != (self.s & self.DM) >> p)\n r[k++] = d | (self.s << (self.DB - p))\n while (i >= 0) {\n if (p < 8) {\n d = (self[i] & ((1 << p) - 1)) << (8 - p)\n d |= self[--i] >> (p += self.DB - 8)\n } else {\n d = (self[i] >> (p -= 8)) & 0xff\n if (p <= 0) {\n p += self.DB\n --i\n }\n }\n if ((d & 0x80) != 0) d |= -256\n if (k === 0 && (self.s & 0x80) != (d & 0x80))++k\n if (k > 0 || d != self.s) r[k++] = d\n }\n }\n return r\n}\n\nfunction bnEquals(a) {\n return (this.compareTo(a) == 0)\n}\n\nfunction bnMin(a) {\n return (this.compareTo(a) < 0) ? this : a\n}\n\nfunction bnMax(a) {\n return (this.compareTo(a) > 0) ? this : a\n}\n\n// (protected) r = this op a (bitwise)\nfunction bnpBitwiseTo(a, op, r) {\n var self = this\n var i, f, m = Math.min(a.t, self.t)\n for (i = 0; i < m; ++i) r[i] = op(self[i], a[i])\n if (a.t < self.t) {\n f = a.s & self.DM\n for (i = m; i < self.t; ++i) r[i] = op(self[i], f)\n r.t = self.t\n } else {\n f = self.s & self.DM\n for (i = m; i < a.t; ++i) r[i] = op(f, a[i])\n r.t = a.t\n }\n r.s = op(self.s, a.s)\n r.clamp()\n}\n\n// (public) this & a\nfunction op_and(x, y) {\n return x & y\n}\n\nfunction bnAnd(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_and, r)\n return r\n}\n\n// (public) this | a\nfunction op_or(x, y) {\n return x | y\n}\n\nfunction bnOr(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_or, r)\n return r\n}\n\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y\n}\n\nfunction bnXor(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_xor, r)\n return r\n}\n\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y\n}\n\nfunction bnAndNot(a) {\n var r = new BigInteger()\n this.bitwiseTo(a, op_andnot, r)\n return r\n}\n\n// (public) ~this\nfunction bnNot() {\n var r = new BigInteger()\n for (var i = 0; i < this.t; ++i) r[i] = this.DM & ~this[i]\n r.t = this.t\n r.s = ~this.s\n return r\n}\n\n// (public) this << n\nfunction bnShiftLeft(n) {\n var r = new BigInteger()\n if (n < 0) this.rShiftTo(-n, r)\n else this.lShiftTo(n, r)\n return r\n}\n\n// (public) this >> n\nfunction bnShiftRight(n) {\n var r = new BigInteger()\n if (n < 0) this.lShiftTo(-n, r)\n else this.rShiftTo(n, r)\n return r\n}\n\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) return -1\n var r = 0\n if ((x & 0xffff) == 0) {\n x >>= 16\n r += 16\n }\n if ((x & 0xff) == 0) {\n x >>= 8\n r += 8\n }\n if ((x & 0xf) == 0) {\n x >>= 4\n r += 4\n }\n if ((x & 3) == 0) {\n x >>= 2\n r += 2\n }\n if ((x & 1) == 0)++r\n return r\n}\n\n// (public) returns index of lowest 1-bit (or -1 if none)\nfunction bnGetLowestSetBit() {\n for (var i = 0; i < this.t; ++i)\n if (this[i] != 0) return i * this.DB + lbit(this[i])\n if (this.s < 0) return this.t * this.DB\n return -1\n}\n\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0\n while (x != 0) {\n x &= x - 1\n ++r\n }\n return r\n}\n\n// (public) return number of set bits\nfunction bnBitCount() {\n var r = 0,\n x = this.s & this.DM\n for (var i = 0; i < this.t; ++i) r += cbit(this[i] ^ x)\n return r\n}\n\n// (public) true iff nth bit is set\nfunction bnTestBit(n) {\n var j = Math.floor(n / this.DB)\n if (j >= this.t) return (this.s != 0)\n return ((this[j] & (1 << (n % this.DB))) != 0)\n}\n\n// (protected) this op (1<>= self.DB\n }\n if (a.t < self.t) {\n c += a.s\n while (i < self.t) {\n c += self[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c += self.s\n } else {\n c += self.s\n while (i < a.t) {\n c += a[i]\n r[i++] = c & self.DM\n c >>= self.DB\n }\n c += a.s\n }\n r.s = (c < 0) ? -1 : 0\n if (c > 0) r[i++] = c\n else if (c < -1) r[i++] = self.DV + c\n r.t = i\n r.clamp()\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = new BigInteger()\n this.addTo(a, r)\n return r\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = new BigInteger()\n this.subTo(a, r)\n return r\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = new BigInteger()\n this.multiplyTo(a, r)\n return r\n}\n\n// (public) this^2\nfunction bnSquare() {\n var r = new BigInteger()\n this.squareTo(r)\n return r\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = new BigInteger()\n this.divRemTo(a, r, null)\n return r\n}\n\n// (public) this % a\nfunction bnRemainder(a) {\n var r = new BigInteger()\n this.divRemTo(a, null, r)\n return r\n}\n\n// (public) [this/a,this%a]\nfunction bnDivideAndRemainder(a) {\n var q = new BigInteger(),\n r = new BigInteger()\n this.divRemTo(a, q, r)\n return new Array(q, r)\n}\n\n// (protected) this *= n, this >= 0, 1 < n < DV\nfunction bnpDMultiply(n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t)\n ++this.t\n this.clamp()\n}\n\n// (protected) this += n << w words, this >= 0\nfunction bnpDAddOffset(n, w) {\n if (n == 0) return\n while (this.t <= w) this[this.t++] = 0\n this[w] += n\n while (this[w] >= this.DV) {\n this[w] -= this.DV\n if (++w >= this.t) this[this.t++] = 0\n ++this[w]\n }\n}\n\n// A \"null\" reducer\nfunction NullExp() {}\n\nfunction nNop(x) {\n return x\n}\n\nfunction nMulTo(x, y, r) {\n x.multiplyTo(y, r)\n}\n\nfunction nSqrTo(x, r) {\n x.squareTo(r)\n}\n\nNullExp.prototype.convert = nNop\nNullExp.prototype.revert = nNop\nNullExp.prototype.mulTo = nMulTo\nNullExp.prototype.sqrTo = nSqrTo\n\n// (public) this^e\nfunction bnPow(e) {\n return this.exp(e, new NullExp())\n}\n\n// (protected) r = lower n words of \"this * a\", a.t <= n\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyLowerTo(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) r[--i] = 0\n var j\n for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(0, a[i], r, i, 0, this.t)\n for (j = Math.min(a.t, n); i < j; ++i) this.am(0, a[i], r, i, 0, n - i)\n r.clamp()\n}\n\n// (protected) r = \"this * a\" without lower n words, n > 0\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyUpperTo(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) r[i] = 0\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 r.clamp()\n r.drShiftTo(1, r)\n}\n\n// Barrett modular reduction\nfunction Barrett(m) {\n // setup Barrett\n this.r2 = new BigInteger()\n this.q3 = new BigInteger()\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2)\n this.mu = this.r2.divide(m)\n this.m = m\n}\n\nfunction barrettConvert(x) {\n if (x.s < 0 || x.t > 2 * this.m.t) return x.mod(this.m)\n else if (x.compareTo(this.m) < 0) return x\n else {\n var r = new BigInteger()\n x.copyTo(r)\n this.reduce(r)\n return r\n }\n}\n\nfunction barrettRevert(x) {\n return x\n}\n\n// x = x mod m (HAC 14.42)\nfunction barrettReduce(x) {\n var self = this\n x.drShiftTo(self.m.t - 1, self.r2)\n if (x.t > self.m.t + 1) {\n x.t = self.m.t + 1\n x.clamp()\n }\n self.mu.multiplyUpperTo(self.r2, self.m.t + 1, self.q3)\n self.m.multiplyLowerTo(self.q3, self.m.t + 1, self.r2)\n while (x.compareTo(self.r2) < 0) x.dAddOffset(1, self.m.t + 1)\n x.subTo(self.r2, x)\n while (x.compareTo(self.m) >= 0) x.subTo(self.m, x)\n}\n\n// r = x^2 mod m; x != r\nfunction barrettSqrTo(x, r) {\n x.squareTo(r)\n this.reduce(r)\n}\n\n// r = x*y mod m; x,y != r\nfunction barrettMulTo(x, y, r) {\n x.multiplyTo(y, r)\n this.reduce(r)\n}\n\nBarrett.prototype.convert = barrettConvert\nBarrett.prototype.revert = barrettRevert\nBarrett.prototype.reduce = barrettReduce\nBarrett.prototype.mulTo = barrettMulTo\nBarrett.prototype.sqrTo = barrettSqrTo\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m) {\n var i = e.bitLength(),\n k, r = nbv(1),\n z\n if (i <= 0) return r\n else if (i < 18) k = 1\n else if (i < 48) k = 3\n else if (i < 144) k = 4\n else if (i < 768) k = 5\n else k = 6\n if (i < 8)\n z = new Classic(m)\n else if (m.isEven())\n z = new Barrett(m)\n else\n z = new Montgomery(m)\n\n // precomputation\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1\n g[1] = z.convert(this)\n if (k > 1) {\n var g2 = new BigInteger()\n z.sqrTo(g[1], g2)\n while (n <= km) {\n g[n] = new BigInteger()\n z.mulTo(g2, g[n - 2], g[n])\n n += 2\n }\n }\n\n var j = e.t - 1,\n w, is1 = true,\n r2 = new BigInteger(),\n t\n i = nbits(e[j]) - 1\n while (j >= 0) {\n if (i >= k1) w = (e[j] >> (i - k1)) & km\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i)\n if (j > 0) 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 } else {\n while (n > 1) {\n z.sqrTo(r, r2)\n z.sqrTo(r2, r)\n n -= 2\n }\n if (n > 0) z.sqrTo(r, r2)\n else {\n t = r\n r = r2\n r2 = t\n }\n z.mulTo(r2, g[w], r)\n }\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\n// (public) gcd(this,a) (HAC 14.54)\nfunction bnGCD(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 g = y.getLowestSetBit()\n if (g < 0) return x\n if (i < g) g = i\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) x.rShiftTo(i, x)\n if ((i = y.getLowestSetBit()) > 0) y.rShiftTo(i, y)\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x)\n x.rShiftTo(1, x)\n } else {\n y.subTo(x, y)\n y.rShiftTo(1, y)\n }\n }\n if (g > 0) y.lShiftTo(g, y)\n return y\n}\n\n// (protected) this % n, n < 2^26\nfunction bnpModInt(n) {\n if (n <= 0) return 0\n var d = this.DV % n,\n r = (this.s < 0) ? n - 1 : 0\n if (this.t > 0)\n if (d == 0) r = this[0] % n\n else\n for (var i = this.t - 1; i >= 0; --i) r = (d * r + this[i]) % n\n return r\n}\n\n// (public) 1/this % m (HAC 14.61)\nfunction bnModInverse(m) {\n var ac = m.isEven()\n if (this.signum() === 0) throw new Error('division by zero')\n if ((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO\n var u = m.clone(),\n v = this.clone()\n var a = nbv(1),\n b = nbv(0),\n c = nbv(0),\n 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 } else if (!b.isEven()) b.subTo(m, b)\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 } else if (!d.isEven()) d.subTo(m, d)\n d.rShiftTo(1, d)\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u)\n if (ac) a.subTo(c, a)\n b.subTo(d, b)\n } else {\n v.subTo(u, v)\n if (ac) c.subTo(a, c)\n d.subTo(b, d)\n }\n }\n if (v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO\n while (d.compareTo(m) >= 0) d.subTo(m, d)\n while (d.signum() < 0) d.addTo(m, d)\n return d\n}\n\nvar lowprimes = [\n 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,\n 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,\n 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233,\n 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317,\n 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419,\n 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,\n 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607,\n 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701,\n 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811,\n 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,\n 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997\n]\n\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1]\n\n// (public) test primality with certainty >= 1-.5^t\nfunction bnIsProbablePrime(t) {\n var i, 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]) return true\n return false\n }\n if (x.isEven()) return false\n i = 1\n while (i < lowprimes.length) {\n var m = lowprimes[i],\n j = i + 1\n while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]\n m = x.modInt(m)\n while (i < j) if (m % lowprimes[i++] == 0) return false\n }\n return x.millerRabin(t)\n}\n\n// (protected) true if probably prime (HAC 4.24, Miller-Rabin)\nfunction bnpMillerRabin(t) {\n var n1 = this.subtract(BigInteger.ONE)\n var k = n1.getLowestSetBit()\n if (k <= 0) return false\n var r = n1.shiftRight(k)\n t = (t + 1) >> 1\n if (t > lowprimes.length) t = lowprimes.length\n var a = new BigInteger(null)\n var j, bases = []\n for (var i = 0; i < t; ++i) {\n for (;;) {\n j = lowprimes[Math.floor(Math.random() * lowprimes.length)]\n if (bases.indexOf(j) == -1) break\n }\n bases.push(j)\n a.fromInt(j)\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) return false\n }\n if (y.compareTo(n1) != 0) return false\n }\n }\n return true\n}\n\n// protected\nproto.chunkSize = bnpChunkSize\nproto.toRadix = bnpToRadix\nproto.fromRadix = bnpFromRadix\nproto.fromNumber = bnpFromNumber\nproto.bitwiseTo = bnpBitwiseTo\nproto.changeBit = bnpChangeBit\nproto.addTo = bnpAddTo\nproto.dMultiply = bnpDMultiply\nproto.dAddOffset = bnpDAddOffset\nproto.multiplyLowerTo = bnpMultiplyLowerTo\nproto.multiplyUpperTo = bnpMultiplyUpperTo\nproto.modInt = bnpModInt\nproto.millerRabin = bnpMillerRabin\n\n// public\nproto.clone = bnClone\nproto.intValue = bnIntValue\nproto.byteValue = bnByteValue\nproto.shortValue = bnShortValue\nproto.signum = bnSigNum\nproto.toByteArray = bnToByteArray\nproto.equals = bnEquals\nproto.min = bnMin\nproto.max = bnMax\nproto.and = bnAnd\nproto.or = bnOr\nproto.xor = bnXor\nproto.andNot = bnAndNot\nproto.not = bnNot\nproto.shiftLeft = bnShiftLeft\nproto.shiftRight = bnShiftRight\nproto.getLowestSetBit = bnGetLowestSetBit\nproto.bitCount = bnBitCount\nproto.testBit = bnTestBit\nproto.setBit = bnSetBit\nproto.clearBit = bnClearBit\nproto.flipBit = bnFlipBit\nproto.add = bnAdd\nproto.subtract = bnSubtract\nproto.multiply = bnMultiply\nproto.divide = bnDivide\nproto.remainder = bnRemainder\nproto.divideAndRemainder = bnDivideAndRemainder\nproto.modPow = bnModPow\nproto.modInverse = bnModInverse\nproto.pow = bnPow\nproto.gcd = bnGCD\nproto.isProbablePrime = bnIsProbablePrime\n\n// JSBN-specific extension\nproto.square = bnSquare\n\n// constants\nBigInteger.ZERO = nbv(0)\nBigInteger.ONE = nbv(1)\nBigInteger.valueOf = nbv\n\nmodule.exports = BigInteger\n"],"sourceRoot":""}