{"id":"node_modules/miller-rabin/lib/mr.js","dependencies":[{"name":"/www/ml-classifier/example/package.json","includedInParent":true,"mtime":1551949031632},{"name":"/www/ml-classifier/example/.babelrc","includedInParent":true,"mtime":1551703756168},{"name":"/www/ml-classifier/example/node_modules/miller-rabin/package.json","includedInParent":true,"mtime":1542304152630},{"name":"bn.js","loc":{"line":1,"column":17},"parent":"/www/ml-classifier/example/node_modules/miller-rabin/lib/mr.js","resolved":"/www/ml-classifier/example/node_modules/bn.js/lib/bn.js"},{"name":"brorand","loc":{"line":2,"column":22},"parent":"/www/ml-classifier/example/node_modules/miller-rabin/lib/mr.js","resolved":"/www/ml-classifier/example/node_modules/brorand/index.js"}],"generated":{"js":"var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n  this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n  return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n  var len = n.bitLength();\n  var min_bytes = Math.ceil(len / 8);\n\n  // Generage random bytes until a number less than n is found.\n  // This ensures that 0..n-1 have an equal probability of being selected.\n  do\n    var a = new bn(this.rand.generate(min_bytes));\n  while (a.cmp(n) >= 0);\n\n  return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n  // Generate a random number greater than or equal to start and less than stop.\n  var size = stop.sub(start);\n  return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n\n  if (!k)\n    k = Math.max(1, (len / 48) | 0);\n\n  // Find d and s, (n - 1) = (2 ^ s) * d;\n  var n1 = n.subn(1);\n  for (var s = 0; !n1.testn(s); s++) {}\n  var d = n.shrn(s);\n\n  var rn1 = n1.toRed(red);\n\n  var prime = true;\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n    if (cb)\n      cb(a);\n\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n      continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n\n      if (x.cmp(rone) === 0)\n        return false;\n      if (x.cmp(rn1) === 0)\n        break;\n    }\n\n    if (i === s)\n      return false;\n  }\n\n  return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n\n  if (!k)\n    k = Math.max(1, (len / 48) | 0);\n\n  // Find d and s, (n - 1) = (2 ^ s) * d;\n  var n1 = n.subn(1);\n  for (var s = 0; !n1.testn(s); s++) {}\n  var d = n.shrn(s);\n\n  var rn1 = n1.toRed(red);\n\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n\n    var g = n.gcd(a);\n    if (g.cmpn(1) !== 0)\n      return g;\n\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n      continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n\n      if (x.cmp(rone) === 0)\n        return x.fromRed().subn(1).gcd(n);\n      if (x.cmp(rn1) === 0)\n        break;\n    }\n\n    if (i === s) {\n      x = x.redSqr();\n      return x.fromRed().subn(1).gcd(n);\n    }\n  }\n\n  return false;\n};\n","map":{"mappings":[{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":1,"column":0},"generated":{"line":1,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":2,"column":0},"generated":{"line":2,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":3,"column":0},"generated":{"line":3,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":4,"column":0},"generated":{"line":4,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":5,"column":0},"generated":{"line":5,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":6,"column":0},"generated":{"line":6,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":7,"column":0},"generated":{"line":7,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":8,"column":0},"generated":{"line":8,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":9,"column":0},"generated":{"line":9,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":11,"column":0},"generated":{"line":11,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":12,"column":0},"generated":{"line":12,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":13,"column":0},"generated":{"line":13,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":14,"column":0},"generated":{"line":14,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":15,"column":0},"generated":{"line":15,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":16,"column":0},"generated":{"line":16,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":17,"column":0},"generated":{"line":17,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":18,"column":0},"generated":{"line":18,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":19,"column":0},"generated":{"line":19,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":20,"column":0},"generated":{"line":20,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":21,"column":0},"generated":{"line":21,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":22,"column":0},"generated":{"line":22,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":23,"column":0},"generated":{"line":23,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":24,"column":0},"generated":{"line":24,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":25,"column":0},"generated":{"line":25,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":26,"column":0},"generated":{"line":26,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":27,"column":0},"generated":{"line":27,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":28,"column":0},"generated":{"line":28,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":29,"column":0},"generated":{"line":29,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":30,"column":0},"generated":{"line":30,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":31,"column":0},"generated":{"line":31,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":32,"column":0},"generated":{"line":32,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":33,"column":0},"generated":{"line":33,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":34,"column":0},"generated":{"line":34,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":35,"column":0},"generated":{"line":35,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":36,"column":0},"generated":{"line":36,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":37,"column":0},"generated":{"line":37,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":38,"column":0},"generated":{"line":38,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":39,"column":0},"generated":{"line":39,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":40,"column":0},"generated":{"line":40,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":41,"column":0},"generated":{"line":41,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":42,"column":0},"generated":{"line":42,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":43,"column":0},"generated":{"line":43,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":44,"column":0},"generated":{"line":44,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":45,"column":0},"generated":{"line":45,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":46,"column":0},"generated":{"line":46,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":47,"column":0},"generated":{"line":47,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":48,"column":0},"generated":{"line":48,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":49,"column":0},"generated":{"line":49,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":50,"column":0},"generated":{"line":50,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":51,"column":0},"generated":{"line":51,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":52,"column":0},"generated":{"line":52,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":53,"column":0},"generated":{"line":53,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":54,"column":0},"generated":{"line":54,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":55,"column":0},"generated":{"line":55,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":56,"column":0},"generated":{"line":56,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":57,"column":0},"generated":{"line":57,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":58,"column":0},"generated":{"line":58,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":59,"column":0},"generated":{"line":59,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":60,"column":0},"generated":{"line":60,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":61,"column":0},"generated":{"line":61,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":62,"column":0},"generated":{"line":62,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":63,"column":0},"generated":{"line":63,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":64,"column":0},"generated":{"line":64,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":65,"column":0},"generated":{"line":65,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":66,"column":0},"generated":{"line":66,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":67,"column":0},"generated":{"line":67,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":68,"column":0},"generated":{"line":68,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":69,"column":0},"generated":{"line":69,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":70,"column":0},"generated":{"line":70,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":71,"column":0},"generated":{"line":71,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":72,"column":0},"generated":{"line":72,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":73,"column":0},"generated":{"line":73,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":74,"column":0},"generated":{"line":74,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":75,"column":0},"generated":{"line":75,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":76,"column":0},"generated":{"line":76,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":77,"column":0},"generated":{"line":77,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":78,"column":0},"generated":{"line":78,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":79,"column":0},"generated":{"line":79,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":80,"column":0},"generated":{"line":80,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":81,"column":0},"generated":{"line":81,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":82,"column":0},"generated":{"line":82,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":83,"column":0},"generated":{"line":83,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":84,"column":0},"generated":{"line":84,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":85,"column":0},"generated":{"line":85,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":86,"column":0},"generated":{"line":86,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":87,"column":0},"generated":{"line":87,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":88,"column":0},"generated":{"line":88,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":89,"column":0},"generated":{"line":89,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":90,"column":0},"generated":{"line":90,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":91,"column":0},"generated":{"line":91,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":92,"column":0},"generated":{"line":92,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":93,"column":0},"generated":{"line":93,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":94,"column":0},"generated":{"line":94,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":95,"column":0},"generated":{"line":95,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":96,"column":0},"generated":{"line":96,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":97,"column":0},"generated":{"line":97,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":98,"column":0},"generated":{"line":98,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":99,"column":0},"generated":{"line":99,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":100,"column":0},"generated":{"line":100,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":101,"column":0},"generated":{"line":101,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":102,"column":0},"generated":{"line":102,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":103,"column":0},"generated":{"line":103,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":104,"column":0},"generated":{"line":104,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":105,"column":0},"generated":{"line":105,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":106,"column":0},"generated":{"line":106,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":107,"column":0},"generated":{"line":107,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":108,"column":0},"generated":{"line":108,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":109,"column":0},"generated":{"line":109,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":110,"column":0},"generated":{"line":110,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":111,"column":0},"generated":{"line":111,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":112,"column":0},"generated":{"line":112,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":113,"column":0},"generated":{"line":113,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":114,"column":0},"generated":{"line":114,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":115,"column":0},"generated":{"line":115,"column":0}},{"source":"node_modules/miller-rabin/lib/mr.js","original":{"line":116,"column":0},"generated":{"line":116,"column":0}}],"sources":{"node_modules/miller-rabin/lib/mr.js":"var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n  this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n  return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n  var len = n.bitLength();\n  var min_bytes = Math.ceil(len / 8);\n\n  // Generage random bytes until a number less than n is found.\n  // This ensures that 0..n-1 have an equal probability of being selected.\n  do\n    var a = new bn(this.rand.generate(min_bytes));\n  while (a.cmp(n) >= 0);\n\n  return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n  // Generate a random number greater than or equal to start and less than stop.\n  var size = stop.sub(start);\n  return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n\n  if (!k)\n    k = Math.max(1, (len / 48) | 0);\n\n  // Find d and s, (n - 1) = (2 ^ s) * d;\n  var n1 = n.subn(1);\n  for (var s = 0; !n1.testn(s); s++) {}\n  var d = n.shrn(s);\n\n  var rn1 = n1.toRed(red);\n\n  var prime = true;\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n    if (cb)\n      cb(a);\n\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n      continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n\n      if (x.cmp(rone) === 0)\n        return false;\n      if (x.cmp(rn1) === 0)\n        break;\n    }\n\n    if (i === s)\n      return false;\n  }\n\n  return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n\n  if (!k)\n    k = Math.max(1, (len / 48) | 0);\n\n  // Find d and s, (n - 1) = (2 ^ s) * d;\n  var n1 = n.subn(1);\n  for (var s = 0; !n1.testn(s); s++) {}\n  var d = n.shrn(s);\n\n  var rn1 = n1.toRed(red);\n\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n\n    var g = n.gcd(a);\n    if (g.cmpn(1) !== 0)\n      return g;\n\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n      continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n\n      if (x.cmp(rone) === 0)\n        return x.fromRed().subn(1).gcd(n);\n      if (x.cmp(rn1) === 0)\n        break;\n    }\n\n    if (i === s) {\n      x = x.redSqr();\n      return x.fromRed().subn(1).gcd(n);\n    }\n  }\n\n  return false;\n};\n"},"lineCount":116}},"hash":"253a6e4e4dad166b4b78bd36e9df5933","cacheData":{"env":{}}}