Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

asyncbox

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

asyncbox - npm Package Compare versions

Comparing version 2.3.0 to 2.3.1

65

build/lib/asyncbox.js

@@ -0,8 +1,8 @@

require('source-map-support').install();
'use strict';
var _toConsumableArray = require('babel-runtime/helpers/to-consumable-array')['default'];
var _slicedToArray = require('babel-runtime/helpers/sliced-to-array')['default'];
var _Object$defineProperty = require('babel-runtime/core-js/object/define-property')['default'];
var _toConsumableArray = require('babel-runtime/helpers/to-consumable-array')['default'];

@@ -15,3 +15,3 @@ var _regeneratorRuntime = require('babel-runtime/regenerator')['default'];

_Object$defineProperty(exports, '__esModule', {
Object.defineProperty(exports, '__esModule', {
value: true

@@ -30,4 +30,2 @@ });

require('source-map-support').install();
function sleep(ms) {

@@ -236,3 +234,3 @@ return _regeneratorRuntime.async(function sleep$(context$1$0) {

function asyncmap(coll, mapper) {
var runInParallel = arguments[2] === undefined ? true : arguments[2];
var runInParallel = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];

@@ -261,3 +259,3 @@ var newColl, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, item;

if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) {
context$1$0.next = 17;
context$1$0.next = 18;
break;

@@ -267,10 +265,11 @@ }

item = _step2.value;
context$1$0.next = 12;
context$1$0.t0 = newColl;
context$1$0.next = 13;
return _regeneratorRuntime.awrap(mapper(item));
case 12:
context$1$0.t0 = context$1$0.sent;
newColl.push(context$1$0.t0);
case 13:
context$1$0.t1 = context$1$0.sent;
context$1$0.t0.push.call(context$1$0.t0, context$1$0.t1);
case 14:
case 15:
_iteratorNormalCompletion2 = true;

@@ -280,15 +279,15 @@ context$1$0.next = 8;

case 17:
context$1$0.next = 23;
case 18:
context$1$0.next = 24;
break;
case 19:
context$1$0.prev = 19;
context$1$0.t1 = context$1$0['catch'](6);
case 20:
context$1$0.prev = 20;
context$1$0.t2 = context$1$0['catch'](6);
_didIteratorError2 = true;
_iteratorError2 = context$1$0.t1;
_iteratorError2 = context$1$0.t2;
case 23:
context$1$0.prev = 23;
case 24:
context$1$0.prev = 24;
context$1$0.prev = 25;

@@ -299,7 +298,7 @@ if (!_iteratorNormalCompletion2 && _iterator2['return']) {

case 26:
context$1$0.prev = 26;
case 27:
context$1$0.prev = 27;
if (!_didIteratorError2) {
context$1$0.next = 29;
context$1$0.next = 30;
break;

@@ -310,20 +309,20 @@ }

case 29:
return context$1$0.finish(26);
case 30:
return context$1$0.finish(23);
return context$1$0.finish(27);
case 31:
return context$1$0.finish(24);
case 32:
return context$1$0.abrupt('return', newColl);
case 32:
case 33:
case 'end':
return context$1$0.stop();
}
}, null, this, [[6, 19, 23, 31], [24,, 26, 30]]);
}, null, this, [[6, 20, 24, 32], [25,, 27, 31]]);
}
function asyncfilter(coll, filter) {
var runInParallel = arguments[2] === undefined ? true : arguments[2];
var runInParallel = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];

@@ -431,3 +430,3 @@ var newColl, bools, i, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, item;

function waitForCondition(condFn) {
var opts = arguments[1] === undefined ? {} : arguments[1];
var opts = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var debug, begunAt, endAt, spin;

@@ -514,2 +513,2 @@ return _regeneratorRuntime.async(function waitForCondition$(context$1$0) {

exports.waitForCondition = waitForCondition;
//# sourceMappingURL=data:application/json;base64,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QVUsRUFBRyxHQUFHO1NBQ2pCLENBQUMsQ0FBQztBQUNDLGFBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsb0JBQUUsSUFBSTtBQUNsRSxlQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNwQixhQUFLLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNOztBQUM3QixZQUFJLEdBQUcsU0FBUCxJQUFJO2NBSUYsR0FBRyxFQUNILE1BQU07Ozs7O2lEQUpBLE1BQU0sRUFBRTs7Ozs7Ozs7Ozs7QUFHZCxtQkFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDaEIsc0JBQU0sR0FBRyxHQUFHLEdBQUcsT0FBTzs7c0JBQ3RCLEdBQUcsR0FBRyxLQUFLLENBQUE7Ozs7O0FBQ2IscUJBQUssaUJBQWUsTUFBTSxnQkFBYSxDQUFDOztpREFDbEMsc0JBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Ozs7aURBQ3hCLElBQUksRUFBRTs7Ozs7OztzQkFFTixJQUFJLEtBQUssNEJBQTBCLE1BQU0sc0JBQW1COzs7Ozs7O1NBRXJFOzs7eUNBQ0ssSUFBSSxFQUFFOzs7Ozs7O0NBQ2I7O1FBRVEsS0FBSyxHQUFMLEtBQUs7UUFBRSxLQUFLLEdBQUwsS0FBSztRQUFFLE9BQU8sR0FBUCxPQUFPO1FBQUUsVUFBVSxHQUFWLFVBQVU7UUFBRSxhQUFhLEdBQWIsYUFBYTtRQUFFLFFBQVEsR0FBUixRQUFRO1FBQUUsUUFBUSxHQUFSLFFBQVE7UUFDcEUsUUFBUSxHQUFSLFFBQVE7UUFBRSxXQUFXLEdBQVgsV0FBVztRQUFFLGdCQUFnQixHQUFoQixnQkFBZ0IiLCJmaWxlIjoibGliL2FzeW5jYm94LmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnc291cmNlLW1hcC1zdXBwb3J0JykuaW5zdGFsbCgpO1xuXG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgeyBtYXBpZnkgfSBmcm9tICdlczYtbWFwaWZ5JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmFzeW5jIGZ1bmN0aW9uIHNsZWVwIChtcykge1xuICByZXR1cm4gYXdhaXQgQi5kZWxheShtcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5ICh0aW1lcywgZm4sIC4uLmFyZ3MpIHtcbiAgbGV0IHRyaWVzID0gMDtcbiAgbGV0IGRvbmUgPSBmYWxzZTtcbiAgbGV0IHJlcyA9IG51bGw7XG4gIHdoaWxlICghZG9uZSAmJiB0cmllcyA8IHRpbWVzKSB7XG4gICAgdHJpZXMrKztcbiAgICB0cnkge1xuICAgICAgcmVzID0gYXdhaXQgZm4oLi4uYXJncyk7XG4gICAgICBkb25lID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICh0cmllcyA+PSB0aW1lcykge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5SW50ZXJ2YWwgKHRpbWVzLCBzbGVlcE1zLCBmbiwgLi4uYXJncykge1xuICBsZXQgd3JhcHBlZCA9IGFzeW5jICgpID0+IHtcbiAgICBsZXQgcmVzO1xuICAgIHRyeSB7XG4gICAgICByZXMgPSBhd2FpdCBmbiguLi5hcmdzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCBzbGVlcChzbGVlcE1zKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH07XG4gIHJldHVybiByZXRyeSh0aW1lcywgd3JhcHBlZCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcmFsbGVsIChwcm9taXNlcykge1xuICByZXR1cm4gYXdhaXQgQi5hbGwocHJvbWlzZXMpO1xufVxuXG5mdW5jdGlvbiBub2RlaWZ5IChwcm9taXNleSwgY2IpIHtcbiAgcmV0dXJuIEIucmVzb2x2ZShwcm9taXNleSkubm9kZWlmeShjYik7XG59XG5cbmZ1bmN0aW9uIG5vZGVpZnlBbGwgKHByb21pc2V5TWFwKSB7XG4gIGxldCBjYk1hcCA9IHt9O1xuICBmb3IgKGxldCBbbmFtZSwgZm5dIG9mIG1hcGlmeShwcm9taXNleU1hcCkpIHtcbiAgICAvKmpzaGludCAtVzA4MyAqL1xuICAgIGNiTWFwW25hbWVdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGxldCBfY2IgPSBhcmdzLnNsaWNlKC0xKVswXTtcbiAgICAgIGFyZ3MgPSBhcmdzLnNsaWNlKDAsIC0xKTtcbiAgICAgIG5vZGVpZnkoZm4oLi4uYXJncyksIF9jYik7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gY2JNYXA7XG59XG5cbmZ1bmN0aW9uIGFzeW5jaWZ5IChmbiwgLi4uYXJncykge1xuICBCLnJlc29sdmUoZm4oLi4uYXJncykpLmRvbmUoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXN5bmNtYXAgKGNvbGwsIG1hcHBlciwgcnVuSW5QYXJhbGxlbCA9IHRydWUpIHtcbiAgaWYgKHJ1bkluUGFyYWxsZWwpIHtcbiAgICByZXR1cm4gcGFyYWxsZWwoY29sbC5tYXAobWFwcGVyKSk7XG4gIH1cblxuICBsZXQgbmV3Q29sbCA9IFtdO1xuICBmb3IgKGxldCBpdGVtIG9mIGNvbGwpIHtcbiAgICBuZXdDb2xsLnB1c2goYXdhaXQgbWFwcGVyKGl0ZW0pKTtcbiAgfVxuICByZXR1cm4gbmV3Q29sbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXN5bmNmaWx0ZXIgKGNvbGwsIGZpbHRlciwgcnVuSW5QYXJhbGxlbCA9IHRydWUpIHtcbiAgbGV0IG5ld0NvbGwgPSBbXTtcbiAgaWYgKHJ1bkluUGFyYWxsZWwpIHtcbiAgICBsZXQgYm9vbHMgPSBhd2FpdCBwYXJhbGxlbChjb2xsLm1hcChmaWx0ZXIpKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGwubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChib29sc1tpXSkge1xuICAgICAgICBuZXdDb2xsLnB1c2goY29sbFtpXSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAobGV0IGl0ZW0gb2YgY29sbCkge1xuICAgICAgaWYgKGF3YWl0IGZpbHRlcihpdGVtKSkge1xuICAgICAgICBuZXdDb2xsLnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdDb2xsO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ29uZGl0aW9uIChjb25kRm4sIG9wdHMgPSB7fSkge1xuICBfLmRlZmF1bHRzKG9wdHMsIHtcbiAgICB3YWl0TXM6IDUwMDAsXG4gICAgaW50ZXJ2YWxNcyA6IDUwMCxcbiAgfSk7XG4gIGxldCBkZWJ1ZyA9IG9wdHMubG9nZ2VyID8gb3B0cy5sb2dnZXIuZGVidWcuYmluZChvcHRzLmxvZ2dlcikgOiBfLm5vb3A7XG4gIGxldCBiZWd1bkF0ID0gRGF0ZS5ub3coKTtcbiAgbGV0IGVuZEF0ID0gYmVndW5BdCArIG9wdHMud2FpdE1zO1xuICBsZXQgc3BpbiA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoYXdhaXQgY29uZEZuKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IG5vdyA9IERhdGUubm93KCk7XG4gICAgbGV0IHdhaXRlZCA9IG5vdyAtIGJlZ3VuQXQ7XG4gICAgaWYgKG5vdyA8IGVuZEF0KSB7XG4gICAgICBkZWJ1ZyhgV2FpdGVkIGZvciAke3dhaXRlZH0gbXMgc28gZmFyYCk7XG4gICAgICBhd2FpdCBCLmRlbGF5KG9wdHMuaW50ZXJ2YWxNcyk7XG4gICAgICBhd2FpdCBzcGluKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIHVubWV0IGFmdGVyICR7d2FpdGVkfSBtcy4gVGltaW5nIG91dC5gKTtcbiAgICB9XG4gIH07XG4gIGF3YWl0IHNwaW4oKTtcbn1cblxuZXhwb3J0IHsgc2xlZXAsIHJldHJ5LCBub2RlaWZ5LCBub2RlaWZ5QWxsLCByZXRyeUludGVydmFsLCBhc3luY2lmeSwgcGFyYWxsZWwsXG4gICAgICAgICBhc3luY21hcCwgYXN5bmNmaWx0ZXIsIHdhaXRGb3JDb25kaXRpb259O1xuIl19
//# sourceMappingURL=data:application/json;base64,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SSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLG9CQUFFLElBQUk7QUFDbEUsZUFBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDcEIsYUFBSyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTTs7QUFDN0IsWUFBSSxHQUFHLFNBQVAsSUFBSTtjQUlGLEdBQUcsRUFDSCxNQUFNOzs7OztpREFKQSxNQUFNLEVBQUU7Ozs7Ozs7Ozs7O0FBR2QsbUJBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO0FBQ2hCLHNCQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU87O3NCQUN0QixHQUFHLEdBQUcsS0FBSyxDQUFBOzs7OztBQUNiLHFCQUFLLGlCQUFlLE1BQU0sZ0JBQWEsQ0FBQzs7aURBQ2xDLHNCQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDOzs7O2lEQUN4QixJQUFJLEVBQUU7Ozs7Ozs7c0JBRU4sSUFBSSxLQUFLLDRCQUEwQixNQUFNLHNCQUFtQjs7Ozs7OztTQUVyRTs7O3lDQUNLLElBQUksRUFBRTs7Ozs7OztDQUNiOztRQUVRLEtBQUssR0FBTCxLQUFLO1FBQUUsS0FBSyxHQUFMLEtBQUs7UUFBRSxPQUFPLEdBQVAsT0FBTztRQUFFLFVBQVUsR0FBVixVQUFVO1FBQUUsYUFBYSxHQUFiLGFBQWE7UUFBRSxRQUFRLEdBQVIsUUFBUTtRQUFFLFFBQVEsR0FBUixRQUFRO1FBQ3BFLFFBQVEsR0FBUixRQUFRO1FBQUUsV0FBVyxHQUFYLFdBQVc7UUFBRSxnQkFBZ0IsR0FBaEIsZ0JBQWdCIiwiZmlsZSI6ImxpYi9hc3luY2JveC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptYWluXG5cbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IG1hcGlmeSB9IGZyb20gJ2VzNi1tYXBpZnknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuYXN5bmMgZnVuY3Rpb24gc2xlZXAgKG1zKSB7XG4gIHJldHVybiBhd2FpdCBCLmRlbGF5KG1zKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cnkgKHRpbWVzLCBmbiwgLi4uYXJncykge1xuICBsZXQgdHJpZXMgPSAwO1xuICBsZXQgZG9uZSA9IGZhbHNlO1xuICBsZXQgcmVzID0gbnVsbDtcbiAgd2hpbGUgKCFkb25lICYmIHRyaWVzIDwgdGltZXMpIHtcbiAgICB0cmllcysrO1xuICAgIHRyeSB7XG4gICAgICByZXMgPSBhd2FpdCBmbiguLi5hcmdzKTtcbiAgICAgIGRvbmUgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKHRyaWVzID49IHRpbWVzKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cnlJbnRlcnZhbCAodGltZXMsIHNsZWVwTXMsIGZuLCAuLi5hcmdzKSB7XG4gIGxldCB3cmFwcGVkID0gYXN5bmMgKCkgPT4ge1xuICAgIGxldCByZXM7XG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IGF3YWl0IGZuKC4uLmFyZ3MpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IHNsZWVwKHNsZWVwTXMpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcbiAgcmV0dXJuIHJldHJ5KHRpbWVzLCB3cmFwcGVkKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyYWxsZWwgKHByb21pc2VzKSB7XG4gIHJldHVybiBhd2FpdCBCLmFsbChwcm9taXNlcyk7XG59XG5cbmZ1bmN0aW9uIG5vZGVpZnkgKHByb21pc2V5LCBjYikge1xuICByZXR1cm4gQi5yZXNvbHZlKHByb21pc2V5KS5ub2RlaWZ5KGNiKTtcbn1cblxuZnVuY3Rpb24gbm9kZWlmeUFsbCAocHJvbWlzZXlNYXApIHtcbiAgbGV0IGNiTWFwID0ge307XG4gIGZvciAobGV0IFtuYW1lLCBmbl0gb2YgbWFwaWZ5KHByb21pc2V5TWFwKSkge1xuICAgIC8qanNoaW50IC1XMDgzICovXG4gICAgY2JNYXBbbmFtZV0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgbGV0IF9jYiA9IGFyZ3Muc2xpY2UoLTEpWzBdO1xuICAgICAgYXJncyA9IGFyZ3Muc2xpY2UoMCwgLTEpO1xuICAgICAgbm9kZWlmeShmbiguLi5hcmdzKSwgX2NiKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBjYk1hcDtcbn1cblxuZnVuY3Rpb24gYXN5bmNpZnkgKGZuLCAuLi5hcmdzKSB7XG4gIEIucmVzb2x2ZShmbiguLi5hcmdzKSkuZG9uZSgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBhc3luY21hcCAoY29sbCwgbWFwcGVyLCBydW5JblBhcmFsbGVsID0gdHJ1ZSkge1xuICBpZiAocnVuSW5QYXJhbGxlbCkge1xuICAgIHJldHVybiBwYXJhbGxlbChjb2xsLm1hcChtYXBwZXIpKTtcbiAgfVxuXG4gIGxldCBuZXdDb2xsID0gW107XG4gIGZvciAobGV0IGl0ZW0gb2YgY29sbCkge1xuICAgIG5ld0NvbGwucHVzaChhd2FpdCBtYXBwZXIoaXRlbSkpO1xuICB9XG4gIHJldHVybiBuZXdDb2xsO1xufVxuXG5hc3luYyBmdW5jdGlvbiBhc3luY2ZpbHRlciAoY29sbCwgZmlsdGVyLCBydW5JblBhcmFsbGVsID0gdHJ1ZSkge1xuICBsZXQgbmV3Q29sbCA9IFtdO1xuICBpZiAocnVuSW5QYXJhbGxlbCkge1xuICAgIGxldCBib29scyA9IGF3YWl0IHBhcmFsbGVsKGNvbGwubWFwKGZpbHRlcikpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sbC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGJvb2xzW2ldKSB7XG4gICAgICAgIG5ld0NvbGwucHVzaChjb2xsW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yIChsZXQgaXRlbSBvZiBjb2xsKSB7XG4gICAgICBpZiAoYXdhaXQgZmlsdGVyKGl0ZW0pKSB7XG4gICAgICAgIG5ld0NvbGwucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld0NvbGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JDb25kaXRpb24gKGNvbmRGbiwgb3B0cyA9IHt9KSB7XG4gIF8uZGVmYXVsdHMob3B0cywge1xuICAgIHdhaXRNczogNTAwMCxcbiAgICBpbnRlcnZhbE1zIDogNTAwLFxuICB9KTtcbiAgbGV0IGRlYnVnID0gb3B0cy5sb2dnZXIgPyBvcHRzLmxvZ2dlci5kZWJ1Zy5iaW5kKG9wdHMubG9nZ2VyKSA6IF8ubm9vcDtcbiAgbGV0IGJlZ3VuQXQgPSBEYXRlLm5vdygpO1xuICBsZXQgZW5kQXQgPSBiZWd1bkF0ICsgb3B0cy53YWl0TXM7XG4gIGxldCBzcGluID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChhd2FpdCBjb25kRm4oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgd2FpdGVkID0gbm93IC0gYmVndW5BdDtcbiAgICBpZiAobm93IDwgZW5kQXQpIHtcbiAgICAgIGRlYnVnKGBXYWl0ZWQgZm9yICR7d2FpdGVkfSBtcyBzbyBmYXJgKTtcbiAgICAgIGF3YWl0IEIuZGVsYXkob3B0cy5pbnRlcnZhbE1zKTtcbiAgICAgIGF3YWl0IHNwaW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25kaXRpb24gdW5tZXQgYWZ0ZXIgJHt3YWl0ZWR9IG1zLiBUaW1pbmcgb3V0LmApO1xuICAgIH1cbiAgfTtcbiAgYXdhaXQgc3BpbigpO1xufVxuXG5leHBvcnQgeyBzbGVlcCwgcmV0cnksIG5vZGVpZnksIG5vZGVpZnlBbGwsIHJldHJ5SW50ZXJ2YWwsIGFzeW5jaWZ5LCBwYXJhbGxlbCxcbiAgICAgICAgIGFzeW5jbWFwLCBhc3luY2ZpbHRlciwgd2FpdEZvckNvbmRpdGlvbn07XG4iXX0=

@@ -0,1 +1,4 @@

require('source-map-support').install();
/* global describe:true, it:true */
'use strict';

@@ -23,5 +26,2 @@

require('source-map-support').install();
/* global describe:true, it:true */
var regIt = it;

@@ -82,3 +82,3 @@

badFnCalls++;
throw new Error('bad');
throw new Error("bad");

@@ -107,3 +107,3 @@ case 4:

throw new Error('not ok yet');
throw new Error("not ok yet");

@@ -130,3 +130,3 @@ case 5:

throw new Error('not ok yet');
throw new Error("not ok yet");

@@ -422,3 +422,3 @@ case 3:

case 2:
throw new Error('boo');
throw new Error("boo");

@@ -705,7 +705,8 @@ case 3:

case 3:
context$2$0.sent.should.eql([2, 4, 6]);
context$2$0.t0 = [2, 4, 6];
context$2$0.sent.should.eql(context$2$0.t0);
(Date.now() - start).should.be.above(30);
case 5:
case 6:
case 'end':

@@ -726,7 +727,8 @@ return context$2$0.stop();

case 3:
context$2$0.sent.should.eql([2, 4, 6]);
context$2$0.t0 = [2, 4, 6];
context$2$0.sent.should.eql(context$2$0.t0);
(Date.now() - start).should.be.below(20);
case 5:
case 6:
case 'end':

@@ -745,5 +747,6 @@ return context$2$0.stop();

case 2:
context$2$0.sent.should.eql([]);
context$2$0.t0 = [];
context$2$0.sent.should.eql(context$2$0.t0);
case 3:
case 4:
case 'end':

@@ -762,5 +765,6 @@ return context$2$0.stop();

case 2:
context$2$0.sent.should.eql([]);
context$2$0.t0 = [];
context$2$0.sent.should.eql(context$2$0.t0);
case 3:
case 4:
case 'end':

@@ -801,7 +805,8 @@ return context$2$0.stop();

case 3:
context$2$0.sent.should.eql([2, 4]);
context$2$0.t0 = [2, 4];
context$2$0.sent.should.eql(context$2$0.t0);
(Date.now() - start).should.be.above(19);
case 5:
case 6:
case 'end':

@@ -822,7 +827,8 @@ return context$2$0.stop();

case 3:
context$2$0.sent.should.eql([2, 4]);
context$2$0.t0 = [2, 4];
context$2$0.sent.should.eql(context$2$0.t0);
(Date.now() - start).should.be.below(9);
case 5:
case 6:
case 'end':

@@ -843,7 +849,8 @@ return context$2$0.stop();

case 3:
context$2$0.sent.should.eql([]);
context$2$0.t0 = [];
context$2$0.sent.should.eql(context$2$0.t0);
(Date.now() - start).should.be.below(9);
case 5:
case 6:
case 'end':

@@ -864,7 +871,8 @@ return context$2$0.stop();

case 3:
context$2$0.sent.should.eql([]);
context$2$0.t0 = [];
context$2$0.sent.should.eql(context$2$0.t0);
(Date.now() - start).should.be.below(9);
case 5:
case 6:
case 'end':

@@ -876,2 +884,2 @@ return context$2$0.stop();

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvYXN5bmNib3gtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztRQUlPLFdBQVc7O29CQUNELE1BQU07Ozs7OEJBQ0ksa0JBQWtCOzs7OzJCQUVxQixpQkFBaUI7O0FBUm5GLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDOzs7QUFHeEMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDOztBQU9mLGtCQUFLLEdBQUcsNkJBQWdCLENBQUM7QUFDekIsSUFBSSxNQUFNLEdBQUcsa0JBQUssTUFBTSxFQUFFLENBQUM7O0FBRTNCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsWUFBTTtBQUN0QixJQUFFLENBQUMsNkJBQTZCLEVBQUU7UUFDNUIsR0FBRzs7OztBQUFILGFBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFOzsyQ0FDZCxpQkFURCxLQUFLLEVBU0UsRUFBRSxDQUFDOzs7QUFDZixXQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUEsQ0FBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzs7Ozs7OztHQUN4QyxDQUFDLENBQUM7Q0FDSixDQUFDLENBQUM7O0FBRUgsUUFBUSxDQUFDLE9BQU8sRUFBRSxZQUFNO0FBQ3RCLE1BQUksU0FBUyxHQUFHLENBQUMsQ0FBQztBQUNsQixNQUFJLElBQUksR0FBRyxTQUFQLElBQUksQ0FBVSxJQUFJLEVBQUUsSUFBSTs7Ozs7MkNBQ3BCLGlCQWpCRCxLQUFLLEVBaUJFLEVBQUUsQ0FBQzs7O0FBQ2YsbUJBQVMsRUFBRSxDQUFDOzhDQUNMLElBQUksR0FBRyxJQUFJOzs7Ozs7O0dBQ25CLENBQUM7QUFDRixNQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFDbkIsTUFBSSxLQUFLLEdBQUcsU0FBUixLQUFLOzs7OzsyQ0FDRCxpQkF2QkQsS0FBSyxFQXVCRSxFQUFFLENBQUM7OztBQUNmLG9CQUFVLEVBQUUsQ0FB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QUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L2FzeW5jYm94LXNwZWNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnc291cmNlLW1hcC1zdXBwb3J0JykuaW5zdGFsbCgpO1xuXG4vKiBnbG9iYWwgZGVzY3JpYmU6dHJ1ZSwgaXQ6dHJ1ZSAqL1xubGV0IHJlZ0l0ID0gaXQ7XG5pbXBvcnQgJ21vY2hhd2FpdCc7XG5pbXBvcnQgY2hhaSBmcm9tICdjaGFpJztcbmltcG9ydCBjaGFpQXNQcm9taXNlZCBmcm9tICdjaGFpLWFzLXByb21pc2VkJztcbmltcG9ydCB7IHNsZWVwLCByZXRyeSwgcmV0cnlJbnRlcnZhbCwgbm9kZWlmeSwgbm9kZWlmeUFsbCxcbiAgICAgICAgIHBhcmFsbGVsLCBhc3luY21hcCwgYXN5bmNmaWx0ZXIsIHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICcuLi9saWIvYXN5bmNib3gnO1xuXG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5sZXQgc2hvdWxkID0gY2hhaS5zaG91bGQoKTtcblxuZGVzY3JpYmUoJ3NsZWVwJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHdvcmsgbGlrZSBzZXRUaW1lb3V0JywgYXN5bmMgKCkgPT4ge1xuICAgIHZhciBub3cgPSBEYXRlLm5vdygpO1xuICAgIGF3YWl0IHNsZWVwKDIwKTtcbiAgICAoRGF0ZS5ub3coKSAtIG5vdykuc2hvdWxkLmJlLmFib3ZlKDE5KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3JldHJ5JywgKCkgPT4ge1xuICBsZXQgb2tGbkNhbGxzID0gMDtcbiAgbGV0IG9rRm4gPSBhc3luYyAodmFsMSwgdmFsMikgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICBva0ZuQ2FsbHMrKztcbiAgICByZXR1cm4gdmFsMSAqIHZhbDI7XG4gIH07XG4gIGxldCBiYWRGbkNhbGxzID0gMDtcbiAgbGV0IGJhZEZuID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICBiYWRGbkNhbGxzKys7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiYmFkXCIpO1xuICB9O1xuICBsZXQgZXZlbnR1YWxseU9rRm5DYWxscyA9IDA7XG4gIGxldCBldmVudHVhbGx5T2tGbiA9IGFzeW5jICh0aW1lcykgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICBldmVudHVhbGx5T2tGbkNhbGxzKys7XG4gICAgaWYgKGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPCB0aW1lcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IG9rIHlldFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpbWVzICogdGltZXM7XG4gIH07XG4gIGxldCBldmVudHVhbGx5T2tOb1NsZWVwRm4gPSBhc3luYyAodGltZXMpID0+IHtcbiAgICBldmVudHVhbGx5T2tGbkNhbGxzKys7XG4gICAgaWYgKGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPCB0aW1lcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IG9rIHlldFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpbWVzICogdGltZXM7XG4gIH07XG4gIGl0KCdzaG91bGQgcmV0dXJuIHRoZSByZXN1bHQgb2YgYSBwYXNzaW5nIGZ1bmN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgbGV0IHJlcyA9IGF3YWl0IHJldHJ5KDMsIG9rRm4sIDUsIDQpO1xuICAgIHJlcy5zaG91bGQuZXF1YWwoMjApO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5hYm92ZSgxNCk7XG4gICAgb2tGbkNhbGxzLnNob3VsZC5lcXVhbCgxKTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgcmV0cnkgYSBmYWlsaW5nIGZ1bmN0aW9uIGFuZCBldmVudHVhbGx5IHRocm93IHRoZSBzYW1lIGVycicsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgZXJyID0gbnVsbDtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZXRyeSgzLCBiYWRGbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyID0gZTtcbiAgICB9XG4gICAgc2hvdWxkLmV4aXN0KGVycik7XG4gICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmVxdWFsKCdiYWQnKTtcbiAgICBiYWRGbkNhbGxzLnNob3VsZC5lcXVhbCgzKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoNDQpO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWUgd2l0aCBhIGZ1bmN0aW9uIHRoYXQgZXZlbnR1YWxseSBwYXNzZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGVyciA9IG51bGw7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmV0cnkoMywgZXZlbnR1YWxseU9rRm4sIDQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVyciA9IGU7XG4gICAgfVxuICAgIHNob3VsZC5leGlzdChlcnIpO1xuICAgIGVyci5tZXNzYWdlLnNob3VsZC5lcXVhbCgnbm90IG9rIHlldCcpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMuc2hvdWxkLmVxdWFsKDMpO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5hYm92ZSgzNSk7XG5cbiAgICAvLyByZXJ1biB3aXRoIG9rIG51bWJlciBvZiBjYWxsc1xuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICBldmVudHVhbGx5T2tGbkNhbGxzID0gMDtcbiAgICBsZXQgcmVzID0gYXdhaXQgcmV0cnkoMywgZXZlbnR1YWxseU9rRm4sIDMpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMuc2hvdWxkLmVxdWFsKDMpO1xuICAgIHJlcy5zaG91bGQuZXF1YWwoOSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDM1KTtcbiAgfSk7XG4gIGl0KCdpbiBzbGVlcCBtb2RlLCBzaG91bGQgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdpdGggYSBmdW5jdGlvbiB0aGF0IGV2ZW50dWFsbHkgcGFzc2VzJywgYXN5bmMgKCkgPT4ge1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPSAwO1xuICAgIGxldCBlcnIgPSBudWxsO1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHJldHJ5SW50ZXJ2YWwoMywgMTUsIGV2ZW50dWFsbHlPa05vU2xlZXBGbiwgNCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyID0gZTtcbiAgICB9XG4gICAgc2hvdWxkLmV4aXN0KGVycik7XG4gICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmVxdWFsKCdub3Qgb2sgeWV0Jyk7XG4gICAgZXZlbnR1YWxseU9rRm5DYWxscy5zaG91bGQuZXF1YWwoMyk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDMwKTtcblxuICAgIC8vIHJlcnVuIHdpdGggb2sgbnVtYmVyIG9mIGNhbGxzXG4gICAgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPSAwO1xuICAgIGxldCByZXMgPSBhd2FpdCByZXRyeUludGVydmFsKDMsIDE1LCBldmVudHVhbGx5T2tOb1NsZWVwRm4sIDMpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMuc2hvdWxkLmVxdWFsKDMpO1xuICAgIHJlcy5zaG91bGQuZXF1YWwoOSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDMwKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ25vZGVpZnlBbGwnLCAoKSA9PiB7XG4gIGxldCBhc3luY0ZuID0gYXN5bmMgKHZhbCkgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICByZXR1cm4gdmFsO1xuICB9O1xuICBsZXQgYXN5bmNGbjIgPSBhc3luYyAodmFsKSA9PiB7XG4gICAgYXdhaXQgc2xlZXAoMTUpO1xuICAgIHJldHVybiBbdmFsLCB2YWwgKyB2YWxdO1xuICB9O1xuICBsZXQgYmFkQXN5bmNGbiA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBzbGVlcCgxNSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdib28nKTtcbiAgfTtcbiAgbGV0IGNiTWFwID0gbm9kZWlmeUFsbCh7YXN5bmNGbiwgYXN5bmNGbjIsIGJhZEFzeW5jRm59KTtcbiAgcmVnSXQoJ3Nob3VsZCB0dXJuIGFzeW5jIGZ1bmN0aW9ucyBpbnRvIG5vZGV5IHRoaW5ncycsIGRvbmUgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgbm9kZWlmeShhc3luY0ZuKCdmb28nKSwgKGVyciwgdmFsLCB2YWwyKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGVycik7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHZhbDIpO1xuICAgICAgdmFsLnNob3VsZC5lcXVhbCgnZm9vJyk7XG4gICAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTQpO1xuICAgICAgZG9uZSgpO1xuICAgIH0pO1xuICB9KTtcbiAgcmVnSXQoJ3Nob3VsZCB0dXJuIGFzeW5jIGZ1bmN0aW9ucyBpbnRvIG5vZGV5IHRoaW5ncyB2aWEgbm9kZWlmeUFsbCcsIGRvbmUgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgY2JNYXAuYXN5bmNGbignZm9vJywgKGVyciwgdmFsLCB2YWwyKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGVycik7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHZhbDIpO1xuICAgICAgdmFsLnNob3VsZC5lcXVhbCgnZm9vJyk7XG4gICAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTQpO1xuICAgICAgZG9uZSgpO1xuICAgIH0pO1xuICB9KTtcbiAgcmVnSXQoJ3Nob3VsZCB0dXJuIGFzeW5jIGZ1bmN0aW9ucyBpbnRvIG5vZGV5IHRoaW5ncyB3aXRoIG11bHQgcGFyYW1zJywgZG9uZSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICBub2RlaWZ5KGFzeW5jRm4yKCdmb28nKSwgKGVyciwgdmFsKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGVycik7XG4gICAgICB2YWwuc2hvdWxkLmVxbChbJ2ZvbycsICdmb29mb28nXSk7XG4gICAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTQpO1xuICAgICAgZG9uZSgpO1xuICAgIH0pO1xuICB9KTtcbiAgcmVnSXQoJ3Nob3VsZCBoYW5kbGUgZXJyb3JzIGNvcnJlY3RseScsIGRvbmUgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgbm9kZWlmeShiYWRBc3luY0ZuKCdmb28nKSwgKGVyciwgdmFsKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHZhbCk7XG4gICAgICBlcnIubWVzc2FnZS5zaG91bGQuZXF1YWwoJ2JvbycpO1xuICAgICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDE0KTtcbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuLy9kZXNjcmliZSgnbm9kZWlmeUFsbCcsICgpID0+IHtcbiAgLy9sZXQgYXN5bmNGbiA9IGFzeW5jICh2YWwpID0+IHtcbiAgICAvL2F3YWl0IHNsZWVwKDE1KTtcbiAgICAvL3JldHVybiB2YWw7XG4gIC8vfTtcbiAgLy9sZXQgYXN5bmNGbjIgPSBhc3luYyAodmFsKSA9PiB7XG4gICAgLy9hd2FpdCBzbGVlcCgxNSk7XG4gICAgLy9yZXR1cm4gW3ZhbCwgdmFsICsgdmFsXTtcbiAgLy99O1xuICAvL2xldCBiYWRBc3luY0ZuID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vYXdhaXQgc2xlZXAoMTUpO1xuICAgIC8vdGhyb3cgbmV3IEVycm9yKCdib28nKTtcbiAgLy99O1xuLy99KTtcblxuZGVzY3JpYmUoJ3BhcmFsbGVsJywgKCkgPT4ge1xuICBsZXQgYXN5bmNGbiA9IGFzeW5jICh2YWwpID0+IHtcbiAgICBhd2FpdCBzbGVlcCg1MCk7XG4gICAgcmV0dXJuIHZhbDtcbiAgfTtcbiAgbGV0IGJhZEFzeW5jRm4gPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgc2xlZXAoMjApO1xuICAgIHRocm93IG5ldyBFcnJvcihcImJvb1wiKTtcbiAgfTtcbiAgaXQoJ3Nob3VsZCBwZXJmb3JtIHRhc2tzIGluIHBhcmFsbGVsIGFuZCByZXR1cm4gcmVzdWx0cycsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgdmFscyA9IFsxLCAyLCAzXTtcbiAgICBsZXQgcHJvbWlzZXMgPSBbXTtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIGZvciAobGV0IHYgb2YgdmFscykge1xuICAgICAgcHJvbWlzZXMucHVzaChhc3luY0ZuKHYpKTtcbiAgICB9XG4gICAgbGV0IHJlcyA9IGF3YWl0IHBhcmFsbGVsKHByb21pc2VzKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoNDkpO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg1OSk7XG4gICAgcmVzLnNvcnQoKS5zaG91bGQuZXFsKFsxLCAyLCAzXSk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIGVycm9yIHdpdGggZmlyc3QgcmVzcG9uc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHZhbHMgPSBbMSwgMiwgM107XG4gICAgbGV0IHByb21pc2VzID0gW107XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICBmb3IgKGxldCB2IG9mIHZhbHMpIHtcbiAgICAgIHByb21pc2VzLnB1c2goYXN5bmNGbih2KSk7XG4gICAgfVxuICAgIHByb21pc2VzLnB1c2goYmFkQXN5bmNGbigpKTtcbiAgICBsZXQgZXJyID0gbnVsbDtcbiAgICBsZXQgcmVzID0gW107XG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IGF3YWl0IHBhcmFsbGVsKHByb21pc2VzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnIgPSBlO1xuICAgIH1cbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTkpO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg0OSk7XG4gICAgc2hvdWxkLmV4aXN0KGVycik7XG4gICAgcmVzLnNob3VsZC5lcWwoW10pO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBub3QgYWxsb3cgcGFyYWxsZWxpemluZyBiYWQgdHlwZXMgb2YgdGhpbmdzJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBlcnI7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHBhcmFsbGVsKCdmb28nKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnIgPSBlO1xuICAgIH1cbiAgICBzaG91bGQuZXhpc3QoZXJyKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGFyYWxsZWwoWzFdKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnIgPSBlO1xuICAgIH1cbiAgICBzaG91bGQuZXhpc3QoZXJyKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dhaXRGb3JDb25kaXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB3YWl0IGFuZCBzdWNjZWVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHJlZiA9IERhdGUubm93KCk7XG4gICAgICBmdW5jdGlvbiBjb25kRm4oKSB7XG4gICAgICAgIHJldHVybiBEYXRlLm5vdygpIC0gcmVmID4gMjAwO1xuICAgICAgfVxuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbihjb25kRm4sIHt3YWl0TXM6IDEwMDAsIGludGVydmFsTXM6IDEwfSk7XG4gICAgICBsZXQgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gcmVmO1xuICAgICAgZHVyYXRpb24uc2hvdWxkLmJlLmFib3ZlKDIwMCk7XG4gICAgICBkdXJhdGlvbi5zaG91bGQuYmUuYmVsb3coMjUwKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHdhaXQgYW5kIGZhaWwnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgcmVmID0gRGF0ZS5ub3coKTtcbiAgICAgIGZ1bmN0aW9uIGNvbmRGbigpIHtcbiAgICAgICAgcmV0dXJuIERhdGUubm93KCkgLSByZWYgPiAyMDA7XG4gICAgICB9XG4gICAgICBhd2FpdCAod2FpdEZvckNvbmRpdGlvbihjb25kRm4sIHt3YWl0TXM6IDEwMCwgaW50ZXJ2YWxNczogMTB9KSlcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL0NvbmRpdGlvbiB1bm1ldC8pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnYXN5bmNtYXAnLCAoKSA9PiB7XG4gIGNvbnN0IG1hcHBlciA9IGFzeW5jIGZ1bmN0aW9uIChlbCkge1xuICAgIGF3YWl0IHNsZWVwKDEwKTtcbiAgICByZXR1cm4gZWwgKiAyO1xuICB9O1xuICBjb25zdCBjb2xsID0gWzEsIDIsIDNdO1xuICBpdCgnc2hvdWxkIG1hcCBlbGVtZW50cyBvbmUgYXQgYSB0aW1lJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgKGF3YWl0IGFzeW5jbWFwKGNvbGwsIG1hcHBlciwgZmFsc2UpKS5zaG91bGQuZXFsKFsyLCA0LCA2XSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDMwKTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgbWFwIGVsZW1lbnRzIGluIHBhcmFsbGVsJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgKGF3YWl0IGFzeW5jbWFwKGNvbGwsIG1hcHBlcikpLnNob3VsZC5lcWwoWzIsIDQsIDZdKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYmVsb3coMjApO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYW4gZW1wdHkgYXJyYXknLCBhc3luYyAoKSA9PiB7XG4gICAgKGF3YWl0IGFzeW5jbWFwKFtdLCBtYXBwZXIsIGZhbHNlKSkuc2hvdWxkLmVxbChbXSk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIGhhbmRsZSBhbiBlbXB0eSBhcnJheSBpbiBwYXJhbGxlbCcsIGFzeW5jICgpID0+IHtcbiAgICAoYXdhaXQgYXN5bmNtYXAoW10sIG1hcHBlcikpLnNob3VsZC5lcWwoW10pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnYXN5bmNmaWx0ZXInLCAoKSA9PiB7XG4gIGNvbnN0IGZpbHRlciA9IGFzeW5jIGZ1bmN0aW9uIChlbCkge1xuICAgIGF3YWl0IHNsZWVwKDUpO1xuICAgIHJldHVybiBlbCAlIDIgPT09IDA7XG4gIH07XG4gIGNvbnN0IGNvbGwgPSBbMSwgMiwgMywgNCwgNV07XG4gIGl0KCdzaG91bGQgZmlsdGVyIGVsZW1lbnRzIG9uZSBhdCBhIHRpbWUnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAoYXdhaXQgYXN5bmNmaWx0ZXIoY29sbCwgZmlsdGVyLCBmYWxzZSkpLnNob3VsZC5lcWwoWzIsIDRdKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTkpO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBmaWx0ZXIgZWxlbWVudHMgaW4gcGFyYWxsZWwnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAoYXdhaXQgYXN5bmNmaWx0ZXIoY29sbCwgZmlsdGVyKSkuc2hvdWxkLmVxbChbMiwgNF0pO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg5KTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgaGFuZGxlIGFuIGVtcHR5IGFycmF5JywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgKGF3YWl0IGFzeW5jZmlsdGVyKFtdLCBmaWx0ZXIsIGZhbHNlKSkuc2hvdWxkLmVxbChbXSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmJlbG93KDkpO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgaW4gcGFyYWxsZWwnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAoYXdhaXQgYXN5bmNmaWx0ZXIoW10sIGZpbHRlcikpLnNob3VsZC5lcWwoW10pO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg5KTtcbiAgfSk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvYXN5bmNib3gtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztRQUlPLFdBQVc7O29CQUNELE1BQU07Ozs7OEJBQ0ksa0JBQWtCOzs7OzJCQUVxQixpQkFBaUI7O0FBTG5GLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQzs7QUFPZixrQkFBSyxHQUFHLDZCQUFnQixDQUFDO0FBQ3pCLElBQUksTUFBTSxHQUFHLGtCQUFLLE1BQU0sRUFBRSxDQUFDOztBQUUzQixRQUFRLENBQUMsT0FBTyxFQUFFLFlBQU07QUFDdEIsSUFBRSxDQUFDLDZCQUE2QixFQUFFO1FBQzVCLEdBQUc7Ozs7QUFBSCxhQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTs7MkNBQ2QsaUJBVEQsS0FBSyxFQVNFLEVBQUUsQ0FBQzs7O0FBQ2YsV0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFBLENBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Ozs7Ozs7R0FDeEMsQ0FBQyxDQUFDO0NBQ0osQ0FBQyxDQUFDOztBQUVILFFBQVEsQ0FBQyxPQUFPLEVBQUUsWUFBTTtBQUN0QixNQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFDbEIsTUFBSSxJQUFJLEdBQUcsU0FBUCxJQUFJLENBQVUsSUFBSSxFQUFFLElBQUk7Ozs7OzJDQUNwQixpQkFqQkQsS0FBSyxFQWlCRSxFQUFFLENBQUM7OztBQUNmLG1CQUFTLEVBQUUsQ0FBQzs4Q0FDTCxJQUFJLEdBQUcsSUFBSTs7Ozs7OztHQUNuQixDQUFDO0FBQ0YsTUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLE1BQUksS0FBSyxHQUFHLFNBQVIsS0FBSzs7Ozs7MkNBQ0QsaUJBdkJELEtBQUssRUF1QkUsRUFBRSxDQUFDOzs7QUFDZixvQkFBVSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDOzs7Ozs7O0dBQ3ZCLENB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cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptb2NoYVxuXG4vKiBnbG9iYWwgZGVzY3JpYmU6dHJ1ZSwgaXQ6dHJ1ZSAqL1xubGV0IHJlZ0l0ID0gaXQ7XG5pbXBvcnQgJ21vY2hhd2FpdCc7XG5pbXBvcnQgY2hhaSBmcm9tICdjaGFpJztcbmltcG9ydCBjaGFpQXNQcm9taXNlZCBmcm9tICdjaGFpLWFzLXByb21pc2VkJztcbmltcG9ydCB7IHNsZWVwLCByZXRyeSwgcmV0cnlJbnRlcnZhbCwgbm9kZWlmeSwgbm9kZWlmeUFsbCxcbiAgICAgICAgIHBhcmFsbGVsLCBhc3luY21hcCwgYXN5bmNmaWx0ZXIsIHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICcuLi9saWIvYXN5bmNib3gnO1xuXG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5sZXQgc2hvdWxkID0gY2hhaS5zaG91bGQoKTtcblxuZGVzY3JpYmUoJ3NsZWVwJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHdvcmsgbGlrZSBzZXRUaW1lb3V0JywgYXN5bmMgKCkgPT4ge1xuICAgIHZhciBub3cgPSBEYXRlLm5vdygpO1xuICAgIGF3YWl0IHNsZWVwKDIwKTtcbiAgICAoRGF0ZS5ub3coKSAtIG5vdykuc2hvdWxkLmJlLmFib3ZlKDE5KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3JldHJ5JywgKCkgPT4ge1xuICBsZXQgb2tGbkNhbGxzID0gMDtcbiAgbGV0IG9rRm4gPSBhc3luYyAodmFsMSwgdmFsMikgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICBva0ZuQ2FsbHMrKztcbiAgICByZXR1cm4gdmFsMSAqIHZhbDI7XG4gIH07XG4gIGxldCBiYWRGbkNhbGxzID0gMDtcbiAgbGV0IGJhZEZuID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICBiYWRGbkNhbGxzKys7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiYmFkXCIpO1xuICB9O1xuICBsZXQgZXZlbnR1YWxseU9rRm5DYWxscyA9IDA7XG4gIGxldCBldmVudHVhbGx5T2tGbiA9IGFzeW5jICh0aW1lcykgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICBldmVudHVhbGx5T2tGbkNhbGxzKys7XG4gICAgaWYgKGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPCB0aW1lcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IG9rIHlldFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpbWVzICogdGltZXM7XG4gIH07XG4gIGxldCBldmVudHVhbGx5T2tOb1NsZWVwRm4gPSBhc3luYyAodGltZXMpID0+IHtcbiAgICBldmVudHVhbGx5T2tGbkNhbGxzKys7XG4gICAgaWYgKGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPCB0aW1lcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibm90IG9rIHlldFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpbWVzICogdGltZXM7XG4gIH07XG4gIGl0KCdzaG91bGQgcmV0dXJuIHRoZSByZXN1bHQgb2YgYSBwYXNzaW5nIGZ1bmN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgbGV0IHJlcyA9IGF3YWl0IHJldHJ5KDMsIG9rRm4sIDUsIDQpO1xuICAgIHJlcy5zaG91bGQuZXF1YWwoMjApO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5hYm92ZSgxNCk7XG4gICAgb2tGbkNhbGxzLnNob3VsZC5lcXVhbCgxKTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgcmV0cnkgYSBmYWlsaW5nIGZ1bmN0aW9uIGFuZCBldmVudHVhbGx5IHRocm93IHRoZSBzYW1lIGVycicsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgZXJyID0gbnVsbDtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZXRyeSgzLCBiYWRGbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyID0gZTtcbiAgICB9XG4gICAgc2hvdWxkLmV4aXN0KGVycik7XG4gICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmVxdWFsKCdiYWQnKTtcbiAgICBiYWRGbkNhbGxzLnNob3VsZC5lcXVhbCgzKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoNDQpO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWUgd2l0aCBhIGZ1bmN0aW9uIHRoYXQgZXZlbnR1YWxseSBwYXNzZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGVyciA9IG51bGw7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmV0cnkoMywgZXZlbnR1YWxseU9rRm4sIDQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVyciA9IGU7XG4gICAgfVxuICAgIHNob3VsZC5leGlzdChlcnIpO1xuICAgIGVyci5tZXNzYWdlLnNob3VsZC5lcXVhbCgnbm90IG9rIHlldCcpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMuc2hvdWxkLmVxdWFsKDMpO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5hYm92ZSgzNSk7XG5cbiAgICAvLyByZXJ1biB3aXRoIG9rIG51bWJlciBvZiBjYWxsc1xuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICBldmVudHVhbGx5T2tGbkNhbGxzID0gMDtcbiAgICBsZXQgcmVzID0gYXdhaXQgcmV0cnkoMywgZXZlbnR1YWxseU9rRm4sIDMpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMuc2hvdWxkLmVxdWFsKDMpO1xuICAgIHJlcy5zaG91bGQuZXF1YWwoOSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDM1KTtcbiAgfSk7XG4gIGl0KCdpbiBzbGVlcCBtb2RlLCBzaG91bGQgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdpdGggYSBmdW5jdGlvbiB0aGF0IGV2ZW50dWFsbHkgcGFzc2VzJywgYXN5bmMgKCkgPT4ge1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPSAwO1xuICAgIGxldCBlcnIgPSBudWxsO1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHJldHJ5SW50ZXJ2YWwoMywgMTUsIGV2ZW50dWFsbHlPa05vU2xlZXBGbiwgNCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyID0gZTtcbiAgICB9XG4gICAgc2hvdWxkLmV4aXN0KGVycik7XG4gICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmVxdWFsKCdub3Qgb2sgeWV0Jyk7XG4gICAgZXZlbnR1YWxseU9rRm5DYWxscy5zaG91bGQuZXF1YWwoMyk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDMwKTtcblxuICAgIC8vIHJlcnVuIHdpdGggb2sgbnVtYmVyIG9mIGNhbGxzXG4gICAgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMgPSAwO1xuICAgIGxldCByZXMgPSBhd2FpdCByZXRyeUludGVydmFsKDMsIDE1LCBldmVudHVhbGx5T2tOb1NsZWVwRm4sIDMpO1xuICAgIGV2ZW50dWFsbHlPa0ZuQ2FsbHMuc2hvdWxkLmVxdWFsKDMpO1xuICAgIHJlcy5zaG91bGQuZXF1YWwoOSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDMwKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ25vZGVpZnlBbGwnLCAoKSA9PiB7XG4gIGxldCBhc3luY0ZuID0gYXN5bmMgKHZhbCkgPT4ge1xuICAgIGF3YWl0IHNsZWVwKDE1KTtcbiAgICByZXR1cm4gdmFsO1xuICB9O1xuICBsZXQgYXN5bmNGbjIgPSBhc3luYyAodmFsKSA9PiB7XG4gICAgYXdhaXQgc2xlZXAoMTUpO1xuICAgIHJldHVybiBbdmFsLCB2YWwgKyB2YWxdO1xuICB9O1xuICBsZXQgYmFkQXN5bmNGbiA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBzbGVlcCgxNSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdib28nKTtcbiAgfTtcbiAgbGV0IGNiTWFwID0gbm9kZWlmeUFsbCh7YXN5bmNGbiwgYXN5bmNGbjIsIGJhZEFzeW5jRm59KTtcbiAgcmVnSXQoJ3Nob3VsZCB0dXJuIGFzeW5jIGZ1bmN0aW9ucyBpbnRvIG5vZGV5IHRoaW5ncycsIGRvbmUgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgbm9kZWlmeShhc3luY0ZuKCdmb28nKSwgKGVyciwgdmFsLCB2YWwyKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGVycik7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHZhbDIpO1xuICAgICAgdmFsLnNob3VsZC5lcXVhbCgnZm9vJyk7XG4gICAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTQpO1xuICAgICAgZG9uZSgpO1xuICAgIH0pO1xuICB9KTtcbiAgcmVnSXQoJ3Nob3VsZCB0dXJuIGFzeW5jIGZ1bmN0aW9ucyBpbnRvIG5vZGV5IHRoaW5ncyB2aWEgbm9kZWlmeUFsbCcsIGRvbmUgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgY2JNYXAuYXN5bmNGbignZm9vJywgKGVyciwgdmFsLCB2YWwyKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGVycik7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHZhbDIpO1xuICAgICAgdmFsLnNob3VsZC5lcXVhbCgnZm9vJyk7XG4gICAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTQpO1xuICAgICAgZG9uZSgpO1xuICAgIH0pO1xuICB9KTtcbiAgcmVnSXQoJ3Nob3VsZCB0dXJuIGFzeW5jIGZ1bmN0aW9ucyBpbnRvIG5vZGV5IHRoaW5ncyB3aXRoIG11bHQgcGFyYW1zJywgZG9uZSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICBub2RlaWZ5KGFzeW5jRm4yKCdmb28nKSwgKGVyciwgdmFsKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGVycik7XG4gICAgICB2YWwuc2hvdWxkLmVxbChbJ2ZvbycsICdmb29mb28nXSk7XG4gICAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTQpO1xuICAgICAgZG9uZSgpO1xuICAgIH0pO1xuICB9KTtcbiAgcmVnSXQoJ3Nob3VsZCBoYW5kbGUgZXJyb3JzIGNvcnJlY3RseScsIGRvbmUgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgbm9kZWlmeShiYWRBc3luY0ZuKCdmb28nKSwgKGVyciwgdmFsKSA9PiB7XG4gICAgICBzaG91bGQubm90LmV4aXN0KHZhbCk7XG4gICAgICBlcnIubWVzc2FnZS5zaG91bGQuZXF1YWwoJ2JvbycpO1xuICAgICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDE0KTtcbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuLy9kZXNjcmliZSgnbm9kZWlmeUFsbCcsICgpID0+IHtcbiAgLy9sZXQgYXN5bmNGbiA9IGFzeW5jICh2YWwpID0+IHtcbiAgICAvL2F3YWl0IHNsZWVwKDE1KTtcbiAgICAvL3JldHVybiB2YWw7XG4gIC8vfTtcbiAgLy9sZXQgYXN5bmNGbjIgPSBhc3luYyAodmFsKSA9PiB7XG4gICAgLy9hd2FpdCBzbGVlcCgxNSk7XG4gICAgLy9yZXR1cm4gW3ZhbCwgdmFsICsgdmFsXTtcbiAgLy99O1xuICAvL2xldCBiYWRBc3luY0ZuID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vYXdhaXQgc2xlZXAoMTUpO1xuICAgIC8vdGhyb3cgbmV3IEVycm9yKCdib28nKTtcbiAgLy99O1xuLy99KTtcblxuZGVzY3JpYmUoJ3BhcmFsbGVsJywgKCkgPT4ge1xuICBsZXQgYXN5bmNGbiA9IGFzeW5jICh2YWwpID0+IHtcbiAgICBhd2FpdCBzbGVlcCg1MCk7XG4gICAgcmV0dXJuIHZhbDtcbiAgfTtcbiAgbGV0IGJhZEFzeW5jRm4gPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgc2xlZXAoMjApO1xuICAgIHRocm93IG5ldyBFcnJvcihcImJvb1wiKTtcbiAgfTtcbiAgaXQoJ3Nob3VsZCBwZXJmb3JtIHRhc2tzIGluIHBhcmFsbGVsIGFuZCByZXR1cm4gcmVzdWx0cycsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgdmFscyA9IFsxLCAyLCAzXTtcbiAgICBsZXQgcHJvbWlzZXMgPSBbXTtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIGZvciAobGV0IHYgb2YgdmFscykge1xuICAgICAgcHJvbWlzZXMucHVzaChhc3luY0ZuKHYpKTtcbiAgICB9XG4gICAgbGV0IHJlcyA9IGF3YWl0IHBhcmFsbGVsKHByb21pc2VzKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoNDkpO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg1OSk7XG4gICAgcmVzLnNvcnQoKS5zaG91bGQuZXFsKFsxLCAyLCAzXSk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIGVycm9yIHdpdGggZmlyc3QgcmVzcG9uc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHZhbHMgPSBbMSwgMiwgM107XG4gICAgbGV0IHByb21pc2VzID0gW107XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICBmb3IgKGxldCB2IG9mIHZhbHMpIHtcbiAgICAgIHByb21pc2VzLnB1c2goYXN5bmNGbih2KSk7XG4gICAgfVxuICAgIHByb21pc2VzLnB1c2goYmFkQXN5bmNGbigpKTtcbiAgICBsZXQgZXJyID0gbnVsbDtcbiAgICBsZXQgcmVzID0gW107XG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IGF3YWl0IHBhcmFsbGVsKHByb21pc2VzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnIgPSBlO1xuICAgIH1cbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTkpO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg0OSk7XG4gICAgc2hvdWxkLmV4aXN0KGVycik7XG4gICAgcmVzLnNob3VsZC5lcWwoW10pO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBub3QgYWxsb3cgcGFyYWxsZWxpemluZyBiYWQgdHlwZXMgb2YgdGhpbmdzJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBlcnI7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHBhcmFsbGVsKCdmb28nKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnIgPSBlO1xuICAgIH1cbiAgICBzaG91bGQuZXhpc3QoZXJyKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGFyYWxsZWwoWzFdKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnIgPSBlO1xuICAgIH1cbiAgICBzaG91bGQuZXhpc3QoZXJyKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dhaXRGb3JDb25kaXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB3YWl0IGFuZCBzdWNjZWVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHJlZiA9IERhdGUubm93KCk7XG4gICAgICBmdW5jdGlvbiBjb25kRm4oKSB7XG4gICAgICAgIHJldHVybiBEYXRlLm5vdygpIC0gcmVmID4gMjAwO1xuICAgICAgfVxuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbihjb25kRm4sIHt3YWl0TXM6IDEwMDAsIGludGVydmFsTXM6IDEwfSk7XG4gICAgICBsZXQgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gcmVmO1xuICAgICAgZHVyYXRpb24uc2hvdWxkLmJlLmFib3ZlKDIwMCk7XG4gICAgICBkdXJhdGlvbi5zaG91bGQuYmUuYmVsb3coMjUwKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHdhaXQgYW5kIGZhaWwnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgcmVmID0gRGF0ZS5ub3coKTtcbiAgICAgIGZ1bmN0aW9uIGNvbmRGbigpIHtcbiAgICAgICAgcmV0dXJuIERhdGUubm93KCkgLSByZWYgPiAyMDA7XG4gICAgICB9XG4gICAgICBhd2FpdCAod2FpdEZvckNvbmRpdGlvbihjb25kRm4sIHt3YWl0TXM6IDEwMCwgaW50ZXJ2YWxNczogMTB9KSlcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoL0NvbmRpdGlvbiB1bm1ldC8pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnYXN5bmNtYXAnLCAoKSA9PiB7XG4gIGNvbnN0IG1hcHBlciA9IGFzeW5jIGZ1bmN0aW9uIChlbCkge1xuICAgIGF3YWl0IHNsZWVwKDEwKTtcbiAgICByZXR1cm4gZWwgKiAyO1xuICB9O1xuICBjb25zdCBjb2xsID0gWzEsIDIsIDNdO1xuICBpdCgnc2hvdWxkIG1hcCBlbGVtZW50cyBvbmUgYXQgYSB0aW1lJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgKGF3YWl0IGFzeW5jbWFwKGNvbGwsIG1hcHBlciwgZmFsc2UpKS5zaG91bGQuZXFsKFsyLCA0LCA2XSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDMwKTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgbWFwIGVsZW1lbnRzIGluIHBhcmFsbGVsJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgKGF3YWl0IGFzeW5jbWFwKGNvbGwsIG1hcHBlcikpLnNob3VsZC5lcWwoWzIsIDQsIDZdKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYmVsb3coMjApO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYW4gZW1wdHkgYXJyYXknLCBhc3luYyAoKSA9PiB7XG4gICAgKGF3YWl0IGFzeW5jbWFwKFtdLCBtYXBwZXIsIGZhbHNlKSkuc2hvdWxkLmVxbChbXSk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIGhhbmRsZSBhbiBlbXB0eSBhcnJheSBpbiBwYXJhbGxlbCcsIGFzeW5jICgpID0+IHtcbiAgICAoYXdhaXQgYXN5bmNtYXAoW10sIG1hcHBlcikpLnNob3VsZC5lcWwoW10pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnYXN5bmNmaWx0ZXInLCAoKSA9PiB7XG4gIGNvbnN0IGZpbHRlciA9IGFzeW5jIGZ1bmN0aW9uIChlbCkge1xuICAgIGF3YWl0IHNsZWVwKDUpO1xuICAgIHJldHVybiBlbCAlIDIgPT09IDA7XG4gIH07XG4gIGNvbnN0IGNvbGwgPSBbMSwgMiwgMywgNCwgNV07XG4gIGl0KCdzaG91bGQgZmlsdGVyIGVsZW1lbnRzIG9uZSBhdCBhIHRpbWUnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAoYXdhaXQgYXN5bmNmaWx0ZXIoY29sbCwgZmlsdGVyLCBmYWxzZSkpLnNob3VsZC5lcWwoWzIsIDRdKTtcbiAgICAoRGF0ZS5ub3coKSAtIHN0YXJ0KS5zaG91bGQuYmUuYWJvdmUoMTkpO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBmaWx0ZXIgZWxlbWVudHMgaW4gcGFyYWxsZWwnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAoYXdhaXQgYXN5bmNmaWx0ZXIoY29sbCwgZmlsdGVyKSkuc2hvdWxkLmVxbChbMiwgNF0pO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg5KTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgaGFuZGxlIGFuIGVtcHR5IGFycmF5JywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgKGF3YWl0IGFzeW5jZmlsdGVyKFtdLCBmaWx0ZXIsIGZhbHNlKSkuc2hvdWxkLmVxbChbXSk7XG4gICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmJlbG93KDkpO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgaW4gcGFyYWxsZWwnLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAoYXdhaXQgYXN5bmNmaWx0ZXIoW10sIGZpbHRlcikpLnNob3VsZC5lcWwoW10pO1xuICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5iZWxvdyg5KTtcbiAgfSk7XG59KTtcbiJdfQ==

@@ -9,3 +9,3 @@ {

],
"version": "2.3.0",
"version": "2.3.1",
"author": "jlipps@gmail.com",

@@ -34,3 +34,3 @@ "licenses": [

"dependencies": {
"babel-runtime": "=5.8.20",
"babel-runtime": "=5.5.5",
"bluebird": "^2.9.34",

@@ -37,0 +37,0 @@ "chai": "^3.2.0",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc