summaryrefslogtreecommitdiff
path: root/chromium/third_party/devtools-frontend/src/node_modules/mocha
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-02 12:21:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-12 08:13:00 +0000
commit606d85f2a5386472314d39923da28c70c60dc8e7 (patch)
treea8f4d7bf997f349f45605e6058259fba0630e4d7 /chromium/third_party/devtools-frontend/src/node_modules/mocha
parent5786336dda477d04fb98483dca1a5426eebde2d7 (diff)
downloadqtwebengine-chromium-606d85f2a5386472314d39923da28c70c60dc8e7.tar.gz
BASELINE: Update Chromium to 96.0.4664.181
Change-Id: I762cd1da89d73aa6313b4a753fe126c34833f046 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/devtools-frontend/src/node_modules/mocha')
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/CHANGELOG.md44
-rwxr-xr-xchromium/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha45
-rwxr-xr-xchromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js5
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js2
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/node-flags.js7
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js12
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-option-metadata.js3
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js8
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/errors.js4
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/esm-utils.js23
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/hook.js8
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/mocha.js49
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/base.js2
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/json.js31
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/runner.js7
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/suite.js4
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/test.js2
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha-es2018.js19840
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js4537
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js.map2
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/LICENSE21
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md308
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js973
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/constants.js65
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/fsevents-handler.js524
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/nodefs-handler.js646
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/package.json78
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/types/index.d.ts187
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/LICENSE21
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/README.md122
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.d.ts43
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.js287
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/package.json122
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/README.md6
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/index.js13
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/package.json4
-rw-r--r--chromium/third_party/devtools-frontend/src/node_modules/mocha/package.json32
37 files changed, 25910 insertions, 2177 deletions
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/CHANGELOG.md b/chromium/third_party/devtools-frontend/src/node_modules/mocha/CHANGELOG.md
index a625e2bb10f..b64b141d1a6 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/CHANGELOG.md
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/CHANGELOG.md
@@ -1,3 +1,47 @@
+# 9.1.1 / 2021-08-28
+
+## :bug: Fixes
+
+- [#4623](https://github.com/mochajs/mocha/issues/4623): `XUNIT` and `JSON` reporter crash in `parallel` mode ([**@curtisman**](https://github.com/curtisman))
+
+# 9.1.0 / 2021-08-20
+
+## :tada: Enhancements
+
+- [#4716](https://github.com/mochajs/mocha/issues/4716): Add new option `--fail-zero` ([**@juergba**](https://github.com/juergba))
+- [#4691](https://github.com/mochajs/mocha/issues/4691): Add new option `--node-option` ([**@juergba**](https://github.com/juergba))
+- [#4607](https://github.com/mochajs/mocha/issues/4607): Add output option to `JSON` reporter ([**@dorny**](https://github.com/dorny))
+
+# 9.0.3 / 2021-07-25
+
+## :bug: Fixes
+
+- [#4702](https://github.com/mochajs/mocha/issues/4702): Error rethrow from cwd-relative path while loading `.mocharc.js` ([**@kirill-golovan**](https://github.com/kirill-golovan))
+
+- [#4688](https://github.com/mochajs/mocha/issues/4688): Usage of custom interface in parallel mode ([**@juergba**](https://github.com/juergba))
+
+- [#4687](https://github.com/mochajs/mocha/issues/4687): ESM: don't swallow `MODULE_NOT_FOUND` errors in case of `type:module` ([**@giltayar**](https://github.com/giltayar))
+
+# 9.0.2 / 2021-07-03
+
+## :bug: Fixes
+
+- [#4668](https://github.com/mochajs/mocha/issues/4668): ESM: make `--require <dir>` work with new `import`-first loading ([**@giltayar**](https://github.com/giltayar))
+
+## :nut_and_bolt: Other
+
+- [#4674](https://github.com/mochajs/mocha/issues/4674): Update production dependencies ([**@juergba**](https://github.com/juergba))
+
+# 9.0.1 / 2021-06-18
+
+## :nut_and_bolt: Other
+
+- [#4657](https://github.com/mochajs/mocha/issues/4657): Browser: add separate bundle for modern browsers ([**@juergba**](https://github.com/juergba))
+
+We added a separate browser bundle `mocha-es2018.js` in javascript ES2018, as we skipped the transpilation down to ES5. This is an **experimental step towards freezing Mocha's support of IE11**.
+
+- [#4653](https://github.com/mochajs/mocha/issues/4653): ESM: proper version check in `hasStableEsmImplementation` ([**@alexander-fenster**](https://github.com/alexander-fenster))
+
# 9.0.0 / 2021-06-07
## :boom: Breaking Changes
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha b/chromium/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha
index 79d35562d4e..fb58e65fcd8 100755
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha
@@ -10,7 +10,6 @@
* @private
*/
-const {deprecate} = require('../lib/utils');
const {loadOptions} = require('../lib/cli/options');
const {
unparseNodeFlags,
@@ -23,6 +22,7 @@ const {aliases} = require('../lib/cli/run-option-metadata');
const mochaArgs = {};
const nodeArgs = {};
+let hasInspect = false;
const opts = loadOptions(process.argv.slice(2));
debug('loaded opts', opts);
@@ -59,48 +59,39 @@ Object.keys(opts).forEach(opt => {
// disable 'timeout' for debugFlags
Object.keys(nodeArgs).forEach(opt => disableTimeouts(opt));
+mochaArgs['node-option'] &&
+ mochaArgs['node-option'].forEach(opt => disableTimeouts(opt));
// Native debugger handling
// see https://nodejs.org/api/debugger.html#debugger_debugger
-// look for 'inspect' or 'debug' that would launch this debugger,
+// look for 'inspect' that would launch this debugger,
// remove it from Mocha's opts and prepend it to Node's opts.
// A deprecation warning will be printed by node, if applicable.
// (mochaArgs._ are "positional" arguments, not prefixed with - or --)
if (mochaArgs._) {
- const i = mochaArgs._.findIndex(val => val === 'inspect' || val === 'debug');
+ const i = mochaArgs._.findIndex(val => val === 'inspect');
if (i > -1) {
- const [command] = mochaArgs._.splice(i, 1);
+ mochaArgs._.splice(i, 1);
disableTimeouts('inspect');
- nodeArgs._ = [command];
+ hasInspect = true;
}
}
-// historical
-if (nodeArgs.gc) {
- deprecate(
- '"-gc" is deprecated and will be removed from a future version of Mocha. Use "--gc-global" instead.'
- );
- nodeArgs['gc-global'] = nodeArgs.gc;
- delete nodeArgs.gc;
-}
-
-// --require/-r is treated as Mocha flag except when 'esm' is preloaded
-if (mochaArgs.require && mochaArgs.require.includes('esm')) {
- nodeArgs.require = ['esm'];
- mochaArgs.require = mochaArgs.require.filter(mod => mod !== 'esm');
- if (!mochaArgs.require.length) {
- delete mochaArgs.require;
- }
-}
-
-if (Object.keys(nodeArgs).length) {
+if (mochaArgs['node-option'] || Object.keys(nodeArgs).length || hasInspect) {
const {spawn} = require('child_process');
const mochaPath = require.resolve('../lib/cli/cli.js');
- debug('final node args', nodeArgs);
+ const nodeArgv =
+ (mochaArgs['node-option'] && mochaArgs['node-option'].map(v => '--' + v)) ||
+ unparseNodeFlags(nodeArgs);
+
+ if (hasInspect) nodeArgv.unshift('inspect');
+ delete mochaArgs['node-option'];
+
+ debug('final node argv', nodeArgv);
const args = [].concat(
- unparseNodeFlags(nodeArgs),
+ nodeArgv,
mochaPath,
unparse(mochaArgs, {alias: aliases})
);
@@ -147,5 +138,5 @@ if (Object.keys(nodeArgs).length) {
});
} else {
debug('running Mocha in-process');
- require('../lib/cli/cli').main(unparse(mochaArgs, {alias: aliases}));
+ require('../lib/cli/cli').main([], mochaArgs);
}
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js
index f3b780cf9da..977a341564a 100755
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js
@@ -33,8 +33,9 @@ const {cwd} = require('../utils');
* @public
* @summary Mocha's main command-line entry-point.
* @param {string[]} argv - Array of arguments to parse, or by default the lovely `process.argv.slice(2)`
+ * @param {object} [mochaArgs] - Object of already parsed Mocha arguments (by bin/mocha)
*/
-exports.main = (argv = process.argv.slice(2)) => {
+exports.main = (argv = process.argv.slice(2), mochaArgs) => {
debug('entered main with raw args', argv);
// ensure we can require() from current working directory
if (typeof module.paths !== 'undefined') {
@@ -43,7 +44,7 @@ exports.main = (argv = process.argv.slice(2)) => {
Error.stackTraceLimit = Infinity; // configurable via --stack-trace-limit?
- var args = loadOptions(argv);
+ var args = mochaArgs || loadOptions(argv);
yargs()
.scriptName('mocha')
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js
index b7510d7deb0..10f16d8aa37 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js
@@ -31,7 +31,7 @@ exports.CONFIG_FILES = [
];
const isModuleNotFoundError = err =>
- err.code !== 'MODULE_NOT_FOUND' ||
+ err.code === 'MODULE_NOT_FOUND' ||
err.message.indexOf('Cannot find module') !== -1;
/**
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/node-flags.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/node-flags.js
index 1203ad2ea8b..25ca2669c51 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/node-flags.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/node-flags.js
@@ -49,7 +49,7 @@ exports.isNodeFlag = (flag, bareword = true) => {
// and also any V8 flags with `--v8-` prefix
(!isMochaFlag(flag) && nodeFlags && nodeFlags.has(flag)) ||
debugFlags.has(flag) ||
- /(?:preserve-symlinks(?:-main)?|harmony(?:[_-]|$)|(?:trace[_-].+$)|gc(?:[_-]global)?$|es[_-]staging$|use[_-]strict$|v8[_-](?!options).+?$)/.test(
+ /(?:preserve-symlinks(?:-main)?|harmony(?:[_-]|$)|(?:trace[_-].+$)|gc[_-]global$|es[_-]staging$|use[_-]strict$|v8[_-](?!options).+?$)/.test(
flag
)
);
@@ -67,7 +67,6 @@ exports.impliesNoTimeouts = flag => debugFlags.has(flag);
/**
* All non-strictly-boolean arguments to node--those with values--must specify those values using `=`, e.g., `--inspect=0.0.0.0`.
* Unparse these arguments using `yargs-unparser` (which would result in `--inspect 0.0.0.0`), then supply `=` where we have values.
- * Apparently --require in Node.js v8 does NOT want `=`.
* There's probably an easier or more robust way to do this; fixes welcome
* @param {Object} opts - Arguments object
* @returns {string[]} Unparsed arguments using `=` to specify values
@@ -79,9 +78,7 @@ exports.unparseNodeFlags = opts => {
? args
.join(' ')
.split(/\b/)
- .map((arg, index, args) =>
- arg === ' ' && args[index - 1] !== 'require' ? '=' : arg
- )
+ .map(arg => (arg === ' ' ? '=' : arg))
.join('')
.split(' ')
: [];
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js
index dfac8b44790..d0f9e746358 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js
@@ -195,10 +195,10 @@ exports.runMocha = async (mocha, options) => {
* it actually exists. This must be run _after_ requires are processed (see
* {@link handleRequires}), as it'll prevent interfaces from loading otherwise.
* @param {Object} opts - Options object
- * @param {"reporter"|"interface"} pluginType - Type of plugin.
- * @param {Object} [map] - An object perhaps having key `key`. Used as a cache
- * of sorts; `Mocha.reporters` is one, where each key corresponds to a reporter
- * name
+ * @param {"reporter"|"ui"} pluginType - Type of plugin.
+ * @param {Object} [map] - Used as a cache of sorts;
+ * `Mocha.reporters` where each key corresponds to a reporter name,
+ * `Mocha.interfaces` where each key corresponds to an interface name.
* @private
*/
exports.validateLegacyPlugin = (opts, pluginType, map = {}) => {
@@ -226,12 +226,12 @@ exports.validateLegacyPlugin = (opts, pluginType, map = {}) => {
// if this exists, then it's already loaded, so nothing more to do.
if (!map[pluginId]) {
try {
- opts[pluginType] = require(pluginId);
+ map[pluginId] = require(pluginId);
} catch (err) {
if (err.code === 'MODULE_NOT_FOUND') {
// Try to load reporters from a path (absolute or relative)
try {
- opts[pluginType] = require(path.resolve(pluginId));
+ map[pluginId] = require(path.resolve(pluginId));
} catch (err) {
throw createUnknownError(err);
}
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-option-metadata.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-option-metadata.js
index fc870992c9c..984ad4b75e7 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-option-metadata.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-option-metadata.js
@@ -18,6 +18,7 @@ const TYPES = (exports.types = {
'file',
'global',
'ignore',
+ 'node-option',
'reporter-option',
'require',
'spec',
@@ -34,6 +35,7 @@ const TYPES = (exports.types = {
'diff',
'dry-run',
'exit',
+ 'fail-zero',
'forbid-only',
'forbid-pending',
'full-trace',
@@ -79,6 +81,7 @@ exports.aliases = {
invert: ['i'],
jobs: ['j'],
'no-colors': ['C'],
+ 'node-option': ['n'],
parallel: ['p'],
reporter: ['R'],
'reporter-option': ['reporter-options', 'O'],
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js
index 79903327c3d..4a4da6cf688 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js
@@ -98,6 +98,10 @@ exports.builder = yargs =>
requiresArg: true,
coerce: list
},
+ 'fail-zero': {
+ description: 'Fail test run if no test(s) encountered',
+ group: GROUPS.RULES
+ },
fgrep: {
conflicts: 'grep',
description: 'Only run tests containing this string',
@@ -176,6 +180,10 @@ exports.builder = yargs =>
group: GROUPS.OUTPUT,
hidden: true
},
+ 'node-option': {
+ description: 'Node or V8 option (no leading "--")',
+ group: GROUPS.CONFIG
+ },
package: {
description: 'Path to package.json for config',
group: GROUPS.CONFIG,
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/errors.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/errors.js
index 681198ae274..0f0940b481e 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/errors.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/errors.js
@@ -328,7 +328,7 @@ function createFatalError(message, value) {
/**
* Dynamically creates a plugin-type-specific error based on plugin type
* @param {string} message - Error message
- * @param {"reporter"|"interface"} pluginType - Plugin type. Future: expand as needed
+ * @param {"reporter"|"ui"} pluginType - Plugin type. Future: expand as needed
* @param {string} [pluginId] - Name/path of plugin, if any
* @throws When `pluginType` is not known
* @public
@@ -339,7 +339,7 @@ function createInvalidLegacyPluginError(message, pluginType, pluginId) {
switch (pluginType) {
case 'reporter':
return createInvalidReporterError(message, pluginId);
- case 'interface':
+ case 'ui':
return createInvalidInterfaceError(message, pluginId);
default:
throw new Error('unknown pluginType "' + pluginType + '"');
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/esm-utils.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/esm-utils.js
index 14a9c28fa8f..fd51e012ccb 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/esm-utils.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/esm-utils.js
@@ -34,7 +34,9 @@ const hasStableEsmImplementation = (() => {
const [major, minor] = process.version.split('.');
// ESM is stable from v12.22.0 onward
// https://nodejs.org/api/esm.html#esm_modules_ecmascript_modules
- return parseInt(major.slice(1), 10) > 12 || parseInt(minor, 10) >= 22;
+ const majorNumber = parseInt(major.slice(1), 10);
+ const minorNumber = parseInt(minor, 10);
+ return majorNumber > 12 || (majorNumber === 12 && minorNumber >= 22);
})();
exports.requireOrImport = hasStableEsmImplementation
@@ -47,9 +49,24 @@ exports.requireOrImport = hasStableEsmImplementation
} catch (err) {
if (
err.code === 'ERR_MODULE_NOT_FOUND' ||
- err.code === 'ERR_UNKNOWN_FILE_EXTENSION'
+ err.code === 'ERR_UNKNOWN_FILE_EXTENSION' ||
+ err.code === 'ERR_UNSUPPORTED_DIR_IMPORT'
) {
- return require(file);
+ try {
+ return require(file);
+ } catch (requireErr) {
+ if (requireErr.code === 'ERR_REQUIRE_ESM') {
+ // This happens when the test file is a JS file, but via type:module is actually ESM,
+ // AND has an import to a file that doesn't exist.
+ // This throws an `ERR_MODULE_NOT_FOUND` // error above,
+ // and when we try to `require` it here, it throws an `ERR_REQUIRE_ESM`.
+ // What we want to do is throw the original error (the `ERR_MODULE_NOT_FOUND`),
+ // and not the `ERR_REQUIRE_ESM` error, which is a red herring.
+ throw err;
+ } else {
+ throw requireErr;
+ }
+ }
} else {
throw err;
}
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/hook.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/hook.js
index 890086fad2f..a246d053d1b 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/hook.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/hook.js
@@ -62,7 +62,9 @@ Hook.prototype.error = function(err) {
*/
Hook.prototype.serialize = function serialize() {
return {
- $$isPending: this.isPending(),
+ $$currentRetry: this.currentRetry(),
+ $$fullTitle: this.fullTitle(),
+ $$isPending: Boolean(this.isPending()),
$$titlePath: this.titlePath(),
ctx:
this.ctx && this.ctx.currentTest
@@ -73,9 +75,13 @@ Hook.prototype.serialize = function serialize() {
}
}
: {},
+ duration: this.duration,
+ file: this.file,
parent: {
+ $$fullTitle: this.parent.fullTitle(),
[MOCHA_ID_PROP_NAME]: this.parent.id
},
+ state: this.state,
title: this.title,
type: this.type,
[MOCHA_ID_PROP_NAME]: this.id
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/mocha.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/mocha.js
index 62a414a9fa8..42876adccd2 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/mocha.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/mocha.js
@@ -164,6 +164,7 @@ exports.run = function(...args) {
* @param {boolean} [options.delay] - Delay root suite execution?
* @param {boolean} [options.diff] - Show diff on failure?
* @param {boolean} [options.dryRun] - Report tests without running them?
+ * @param {boolean} [options.failZero] - Fail test run if zero tests?
* @param {string} [options.fgrep] - Test filter given string.
* @param {boolean} [options.forbidOnly] - Tests marked `only` fail the suite?
* @param {boolean} [options.forbidPending] - Pending tests fail the suite?
@@ -223,6 +224,7 @@ function Mocha(options = {}) {
'delay',
'diff',
'dryRun',
+ 'failZero',
'forbidOnly',
'forbidPending',
'fullTrace',
@@ -581,7 +583,7 @@ Mocha.prototype.fgrep = function(str) {
Mocha.prototype.grep = function(re) {
if (utils.isString(re)) {
// extract args if it's regex-like, i.e: [string, pattern, flag]
- var arg = re.match(/^\/(.*)\/(g|i|)$|.*/);
+ var arg = re.match(/^\/(.*)\/([gimy]{0,4})$|.*/);
this.options.grep = new RegExp(arg[1] || arg[0], arg[2]);
} else {
this.options.grep = re;
@@ -779,20 +781,6 @@ Mocha.prototype.diff = function(diff) {
};
/**
- * Enables or disables running tests in dry-run mode.
- *
- * @public
- * @see [CLI option](../#-dry-run)
- * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.
- * @return {Mocha} this
- * @chainable
- */
-Mocha.prototype.dryRun = function(dryRun) {
- this.options.dryRun = dryRun !== false;
- return this;
-};
-
-/**
* @summary
* Sets timeout threshold value.
*
@@ -919,6 +907,34 @@ Mocha.prototype.delay = function delay() {
};
/**
+ * Enables or disables running tests in dry-run mode.
+ *
+ * @public
+ * @see [CLI option](../#-dry-run)
+ * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.
+ * @return {Mocha} this
+ * @chainable
+ */
+Mocha.prototype.dryRun = function(dryRun) {
+ this.options.dryRun = dryRun !== false;
+ return this;
+};
+
+/**
+ * Fails test run if no tests encountered with exit-code 1.
+ *
+ * @public
+ * @see [CLI option](../#-fail-zero)
+ * @param {boolean} [failZero=true] - Whether to fail test run.
+ * @return {Mocha} this
+ * @chainable
+ */
+Mocha.prototype.failZero = function(failZero) {
+ this.options.failZero = failZero !== false;
+ return this;
+};
+
+/**
* Causes tests marked `only` to fail the suite.
*
* @public
@@ -1023,9 +1039,10 @@ Mocha.prototype.run = function(fn) {
var options = this.options;
options.files = this.files;
const runner = new this._runnerClass(suite, {
+ cleanReferencesAfterRun: this._cleanReferencesAfterRun,
delay: options.delay,
dryRun: options.dryRun,
- cleanReferencesAfterRun: this._cleanReferencesAfterRun
+ failZero: options.failZero
});
createStatsCollector(runner);
var reporter = new this._reporter(runner, options);
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/base.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/base.js
index 20d1ccec112..f2f2bc65fce 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/base.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/base.js
@@ -90,7 +90,7 @@ exports.colors = {
exports.symbols = {
ok: symbols.success,
- err: symbols.err,
+ err: symbols.error,
dot: '.',
comma: ',',
bang: '!'
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/json.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/json.js
index a314cd38050..05e62693618 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/json.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/reporters/json.js
@@ -7,12 +7,16 @@
*/
var Base = require('./base');
+var fs = require('fs');
+var path = require('path');
+const createUnsupportedError = require('../errors').createUnsupportedError;
+const utils = require('../utils');
var constants = require('../runner').constants;
var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
var EVENT_TEST_END = constants.EVENT_TEST_END;
var EVENT_RUN_END = constants.EVENT_RUN_END;
-var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
/**
* Expose `JSON`.
@@ -30,7 +34,7 @@ exports = module.exports = JSONReporter;
* @param {Runner} runner - Instance triggers reporter actions.
* @param {Object} [options] - runner options
*/
-function JSONReporter(runner, options) {
+function JSONReporter(runner, options = {}) {
Base.call(this, runner, options);
var self = this;
@@ -38,6 +42,14 @@ function JSONReporter(runner, options) {
var pending = [];
var failures = [];
var passes = [];
+ var output;
+
+ if (options.reporterOption && options.reporterOption.output) {
+ if (utils.isBrowser()) {
+ throw createUnsupportedError('file output not supported in browser');
+ }
+ output = options.reporterOption.output;
+ }
runner.on(EVENT_TEST_END, function(test) {
tests.push(test);
@@ -66,7 +78,20 @@ function JSONReporter(runner, options) {
runner.testResults = obj;
- process.stdout.write(JSON.stringify(obj, null, 2));
+ var json = JSON.stringify(obj, null, 2);
+ if (output) {
+ try {
+ fs.mkdirSync(path.dirname(output), {recursive: true});
+ fs.writeFileSync(output, json);
+ } catch (err) {
+ console.error(
+ `${Base.symbols.err} [mocha] writing output to "${output}" failed: ${err.message}\n`
+ );
+ process.stdout.write(json);
+ }
+ } else {
+ process.stdout.write(json);
+ }
});
}
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/runner.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/runner.js
index 079ab3066da..7f9184fc1a4 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/runner.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/runner.js
@@ -135,10 +135,11 @@ class Runner extends EventEmitter {
* @public
* @class
* @param {Suite} suite - Root suite
- * @param {Object|boolean} [opts] - Options. If `boolean` (deprecated), whether or not to delay execution of root suite until ready.
+ * @param {Object|boolean} [opts] - Options. If `boolean` (deprecated), whether to delay execution of root suite until ready.
+ * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.
* @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.
* @param {boolean} [opts.dryRun] - Whether to report tests without running them.
- * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.
+ * @param {boolean} [options.failZero] - Whether to fail test run if zero tests encountered.
*/
constructor(suite, opts) {
super();
@@ -1044,6 +1045,8 @@ Runner.prototype.run = function(fn, opts = {}) {
fn = fn || function() {};
const end = () => {
+ if (!this.total && this._opts.failZero) this.failures = 1;
+
debug('run(): root suite completed; emitting %s', constants.EVENT_RUN_END);
this.emit(constants.EVENT_RUN_END);
};
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/suite.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/suite.js
index 2f16b2f5f6f..e3a63bbbf83 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/suite.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/suite.js
@@ -594,10 +594,10 @@ Suite.prototype.serialize = function serialize() {
return {
_bail: this._bail,
$$fullTitle: this.fullTitle(),
- $$isPending: this.isPending(),
+ $$isPending: Boolean(this.isPending()),
root: this.root,
title: this.title,
- id: this.id,
+ [MOCHA_ID_PROP_NAME]: this.id,
parent: this.parent ? {[MOCHA_ID_PROP_NAME]: this.parent.id} : null
};
};
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/test.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/test.js
index f2be51b4f40..fc5f8727e76 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/test.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/lib/test.js
@@ -92,7 +92,7 @@ Test.prototype.serialize = function serialize() {
return {
$$currentRetry: this._currentRetry,
$$fullTitle: this.fullTitle(),
- $$isPending: this.pending,
+ $$isPending: Boolean(this.pending),
$$retriedTest: this._retriedTest || null,
$$slow: this._slow,
$$titlePath: this.titlePath(),
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha-es2018.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha-es2018.js
new file mode 100644
index 00000000000..8eb3b3554ad
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha-es2018.js
@@ -0,0 +1,19840 @@
+// mocha@9.1.1 in javascript ES2018
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.mocha = factory());
+}(this, (function () { 'use strict';
+
+ var global$2 = (typeof global$1 !== "undefined" ? global$1 :
+ typeof self !== "undefined" ? self :
+ typeof window !== "undefined" ? window : {});
+
+ var global$1 = (typeof global$2 !== "undefined" ? global$2 :
+ typeof self !== "undefined" ? self :
+ typeof window !== "undefined" ? window : {});
+
+ // shim for using process in browser
+ // based off https://github.com/defunctzombie/node-process/blob/master/browser.js
+
+ function defaultSetTimout$1() {
+ throw new Error('setTimeout has not been defined');
+ }
+ function defaultClearTimeout$1 () {
+ throw new Error('clearTimeout has not been defined');
+ }
+ var cachedSetTimeout$1 = defaultSetTimout$1;
+ var cachedClearTimeout$1 = defaultClearTimeout$1;
+ if (typeof global$1.setTimeout === 'function') {
+ cachedSetTimeout$1 = setTimeout;
+ }
+ if (typeof global$1.clearTimeout === 'function') {
+ cachedClearTimeout$1 = clearTimeout;
+ }
+
+ function runTimeout$1(fun) {
+ if (cachedSetTimeout$1 === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout$1 === defaultSetTimout$1 || !cachedSetTimeout$1) && setTimeout) {
+ cachedSetTimeout$1 = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout$1(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout$1.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout$1.call(this, fun, 0);
+ }
+ }
+
+
+ }
+ function runClearTimeout$1(marker) {
+ if (cachedClearTimeout$1 === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout$1 === defaultClearTimeout$1 || !cachedClearTimeout$1) && clearTimeout) {
+ cachedClearTimeout$1 = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout$1(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout$1.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout$1.call(this, marker);
+ }
+ }
+
+
+
+ }
+ var queue$1 = [];
+ var draining$1 = false;
+ var currentQueue$1;
+ var queueIndex$1 = -1;
+
+ function cleanUpNextTick$1() {
+ if (!draining$1 || !currentQueue$1) {
+ return;
+ }
+ draining$1 = false;
+ if (currentQueue$1.length) {
+ queue$1 = currentQueue$1.concat(queue$1);
+ } else {
+ queueIndex$1 = -1;
+ }
+ if (queue$1.length) {
+ drainQueue$1();
+ }
+ }
+
+ function drainQueue$1() {
+ if (draining$1) {
+ return;
+ }
+ var timeout = runTimeout$1(cleanUpNextTick$1);
+ draining$1 = true;
+
+ var len = queue$1.length;
+ while(len) {
+ currentQueue$1 = queue$1;
+ queue$1 = [];
+ while (++queueIndex$1 < len) {
+ if (currentQueue$1) {
+ currentQueue$1[queueIndex$1].run();
+ }
+ }
+ queueIndex$1 = -1;
+ len = queue$1.length;
+ }
+ currentQueue$1 = null;
+ draining$1 = false;
+ runClearTimeout$1(timeout);
+ }
+ function nextTick$1(fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ }
+ queue$1.push(new Item$1(fun, args));
+ if (queue$1.length === 1 && !draining$1) {
+ runTimeout$1(drainQueue$1);
+ }
+ }
+ // v8 likes predictible objects
+ function Item$1(fun, array) {
+ this.fun = fun;
+ this.array = array;
+ }
+ Item$1.prototype.run = function () {
+ this.fun.apply(null, this.array);
+ };
+ var title$1 = 'browser';
+ var platform$1 = 'browser';
+ var browser$4 = true;
+ var env$1 = {};
+ var argv$1 = [];
+ var version$2 = ''; // empty string to avoid regexp issues
+ var versions$1 = {};
+ var release$1 = {};
+ var config$1 = {};
+
+ function noop$1() {}
+
+ var on$1 = noop$1;
+ var addListener$1 = noop$1;
+ var once$1 = noop$1;
+ var off$1 = noop$1;
+ var removeListener$1 = noop$1;
+ var removeAllListeners$1 = noop$1;
+ var emit$1 = noop$1;
+
+ function binding$1(name) {
+ throw new Error('process.binding is not supported');
+ }
+
+ function cwd$1 () { return '/' }
+ function chdir$1 (dir) {
+ throw new Error('process.chdir is not supported');
+ }function umask$1() { return 0; }
+
+ // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js
+ var performance$1 = global$1.performance || {};
+ var performanceNow$1 =
+ performance$1.now ||
+ performance$1.mozNow ||
+ performance$1.msNow ||
+ performance$1.oNow ||
+ performance$1.webkitNow ||
+ function(){ return (new Date()).getTime() };
+
+ // generate timestamp or delta
+ // see http://nodejs.org/api/process.html#process_process_hrtime
+ function hrtime$1(previousTimestamp){
+ var clocktime = performanceNow$1.call(performance$1)*1e-3;
+ var seconds = Math.floor(clocktime);
+ var nanoseconds = Math.floor((clocktime%1)*1e9);
+ if (previousTimestamp) {
+ seconds = seconds - previousTimestamp[0];
+ nanoseconds = nanoseconds - previousTimestamp[1];
+ if (nanoseconds<0) {
+ seconds--;
+ nanoseconds += 1e9;
+ }
+ }
+ return [seconds,nanoseconds]
+ }
+
+ var startTime$1 = new Date();
+ function uptime$1() {
+ var currentTime = new Date();
+ var dif = currentTime - startTime$1;
+ return dif / 1000;
+ }
+
+ var process$1 = {
+ nextTick: nextTick$1,
+ title: title$1,
+ browser: browser$4,
+ env: env$1,
+ argv: argv$1,
+ version: version$2,
+ versions: versions$1,
+ on: on$1,
+ addListener: addListener$1,
+ once: once$1,
+ off: off$1,
+ removeListener: removeListener$1,
+ removeAllListeners: removeAllListeners$1,
+ emit: emit$1,
+ binding: binding$1,
+ cwd: cwd$1,
+ chdir: chdir$1,
+ umask: umask$1,
+ hrtime: hrtime$1,
+ platform: platform$1,
+ release: release$1,
+ config: config$1,
+ uptime: uptime$1
+ };
+
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+ function createCommonjsModule(fn, basedir, module) {
+ return module = {
+ path: basedir,
+ exports: {},
+ require: function (path, base) {
+ return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
+ }
+ }, fn(module, module.exports), module.exports;
+ }
+
+ function getCjsExportFromNamespace (n) {
+ return n && n['default'] || n;
+ }
+
+ function commonjsRequire () {
+ throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
+ }
+
+ var domain;
+
+ // This constructor is used to store event handlers. Instantiating this is
+ // faster than explicitly calling `Object.create(null)` to get a "clean" empty
+ // object (tested with v8 v4.9).
+ function EventHandlers() {}
+ EventHandlers.prototype = Object.create(null);
+
+ function EventEmitter$2() {
+ EventEmitter$2.init.call(this);
+ }
+
+ // nodejs oddity
+ // require('events') === require('events').EventEmitter
+ EventEmitter$2.EventEmitter = EventEmitter$2;
+
+ EventEmitter$2.usingDomains = false;
+
+ EventEmitter$2.prototype.domain = undefined;
+ EventEmitter$2.prototype._events = undefined;
+ EventEmitter$2.prototype._maxListeners = undefined;
+
+ // By default EventEmitters will print a warning if more than 10 listeners are
+ // added to it. This is a useful default which helps finding memory leaks.
+ EventEmitter$2.defaultMaxListeners = 10;
+
+ EventEmitter$2.init = function() {
+ this.domain = null;
+ if (EventEmitter$2.usingDomains) {
+ // if there is an active domain, then attach to it.
+ if (domain.active ) ;
+ }
+
+ if (!this._events || this._events === Object.getPrototypeOf(this)._events) {
+ this._events = new EventHandlers();
+ this._eventsCount = 0;
+ }
+
+ this._maxListeners = this._maxListeners || undefined;
+ };
+
+ // Obviously not all Emitters should be limited to 10. This function allows
+ // that to be increased. Set to zero for unlimited.
+ EventEmitter$2.prototype.setMaxListeners = function setMaxListeners(n) {
+ if (typeof n !== 'number' || n < 0 || isNaN(n))
+ throw new TypeError('"n" argument must be a positive number');
+ this._maxListeners = n;
+ return this;
+ };
+
+ function $getMaxListeners(that) {
+ if (that._maxListeners === undefined)
+ return EventEmitter$2.defaultMaxListeners;
+ return that._maxListeners;
+ }
+
+ EventEmitter$2.prototype.getMaxListeners = function getMaxListeners() {
+ return $getMaxListeners(this);
+ };
+
+ // These standalone emit* functions are used to optimize calling of event
+ // handlers for fast cases because emit() itself often has a variable number of
+ // arguments and can be deoptimized because of that. These functions always have
+ // the same number of arguments and thus do not get deoptimized, so the code
+ // inside them can execute faster.
+ function emitNone(handler, isFn, self) {
+ if (isFn)
+ handler.call(self);
+ else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ listeners[i].call(self);
+ }
+ }
+ function emitOne(handler, isFn, self, arg1) {
+ if (isFn)
+ handler.call(self, arg1);
+ else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ listeners[i].call(self, arg1);
+ }
+ }
+ function emitTwo(handler, isFn, self, arg1, arg2) {
+ if (isFn)
+ handler.call(self, arg1, arg2);
+ else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ listeners[i].call(self, arg1, arg2);
+ }
+ }
+ function emitThree(handler, isFn, self, arg1, arg2, arg3) {
+ if (isFn)
+ handler.call(self, arg1, arg2, arg3);
+ else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ listeners[i].call(self, arg1, arg2, arg3);
+ }
+ }
+
+ function emitMany(handler, isFn, self, args) {
+ if (isFn)
+ handler.apply(self, args);
+ else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ listeners[i].apply(self, args);
+ }
+ }
+
+ EventEmitter$2.prototype.emit = function emit(type) {
+ var er, handler, len, args, i, events, domain;
+ var doError = (type === 'error');
+
+ events = this._events;
+ if (events)
+ doError = (doError && events.error == null);
+ else if (!doError)
+ return false;
+
+ domain = this.domain;
+
+ // If there is no 'error' event listener then throw.
+ if (doError) {
+ er = arguments[1];
+ if (domain) {
+ if (!er)
+ er = new Error('Uncaught, unspecified "error" event');
+ er.domainEmitter = this;
+ er.domain = domain;
+ er.domainThrown = false;
+ domain.emit('error', er);
+ } else if (er instanceof Error) {
+ throw er; // Unhandled 'error' event
+ } else {
+ // At least give some kind of context to the user
+ var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
+ err.context = er;
+ throw err;
+ }
+ return false;
+ }
+
+ handler = events[type];
+
+ if (!handler)
+ return false;
+
+ var isFn = typeof handler === 'function';
+ len = arguments.length;
+ switch (len) {
+ // fast cases
+ case 1:
+ emitNone(handler, isFn, this);
+ break;
+ case 2:
+ emitOne(handler, isFn, this, arguments[1]);
+ break;
+ case 3:
+ emitTwo(handler, isFn, this, arguments[1], arguments[2]);
+ break;
+ case 4:
+ emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);
+ break;
+ // slower
+ default:
+ args = new Array(len - 1);
+ for (i = 1; i < len; i++)
+ args[i - 1] = arguments[i];
+ emitMany(handler, isFn, this, args);
+ }
+
+ return true;
+ };
+
+ function _addListener(target, type, listener, prepend) {
+ var m;
+ var events;
+ var existing;
+
+ if (typeof listener !== 'function')
+ throw new TypeError('"listener" argument must be a function');
+
+ events = target._events;
+ if (!events) {
+ events = target._events = new EventHandlers();
+ target._eventsCount = 0;
+ } else {
+ // To avoid recursion in the case that type === "newListener"! Before
+ // adding it to the listeners, first emit "newListener".
+ if (events.newListener) {
+ target.emit('newListener', type,
+ listener.listener ? listener.listener : listener);
+
+ // Re-assign `events` because a newListener handler could have caused the
+ // this._events to be assigned to a new object
+ events = target._events;
+ }
+ existing = events[type];
+ }
+
+ if (!existing) {
+ // Optimize the case of one listener. Don't need the extra array object.
+ existing = events[type] = listener;
+ ++target._eventsCount;
+ } else {
+ if (typeof existing === 'function') {
+ // Adding the second element, need to change to array.
+ existing = events[type] = prepend ? [listener, existing] :
+ [existing, listener];
+ } else {
+ // If we've already got an array, just append.
+ if (prepend) {
+ existing.unshift(listener);
+ } else {
+ existing.push(listener);
+ }
+ }
+
+ // Check for listener leak
+ if (!existing.warned) {
+ m = $getMaxListeners(target);
+ if (m && m > 0 && existing.length > m) {
+ existing.warned = true;
+ var w = new Error('Possible EventEmitter memory leak detected. ' +
+ existing.length + ' ' + type + ' listeners added. ' +
+ 'Use emitter.setMaxListeners() to increase limit');
+ w.name = 'MaxListenersExceededWarning';
+ w.emitter = target;
+ w.type = type;
+ w.count = existing.length;
+ emitWarning$1(w);
+ }
+ }
+ }
+
+ return target;
+ }
+ function emitWarning$1(e) {
+ typeof console.warn === 'function' ? console.warn(e) : console.log(e);
+ }
+ EventEmitter$2.prototype.addListener = function addListener(type, listener) {
+ return _addListener(this, type, listener, false);
+ };
+
+ EventEmitter$2.prototype.on = EventEmitter$2.prototype.addListener;
+
+ EventEmitter$2.prototype.prependListener =
+ function prependListener(type, listener) {
+ return _addListener(this, type, listener, true);
+ };
+
+ function _onceWrap(target, type, listener) {
+ var fired = false;
+ function g() {
+ target.removeListener(type, g);
+ if (!fired) {
+ fired = true;
+ listener.apply(target, arguments);
+ }
+ }
+ g.listener = listener;
+ return g;
+ }
+
+ EventEmitter$2.prototype.once = function once(type, listener) {
+ if (typeof listener !== 'function')
+ throw new TypeError('"listener" argument must be a function');
+ this.on(type, _onceWrap(this, type, listener));
+ return this;
+ };
+
+ EventEmitter$2.prototype.prependOnceListener =
+ function prependOnceListener(type, listener) {
+ if (typeof listener !== 'function')
+ throw new TypeError('"listener" argument must be a function');
+ this.prependListener(type, _onceWrap(this, type, listener));
+ return this;
+ };
+
+ // emits a 'removeListener' event iff the listener was removed
+ EventEmitter$2.prototype.removeListener =
+ function removeListener(type, listener) {
+ var list, events, position, i, originalListener;
+
+ if (typeof listener !== 'function')
+ throw new TypeError('"listener" argument must be a function');
+
+ events = this._events;
+ if (!events)
+ return this;
+
+ list = events[type];
+ if (!list)
+ return this;
+
+ if (list === listener || (list.listener && list.listener === listener)) {
+ if (--this._eventsCount === 0)
+ this._events = new EventHandlers();
+ else {
+ delete events[type];
+ if (events.removeListener)
+ this.emit('removeListener', type, list.listener || listener);
+ }
+ } else if (typeof list !== 'function') {
+ position = -1;
+
+ for (i = list.length; i-- > 0;) {
+ if (list[i] === listener ||
+ (list[i].listener && list[i].listener === listener)) {
+ originalListener = list[i].listener;
+ position = i;
+ break;
+ }
+ }
+
+ if (position < 0)
+ return this;
+
+ if (list.length === 1) {
+ list[0] = undefined;
+ if (--this._eventsCount === 0) {
+ this._events = new EventHandlers();
+ return this;
+ } else {
+ delete events[type];
+ }
+ } else {
+ spliceOne(list, position);
+ }
+
+ if (events.removeListener)
+ this.emit('removeListener', type, originalListener || listener);
+ }
+
+ return this;
+ };
+
+ EventEmitter$2.prototype.removeAllListeners =
+ function removeAllListeners(type) {
+ var listeners, events;
+
+ events = this._events;
+ if (!events)
+ return this;
+
+ // not listening for removeListener, no need to emit
+ if (!events.removeListener) {
+ if (arguments.length === 0) {
+ this._events = new EventHandlers();
+ this._eventsCount = 0;
+ } else if (events[type]) {
+ if (--this._eventsCount === 0)
+ this._events = new EventHandlers();
+ else
+ delete events[type];
+ }
+ return this;
+ }
+
+ // emit removeListener for all listeners on all events
+ if (arguments.length === 0) {
+ var keys = Object.keys(events);
+ for (var i = 0, key; i < keys.length; ++i) {
+ key = keys[i];
+ if (key === 'removeListener') continue;
+ this.removeAllListeners(key);
+ }
+ this.removeAllListeners('removeListener');
+ this._events = new EventHandlers();
+ this._eventsCount = 0;
+ return this;
+ }
+
+ listeners = events[type];
+
+ if (typeof listeners === 'function') {
+ this.removeListener(type, listeners);
+ } else if (listeners) {
+ // LIFO order
+ do {
+ this.removeListener(type, listeners[listeners.length - 1]);
+ } while (listeners[0]);
+ }
+
+ return this;
+ };
+
+ EventEmitter$2.prototype.listeners = function listeners(type) {
+ var evlistener;
+ var ret;
+ var events = this._events;
+
+ if (!events)
+ ret = [];
+ else {
+ evlistener = events[type];
+ if (!evlistener)
+ ret = [];
+ else if (typeof evlistener === 'function')
+ ret = [evlistener.listener || evlistener];
+ else
+ ret = unwrapListeners(evlistener);
+ }
+
+ return ret;
+ };
+
+ EventEmitter$2.listenerCount = function(emitter, type) {
+ if (typeof emitter.listenerCount === 'function') {
+ return emitter.listenerCount(type);
+ } else {
+ return listenerCount$1.call(emitter, type);
+ }
+ };
+
+ EventEmitter$2.prototype.listenerCount = listenerCount$1;
+ function listenerCount$1(type) {
+ var events = this._events;
+
+ if (events) {
+ var evlistener = events[type];
+
+ if (typeof evlistener === 'function') {
+ return 1;
+ } else if (evlistener) {
+ return evlistener.length;
+ }
+ }
+
+ return 0;
+ }
+
+ EventEmitter$2.prototype.eventNames = function eventNames() {
+ return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
+ };
+
+ // About 1.5x faster than the two-arg version of Array#splice().
+ function spliceOne(list, index) {
+ for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)
+ list[i] = list[k];
+ list.pop();
+ }
+
+ function arrayClone(arr, i) {
+ var copy = new Array(i);
+ while (i--)
+ copy[i] = arr[i];
+ return copy;
+ }
+
+ function unwrapListeners(arr) {
+ var ret = new Array(arr.length);
+ for (var i = 0; i < ret.length; ++i) {
+ ret[i] = arr[i].listener || arr[i];
+ }
+ return ret;
+ }
+
+ var lookup$1 = [];
+ var revLookup$1 = [];
+ var Arr$1 = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;
+ var inited$1 = false;
+ function init$1 () {
+ inited$1 = true;
+ var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+ for (var i = 0, len = code.length; i < len; ++i) {
+ lookup$1[i] = code[i];
+ revLookup$1[code.charCodeAt(i)] = i;
+ }
+
+ revLookup$1['-'.charCodeAt(0)] = 62;
+ revLookup$1['_'.charCodeAt(0)] = 63;
+ }
+
+ function toByteArray$1 (b64) {
+ if (!inited$1) {
+ init$1();
+ }
+ var i, j, l, tmp, placeHolders, arr;
+ var len = b64.length;
+
+ if (len % 4 > 0) {
+ throw new Error('Invalid string. Length must be a multiple of 4')
+ }
+
+ // the number of equal signs (place holders)
+ // if there are two placeholders, than the two characters before it
+ // represent one byte
+ // if there is only one, then the three characters before it represent 2 bytes
+ // this is just a cheap hack to not do indexOf twice
+ placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;
+
+ // base64 is 4/3 + up to two characters of the original data
+ arr = new Arr$1(len * 3 / 4 - placeHolders);
+
+ // if there are placeholders, only get up to the last complete 4 chars
+ l = placeHolders > 0 ? len - 4 : len;
+
+ var L = 0;
+
+ for (i = 0, j = 0; i < l; i += 4, j += 3) {
+ tmp = (revLookup$1[b64.charCodeAt(i)] << 18) | (revLookup$1[b64.charCodeAt(i + 1)] << 12) | (revLookup$1[b64.charCodeAt(i + 2)] << 6) | revLookup$1[b64.charCodeAt(i + 3)];
+ arr[L++] = (tmp >> 16) & 0xFF;
+ arr[L++] = (tmp >> 8) & 0xFF;
+ arr[L++] = tmp & 0xFF;
+ }
+
+ if (placeHolders === 2) {
+ tmp = (revLookup$1[b64.charCodeAt(i)] << 2) | (revLookup$1[b64.charCodeAt(i + 1)] >> 4);
+ arr[L++] = tmp & 0xFF;
+ } else if (placeHolders === 1) {
+ tmp = (revLookup$1[b64.charCodeAt(i)] << 10) | (revLookup$1[b64.charCodeAt(i + 1)] << 4) | (revLookup$1[b64.charCodeAt(i + 2)] >> 2);
+ arr[L++] = (tmp >> 8) & 0xFF;
+ arr[L++] = tmp & 0xFF;
+ }
+
+ return arr
+ }
+
+ function tripletToBase64$1 (num) {
+ return lookup$1[num >> 18 & 0x3F] + lookup$1[num >> 12 & 0x3F] + lookup$1[num >> 6 & 0x3F] + lookup$1[num & 0x3F]
+ }
+
+ function encodeChunk$1 (uint8, start, end) {
+ var tmp;
+ var output = [];
+ for (var i = start; i < end; i += 3) {
+ tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);
+ output.push(tripletToBase64$1(tmp));
+ }
+ return output.join('')
+ }
+
+ function fromByteArray$1 (uint8) {
+ if (!inited$1) {
+ init$1();
+ }
+ var tmp;
+ var len = uint8.length;
+ var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes
+ var output = '';
+ var parts = [];
+ var maxChunkLength = 16383; // must be multiple of 3
+
+ // go through the array every three bytes, we'll deal with trailing stuff later
+ for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
+ parts.push(encodeChunk$1(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));
+ }
+
+ // pad the end with zeros, but make sure to not forget the extra bytes
+ if (extraBytes === 1) {
+ tmp = uint8[len - 1];
+ output += lookup$1[tmp >> 2];
+ output += lookup$1[(tmp << 4) & 0x3F];
+ output += '==';
+ } else if (extraBytes === 2) {
+ tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);
+ output += lookup$1[tmp >> 10];
+ output += lookup$1[(tmp >> 4) & 0x3F];
+ output += lookup$1[(tmp << 2) & 0x3F];
+ output += '=';
+ }
+
+ parts.push(output);
+
+ return parts.join('')
+ }
+
+ function read$1 (buffer, offset, isLE, mLen, nBytes) {
+ var e, m;
+ var eLen = nBytes * 8 - mLen - 1;
+ var eMax = (1 << eLen) - 1;
+ var eBias = eMax >> 1;
+ var nBits = -7;
+ var i = isLE ? (nBytes - 1) : 0;
+ var d = isLE ? -1 : 1;
+ var s = buffer[offset + i];
+
+ i += d;
+
+ e = s & ((1 << (-nBits)) - 1);
+ s >>= (-nBits);
+ nBits += eLen;
+ for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
+
+ m = e & ((1 << (-nBits)) - 1);
+ e >>= (-nBits);
+ nBits += mLen;
+ for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
+
+ if (e === 0) {
+ e = 1 - eBias;
+ } else if (e === eMax) {
+ return m ? NaN : ((s ? -1 : 1) * Infinity)
+ } else {
+ m = m + Math.pow(2, mLen);
+ e = e - eBias;
+ }
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+ }
+
+ function write$1 (buffer, value, offset, isLE, mLen, nBytes) {
+ var e, m, c;
+ var eLen = nBytes * 8 - mLen - 1;
+ var eMax = (1 << eLen) - 1;
+ var eBias = eMax >> 1;
+ var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);
+ var i = isLE ? 0 : (nBytes - 1);
+ var d = isLE ? 1 : -1;
+ var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;
+
+ value = Math.abs(value);
+
+ if (isNaN(value) || value === Infinity) {
+ m = isNaN(value) ? 1 : 0;
+ e = eMax;
+ } else {
+ e = Math.floor(Math.log(value) / Math.LN2);
+ if (value * (c = Math.pow(2, -e)) < 1) {
+ e--;
+ c *= 2;
+ }
+ if (e + eBias >= 1) {
+ value += rt / c;
+ } else {
+ value += rt * Math.pow(2, 1 - eBias);
+ }
+ if (value * c >= 2) {
+ e++;
+ c /= 2;
+ }
+
+ if (e + eBias >= eMax) {
+ m = 0;
+ e = eMax;
+ } else if (e + eBias >= 1) {
+ m = (value * c - 1) * Math.pow(2, mLen);
+ e = e + eBias;
+ } else {
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
+ e = 0;
+ }
+ }
+
+ for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
+
+ e = (e << mLen) | m;
+ eLen += mLen;
+ for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
+
+ buffer[offset + i - d] |= s * 128;
+ }
+
+ var toString$2 = {}.toString;
+
+ var isArray$2 = Array.isArray || function (arr) {
+ return toString$2.call(arr) == '[object Array]';
+ };
+
+ var INSPECT_MAX_BYTES$1 = 50;
+
+ /**
+ * If `Buffer.TYPED_ARRAY_SUPPORT`:
+ * === true Use Uint8Array implementation (fastest)
+ * === false Use Object implementation (most compatible, even IE6)
+ *
+ * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
+ * Opera 11.6+, iOS 4.2+.
+ *
+ * Due to various browser bugs, sometimes the Object implementation will be used even
+ * when the browser supports typed arrays.
+ *
+ * Note:
+ *
+ * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
+ * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
+ *
+ * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
+ *
+ * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
+ * incorrect length in some situations.
+
+ * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
+ * get the Object implementation, which is slower but behaves correctly.
+ */
+ Buffer$1.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined
+ ? global$1.TYPED_ARRAY_SUPPORT
+ : true;
+
+ function kMaxLength$1 () {
+ return Buffer$1.TYPED_ARRAY_SUPPORT
+ ? 0x7fffffff
+ : 0x3fffffff
+ }
+
+ function createBuffer$1 (that, length) {
+ if (kMaxLength$1() < length) {
+ throw new RangeError('Invalid typed array length')
+ }
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = new Uint8Array(length);
+ that.__proto__ = Buffer$1.prototype;
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ if (that === null) {
+ that = new Buffer$1(length);
+ }
+ that.length = length;
+ }
+
+ return that
+ }
+
+ /**
+ * The Buffer constructor returns instances of `Uint8Array` that have their
+ * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
+ * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
+ * and the `Uint8Array` methods. Square bracket notation works as expected -- it
+ * returns a single octet.
+ *
+ * The `Uint8Array` prototype remains unmodified.
+ */
+
+ function Buffer$1 (arg, encodingOrOffset, length) {
+ if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) {
+ return new Buffer$1(arg, encodingOrOffset, length)
+ }
+
+ // Common case.
+ if (typeof arg === 'number') {
+ if (typeof encodingOrOffset === 'string') {
+ throw new Error(
+ 'If encoding is specified then the first argument must be a string'
+ )
+ }
+ return allocUnsafe$1(this, arg)
+ }
+ return from$1(this, arg, encodingOrOffset, length)
+ }
+
+ Buffer$1.poolSize = 8192; // not used by this implementation
+
+ // TODO: Legacy, not needed anymore. Remove in next major version.
+ Buffer$1._augment = function (arr) {
+ arr.__proto__ = Buffer$1.prototype;
+ return arr
+ };
+
+ function from$1 (that, value, encodingOrOffset, length) {
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number')
+ }
+
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ return fromArrayBuffer$1(that, value, encodingOrOffset, length)
+ }
+
+ if (typeof value === 'string') {
+ return fromString$1(that, value, encodingOrOffset)
+ }
+
+ return fromObject$1(that, value)
+ }
+
+ /**
+ * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
+ * if value is a number.
+ * Buffer.from(str[, encoding])
+ * Buffer.from(array)
+ * Buffer.from(buffer)
+ * Buffer.from(arrayBuffer[, byteOffset[, length]])
+ **/
+ Buffer$1.from = function (value, encodingOrOffset, length) {
+ return from$1(null, value, encodingOrOffset, length)
+ };
+
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ Buffer$1.prototype.__proto__ = Uint8Array.prototype;
+ Buffer$1.__proto__ = Uint8Array;
+ }
+
+ function assertSize$1 (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('"size" argument must be a number')
+ } else if (size < 0) {
+ throw new RangeError('"size" argument must not be negative')
+ }
+ }
+
+ function alloc$1 (that, size, fill, encoding) {
+ assertSize$1(size);
+ if (size <= 0) {
+ return createBuffer$1(that, size)
+ }
+ if (fill !== undefined) {
+ // Only pay attention to encoding if it's a string. This
+ // prevents accidentally sending in a number that would
+ // be interpretted as a start offset.
+ return typeof encoding === 'string'
+ ? createBuffer$1(that, size).fill(fill, encoding)
+ : createBuffer$1(that, size).fill(fill)
+ }
+ return createBuffer$1(that, size)
+ }
+
+ /**
+ * Creates a new filled Buffer instance.
+ * alloc(size[, fill[, encoding]])
+ **/
+ Buffer$1.alloc = function (size, fill, encoding) {
+ return alloc$1(null, size, fill, encoding)
+ };
+
+ function allocUnsafe$1 (that, size) {
+ assertSize$1(size);
+ that = createBuffer$1(that, size < 0 ? 0 : checked$1(size) | 0);
+ if (!Buffer$1.TYPED_ARRAY_SUPPORT) {
+ for (var i = 0; i < size; ++i) {
+ that[i] = 0;
+ }
+ }
+ return that
+ }
+
+ /**
+ * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
+ * */
+ Buffer$1.allocUnsafe = function (size) {
+ return allocUnsafe$1(null, size)
+ };
+ /**
+ * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
+ */
+ Buffer$1.allocUnsafeSlow = function (size) {
+ return allocUnsafe$1(null, size)
+ };
+
+ function fromString$1 (that, string, encoding) {
+ if (typeof encoding !== 'string' || encoding === '') {
+ encoding = 'utf8';
+ }
+
+ if (!Buffer$1.isEncoding(encoding)) {
+ throw new TypeError('"encoding" must be a valid string encoding')
+ }
+
+ var length = byteLength$1(string, encoding) | 0;
+ that = createBuffer$1(that, length);
+
+ var actual = that.write(string, encoding);
+
+ if (actual !== length) {
+ // Writing a hex string, for example, that contains invalid characters will
+ // cause everything after the first invalid character to be ignored. (e.g.
+ // 'abxxcd' will be treated as 'ab')
+ that = that.slice(0, actual);
+ }
+
+ return that
+ }
+
+ function fromArrayLike$1 (that, array) {
+ var length = array.length < 0 ? 0 : checked$1(array.length) | 0;
+ that = createBuffer$1(that, length);
+ for (var i = 0; i < length; i += 1) {
+ that[i] = array[i] & 255;
+ }
+ return that
+ }
+
+ function fromArrayBuffer$1 (that, array, byteOffset, length) {
+ array.byteLength; // this throws if `array` is not a valid ArrayBuffer
+
+ if (byteOffset < 0 || array.byteLength < byteOffset) {
+ throw new RangeError('\'offset\' is out of bounds')
+ }
+
+ if (array.byteLength < byteOffset + (length || 0)) {
+ throw new RangeError('\'length\' is out of bounds')
+ }
+
+ if (byteOffset === undefined && length === undefined) {
+ array = new Uint8Array(array);
+ } else if (length === undefined) {
+ array = new Uint8Array(array, byteOffset);
+ } else {
+ array = new Uint8Array(array, byteOffset, length);
+ }
+
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = array;
+ that.__proto__ = Buffer$1.prototype;
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ that = fromArrayLike$1(that, array);
+ }
+ return that
+ }
+
+ function fromObject$1 (that, obj) {
+ if (internalIsBuffer$1(obj)) {
+ var len = checked$1(obj.length) | 0;
+ that = createBuffer$1(that, len);
+
+ if (that.length === 0) {
+ return that
+ }
+
+ obj.copy(that, 0, 0, len);
+ return that
+ }
+
+ if (obj) {
+ if ((typeof ArrayBuffer !== 'undefined' &&
+ obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
+ if (typeof obj.length !== 'number' || isnan$1(obj.length)) {
+ return createBuffer$1(that, 0)
+ }
+ return fromArrayLike$1(that, obj)
+ }
+
+ if (obj.type === 'Buffer' && isArray$2(obj.data)) {
+ return fromArrayLike$1(that, obj.data)
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
+ }
+
+ function checked$1 (length) {
+ // Note: cannot use `length < kMaxLength()` here because that fails when
+ // length is NaN (which is otherwise coerced to zero.)
+ if (length >= kMaxLength$1()) {
+ throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
+ 'size: 0x' + kMaxLength$1().toString(16) + ' bytes')
+ }
+ return length | 0
+ }
+ Buffer$1.isBuffer = isBuffer$2;
+ function internalIsBuffer$1 (b) {
+ return !!(b != null && b._isBuffer)
+ }
+
+ Buffer$1.compare = function compare (a, b) {
+ if (!internalIsBuffer$1(a) || !internalIsBuffer$1(b)) {
+ throw new TypeError('Arguments must be Buffers')
+ }
+
+ if (a === b) return 0
+
+ var x = a.length;
+ var y = b.length;
+
+ for (var i = 0, len = Math.min(x, y); i < len; ++i) {
+ if (a[i] !== b[i]) {
+ x = a[i];
+ y = b[i];
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+ };
+
+ Buffer$1.isEncoding = function isEncoding (encoding) {
+ switch (String(encoding).toLowerCase()) {
+ case 'hex':
+ case 'utf8':
+ case 'utf-8':
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ case 'base64':
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return true
+ default:
+ return false
+ }
+ };
+
+ Buffer$1.concat = function concat (list, length) {
+ if (!isArray$2(list)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+
+ if (list.length === 0) {
+ return Buffer$1.alloc(0)
+ }
+
+ var i;
+ if (length === undefined) {
+ length = 0;
+ for (i = 0; i < list.length; ++i) {
+ length += list[i].length;
+ }
+ }
+
+ var buffer = Buffer$1.allocUnsafe(length);
+ var pos = 0;
+ for (i = 0; i < list.length; ++i) {
+ var buf = list[i];
+ if (!internalIsBuffer$1(buf)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+ buf.copy(buffer, pos);
+ pos += buf.length;
+ }
+ return buffer
+ };
+
+ function byteLength$1 (string, encoding) {
+ if (internalIsBuffer$1(string)) {
+ return string.length
+ }
+ if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
+ (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
+ return string.byteLength
+ }
+ if (typeof string !== 'string') {
+ string = '' + string;
+ }
+
+ var len = string.length;
+ if (len === 0) return 0
+
+ // Use a for loop to avoid recursion
+ var loweredCase = false;
+ for (;;) {
+ switch (encoding) {
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ return len
+ case 'utf8':
+ case 'utf-8':
+ case undefined:
+ return utf8ToBytes$1(string).length
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return len * 2
+ case 'hex':
+ return len >>> 1
+ case 'base64':
+ return base64ToBytes$1(string).length
+ default:
+ if (loweredCase) return utf8ToBytes$1(string).length // assume utf8
+ encoding = ('' + encoding).toLowerCase();
+ loweredCase = true;
+ }
+ }
+ }
+ Buffer$1.byteLength = byteLength$1;
+
+ function slowToString$1 (encoding, start, end) {
+ var loweredCase = false;
+
+ // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
+ // property of a typed array.
+
+ // This behaves neither like String nor Uint8Array in that we set start/end
+ // to their upper/lower bounds if the value passed is out of range.
+ // undefined is handled specially as per ECMA-262 6th Edition,
+ // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
+ if (start === undefined || start < 0) {
+ start = 0;
+ }
+ // Return early if start > this.length. Done here to prevent potential uint32
+ // coercion fail below.
+ if (start > this.length) {
+ return ''
+ }
+
+ if (end === undefined || end > this.length) {
+ end = this.length;
+ }
+
+ if (end <= 0) {
+ return ''
+ }
+
+ // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
+ end >>>= 0;
+ start >>>= 0;
+
+ if (end <= start) {
+ return ''
+ }
+
+ if (!encoding) encoding = 'utf8';
+
+ while (true) {
+ switch (encoding) {
+ case 'hex':
+ return hexSlice$1(this, start, end)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Slice$1(this, start, end)
+
+ case 'ascii':
+ return asciiSlice$1(this, start, end)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Slice$1(this, start, end)
+
+ case 'base64':
+ return base64Slice$1(this, start, end)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return utf16leSlice$1(this, start, end)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = (encoding + '').toLowerCase();
+ loweredCase = true;
+ }
+ }
+ }
+
+ // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
+ // Buffer instances.
+ Buffer$1.prototype._isBuffer = true;
+
+ function swap$1 (b, n, m) {
+ var i = b[n];
+ b[n] = b[m];
+ b[m] = i;
+ }
+
+ Buffer$1.prototype.swap16 = function swap16 () {
+ var len = this.length;
+ if (len % 2 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 16-bits')
+ }
+ for (var i = 0; i < len; i += 2) {
+ swap$1(this, i, i + 1);
+ }
+ return this
+ };
+
+ Buffer$1.prototype.swap32 = function swap32 () {
+ var len = this.length;
+ if (len % 4 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 32-bits')
+ }
+ for (var i = 0; i < len; i += 4) {
+ swap$1(this, i, i + 3);
+ swap$1(this, i + 1, i + 2);
+ }
+ return this
+ };
+
+ Buffer$1.prototype.swap64 = function swap64 () {
+ var len = this.length;
+ if (len % 8 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 64-bits')
+ }
+ for (var i = 0; i < len; i += 8) {
+ swap$1(this, i, i + 7);
+ swap$1(this, i + 1, i + 6);
+ swap$1(this, i + 2, i + 5);
+ swap$1(this, i + 3, i + 4);
+ }
+ return this
+ };
+
+ Buffer$1.prototype.toString = function toString () {
+ var length = this.length | 0;
+ if (length === 0) return ''
+ if (arguments.length === 0) return utf8Slice$1(this, 0, length)
+ return slowToString$1.apply(this, arguments)
+ };
+
+ Buffer$1.prototype.equals = function equals (b) {
+ if (!internalIsBuffer$1(b)) throw new TypeError('Argument must be a Buffer')
+ if (this === b) return true
+ return Buffer$1.compare(this, b) === 0
+ };
+
+ Buffer$1.prototype.inspect = function inspect () {
+ var str = '';
+ var max = INSPECT_MAX_BYTES$1;
+ if (this.length > 0) {
+ str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');
+ if (this.length > max) str += ' ... ';
+ }
+ return '<Buffer ' + str + '>'
+ };
+
+ Buffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
+ if (!internalIsBuffer$1(target)) {
+ throw new TypeError('Argument must be a Buffer')
+ }
+
+ if (start === undefined) {
+ start = 0;
+ }
+ if (end === undefined) {
+ end = target ? target.length : 0;
+ }
+ if (thisStart === undefined) {
+ thisStart = 0;
+ }
+ if (thisEnd === undefined) {
+ thisEnd = this.length;
+ }
+
+ if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
+ throw new RangeError('out of range index')
+ }
+
+ if (thisStart >= thisEnd && start >= end) {
+ return 0
+ }
+ if (thisStart >= thisEnd) {
+ return -1
+ }
+ if (start >= end) {
+ return 1
+ }
+
+ start >>>= 0;
+ end >>>= 0;
+ thisStart >>>= 0;
+ thisEnd >>>= 0;
+
+ if (this === target) return 0
+
+ var x = thisEnd - thisStart;
+ var y = end - start;
+ var len = Math.min(x, y);
+
+ var thisCopy = this.slice(thisStart, thisEnd);
+ var targetCopy = target.slice(start, end);
+
+ for (var i = 0; i < len; ++i) {
+ if (thisCopy[i] !== targetCopy[i]) {
+ x = thisCopy[i];
+ y = targetCopy[i];
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+ };
+
+ // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
+ // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
+ //
+ // Arguments:
+ // - buffer - a Buffer to search
+ // - val - a string, Buffer, or number
+ // - byteOffset - an index into `buffer`; will be clamped to an int32
+ // - encoding - an optional encoding, relevant is val is a string
+ // - dir - true for indexOf, false for lastIndexOf
+ function bidirectionalIndexOf$1 (buffer, val, byteOffset, encoding, dir) {
+ // Empty buffer means no match
+ if (buffer.length === 0) return -1
+
+ // Normalize byteOffset
+ if (typeof byteOffset === 'string') {
+ encoding = byteOffset;
+ byteOffset = 0;
+ } else if (byteOffset > 0x7fffffff) {
+ byteOffset = 0x7fffffff;
+ } else if (byteOffset < -0x80000000) {
+ byteOffset = -0x80000000;
+ }
+ byteOffset = +byteOffset; // Coerce to Number.
+ if (isNaN(byteOffset)) {
+ // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
+ byteOffset = dir ? 0 : (buffer.length - 1);
+ }
+
+ // Normalize byteOffset: negative offsets start from the end of the buffer
+ if (byteOffset < 0) byteOffset = buffer.length + byteOffset;
+ if (byteOffset >= buffer.length) {
+ if (dir) return -1
+ else byteOffset = buffer.length - 1;
+ } else if (byteOffset < 0) {
+ if (dir) byteOffset = 0;
+ else return -1
+ }
+
+ // Normalize val
+ if (typeof val === 'string') {
+ val = Buffer$1.from(val, encoding);
+ }
+
+ // Finally, search either indexOf (if dir is true) or lastIndexOf
+ if (internalIsBuffer$1(val)) {
+ // Special case: looking for empty string/buffer always fails
+ if (val.length === 0) {
+ return -1
+ }
+ return arrayIndexOf$1(buffer, val, byteOffset, encoding, dir)
+ } else if (typeof val === 'number') {
+ val = val & 0xFF; // Search for a byte value [0-255]
+ if (Buffer$1.TYPED_ARRAY_SUPPORT &&
+ typeof Uint8Array.prototype.indexOf === 'function') {
+ if (dir) {
+ return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
+ } else {
+ return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
+ }
+ }
+ return arrayIndexOf$1(buffer, [ val ], byteOffset, encoding, dir)
+ }
+
+ throw new TypeError('val must be string, number or Buffer')
+ }
+
+ function arrayIndexOf$1 (arr, val, byteOffset, encoding, dir) {
+ var indexSize = 1;
+ var arrLength = arr.length;
+ var valLength = val.length;
+
+ if (encoding !== undefined) {
+ encoding = String(encoding).toLowerCase();
+ if (encoding === 'ucs2' || encoding === 'ucs-2' ||
+ encoding === 'utf16le' || encoding === 'utf-16le') {
+ if (arr.length < 2 || val.length < 2) {
+ return -1
+ }
+ indexSize = 2;
+ arrLength /= 2;
+ valLength /= 2;
+ byteOffset /= 2;
+ }
+ }
+
+ function read (buf, i) {
+ if (indexSize === 1) {
+ return buf[i]
+ } else {
+ return buf.readUInt16BE(i * indexSize)
+ }
+ }
+
+ var i;
+ if (dir) {
+ var foundIndex = -1;
+ for (i = byteOffset; i < arrLength; i++) {
+ if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
+ if (foundIndex === -1) foundIndex = i;
+ if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
+ } else {
+ if (foundIndex !== -1) i -= i - foundIndex;
+ foundIndex = -1;
+ }
+ }
+ } else {
+ if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;
+ for (i = byteOffset; i >= 0; i--) {
+ var found = true;
+ for (var j = 0; j < valLength; j++) {
+ if (read(arr, i + j) !== read(val, j)) {
+ found = false;
+ break
+ }
+ }
+ if (found) return i
+ }
+ }
+
+ return -1
+ }
+
+ Buffer$1.prototype.includes = function includes (val, byteOffset, encoding) {
+ return this.indexOf(val, byteOffset, encoding) !== -1
+ };
+
+ Buffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf$1(this, val, byteOffset, encoding, true)
+ };
+
+ Buffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf$1(this, val, byteOffset, encoding, false)
+ };
+
+ function hexWrite$1 (buf, string, offset, length) {
+ offset = Number(offset) || 0;
+ var remaining = buf.length - offset;
+ if (!length) {
+ length = remaining;
+ } else {
+ length = Number(length);
+ if (length > remaining) {
+ length = remaining;
+ }
+ }
+
+ // must be an even number of digits
+ var strLen = string.length;
+ if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
+
+ if (length > strLen / 2) {
+ length = strLen / 2;
+ }
+ for (var i = 0; i < length; ++i) {
+ var parsed = parseInt(string.substr(i * 2, 2), 16);
+ if (isNaN(parsed)) return i
+ buf[offset + i] = parsed;
+ }
+ return i
+ }
+
+ function utf8Write$1 (buf, string, offset, length) {
+ return blitBuffer$1(utf8ToBytes$1(string, buf.length - offset), buf, offset, length)
+ }
+
+ function asciiWrite$1 (buf, string, offset, length) {
+ return blitBuffer$1(asciiToBytes$1(string), buf, offset, length)
+ }
+
+ function latin1Write$1 (buf, string, offset, length) {
+ return asciiWrite$1(buf, string, offset, length)
+ }
+
+ function base64Write$1 (buf, string, offset, length) {
+ return blitBuffer$1(base64ToBytes$1(string), buf, offset, length)
+ }
+
+ function ucs2Write$1 (buf, string, offset, length) {
+ return blitBuffer$1(utf16leToBytes$1(string, buf.length - offset), buf, offset, length)
+ }
+
+ Buffer$1.prototype.write = function write (string, offset, length, encoding) {
+ // Buffer#write(string)
+ if (offset === undefined) {
+ encoding = 'utf8';
+ length = this.length;
+ offset = 0;
+ // Buffer#write(string, encoding)
+ } else if (length === undefined && typeof offset === 'string') {
+ encoding = offset;
+ length = this.length;
+ offset = 0;
+ // Buffer#write(string, offset[, length][, encoding])
+ } else if (isFinite(offset)) {
+ offset = offset | 0;
+ if (isFinite(length)) {
+ length = length | 0;
+ if (encoding === undefined) encoding = 'utf8';
+ } else {
+ encoding = length;
+ length = undefined;
+ }
+ // legacy write(string, encoding, offset, length) - remove in v0.13
+ } else {
+ throw new Error(
+ 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
+ )
+ }
+
+ var remaining = this.length - offset;
+ if (length === undefined || length > remaining) length = remaining;
+
+ if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
+ throw new RangeError('Attempt to write outside buffer bounds')
+ }
+
+ if (!encoding) encoding = 'utf8';
+
+ var loweredCase = false;
+ for (;;) {
+ switch (encoding) {
+ case 'hex':
+ return hexWrite$1(this, string, offset, length)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Write$1(this, string, offset, length)
+
+ case 'ascii':
+ return asciiWrite$1(this, string, offset, length)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Write$1(this, string, offset, length)
+
+ case 'base64':
+ // Warning: maxLength not taken into account in base64Write
+ return base64Write$1(this, string, offset, length)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return ucs2Write$1(this, string, offset, length)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = ('' + encoding).toLowerCase();
+ loweredCase = true;
+ }
+ }
+ };
+
+ Buffer$1.prototype.toJSON = function toJSON () {
+ return {
+ type: 'Buffer',
+ data: Array.prototype.slice.call(this._arr || this, 0)
+ }
+ };
+
+ function base64Slice$1 (buf, start, end) {
+ if (start === 0 && end === buf.length) {
+ return fromByteArray$1(buf)
+ } else {
+ return fromByteArray$1(buf.slice(start, end))
+ }
+ }
+
+ function utf8Slice$1 (buf, start, end) {
+ end = Math.min(buf.length, end);
+ var res = [];
+
+ var i = start;
+ while (i < end) {
+ var firstByte = buf[i];
+ var codePoint = null;
+ var bytesPerSequence = (firstByte > 0xEF) ? 4
+ : (firstByte > 0xDF) ? 3
+ : (firstByte > 0xBF) ? 2
+ : 1;
+
+ if (i + bytesPerSequence <= end) {
+ var secondByte, thirdByte, fourthByte, tempCodePoint;
+
+ switch (bytesPerSequence) {
+ case 1:
+ if (firstByte < 0x80) {
+ codePoint = firstByte;
+ }
+ break
+ case 2:
+ secondByte = buf[i + 1];
+ if ((secondByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);
+ if (tempCodePoint > 0x7F) {
+ codePoint = tempCodePoint;
+ }
+ }
+ break
+ case 3:
+ secondByte = buf[i + 1];
+ thirdByte = buf[i + 2];
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);
+ if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
+ codePoint = tempCodePoint;
+ }
+ }
+ break
+ case 4:
+ secondByte = buf[i + 1];
+ thirdByte = buf[i + 2];
+ fourthByte = buf[i + 3];
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);
+ if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
+ codePoint = tempCodePoint;
+ }
+ }
+ }
+ }
+
+ if (codePoint === null) {
+ // we did not generate a valid codePoint so insert a
+ // replacement char (U+FFFD) and advance only 1 byte
+ codePoint = 0xFFFD;
+ bytesPerSequence = 1;
+ } else if (codePoint > 0xFFFF) {
+ // encode to utf16 (surrogate pair dance)
+ codePoint -= 0x10000;
+ res.push(codePoint >>> 10 & 0x3FF | 0xD800);
+ codePoint = 0xDC00 | codePoint & 0x3FF;
+ }
+
+ res.push(codePoint);
+ i += bytesPerSequence;
+ }
+
+ return decodeCodePointsArray$1(res)
+ }
+
+ // Based on http://stackoverflow.com/a/22747272/680742, the browser with
+ // the lowest limit is Chrome, with 0x10000 args.
+ // We go 1 magnitude less, for safety
+ var MAX_ARGUMENTS_LENGTH$1 = 0x1000;
+
+ function decodeCodePointsArray$1 (codePoints) {
+ var len = codePoints.length;
+ if (len <= MAX_ARGUMENTS_LENGTH$1) {
+ return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
+ }
+
+ // Decode in chunks to avoid "call stack size exceeded".
+ var res = '';
+ var i = 0;
+ while (i < len) {
+ res += String.fromCharCode.apply(
+ String,
+ codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH$1)
+ );
+ }
+ return res
+ }
+
+ function asciiSlice$1 (buf, start, end) {
+ var ret = '';
+ end = Math.min(buf.length, end);
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i] & 0x7F);
+ }
+ return ret
+ }
+
+ function latin1Slice$1 (buf, start, end) {
+ var ret = '';
+ end = Math.min(buf.length, end);
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i]);
+ }
+ return ret
+ }
+
+ function hexSlice$1 (buf, start, end) {
+ var len = buf.length;
+
+ if (!start || start < 0) start = 0;
+ if (!end || end < 0 || end > len) end = len;
+
+ var out = '';
+ for (var i = start; i < end; ++i) {
+ out += toHex$1(buf[i]);
+ }
+ return out
+ }
+
+ function utf16leSlice$1 (buf, start, end) {
+ var bytes = buf.slice(start, end);
+ var res = '';
+ for (var i = 0; i < bytes.length; i += 2) {
+ res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);
+ }
+ return res
+ }
+
+ Buffer$1.prototype.slice = function slice (start, end) {
+ var len = this.length;
+ start = ~~start;
+ end = end === undefined ? len : ~~end;
+
+ if (start < 0) {
+ start += len;
+ if (start < 0) start = 0;
+ } else if (start > len) {
+ start = len;
+ }
+
+ if (end < 0) {
+ end += len;
+ if (end < 0) end = 0;
+ } else if (end > len) {
+ end = len;
+ }
+
+ if (end < start) end = start;
+
+ var newBuf;
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ newBuf = this.subarray(start, end);
+ newBuf.__proto__ = Buffer$1.prototype;
+ } else {
+ var sliceLen = end - start;
+ newBuf = new Buffer$1(sliceLen, undefined);
+ for (var i = 0; i < sliceLen; ++i) {
+ newBuf[i] = this[i + start];
+ }
+ }
+
+ return newBuf
+ };
+
+ /*
+ * Need to make sure that buffer isn't trying to write out of bounds.
+ */
+ function checkOffset$1 (offset, ext, length) {
+ if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
+ if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
+ }
+
+ Buffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) checkOffset$1(offset, byteLength, this.length);
+
+ var val = this[offset];
+ var mul = 1;
+ var i = 0;
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul;
+ }
+
+ return val
+ };
+
+ Buffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) {
+ checkOffset$1(offset, byteLength, this.length);
+ }
+
+ var val = this[offset + --byteLength];
+ var mul = 1;
+ while (byteLength > 0 && (mul *= 0x100)) {
+ val += this[offset + --byteLength] * mul;
+ }
+
+ return val
+ };
+
+ Buffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 1, this.length);
+ return this[offset]
+ };
+
+ Buffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 2, this.length);
+ return this[offset] | (this[offset + 1] << 8)
+ };
+
+ Buffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 2, this.length);
+ return (this[offset] << 8) | this[offset + 1]
+ };
+
+ Buffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 4, this.length);
+
+ return ((this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16)) +
+ (this[offset + 3] * 0x1000000)
+ };
+
+ Buffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 4, this.length);
+
+ return (this[offset] * 0x1000000) +
+ ((this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ this[offset + 3])
+ };
+
+ Buffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) checkOffset$1(offset, byteLength, this.length);
+
+ var val = this[offset];
+ var mul = 1;
+ var i = 0;
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul;
+ }
+ mul *= 0x80;
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength);
+
+ return val
+ };
+
+ Buffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) checkOffset$1(offset, byteLength, this.length);
+
+ var i = byteLength;
+ var mul = 1;
+ var val = this[offset + --i];
+ while (i > 0 && (mul *= 0x100)) {
+ val += this[offset + --i] * mul;
+ }
+ mul *= 0x80;
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength);
+
+ return val
+ };
+
+ Buffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 1, this.length);
+ if (!(this[offset] & 0x80)) return (this[offset])
+ return ((0xff - this[offset] + 1) * -1)
+ };
+
+ Buffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 2, this.length);
+ var val = this[offset] | (this[offset + 1] << 8);
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+ };
+
+ Buffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 2, this.length);
+ var val = this[offset + 1] | (this[offset] << 8);
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+ };
+
+ Buffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 4, this.length);
+
+ return (this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16) |
+ (this[offset + 3] << 24)
+ };
+
+ Buffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 4, this.length);
+
+ return (this[offset] << 24) |
+ (this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ (this[offset + 3])
+ };
+
+ Buffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 4, this.length);
+ return read$1(this, offset, true, 23, 4)
+ };
+
+ Buffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 4, this.length);
+ return read$1(this, offset, false, 23, 4)
+ };
+
+ Buffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 8, this.length);
+ return read$1(this, offset, true, 52, 8)
+ };
+
+ Buffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
+ if (!noAssert) checkOffset$1(offset, 8, this.length);
+ return read$1(this, offset, false, 52, 8)
+ };
+
+ function checkInt$1 (buf, value, offset, ext, max, min) {
+ if (!internalIsBuffer$1(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
+ if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ }
+
+ Buffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1;
+ checkInt$1(this, value, offset, byteLength, maxBytes, 0);
+ }
+
+ var mul = 1;
+ var i = 0;
+ this[offset] = value & 0xFF;
+ while (++i < byteLength && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1;
+ checkInt$1(this, value, offset, byteLength, maxBytes, 0);
+ }
+
+ var i = byteLength - 1;
+ var mul = 1;
+ this[offset + i] = value & 0xFF;
+ while (--i >= 0 && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 1, 0xff, 0);
+ if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);
+ this[offset] = (value & 0xff);
+ return offset + 1
+ };
+
+ function objectWriteUInt16$1 (buf, value, offset, littleEndian) {
+ if (value < 0) value = 0xffff + value + 1;
+ for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
+ buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
+ (littleEndian ? i : 1 - i) * 8;
+ }
+ }
+
+ Buffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 2, 0xffff, 0);
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff);
+ this[offset + 1] = (value >>> 8);
+ } else {
+ objectWriteUInt16$1(this, value, offset, true);
+ }
+ return offset + 2
+ };
+
+ Buffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 2, 0xffff, 0);
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 8);
+ this[offset + 1] = (value & 0xff);
+ } else {
+ objectWriteUInt16$1(this, value, offset, false);
+ }
+ return offset + 2
+ };
+
+ function objectWriteUInt32$1 (buf, value, offset, littleEndian) {
+ if (value < 0) value = 0xffffffff + value + 1;
+ for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
+ buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;
+ }
+ }
+
+ Buffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 4, 0xffffffff, 0);
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset + 3] = (value >>> 24);
+ this[offset + 2] = (value >>> 16);
+ this[offset + 1] = (value >>> 8);
+ this[offset] = (value & 0xff);
+ } else {
+ objectWriteUInt32$1(this, value, offset, true);
+ }
+ return offset + 4
+ };
+
+ Buffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 4, 0xffffffff, 0);
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 24);
+ this[offset + 1] = (value >>> 16);
+ this[offset + 2] = (value >>> 8);
+ this[offset + 3] = (value & 0xff);
+ } else {
+ objectWriteUInt32$1(this, value, offset, false);
+ }
+ return offset + 4
+ };
+
+ Buffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) {
+ var limit = Math.pow(2, 8 * byteLength - 1);
+
+ checkInt$1(this, value, offset, byteLength, limit - 1, -limit);
+ }
+
+ var i = 0;
+ var mul = 1;
+ var sub = 0;
+ this[offset] = value & 0xFF;
+ while (++i < byteLength && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
+ sub = 1;
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) {
+ var limit = Math.pow(2, 8 * byteLength - 1);
+
+ checkInt$1(this, value, offset, byteLength, limit - 1, -limit);
+ }
+
+ var i = byteLength - 1;
+ var mul = 1;
+ var sub = 0;
+ this[offset + i] = value & 0xFF;
+ while (--i >= 0 && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
+ sub = 1;
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 1, 0x7f, -0x80);
+ if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);
+ if (value < 0) value = 0xff + value + 1;
+ this[offset] = (value & 0xff);
+ return offset + 1
+ };
+
+ Buffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 2, 0x7fff, -0x8000);
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff);
+ this[offset + 1] = (value >>> 8);
+ } else {
+ objectWriteUInt16$1(this, value, offset, true);
+ }
+ return offset + 2
+ };
+
+ Buffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 2, 0x7fff, -0x8000);
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 8);
+ this[offset + 1] = (value & 0xff);
+ } else {
+ objectWriteUInt16$1(this, value, offset, false);
+ }
+ return offset + 2
+ };
+
+ Buffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 4, 0x7fffffff, -0x80000000);
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff);
+ this[offset + 1] = (value >>> 8);
+ this[offset + 2] = (value >>> 16);
+ this[offset + 3] = (value >>> 24);
+ } else {
+ objectWriteUInt32$1(this, value, offset, true);
+ }
+ return offset + 4
+ };
+
+ Buffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt$1(this, value, offset, 4, 0x7fffffff, -0x80000000);
+ if (value < 0) value = 0xffffffff + value + 1;
+ if (Buffer$1.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 24);
+ this[offset + 1] = (value >>> 16);
+ this[offset + 2] = (value >>> 8);
+ this[offset + 3] = (value & 0xff);
+ } else {
+ objectWriteUInt32$1(this, value, offset, false);
+ }
+ return offset + 4
+ };
+
+ function checkIEEE754$1 (buf, value, offset, ext, max, min) {
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ if (offset < 0) throw new RangeError('Index out of range')
+ }
+
+ function writeFloat$1 (buf, value, offset, littleEndian, noAssert) {
+ if (!noAssert) {
+ checkIEEE754$1(buf, value, offset, 4);
+ }
+ write$1(buf, value, offset, littleEndian, 23, 4);
+ return offset + 4
+ }
+
+ Buffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
+ return writeFloat$1(this, value, offset, true, noAssert)
+ };
+
+ Buffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
+ return writeFloat$1(this, value, offset, false, noAssert)
+ };
+
+ function writeDouble$1 (buf, value, offset, littleEndian, noAssert) {
+ if (!noAssert) {
+ checkIEEE754$1(buf, value, offset, 8);
+ }
+ write$1(buf, value, offset, littleEndian, 52, 8);
+ return offset + 8
+ }
+
+ Buffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
+ return writeDouble$1(this, value, offset, true, noAssert)
+ };
+
+ Buffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
+ return writeDouble$1(this, value, offset, false, noAssert)
+ };
+
+ // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
+ Buffer$1.prototype.copy = function copy (target, targetStart, start, end) {
+ if (!start) start = 0;
+ if (!end && end !== 0) end = this.length;
+ if (targetStart >= target.length) targetStart = target.length;
+ if (!targetStart) targetStart = 0;
+ if (end > 0 && end < start) end = start;
+
+ // Copy 0 bytes; we're done
+ if (end === start) return 0
+ if (target.length === 0 || this.length === 0) return 0
+
+ // Fatal error conditions
+ if (targetStart < 0) {
+ throw new RangeError('targetStart out of bounds')
+ }
+ if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
+ if (end < 0) throw new RangeError('sourceEnd out of bounds')
+
+ // Are we oob?
+ if (end > this.length) end = this.length;
+ if (target.length - targetStart < end - start) {
+ end = target.length - targetStart + start;
+ }
+
+ var len = end - start;
+ var i;
+
+ if (this === target && start < targetStart && targetStart < end) {
+ // descending copy from end
+ for (i = len - 1; i >= 0; --i) {
+ target[i + targetStart] = this[i + start];
+ }
+ } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) {
+ // ascending copy from start
+ for (i = 0; i < len; ++i) {
+ target[i + targetStart] = this[i + start];
+ }
+ } else {
+ Uint8Array.prototype.set.call(
+ target,
+ this.subarray(start, start + len),
+ targetStart
+ );
+ }
+
+ return len
+ };
+
+ // Usage:
+ // buffer.fill(number[, offset[, end]])
+ // buffer.fill(buffer[, offset[, end]])
+ // buffer.fill(string[, offset[, end]][, encoding])
+ Buffer$1.prototype.fill = function fill (val, start, end, encoding) {
+ // Handle string cases:
+ if (typeof val === 'string') {
+ if (typeof start === 'string') {
+ encoding = start;
+ start = 0;
+ end = this.length;
+ } else if (typeof end === 'string') {
+ encoding = end;
+ end = this.length;
+ }
+ if (val.length === 1) {
+ var code = val.charCodeAt(0);
+ if (code < 256) {
+ val = code;
+ }
+ }
+ if (encoding !== undefined && typeof encoding !== 'string') {
+ throw new TypeError('encoding must be a string')
+ }
+ if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) {
+ throw new TypeError('Unknown encoding: ' + encoding)
+ }
+ } else if (typeof val === 'number') {
+ val = val & 255;
+ }
+
+ // Invalid ranges are not set to a default, so can range check early.
+ if (start < 0 || this.length < start || this.length < end) {
+ throw new RangeError('Out of range index')
+ }
+
+ if (end <= start) {
+ return this
+ }
+
+ start = start >>> 0;
+ end = end === undefined ? this.length : end >>> 0;
+
+ if (!val) val = 0;
+
+ var i;
+ if (typeof val === 'number') {
+ for (i = start; i < end; ++i) {
+ this[i] = val;
+ }
+ } else {
+ var bytes = internalIsBuffer$1(val)
+ ? val
+ : utf8ToBytes$1(new Buffer$1(val, encoding).toString());
+ var len = bytes.length;
+ for (i = 0; i < end - start; ++i) {
+ this[i + start] = bytes[i % len];
+ }
+ }
+
+ return this
+ };
+
+ // HELPER FUNCTIONS
+ // ================
+
+ var INVALID_BASE64_RE$1 = /[^+\/0-9A-Za-z-_]/g;
+
+ function base64clean$1 (str) {
+ // Node strips out invalid characters like \n and \t from the string, base64-js does not
+ str = stringtrim$1(str).replace(INVALID_BASE64_RE$1, '');
+ // Node converts strings with length < 2 to ''
+ if (str.length < 2) return ''
+ // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
+ while (str.length % 4 !== 0) {
+ str = str + '=';
+ }
+ return str
+ }
+
+ function stringtrim$1 (str) {
+ if (str.trim) return str.trim()
+ return str.replace(/^\s+|\s+$/g, '')
+ }
+
+ function toHex$1 (n) {
+ if (n < 16) return '0' + n.toString(16)
+ return n.toString(16)
+ }
+
+ function utf8ToBytes$1 (string, units) {
+ units = units || Infinity;
+ var codePoint;
+ var length = string.length;
+ var leadSurrogate = null;
+ var bytes = [];
+
+ for (var i = 0; i < length; ++i) {
+ codePoint = string.charCodeAt(i);
+
+ // is surrogate component
+ if (codePoint > 0xD7FF && codePoint < 0xE000) {
+ // last char was a lead
+ if (!leadSurrogate) {
+ // no lead yet
+ if (codePoint > 0xDBFF) {
+ // unexpected trail
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ continue
+ } else if (i + 1 === length) {
+ // unpaired lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ continue
+ }
+
+ // valid lead
+ leadSurrogate = codePoint;
+
+ continue
+ }
+
+ // 2 leads in a row
+ if (codePoint < 0xDC00) {
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ leadSurrogate = codePoint;
+ continue
+ }
+
+ // valid surrogate pair
+ codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;
+ } else if (leadSurrogate) {
+ // valid bmp char, but last char was a lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ }
+
+ leadSurrogate = null;
+
+ // encode utf8
+ if (codePoint < 0x80) {
+ if ((units -= 1) < 0) break
+ bytes.push(codePoint);
+ } else if (codePoint < 0x800) {
+ if ((units -= 2) < 0) break
+ bytes.push(
+ codePoint >> 0x6 | 0xC0,
+ codePoint & 0x3F | 0x80
+ );
+ } else if (codePoint < 0x10000) {
+ if ((units -= 3) < 0) break
+ bytes.push(
+ codePoint >> 0xC | 0xE0,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ );
+ } else if (codePoint < 0x110000) {
+ if ((units -= 4) < 0) break
+ bytes.push(
+ codePoint >> 0x12 | 0xF0,
+ codePoint >> 0xC & 0x3F | 0x80,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ );
+ } else {
+ throw new Error('Invalid code point')
+ }
+ }
+
+ return bytes
+ }
+
+ function asciiToBytes$1 (str) {
+ var byteArray = [];
+ for (var i = 0; i < str.length; ++i) {
+ // Node's code seems to be doing this and not & 0x7F..
+ byteArray.push(str.charCodeAt(i) & 0xFF);
+ }
+ return byteArray
+ }
+
+ function utf16leToBytes$1 (str, units) {
+ var c, hi, lo;
+ var byteArray = [];
+ for (var i = 0; i < str.length; ++i) {
+ if ((units -= 2) < 0) break
+
+ c = str.charCodeAt(i);
+ hi = c >> 8;
+ lo = c % 256;
+ byteArray.push(lo);
+ byteArray.push(hi);
+ }
+
+ return byteArray
+ }
+
+
+ function base64ToBytes$1 (str) {
+ return toByteArray$1(base64clean$1(str))
+ }
+
+ function blitBuffer$1 (src, dst, offset, length) {
+ for (var i = 0; i < length; ++i) {
+ if ((i + offset >= dst.length) || (i >= src.length)) break
+ dst[i + offset] = src[i];
+ }
+ return i
+ }
+
+ function isnan$1 (val) {
+ return val !== val // eslint-disable-line no-self-compare
+ }
+
+
+ // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence
+ // The _isBuffer check is for Safari 5-7 support, because it's missing
+ // Object.prototype.constructor. Remove this eventually
+ function isBuffer$2(obj) {
+ return obj != null && (!!obj._isBuffer || isFastBuffer$1(obj) || isSlowBuffer$1(obj))
+ }
+
+ function isFastBuffer$1 (obj) {
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
+ }
+
+ // For Node v0.10 support. Remove this eventually.
+ function isSlowBuffer$1 (obj) {
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer$1(obj.slice(0, 0))
+ }
+
+ // shim for using process in browser
+ // based off https://github.com/defunctzombie/node-process/blob/master/browser.js
+
+ function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+ }
+ function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+ }
+ var cachedSetTimeout = defaultSetTimout;
+ var cachedClearTimeout = defaultClearTimeout;
+ if (typeof global$1.setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ }
+ if (typeof global$1.clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ }
+
+ function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
+ }
+ }
+
+
+ }
+ function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
+
+
+ }
+ var queue = [];
+ var draining = false;
+ var currentQueue;
+ var queueIndex = -1;
+
+ function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
+ }
+ }
+
+ function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
+ }
+ }
+ queueIndex = -1;
+ len = queue.length;
+ }
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
+ }
+ function nextTick(fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ }
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+ }
+ // v8 likes predictible objects
+ function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+ }
+ Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+ };
+ var title = 'browser';
+ var platform = 'browser';
+ var browser$3 = true;
+ var env = {};
+ var argv = [];
+ var version$1 = ''; // empty string to avoid regexp issues
+ var versions = {};
+ var release = {};
+ var config = {};
+
+ function noop() {}
+
+ var on = noop;
+ var addListener = noop;
+ var once = noop;
+ var off = noop;
+ var removeListener = noop;
+ var removeAllListeners = noop;
+ var emit = noop;
+
+ function binding(name) {
+ throw new Error('process.binding is not supported');
+ }
+
+ function cwd () { return '/' }
+ function chdir (dir) {
+ throw new Error('process.chdir is not supported');
+ }function umask() { return 0; }
+
+ // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js
+ var performance = global$1.performance || {};
+ var performanceNow =
+ performance.now ||
+ performance.mozNow ||
+ performance.msNow ||
+ performance.oNow ||
+ performance.webkitNow ||
+ function(){ return (new Date()).getTime() };
+
+ // generate timestamp or delta
+ // see http://nodejs.org/api/process.html#process_process_hrtime
+ function hrtime(previousTimestamp){
+ var clocktime = performanceNow.call(performance)*1e-3;
+ var seconds = Math.floor(clocktime);
+ var nanoseconds = Math.floor((clocktime%1)*1e9);
+ if (previousTimestamp) {
+ seconds = seconds - previousTimestamp[0];
+ nanoseconds = nanoseconds - previousTimestamp[1];
+ if (nanoseconds<0) {
+ seconds--;
+ nanoseconds += 1e9;
+ }
+ }
+ return [seconds,nanoseconds]
+ }
+
+ var startTime = new Date();
+ function uptime() {
+ var currentTime = new Date();
+ var dif = currentTime - startTime;
+ return dif / 1000;
+ }
+
+ var browser$1$1 = {
+ nextTick: nextTick,
+ title: title,
+ browser: browser$3,
+ env: env,
+ argv: argv,
+ version: version$1,
+ versions: versions,
+ on: on,
+ addListener: addListener,
+ once: once,
+ off: off,
+ removeListener: removeListener,
+ removeAllListeners: removeAllListeners,
+ emit: emit,
+ binding: binding,
+ cwd: cwd,
+ chdir: chdir,
+ umask: umask,
+ hrtime: hrtime,
+ platform: platform,
+ release: release,
+ config: config,
+ uptime: uptime
+ };
+
+ var process = browser$1$1;
+
+ var inherits$2;
+ if (typeof Object.create === 'function'){
+ inherits$2 = function inherits(ctor, superCtor) {
+ // implementation from standard node.js 'util' module
+ ctor.super_ = superCtor;
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
+ });
+ };
+ } else {
+ inherits$2 = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor;
+ var TempCtor = function () {};
+ TempCtor.prototype = superCtor.prototype;
+ ctor.prototype = new TempCtor();
+ ctor.prototype.constructor = ctor;
+ };
+ }
+ var inherits$3 = inherits$2;
+
+ var formatRegExp = /%[sdj%]/g;
+ function format$1(f) {
+ if (!isString$1(f)) {
+ var objects = [];
+ for (var i = 0; i < arguments.length; i++) {
+ objects.push(inspect(arguments[i]));
+ }
+ return objects.join(' ');
+ }
+
+ var i = 1;
+ var args = arguments;
+ var len = args.length;
+ var str = String(f).replace(formatRegExp, function(x) {
+ if (x === '%%') return '%';
+ if (i >= len) return x;
+ switch (x) {
+ case '%s': return String(args[i++]);
+ case '%d': return Number(args[i++]);
+ case '%j':
+ try {
+ return JSON.stringify(args[i++]);
+ } catch (_) {
+ return '[Circular]';
+ }
+ default:
+ return x;
+ }
+ });
+ for (var x = args[i]; i < len; x = args[++i]) {
+ if (isNull(x) || !isObject(x)) {
+ str += ' ' + x;
+ } else {
+ str += ' ' + inspect(x);
+ }
+ }
+ return str;
+ }
+
+ // Mark that a method should not be used.
+ // Returns a modified function which warns once by default.
+ // If --no-deprecation is set, then it is a no-op.
+ function deprecate$1(fn, msg) {
+ // Allow for deprecating things in the process of starting up.
+ if (isUndefined(global$1.process)) {
+ return function() {
+ return deprecate$1(fn, msg).apply(this, arguments);
+ };
+ }
+
+ if (process.noDeprecation === true) {
+ return fn;
+ }
+
+ var warned = false;
+ function deprecated() {
+ if (!warned) {
+ if (process.throwDeprecation) {
+ throw new Error(msg);
+ } else if (process.traceDeprecation) {
+ console.trace(msg);
+ } else {
+ console.error(msg);
+ }
+ warned = true;
+ }
+ return fn.apply(this, arguments);
+ }
+
+ return deprecated;
+ }
+
+ var debugs = {};
+ var debugEnviron;
+ function debuglog(set) {
+ if (isUndefined(debugEnviron))
+ debugEnviron = process.env.NODE_DEBUG || '';
+ set = set.toUpperCase();
+ if (!debugs[set]) {
+ if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
+ var pid = 0;
+ debugs[set] = function() {
+ var msg = format$1.apply(null, arguments);
+ console.error('%s %d: %s', set, pid, msg);
+ };
+ } else {
+ debugs[set] = function() {};
+ }
+ }
+ return debugs[set];
+ }
+
+ /**
+ * Echos the value of a value. Trys to print the value out
+ * in the best way possible given the different types.
+ *
+ * @param {Object} obj The object to print out.
+ * @param {Object} opts Optional options object that alters the output.
+ */
+ /* legacy: obj, showHidden, depth, colors*/
+ function inspect(obj, opts) {
+ // default options
+ var ctx = {
+ seen: [],
+ stylize: stylizeNoColor
+ };
+ // legacy...
+ if (arguments.length >= 3) ctx.depth = arguments[2];
+ if (arguments.length >= 4) ctx.colors = arguments[3];
+ if (isBoolean(opts)) {
+ // legacy...
+ ctx.showHidden = opts;
+ } else if (opts) {
+ // got an "options" object
+ _extend(ctx, opts);
+ }
+ // set default options
+ if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
+ if (isUndefined(ctx.depth)) ctx.depth = 2;
+ if (isUndefined(ctx.colors)) ctx.colors = false;
+ if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
+ if (ctx.colors) ctx.stylize = stylizeWithColor;
+ return formatValue(ctx, obj, ctx.depth);
+ }
+
+ // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
+ inspect.colors = {
+ 'bold' : [1, 22],
+ 'italic' : [3, 23],
+ 'underline' : [4, 24],
+ 'inverse' : [7, 27],
+ 'white' : [37, 39],
+ 'grey' : [90, 39],
+ 'black' : [30, 39],
+ 'blue' : [34, 39],
+ 'cyan' : [36, 39],
+ 'green' : [32, 39],
+ 'magenta' : [35, 39],
+ 'red' : [31, 39],
+ 'yellow' : [33, 39]
+ };
+
+ // Don't use 'blue' not visible on cmd.exe
+ inspect.styles = {
+ 'special': 'cyan',
+ 'number': 'yellow',
+ 'boolean': 'yellow',
+ 'undefined': 'grey',
+ 'null': 'bold',
+ 'string': 'green',
+ 'date': 'magenta',
+ // "name": intentionally not styling
+ 'regexp': 'red'
+ };
+
+
+ function stylizeWithColor(str, styleType) {
+ var style = inspect.styles[styleType];
+
+ if (style) {
+ return '\u001b[' + inspect.colors[style][0] + 'm' + str +
+ '\u001b[' + inspect.colors[style][1] + 'm';
+ } else {
+ return str;
+ }
+ }
+
+
+ function stylizeNoColor(str, styleType) {
+ return str;
+ }
+
+
+ function arrayToHash(array) {
+ var hash = {};
+
+ array.forEach(function(val, idx) {
+ hash[val] = true;
+ });
+
+ return hash;
+ }
+
+
+ function formatValue(ctx, value, recurseTimes) {
+ // Provide a hook for user-specified inspect functions.
+ // Check that value is an object with an inspect function on it
+ if (ctx.customInspect &&
+ value &&
+ isFunction(value.inspect) &&
+ // Filter out the util module, it's inspect function is special
+ value.inspect !== inspect &&
+ // Also filter out any prototype objects using the circular check.
+ !(value.constructor && value.constructor.prototype === value)) {
+ var ret = value.inspect(recurseTimes, ctx);
+ if (!isString$1(ret)) {
+ ret = formatValue(ctx, ret, recurseTimes);
+ }
+ return ret;
+ }
+
+ // Primitive types cannot have properties
+ var primitive = formatPrimitive(ctx, value);
+ if (primitive) {
+ return primitive;
+ }
+
+ // Look up the keys of the object.
+ var keys = Object.keys(value);
+ var visibleKeys = arrayToHash(keys);
+
+ if (ctx.showHidden) {
+ keys = Object.getOwnPropertyNames(value);
+ }
+
+ // IE doesn't make error fields non-enumerable
+ // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
+ if (isError$1(value)
+ && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
+ return formatError(value);
+ }
+
+ // Some type of object without properties can be shortcutted.
+ if (keys.length === 0) {
+ if (isFunction(value)) {
+ var name = value.name ? ': ' + value.name : '';
+ return ctx.stylize('[Function' + name + ']', 'special');
+ }
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
+ }
+ if (isDate(value)) {
+ return ctx.stylize(Date.prototype.toString.call(value), 'date');
+ }
+ if (isError$1(value)) {
+ return formatError(value);
+ }
+ }
+
+ var base = '', array = false, braces = ['{', '}'];
+
+ // Make Array say that they are Array
+ if (isArray$1(value)) {
+ array = true;
+ braces = ['[', ']'];
+ }
+
+ // Make functions say that they are functions
+ if (isFunction(value)) {
+ var n = value.name ? ': ' + value.name : '';
+ base = ' [Function' + n + ']';
+ }
+
+ // Make RegExps say that they are RegExps
+ if (isRegExp(value)) {
+ base = ' ' + RegExp.prototype.toString.call(value);
+ }
+
+ // Make dates with properties first say the date
+ if (isDate(value)) {
+ base = ' ' + Date.prototype.toUTCString.call(value);
+ }
+
+ // Make error with message first say the error
+ if (isError$1(value)) {
+ base = ' ' + formatError(value);
+ }
+
+ if (keys.length === 0 && (!array || value.length == 0)) {
+ return braces[0] + base + braces[1];
+ }
+
+ if (recurseTimes < 0) {
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
+ } else {
+ return ctx.stylize('[Object]', 'special');
+ }
+ }
+
+ ctx.seen.push(value);
+
+ var output;
+ if (array) {
+ output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
+ } else {
+ output = keys.map(function(key) {
+ return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
+ });
+ }
+
+ ctx.seen.pop();
+
+ return reduceToSingleString(output, base, braces);
+ }
+
+
+ function formatPrimitive(ctx, value) {
+ if (isUndefined(value))
+ return ctx.stylize('undefined', 'undefined');
+ if (isString$1(value)) {
+ var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
+ .replace(/'/g, "\\'")
+ .replace(/\\"/g, '"') + '\'';
+ return ctx.stylize(simple, 'string');
+ }
+ if (isNumber(value))
+ return ctx.stylize('' + value, 'number');
+ if (isBoolean(value))
+ return ctx.stylize('' + value, 'boolean');
+ // For some reason typeof null is "object", so special case here.
+ if (isNull(value))
+ return ctx.stylize('null', 'null');
+ }
+
+
+ function formatError(value) {
+ return '[' + Error.prototype.toString.call(value) + ']';
+ }
+
+
+ function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
+ var output = [];
+ for (var i = 0, l = value.length; i < l; ++i) {
+ if (hasOwnProperty(value, String(i))) {
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
+ String(i), true));
+ } else {
+ output.push('');
+ }
+ }
+ keys.forEach(function(key) {
+ if (!key.match(/^\d+$/)) {
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
+ key, true));
+ }
+ });
+ return output;
+ }
+
+
+ function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
+ var name, str, desc;
+ desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
+ if (desc.get) {
+ if (desc.set) {
+ str = ctx.stylize('[Getter/Setter]', 'special');
+ } else {
+ str = ctx.stylize('[Getter]', 'special');
+ }
+ } else {
+ if (desc.set) {
+ str = ctx.stylize('[Setter]', 'special');
+ }
+ }
+ if (!hasOwnProperty(visibleKeys, key)) {
+ name = '[' + key + ']';
+ }
+ if (!str) {
+ if (ctx.seen.indexOf(desc.value) < 0) {
+ if (isNull(recurseTimes)) {
+ str = formatValue(ctx, desc.value, null);
+ } else {
+ str = formatValue(ctx, desc.value, recurseTimes - 1);
+ }
+ if (str.indexOf('\n') > -1) {
+ if (array) {
+ str = str.split('\n').map(function(line) {
+ return ' ' + line;
+ }).join('\n').substr(2);
+ } else {
+ str = '\n' + str.split('\n').map(function(line) {
+ return ' ' + line;
+ }).join('\n');
+ }
+ }
+ } else {
+ str = ctx.stylize('[Circular]', 'special');
+ }
+ }
+ if (isUndefined(name)) {
+ if (array && key.match(/^\d+$/)) {
+ return str;
+ }
+ name = JSON.stringify('' + key);
+ if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
+ name = name.substr(1, name.length - 2);
+ name = ctx.stylize(name, 'name');
+ } else {
+ name = name.replace(/'/g, "\\'")
+ .replace(/\\"/g, '"')
+ .replace(/(^"|"$)/g, "'");
+ name = ctx.stylize(name, 'string');
+ }
+ }
+
+ return name + ': ' + str;
+ }
+
+
+ function reduceToSingleString(output, base, braces) {
+ var length = output.reduce(function(prev, cur) {
+ if (cur.indexOf('\n') >= 0) ;
+ return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
+ }, 0);
+
+ if (length > 60) {
+ return braces[0] +
+ (base === '' ? '' : base + '\n ') +
+ ' ' +
+ output.join(',\n ') +
+ ' ' +
+ braces[1];
+ }
+
+ return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
+ }
+
+
+ // NOTE: These type checking functions intentionally don't use `instanceof`
+ // because it is fragile and can be easily faked with `Object.create()`.
+ function isArray$1(ar) {
+ return Array.isArray(ar);
+ }
+
+ function isBoolean(arg) {
+ return typeof arg === 'boolean';
+ }
+
+ function isNull(arg) {
+ return arg === null;
+ }
+
+ function isNullOrUndefined(arg) {
+ return arg == null;
+ }
+
+ function isNumber(arg) {
+ return typeof arg === 'number';
+ }
+
+ function isString$1(arg) {
+ return typeof arg === 'string';
+ }
+
+ function isSymbol(arg) {
+ return typeof arg === 'symbol';
+ }
+
+ function isUndefined(arg) {
+ return arg === void 0;
+ }
+
+ function isRegExp(re) {
+ return isObject(re) && objectToString(re) === '[object RegExp]';
+ }
+
+ function isObject(arg) {
+ return typeof arg === 'object' && arg !== null;
+ }
+
+ function isDate(d) {
+ return isObject(d) && objectToString(d) === '[object Date]';
+ }
+
+ function isError$1(e) {
+ return isObject(e) &&
+ (objectToString(e) === '[object Error]' || e instanceof Error);
+ }
+
+ function isFunction(arg) {
+ return typeof arg === 'function';
+ }
+
+ function isPrimitive(arg) {
+ return arg === null ||
+ typeof arg === 'boolean' ||
+ typeof arg === 'number' ||
+ typeof arg === 'string' ||
+ typeof arg === 'symbol' || // ES6 symbol
+ typeof arg === 'undefined';
+ }
+
+ function isBuffer$1(maybeBuf) {
+ return isBuffer$2(maybeBuf);
+ }
+
+ function objectToString(o) {
+ return Object.prototype.toString.call(o);
+ }
+
+
+ function pad(n) {
+ return n < 10 ? '0' + n.toString(10) : n.toString(10);
+ }
+
+
+ var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
+ 'Oct', 'Nov', 'Dec'];
+
+ // 26 Feb 16:19:34
+ function timestamp() {
+ var d = new Date();
+ var time = [pad(d.getHours()),
+ pad(d.getMinutes()),
+ pad(d.getSeconds())].join(':');
+ return [d.getDate(), months[d.getMonth()], time].join(' ');
+ }
+
+
+ // log is just a thin wrapper to console.log that prepends a timestamp
+ function log() {
+ console.log('%s - %s', timestamp(), format$1.apply(null, arguments));
+ }
+
+ function _extend(origin, add) {
+ // Don't do anything if add isn't an object
+ if (!add || !isObject(add)) return origin;
+
+ var keys = Object.keys(add);
+ var i = keys.length;
+ while (i--) {
+ origin[keys[i]] = add[keys[i]];
+ }
+ return origin;
+ }
+ function hasOwnProperty(obj, prop) {
+ return Object.prototype.hasOwnProperty.call(obj, prop);
+ }
+
+ var util = {
+ inherits: inherits$3,
+ _extend: _extend,
+ log: log,
+ isBuffer: isBuffer$1,
+ isPrimitive: isPrimitive,
+ isFunction: isFunction,
+ isError: isError$1,
+ isDate: isDate,
+ isObject: isObject,
+ isRegExp: isRegExp,
+ isUndefined: isUndefined,
+ isSymbol: isSymbol,
+ isString: isString$1,
+ isNumber: isNumber,
+ isNullOrUndefined: isNullOrUndefined,
+ isNull: isNull,
+ isBoolean: isBoolean,
+ isArray: isArray$1,
+ inspect: inspect,
+ deprecate: deprecate$1,
+ format: format$1,
+ debuglog: debuglog
+ };
+
+ var lookup = [];
+ var revLookup = [];
+ var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;
+ var inited = false;
+ function init () {
+ inited = true;
+ var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+ for (var i = 0, len = code.length; i < len; ++i) {
+ lookup[i] = code[i];
+ revLookup[code.charCodeAt(i)] = i;
+ }
+
+ revLookup['-'.charCodeAt(0)] = 62;
+ revLookup['_'.charCodeAt(0)] = 63;
+ }
+
+ function toByteArray (b64) {
+ if (!inited) {
+ init();
+ }
+ var i, j, l, tmp, placeHolders, arr;
+ var len = b64.length;
+
+ if (len % 4 > 0) {
+ throw new Error('Invalid string. Length must be a multiple of 4')
+ }
+
+ // the number of equal signs (place holders)
+ // if there are two placeholders, than the two characters before it
+ // represent one byte
+ // if there is only one, then the three characters before it represent 2 bytes
+ // this is just a cheap hack to not do indexOf twice
+ placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;
+
+ // base64 is 4/3 + up to two characters of the original data
+ arr = new Arr(len * 3 / 4 - placeHolders);
+
+ // if there are placeholders, only get up to the last complete 4 chars
+ l = placeHolders > 0 ? len - 4 : len;
+
+ var L = 0;
+
+ for (i = 0, j = 0; i < l; i += 4, j += 3) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];
+ arr[L++] = (tmp >> 16) & 0xFF;
+ arr[L++] = (tmp >> 8) & 0xFF;
+ arr[L++] = tmp & 0xFF;
+ }
+
+ if (placeHolders === 2) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);
+ arr[L++] = tmp & 0xFF;
+ } else if (placeHolders === 1) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);
+ arr[L++] = (tmp >> 8) & 0xFF;
+ arr[L++] = tmp & 0xFF;
+ }
+
+ return arr
+ }
+
+ function tripletToBase64 (num) {
+ return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
+ }
+
+ function encodeChunk (uint8, start, end) {
+ var tmp;
+ var output = [];
+ for (var i = start; i < end; i += 3) {
+ tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);
+ output.push(tripletToBase64(tmp));
+ }
+ return output.join('')
+ }
+
+ function fromByteArray (uint8) {
+ if (!inited) {
+ init();
+ }
+ var tmp;
+ var len = uint8.length;
+ var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes
+ var output = '';
+ var parts = [];
+ var maxChunkLength = 16383; // must be multiple of 3
+
+ // go through the array every three bytes, we'll deal with trailing stuff later
+ for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
+ parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));
+ }
+
+ // pad the end with zeros, but make sure to not forget the extra bytes
+ if (extraBytes === 1) {
+ tmp = uint8[len - 1];
+ output += lookup[tmp >> 2];
+ output += lookup[(tmp << 4) & 0x3F];
+ output += '==';
+ } else if (extraBytes === 2) {
+ tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);
+ output += lookup[tmp >> 10];
+ output += lookup[(tmp >> 4) & 0x3F];
+ output += lookup[(tmp << 2) & 0x3F];
+ output += '=';
+ }
+
+ parts.push(output);
+
+ return parts.join('')
+ }
+
+ function read (buffer, offset, isLE, mLen, nBytes) {
+ var e, m;
+ var eLen = nBytes * 8 - mLen - 1;
+ var eMax = (1 << eLen) - 1;
+ var eBias = eMax >> 1;
+ var nBits = -7;
+ var i = isLE ? (nBytes - 1) : 0;
+ var d = isLE ? -1 : 1;
+ var s = buffer[offset + i];
+
+ i += d;
+
+ e = s & ((1 << (-nBits)) - 1);
+ s >>= (-nBits);
+ nBits += eLen;
+ for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
+
+ m = e & ((1 << (-nBits)) - 1);
+ e >>= (-nBits);
+ nBits += mLen;
+ for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
+
+ if (e === 0) {
+ e = 1 - eBias;
+ } else if (e === eMax) {
+ return m ? NaN : ((s ? -1 : 1) * Infinity)
+ } else {
+ m = m + Math.pow(2, mLen);
+ e = e - eBias;
+ }
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+ }
+
+ function write (buffer, value, offset, isLE, mLen, nBytes) {
+ var e, m, c;
+ var eLen = nBytes * 8 - mLen - 1;
+ var eMax = (1 << eLen) - 1;
+ var eBias = eMax >> 1;
+ var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);
+ var i = isLE ? 0 : (nBytes - 1);
+ var d = isLE ? 1 : -1;
+ var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;
+
+ value = Math.abs(value);
+
+ if (isNaN(value) || value === Infinity) {
+ m = isNaN(value) ? 1 : 0;
+ e = eMax;
+ } else {
+ e = Math.floor(Math.log(value) / Math.LN2);
+ if (value * (c = Math.pow(2, -e)) < 1) {
+ e--;
+ c *= 2;
+ }
+ if (e + eBias >= 1) {
+ value += rt / c;
+ } else {
+ value += rt * Math.pow(2, 1 - eBias);
+ }
+ if (value * c >= 2) {
+ e++;
+ c /= 2;
+ }
+
+ if (e + eBias >= eMax) {
+ m = 0;
+ e = eMax;
+ } else if (e + eBias >= 1) {
+ m = (value * c - 1) * Math.pow(2, mLen);
+ e = e + eBias;
+ } else {
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
+ e = 0;
+ }
+ }
+
+ for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
+
+ e = (e << mLen) | m;
+ eLen += mLen;
+ for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
+
+ buffer[offset + i - d] |= s * 128;
+ }
+
+ var toString$1 = {}.toString;
+
+ var isArray = Array.isArray || function (arr) {
+ return toString$1.call(arr) == '[object Array]';
+ };
+
+ /*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
+
+ var INSPECT_MAX_BYTES = 50;
+
+ /**
+ * If `Buffer.TYPED_ARRAY_SUPPORT`:
+ * === true Use Uint8Array implementation (fastest)
+ * === false Use Object implementation (most compatible, even IE6)
+ *
+ * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
+ * Opera 11.6+, iOS 4.2+.
+ *
+ * Due to various browser bugs, sometimes the Object implementation will be used even
+ * when the browser supports typed arrays.
+ *
+ * Note:
+ *
+ * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
+ * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
+ *
+ * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
+ *
+ * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
+ * incorrect length in some situations.
+
+ * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
+ * get the Object implementation, which is slower but behaves correctly.
+ */
+ Buffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined
+ ? global$1.TYPED_ARRAY_SUPPORT
+ : true;
+
+ function kMaxLength () {
+ return Buffer.TYPED_ARRAY_SUPPORT
+ ? 0x7fffffff
+ : 0x3fffffff
+ }
+
+ function createBuffer (that, length) {
+ if (kMaxLength() < length) {
+ throw new RangeError('Invalid typed array length')
+ }
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = new Uint8Array(length);
+ that.__proto__ = Buffer.prototype;
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ if (that === null) {
+ that = new Buffer(length);
+ }
+ that.length = length;
+ }
+
+ return that
+ }
+
+ /**
+ * The Buffer constructor returns instances of `Uint8Array` that have their
+ * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
+ * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
+ * and the `Uint8Array` methods. Square bracket notation works as expected -- it
+ * returns a single octet.
+ *
+ * The `Uint8Array` prototype remains unmodified.
+ */
+
+ function Buffer (arg, encodingOrOffset, length) {
+ if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
+ return new Buffer(arg, encodingOrOffset, length)
+ }
+
+ // Common case.
+ if (typeof arg === 'number') {
+ if (typeof encodingOrOffset === 'string') {
+ throw new Error(
+ 'If encoding is specified then the first argument must be a string'
+ )
+ }
+ return allocUnsafe(this, arg)
+ }
+ return from(this, arg, encodingOrOffset, length)
+ }
+
+ Buffer.poolSize = 8192; // not used by this implementation
+
+ // TODO: Legacy, not needed anymore. Remove in next major version.
+ Buffer._augment = function (arr) {
+ arr.__proto__ = Buffer.prototype;
+ return arr
+ };
+
+ function from (that, value, encodingOrOffset, length) {
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number')
+ }
+
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ return fromArrayBuffer(that, value, encodingOrOffset, length)
+ }
+
+ if (typeof value === 'string') {
+ return fromString(that, value, encodingOrOffset)
+ }
+
+ return fromObject(that, value)
+ }
+
+ /**
+ * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
+ * if value is a number.
+ * Buffer.from(str[, encoding])
+ * Buffer.from(array)
+ * Buffer.from(buffer)
+ * Buffer.from(arrayBuffer[, byteOffset[, length]])
+ **/
+ Buffer.from = function (value, encodingOrOffset, length) {
+ return from(null, value, encodingOrOffset, length)
+ };
+
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ Buffer.prototype.__proto__ = Uint8Array.prototype;
+ Buffer.__proto__ = Uint8Array;
+ }
+
+ function assertSize (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('"size" argument must be a number')
+ } else if (size < 0) {
+ throw new RangeError('"size" argument must not be negative')
+ }
+ }
+
+ function alloc (that, size, fill, encoding) {
+ assertSize(size);
+ if (size <= 0) {
+ return createBuffer(that, size)
+ }
+ if (fill !== undefined) {
+ // Only pay attention to encoding if it's a string. This
+ // prevents accidentally sending in a number that would
+ // be interpretted as a start offset.
+ return typeof encoding === 'string'
+ ? createBuffer(that, size).fill(fill, encoding)
+ : createBuffer(that, size).fill(fill)
+ }
+ return createBuffer(that, size)
+ }
+
+ /**
+ * Creates a new filled Buffer instance.
+ * alloc(size[, fill[, encoding]])
+ **/
+ Buffer.alloc = function (size, fill, encoding) {
+ return alloc(null, size, fill, encoding)
+ };
+
+ function allocUnsafe (that, size) {
+ assertSize(size);
+ that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);
+ if (!Buffer.TYPED_ARRAY_SUPPORT) {
+ for (var i = 0; i < size; ++i) {
+ that[i] = 0;
+ }
+ }
+ return that
+ }
+
+ /**
+ * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
+ * */
+ Buffer.allocUnsafe = function (size) {
+ return allocUnsafe(null, size)
+ };
+ /**
+ * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
+ */
+ Buffer.allocUnsafeSlow = function (size) {
+ return allocUnsafe(null, size)
+ };
+
+ function fromString (that, string, encoding) {
+ if (typeof encoding !== 'string' || encoding === '') {
+ encoding = 'utf8';
+ }
+
+ if (!Buffer.isEncoding(encoding)) {
+ throw new TypeError('"encoding" must be a valid string encoding')
+ }
+
+ var length = byteLength(string, encoding) | 0;
+ that = createBuffer(that, length);
+
+ var actual = that.write(string, encoding);
+
+ if (actual !== length) {
+ // Writing a hex string, for example, that contains invalid characters will
+ // cause everything after the first invalid character to be ignored. (e.g.
+ // 'abxxcd' will be treated as 'ab')
+ that = that.slice(0, actual);
+ }
+
+ return that
+ }
+
+ function fromArrayLike (that, array) {
+ var length = array.length < 0 ? 0 : checked(array.length) | 0;
+ that = createBuffer(that, length);
+ for (var i = 0; i < length; i += 1) {
+ that[i] = array[i] & 255;
+ }
+ return that
+ }
+
+ function fromArrayBuffer (that, array, byteOffset, length) {
+ array.byteLength; // this throws if `array` is not a valid ArrayBuffer
+
+ if (byteOffset < 0 || array.byteLength < byteOffset) {
+ throw new RangeError('\'offset\' is out of bounds')
+ }
+
+ if (array.byteLength < byteOffset + (length || 0)) {
+ throw new RangeError('\'length\' is out of bounds')
+ }
+
+ if (byteOffset === undefined && length === undefined) {
+ array = new Uint8Array(array);
+ } else if (length === undefined) {
+ array = new Uint8Array(array, byteOffset);
+ } else {
+ array = new Uint8Array(array, byteOffset, length);
+ }
+
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = array;
+ that.__proto__ = Buffer.prototype;
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ that = fromArrayLike(that, array);
+ }
+ return that
+ }
+
+ function fromObject (that, obj) {
+ if (internalIsBuffer(obj)) {
+ var len = checked(obj.length) | 0;
+ that = createBuffer(that, len);
+
+ if (that.length === 0) {
+ return that
+ }
+
+ obj.copy(that, 0, 0, len);
+ return that
+ }
+
+ if (obj) {
+ if ((typeof ArrayBuffer !== 'undefined' &&
+ obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
+ if (typeof obj.length !== 'number' || isnan(obj.length)) {
+ return createBuffer(that, 0)
+ }
+ return fromArrayLike(that, obj)
+ }
+
+ if (obj.type === 'Buffer' && isArray(obj.data)) {
+ return fromArrayLike(that, obj.data)
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
+ }
+
+ function checked (length) {
+ // Note: cannot use `length < kMaxLength()` here because that fails when
+ // length is NaN (which is otherwise coerced to zero.)
+ if (length >= kMaxLength()) {
+ throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
+ 'size: 0x' + kMaxLength().toString(16) + ' bytes')
+ }
+ return length | 0
+ }
+ Buffer.isBuffer = isBuffer;
+ function internalIsBuffer (b) {
+ return !!(b != null && b._isBuffer)
+ }
+
+ Buffer.compare = function compare (a, b) {
+ if (!internalIsBuffer(a) || !internalIsBuffer(b)) {
+ throw new TypeError('Arguments must be Buffers')
+ }
+
+ if (a === b) return 0
+
+ var x = a.length;
+ var y = b.length;
+
+ for (var i = 0, len = Math.min(x, y); i < len; ++i) {
+ if (a[i] !== b[i]) {
+ x = a[i];
+ y = b[i];
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+ };
+
+ Buffer.isEncoding = function isEncoding (encoding) {
+ switch (String(encoding).toLowerCase()) {
+ case 'hex':
+ case 'utf8':
+ case 'utf-8':
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ case 'base64':
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return true
+ default:
+ return false
+ }
+ };
+
+ Buffer.concat = function concat (list, length) {
+ if (!isArray(list)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+
+ if (list.length === 0) {
+ return Buffer.alloc(0)
+ }
+
+ var i;
+ if (length === undefined) {
+ length = 0;
+ for (i = 0; i < list.length; ++i) {
+ length += list[i].length;
+ }
+ }
+
+ var buffer = Buffer.allocUnsafe(length);
+ var pos = 0;
+ for (i = 0; i < list.length; ++i) {
+ var buf = list[i];
+ if (!internalIsBuffer(buf)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+ buf.copy(buffer, pos);
+ pos += buf.length;
+ }
+ return buffer
+ };
+
+ function byteLength (string, encoding) {
+ if (internalIsBuffer(string)) {
+ return string.length
+ }
+ if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
+ (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
+ return string.byteLength
+ }
+ if (typeof string !== 'string') {
+ string = '' + string;
+ }
+
+ var len = string.length;
+ if (len === 0) return 0
+
+ // Use a for loop to avoid recursion
+ var loweredCase = false;
+ for (;;) {
+ switch (encoding) {
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ return len
+ case 'utf8':
+ case 'utf-8':
+ case undefined:
+ return utf8ToBytes(string).length
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return len * 2
+ case 'hex':
+ return len >>> 1
+ case 'base64':
+ return base64ToBytes(string).length
+ default:
+ if (loweredCase) return utf8ToBytes(string).length // assume utf8
+ encoding = ('' + encoding).toLowerCase();
+ loweredCase = true;
+ }
+ }
+ }
+ Buffer.byteLength = byteLength;
+
+ function slowToString (encoding, start, end) {
+ var loweredCase = false;
+
+ // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
+ // property of a typed array.
+
+ // This behaves neither like String nor Uint8Array in that we set start/end
+ // to their upper/lower bounds if the value passed is out of range.
+ // undefined is handled specially as per ECMA-262 6th Edition,
+ // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
+ if (start === undefined || start < 0) {
+ start = 0;
+ }
+ // Return early if start > this.length. Done here to prevent potential uint32
+ // coercion fail below.
+ if (start > this.length) {
+ return ''
+ }
+
+ if (end === undefined || end > this.length) {
+ end = this.length;
+ }
+
+ if (end <= 0) {
+ return ''
+ }
+
+ // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
+ end >>>= 0;
+ start >>>= 0;
+
+ if (end <= start) {
+ return ''
+ }
+
+ if (!encoding) encoding = 'utf8';
+
+ while (true) {
+ switch (encoding) {
+ case 'hex':
+ return hexSlice(this, start, end)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Slice(this, start, end)
+
+ case 'ascii':
+ return asciiSlice(this, start, end)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Slice(this, start, end)
+
+ case 'base64':
+ return base64Slice(this, start, end)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return utf16leSlice(this, start, end)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = (encoding + '').toLowerCase();
+ loweredCase = true;
+ }
+ }
+ }
+
+ // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
+ // Buffer instances.
+ Buffer.prototype._isBuffer = true;
+
+ function swap (b, n, m) {
+ var i = b[n];
+ b[n] = b[m];
+ b[m] = i;
+ }
+
+ Buffer.prototype.swap16 = function swap16 () {
+ var len = this.length;
+ if (len % 2 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 16-bits')
+ }
+ for (var i = 0; i < len; i += 2) {
+ swap(this, i, i + 1);
+ }
+ return this
+ };
+
+ Buffer.prototype.swap32 = function swap32 () {
+ var len = this.length;
+ if (len % 4 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 32-bits')
+ }
+ for (var i = 0; i < len; i += 4) {
+ swap(this, i, i + 3);
+ swap(this, i + 1, i + 2);
+ }
+ return this
+ };
+
+ Buffer.prototype.swap64 = function swap64 () {
+ var len = this.length;
+ if (len % 8 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 64-bits')
+ }
+ for (var i = 0; i < len; i += 8) {
+ swap(this, i, i + 7);
+ swap(this, i + 1, i + 6);
+ swap(this, i + 2, i + 5);
+ swap(this, i + 3, i + 4);
+ }
+ return this
+ };
+
+ Buffer.prototype.toString = function toString () {
+ var length = this.length | 0;
+ if (length === 0) return ''
+ if (arguments.length === 0) return utf8Slice(this, 0, length)
+ return slowToString.apply(this, arguments)
+ };
+
+ Buffer.prototype.equals = function equals (b) {
+ if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')
+ if (this === b) return true
+ return Buffer.compare(this, b) === 0
+ };
+
+ Buffer.prototype.inspect = function inspect () {
+ var str = '';
+ var max = INSPECT_MAX_BYTES;
+ if (this.length > 0) {
+ str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');
+ if (this.length > max) str += ' ... ';
+ }
+ return '<Buffer ' + str + '>'
+ };
+
+ Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
+ if (!internalIsBuffer(target)) {
+ throw new TypeError('Argument must be a Buffer')
+ }
+
+ if (start === undefined) {
+ start = 0;
+ }
+ if (end === undefined) {
+ end = target ? target.length : 0;
+ }
+ if (thisStart === undefined) {
+ thisStart = 0;
+ }
+ if (thisEnd === undefined) {
+ thisEnd = this.length;
+ }
+
+ if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
+ throw new RangeError('out of range index')
+ }
+
+ if (thisStart >= thisEnd && start >= end) {
+ return 0
+ }
+ if (thisStart >= thisEnd) {
+ return -1
+ }
+ if (start >= end) {
+ return 1
+ }
+
+ start >>>= 0;
+ end >>>= 0;
+ thisStart >>>= 0;
+ thisEnd >>>= 0;
+
+ if (this === target) return 0
+
+ var x = thisEnd - thisStart;
+ var y = end - start;
+ var len = Math.min(x, y);
+
+ var thisCopy = this.slice(thisStart, thisEnd);
+ var targetCopy = target.slice(start, end);
+
+ for (var i = 0; i < len; ++i) {
+ if (thisCopy[i] !== targetCopy[i]) {
+ x = thisCopy[i];
+ y = targetCopy[i];
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+ };
+
+ // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
+ // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
+ //
+ // Arguments:
+ // - buffer - a Buffer to search
+ // - val - a string, Buffer, or number
+ // - byteOffset - an index into `buffer`; will be clamped to an int32
+ // - encoding - an optional encoding, relevant is val is a string
+ // - dir - true for indexOf, false for lastIndexOf
+ function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
+ // Empty buffer means no match
+ if (buffer.length === 0) return -1
+
+ // Normalize byteOffset
+ if (typeof byteOffset === 'string') {
+ encoding = byteOffset;
+ byteOffset = 0;
+ } else if (byteOffset > 0x7fffffff) {
+ byteOffset = 0x7fffffff;
+ } else if (byteOffset < -0x80000000) {
+ byteOffset = -0x80000000;
+ }
+ byteOffset = +byteOffset; // Coerce to Number.
+ if (isNaN(byteOffset)) {
+ // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
+ byteOffset = dir ? 0 : (buffer.length - 1);
+ }
+
+ // Normalize byteOffset: negative offsets start from the end of the buffer
+ if (byteOffset < 0) byteOffset = buffer.length + byteOffset;
+ if (byteOffset >= buffer.length) {
+ if (dir) return -1
+ else byteOffset = buffer.length - 1;
+ } else if (byteOffset < 0) {
+ if (dir) byteOffset = 0;
+ else return -1
+ }
+
+ // Normalize val
+ if (typeof val === 'string') {
+ val = Buffer.from(val, encoding);
+ }
+
+ // Finally, search either indexOf (if dir is true) or lastIndexOf
+ if (internalIsBuffer(val)) {
+ // Special case: looking for empty string/buffer always fails
+ if (val.length === 0) {
+ return -1
+ }
+ return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
+ } else if (typeof val === 'number') {
+ val = val & 0xFF; // Search for a byte value [0-255]
+ if (Buffer.TYPED_ARRAY_SUPPORT &&
+ typeof Uint8Array.prototype.indexOf === 'function') {
+ if (dir) {
+ return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
+ } else {
+ return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
+ }
+ }
+ return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
+ }
+
+ throw new TypeError('val must be string, number or Buffer')
+ }
+
+ function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
+ var indexSize = 1;
+ var arrLength = arr.length;
+ var valLength = val.length;
+
+ if (encoding !== undefined) {
+ encoding = String(encoding).toLowerCase();
+ if (encoding === 'ucs2' || encoding === 'ucs-2' ||
+ encoding === 'utf16le' || encoding === 'utf-16le') {
+ if (arr.length < 2 || val.length < 2) {
+ return -1
+ }
+ indexSize = 2;
+ arrLength /= 2;
+ valLength /= 2;
+ byteOffset /= 2;
+ }
+ }
+
+ function read (buf, i) {
+ if (indexSize === 1) {
+ return buf[i]
+ } else {
+ return buf.readUInt16BE(i * indexSize)
+ }
+ }
+
+ var i;
+ if (dir) {
+ var foundIndex = -1;
+ for (i = byteOffset; i < arrLength; i++) {
+ if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
+ if (foundIndex === -1) foundIndex = i;
+ if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
+ } else {
+ if (foundIndex !== -1) i -= i - foundIndex;
+ foundIndex = -1;
+ }
+ }
+ } else {
+ if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;
+ for (i = byteOffset; i >= 0; i--) {
+ var found = true;
+ for (var j = 0; j < valLength; j++) {
+ if (read(arr, i + j) !== read(val, j)) {
+ found = false;
+ break
+ }
+ }
+ if (found) return i
+ }
+ }
+
+ return -1
+ }
+
+ Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
+ return this.indexOf(val, byteOffset, encoding) !== -1
+ };
+
+ Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
+ };
+
+ Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
+ };
+
+ function hexWrite (buf, string, offset, length) {
+ offset = Number(offset) || 0;
+ var remaining = buf.length - offset;
+ if (!length) {
+ length = remaining;
+ } else {
+ length = Number(length);
+ if (length > remaining) {
+ length = remaining;
+ }
+ }
+
+ // must be an even number of digits
+ var strLen = string.length;
+ if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
+
+ if (length > strLen / 2) {
+ length = strLen / 2;
+ }
+ for (var i = 0; i < length; ++i) {
+ var parsed = parseInt(string.substr(i * 2, 2), 16);
+ if (isNaN(parsed)) return i
+ buf[offset + i] = parsed;
+ }
+ return i
+ }
+
+ function utf8Write (buf, string, offset, length) {
+ return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
+ }
+
+ function asciiWrite (buf, string, offset, length) {
+ return blitBuffer(asciiToBytes(string), buf, offset, length)
+ }
+
+ function latin1Write (buf, string, offset, length) {
+ return asciiWrite(buf, string, offset, length)
+ }
+
+ function base64Write (buf, string, offset, length) {
+ return blitBuffer(base64ToBytes(string), buf, offset, length)
+ }
+
+ function ucs2Write (buf, string, offset, length) {
+ return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
+ }
+
+ Buffer.prototype.write = function write (string, offset, length, encoding) {
+ // Buffer#write(string)
+ if (offset === undefined) {
+ encoding = 'utf8';
+ length = this.length;
+ offset = 0;
+ // Buffer#write(string, encoding)
+ } else if (length === undefined && typeof offset === 'string') {
+ encoding = offset;
+ length = this.length;
+ offset = 0;
+ // Buffer#write(string, offset[, length][, encoding])
+ } else if (isFinite(offset)) {
+ offset = offset | 0;
+ if (isFinite(length)) {
+ length = length | 0;
+ if (encoding === undefined) encoding = 'utf8';
+ } else {
+ encoding = length;
+ length = undefined;
+ }
+ // legacy write(string, encoding, offset, length) - remove in v0.13
+ } else {
+ throw new Error(
+ 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
+ )
+ }
+
+ var remaining = this.length - offset;
+ if (length === undefined || length > remaining) length = remaining;
+
+ if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
+ throw new RangeError('Attempt to write outside buffer bounds')
+ }
+
+ if (!encoding) encoding = 'utf8';
+
+ var loweredCase = false;
+ for (;;) {
+ switch (encoding) {
+ case 'hex':
+ return hexWrite(this, string, offset, length)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Write(this, string, offset, length)
+
+ case 'ascii':
+ return asciiWrite(this, string, offset, length)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Write(this, string, offset, length)
+
+ case 'base64':
+ // Warning: maxLength not taken into account in base64Write
+ return base64Write(this, string, offset, length)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return ucs2Write(this, string, offset, length)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = ('' + encoding).toLowerCase();
+ loweredCase = true;
+ }
+ }
+ };
+
+ Buffer.prototype.toJSON = function toJSON () {
+ return {
+ type: 'Buffer',
+ data: Array.prototype.slice.call(this._arr || this, 0)
+ }
+ };
+
+ function base64Slice (buf, start, end) {
+ if (start === 0 && end === buf.length) {
+ return fromByteArray(buf)
+ } else {
+ return fromByteArray(buf.slice(start, end))
+ }
+ }
+
+ function utf8Slice (buf, start, end) {
+ end = Math.min(buf.length, end);
+ var res = [];
+
+ var i = start;
+ while (i < end) {
+ var firstByte = buf[i];
+ var codePoint = null;
+ var bytesPerSequence = (firstByte > 0xEF) ? 4
+ : (firstByte > 0xDF) ? 3
+ : (firstByte > 0xBF) ? 2
+ : 1;
+
+ if (i + bytesPerSequence <= end) {
+ var secondByte, thirdByte, fourthByte, tempCodePoint;
+
+ switch (bytesPerSequence) {
+ case 1:
+ if (firstByte < 0x80) {
+ codePoint = firstByte;
+ }
+ break
+ case 2:
+ secondByte = buf[i + 1];
+ if ((secondByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);
+ if (tempCodePoint > 0x7F) {
+ codePoint = tempCodePoint;
+ }
+ }
+ break
+ case 3:
+ secondByte = buf[i + 1];
+ thirdByte = buf[i + 2];
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);
+ if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
+ codePoint = tempCodePoint;
+ }
+ }
+ break
+ case 4:
+ secondByte = buf[i + 1];
+ thirdByte = buf[i + 2];
+ fourthByte = buf[i + 3];
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);
+ if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
+ codePoint = tempCodePoint;
+ }
+ }
+ }
+ }
+
+ if (codePoint === null) {
+ // we did not generate a valid codePoint so insert a
+ // replacement char (U+FFFD) and advance only 1 byte
+ codePoint = 0xFFFD;
+ bytesPerSequence = 1;
+ } else if (codePoint > 0xFFFF) {
+ // encode to utf16 (surrogate pair dance)
+ codePoint -= 0x10000;
+ res.push(codePoint >>> 10 & 0x3FF | 0xD800);
+ codePoint = 0xDC00 | codePoint & 0x3FF;
+ }
+
+ res.push(codePoint);
+ i += bytesPerSequence;
+ }
+
+ return decodeCodePointsArray(res)
+ }
+
+ // Based on http://stackoverflow.com/a/22747272/680742, the browser with
+ // the lowest limit is Chrome, with 0x10000 args.
+ // We go 1 magnitude less, for safety
+ var MAX_ARGUMENTS_LENGTH = 0x1000;
+
+ function decodeCodePointsArray (codePoints) {
+ var len = codePoints.length;
+ if (len <= MAX_ARGUMENTS_LENGTH) {
+ return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
+ }
+
+ // Decode in chunks to avoid "call stack size exceeded".
+ var res = '';
+ var i = 0;
+ while (i < len) {
+ res += String.fromCharCode.apply(
+ String,
+ codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
+ );
+ }
+ return res
+ }
+
+ function asciiSlice (buf, start, end) {
+ var ret = '';
+ end = Math.min(buf.length, end);
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i] & 0x7F);
+ }
+ return ret
+ }
+
+ function latin1Slice (buf, start, end) {
+ var ret = '';
+ end = Math.min(buf.length, end);
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i]);
+ }
+ return ret
+ }
+
+ function hexSlice (buf, start, end) {
+ var len = buf.length;
+
+ if (!start || start < 0) start = 0;
+ if (!end || end < 0 || end > len) end = len;
+
+ var out = '';
+ for (var i = start; i < end; ++i) {
+ out += toHex(buf[i]);
+ }
+ return out
+ }
+
+ function utf16leSlice (buf, start, end) {
+ var bytes = buf.slice(start, end);
+ var res = '';
+ for (var i = 0; i < bytes.length; i += 2) {
+ res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);
+ }
+ return res
+ }
+
+ Buffer.prototype.slice = function slice (start, end) {
+ var len = this.length;
+ start = ~~start;
+ end = end === undefined ? len : ~~end;
+
+ if (start < 0) {
+ start += len;
+ if (start < 0) start = 0;
+ } else if (start > len) {
+ start = len;
+ }
+
+ if (end < 0) {
+ end += len;
+ if (end < 0) end = 0;
+ } else if (end > len) {
+ end = len;
+ }
+
+ if (end < start) end = start;
+
+ var newBuf;
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ newBuf = this.subarray(start, end);
+ newBuf.__proto__ = Buffer.prototype;
+ } else {
+ var sliceLen = end - start;
+ newBuf = new Buffer(sliceLen, undefined);
+ for (var i = 0; i < sliceLen; ++i) {
+ newBuf[i] = this[i + start];
+ }
+ }
+
+ return newBuf
+ };
+
+ /*
+ * Need to make sure that buffer isn't trying to write out of bounds.
+ */
+ function checkOffset (offset, ext, length) {
+ if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
+ if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
+ }
+
+ Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) checkOffset(offset, byteLength, this.length);
+
+ var val = this[offset];
+ var mul = 1;
+ var i = 0;
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul;
+ }
+
+ return val
+ };
+
+ Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) {
+ checkOffset(offset, byteLength, this.length);
+ }
+
+ var val = this[offset + --byteLength];
+ var mul = 1;
+ while (byteLength > 0 && (mul *= 0x100)) {
+ val += this[offset + --byteLength] * mul;
+ }
+
+ return val
+ };
+
+ Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 1, this.length);
+ return this[offset]
+ };
+
+ Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length);
+ return this[offset] | (this[offset + 1] << 8)
+ };
+
+ Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length);
+ return (this[offset] << 8) | this[offset + 1]
+ };
+
+ Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length);
+
+ return ((this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16)) +
+ (this[offset + 3] * 0x1000000)
+ };
+
+ Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length);
+
+ return (this[offset] * 0x1000000) +
+ ((this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ this[offset + 3])
+ };
+
+ Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) checkOffset(offset, byteLength, this.length);
+
+ var val = this[offset];
+ var mul = 1;
+ var i = 0;
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul;
+ }
+ mul *= 0x80;
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength);
+
+ return val
+ };
+
+ Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) checkOffset(offset, byteLength, this.length);
+
+ var i = byteLength;
+ var mul = 1;
+ var val = this[offset + --i];
+ while (i > 0 && (mul *= 0x100)) {
+ val += this[offset + --i] * mul;
+ }
+ mul *= 0x80;
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength);
+
+ return val
+ };
+
+ Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 1, this.length);
+ if (!(this[offset] & 0x80)) return (this[offset])
+ return ((0xff - this[offset] + 1) * -1)
+ };
+
+ Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length);
+ var val = this[offset] | (this[offset + 1] << 8);
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+ };
+
+ Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length);
+ var val = this[offset + 1] | (this[offset] << 8);
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+ };
+
+ Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length);
+
+ return (this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16) |
+ (this[offset + 3] << 24)
+ };
+
+ Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length);
+
+ return (this[offset] << 24) |
+ (this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ (this[offset + 3])
+ };
+
+ Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length);
+ return read(this, offset, true, 23, 4)
+ };
+
+ Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length);
+ return read(this, offset, false, 23, 4)
+ };
+
+ Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 8, this.length);
+ return read(this, offset, true, 52, 8)
+ };
+
+ Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 8, this.length);
+ return read(this, offset, false, 52, 8)
+ };
+
+ function checkInt (buf, value, offset, ext, max, min) {
+ if (!internalIsBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
+ if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ }
+
+ Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1;
+ checkInt(this, value, offset, byteLength, maxBytes, 0);
+ }
+
+ var mul = 1;
+ var i = 0;
+ this[offset] = value & 0xFF;
+ while (++i < byteLength && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ byteLength = byteLength | 0;
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1;
+ checkInt(this, value, offset, byteLength, maxBytes, 0);
+ }
+
+ var i = byteLength - 1;
+ var mul = 1;
+ this[offset + i] = value & 0xFF;
+ while (--i >= 0 && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);
+ if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);
+ this[offset] = (value & 0xff);
+ return offset + 1
+ };
+
+ function objectWriteUInt16 (buf, value, offset, littleEndian) {
+ if (value < 0) value = 0xffff + value + 1;
+ for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
+ buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
+ (littleEndian ? i : 1 - i) * 8;
+ }
+ }
+
+ Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff);
+ this[offset + 1] = (value >>> 8);
+ } else {
+ objectWriteUInt16(this, value, offset, true);
+ }
+ return offset + 2
+ };
+
+ Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 8);
+ this[offset + 1] = (value & 0xff);
+ } else {
+ objectWriteUInt16(this, value, offset, false);
+ }
+ return offset + 2
+ };
+
+ function objectWriteUInt32 (buf, value, offset, littleEndian) {
+ if (value < 0) value = 0xffffffff + value + 1;
+ for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
+ buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;
+ }
+ }
+
+ Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset + 3] = (value >>> 24);
+ this[offset + 2] = (value >>> 16);
+ this[offset + 1] = (value >>> 8);
+ this[offset] = (value & 0xff);
+ } else {
+ objectWriteUInt32(this, value, offset, true);
+ }
+ return offset + 4
+ };
+
+ Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 24);
+ this[offset + 1] = (value >>> 16);
+ this[offset + 2] = (value >>> 8);
+ this[offset + 3] = (value & 0xff);
+ } else {
+ objectWriteUInt32(this, value, offset, false);
+ }
+ return offset + 4
+ };
+
+ Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) {
+ var limit = Math.pow(2, 8 * byteLength - 1);
+
+ checkInt(this, value, offset, byteLength, limit - 1, -limit);
+ }
+
+ var i = 0;
+ var mul = 1;
+ var sub = 0;
+ this[offset] = value & 0xFF;
+ while (++i < byteLength && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
+ sub = 1;
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) {
+ var limit = Math.pow(2, 8 * byteLength - 1);
+
+ checkInt(this, value, offset, byteLength, limit - 1, -limit);
+ }
+
+ var i = byteLength - 1;
+ var mul = 1;
+ var sub = 0;
+ this[offset + i] = value & 0xFF;
+ while (--i >= 0 && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
+ sub = 1;
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;
+ }
+
+ return offset + byteLength
+ };
+
+ Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);
+ if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);
+ if (value < 0) value = 0xff + value + 1;
+ this[offset] = (value & 0xff);
+ return offset + 1
+ };
+
+ Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff);
+ this[offset + 1] = (value >>> 8);
+ } else {
+ objectWriteUInt16(this, value, offset, true);
+ }
+ return offset + 2
+ };
+
+ Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 8);
+ this[offset + 1] = (value & 0xff);
+ } else {
+ objectWriteUInt16(this, value, offset, false);
+ }
+ return offset + 2
+ };
+
+ Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff);
+ this[offset + 1] = (value >>> 8);
+ this[offset + 2] = (value >>> 16);
+ this[offset + 3] = (value >>> 24);
+ } else {
+ objectWriteUInt32(this, value, offset, true);
+ }
+ return offset + 4
+ };
+
+ Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
+ value = +value;
+ offset = offset | 0;
+ if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);
+ if (value < 0) value = 0xffffffff + value + 1;
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 24);
+ this[offset + 1] = (value >>> 16);
+ this[offset + 2] = (value >>> 8);
+ this[offset + 3] = (value & 0xff);
+ } else {
+ objectWriteUInt32(this, value, offset, false);
+ }
+ return offset + 4
+ };
+
+ function checkIEEE754 (buf, value, offset, ext, max, min) {
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ if (offset < 0) throw new RangeError('Index out of range')
+ }
+
+ function writeFloat (buf, value, offset, littleEndian, noAssert) {
+ if (!noAssert) {
+ checkIEEE754(buf, value, offset, 4);
+ }
+ write(buf, value, offset, littleEndian, 23, 4);
+ return offset + 4
+ }
+
+ Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
+ return writeFloat(this, value, offset, true, noAssert)
+ };
+
+ Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
+ return writeFloat(this, value, offset, false, noAssert)
+ };
+
+ function writeDouble (buf, value, offset, littleEndian, noAssert) {
+ if (!noAssert) {
+ checkIEEE754(buf, value, offset, 8);
+ }
+ write(buf, value, offset, littleEndian, 52, 8);
+ return offset + 8
+ }
+
+ Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
+ return writeDouble(this, value, offset, true, noAssert)
+ };
+
+ Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
+ return writeDouble(this, value, offset, false, noAssert)
+ };
+
+ // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
+ Buffer.prototype.copy = function copy (target, targetStart, start, end) {
+ if (!start) start = 0;
+ if (!end && end !== 0) end = this.length;
+ if (targetStart >= target.length) targetStart = target.length;
+ if (!targetStart) targetStart = 0;
+ if (end > 0 && end < start) end = start;
+
+ // Copy 0 bytes; we're done
+ if (end === start) return 0
+ if (target.length === 0 || this.length === 0) return 0
+
+ // Fatal error conditions
+ if (targetStart < 0) {
+ throw new RangeError('targetStart out of bounds')
+ }
+ if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
+ if (end < 0) throw new RangeError('sourceEnd out of bounds')
+
+ // Are we oob?
+ if (end > this.length) end = this.length;
+ if (target.length - targetStart < end - start) {
+ end = target.length - targetStart + start;
+ }
+
+ var len = end - start;
+ var i;
+
+ if (this === target && start < targetStart && targetStart < end) {
+ // descending copy from end
+ for (i = len - 1; i >= 0; --i) {
+ target[i + targetStart] = this[i + start];
+ }
+ } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
+ // ascending copy from start
+ for (i = 0; i < len; ++i) {
+ target[i + targetStart] = this[i + start];
+ }
+ } else {
+ Uint8Array.prototype.set.call(
+ target,
+ this.subarray(start, start + len),
+ targetStart
+ );
+ }
+
+ return len
+ };
+
+ // Usage:
+ // buffer.fill(number[, offset[, end]])
+ // buffer.fill(buffer[, offset[, end]])
+ // buffer.fill(string[, offset[, end]][, encoding])
+ Buffer.prototype.fill = function fill (val, start, end, encoding) {
+ // Handle string cases:
+ if (typeof val === 'string') {
+ if (typeof start === 'string') {
+ encoding = start;
+ start = 0;
+ end = this.length;
+ } else if (typeof end === 'string') {
+ encoding = end;
+ end = this.length;
+ }
+ if (val.length === 1) {
+ var code = val.charCodeAt(0);
+ if (code < 256) {
+ val = code;
+ }
+ }
+ if (encoding !== undefined && typeof encoding !== 'string') {
+ throw new TypeError('encoding must be a string')
+ }
+ if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
+ throw new TypeError('Unknown encoding: ' + encoding)
+ }
+ } else if (typeof val === 'number') {
+ val = val & 255;
+ }
+
+ // Invalid ranges are not set to a default, so can range check early.
+ if (start < 0 || this.length < start || this.length < end) {
+ throw new RangeError('Out of range index')
+ }
+
+ if (end <= start) {
+ return this
+ }
+
+ start = start >>> 0;
+ end = end === undefined ? this.length : end >>> 0;
+
+ if (!val) val = 0;
+
+ var i;
+ if (typeof val === 'number') {
+ for (i = start; i < end; ++i) {
+ this[i] = val;
+ }
+ } else {
+ var bytes = internalIsBuffer(val)
+ ? val
+ : utf8ToBytes(new Buffer(val, encoding).toString());
+ var len = bytes.length;
+ for (i = 0; i < end - start; ++i) {
+ this[i + start] = bytes[i % len];
+ }
+ }
+
+ return this
+ };
+
+ // HELPER FUNCTIONS
+ // ================
+
+ var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g;
+
+ function base64clean (str) {
+ // Node strips out invalid characters like \n and \t from the string, base64-js does not
+ str = stringtrim(str).replace(INVALID_BASE64_RE, '');
+ // Node converts strings with length < 2 to ''
+ if (str.length < 2) return ''
+ // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
+ while (str.length % 4 !== 0) {
+ str = str + '=';
+ }
+ return str
+ }
+
+ function stringtrim (str) {
+ if (str.trim) return str.trim()
+ return str.replace(/^\s+|\s+$/g, '')
+ }
+
+ function toHex (n) {
+ if (n < 16) return '0' + n.toString(16)
+ return n.toString(16)
+ }
+
+ function utf8ToBytes (string, units) {
+ units = units || Infinity;
+ var codePoint;
+ var length = string.length;
+ var leadSurrogate = null;
+ var bytes = [];
+
+ for (var i = 0; i < length; ++i) {
+ codePoint = string.charCodeAt(i);
+
+ // is surrogate component
+ if (codePoint > 0xD7FF && codePoint < 0xE000) {
+ // last char was a lead
+ if (!leadSurrogate) {
+ // no lead yet
+ if (codePoint > 0xDBFF) {
+ // unexpected trail
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ continue
+ } else if (i + 1 === length) {
+ // unpaired lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ continue
+ }
+
+ // valid lead
+ leadSurrogate = codePoint;
+
+ continue
+ }
+
+ // 2 leads in a row
+ if (codePoint < 0xDC00) {
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ leadSurrogate = codePoint;
+ continue
+ }
+
+ // valid surrogate pair
+ codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;
+ } else if (leadSurrogate) {
+ // valid bmp char, but last char was a lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
+ }
+
+ leadSurrogate = null;
+
+ // encode utf8
+ if (codePoint < 0x80) {
+ if ((units -= 1) < 0) break
+ bytes.push(codePoint);
+ } else if (codePoint < 0x800) {
+ if ((units -= 2) < 0) break
+ bytes.push(
+ codePoint >> 0x6 | 0xC0,
+ codePoint & 0x3F | 0x80
+ );
+ } else if (codePoint < 0x10000) {
+ if ((units -= 3) < 0) break
+ bytes.push(
+ codePoint >> 0xC | 0xE0,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ );
+ } else if (codePoint < 0x110000) {
+ if ((units -= 4) < 0) break
+ bytes.push(
+ codePoint >> 0x12 | 0xF0,
+ codePoint >> 0xC & 0x3F | 0x80,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ );
+ } else {
+ throw new Error('Invalid code point')
+ }
+ }
+
+ return bytes
+ }
+
+ function asciiToBytes (str) {
+ var byteArray = [];
+ for (var i = 0; i < str.length; ++i) {
+ // Node's code seems to be doing this and not & 0x7F..
+ byteArray.push(str.charCodeAt(i) & 0xFF);
+ }
+ return byteArray
+ }
+
+ function utf16leToBytes (str, units) {
+ var c, hi, lo;
+ var byteArray = [];
+ for (var i = 0; i < str.length; ++i) {
+ if ((units -= 2) < 0) break
+
+ c = str.charCodeAt(i);
+ hi = c >> 8;
+ lo = c % 256;
+ byteArray.push(lo);
+ byteArray.push(hi);
+ }
+
+ return byteArray
+ }
+
+
+ function base64ToBytes (str) {
+ return toByteArray(base64clean(str))
+ }
+
+ function blitBuffer (src, dst, offset, length) {
+ for (var i = 0; i < length; ++i) {
+ if ((i + offset >= dst.length) || (i >= src.length)) break
+ dst[i + offset] = src[i];
+ }
+ return i
+ }
+
+ function isnan (val) {
+ return val !== val // eslint-disable-line no-self-compare
+ }
+
+
+ // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence
+ // The _isBuffer check is for Safari 5-7 support, because it's missing
+ // Object.prototype.constructor. Remove this eventually
+ function isBuffer(obj) {
+ return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))
+ }
+
+ function isFastBuffer (obj) {
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
+ }
+
+ // For Node v0.10 support. Remove this eventually.
+ function isSlowBuffer (obj) {
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))
+ }
+
+ function BufferList() {
+ this.head = null;
+ this.tail = null;
+ this.length = 0;
+ }
+
+ BufferList.prototype.push = function (v) {
+ var entry = { data: v, next: null };
+ if (this.length > 0) this.tail.next = entry;else this.head = entry;
+ this.tail = entry;
+ ++this.length;
+ };
+
+ BufferList.prototype.unshift = function (v) {
+ var entry = { data: v, next: this.head };
+ if (this.length === 0) this.tail = entry;
+ this.head = entry;
+ ++this.length;
+ };
+
+ BufferList.prototype.shift = function () {
+ if (this.length === 0) return;
+ var ret = this.head.data;
+ if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
+ --this.length;
+ return ret;
+ };
+
+ BufferList.prototype.clear = function () {
+ this.head = this.tail = null;
+ this.length = 0;
+ };
+
+ BufferList.prototype.join = function (s) {
+ if (this.length === 0) return '';
+ var p = this.head;
+ var ret = '' + p.data;
+ while (p = p.next) {
+ ret += s + p.data;
+ }return ret;
+ };
+
+ BufferList.prototype.concat = function (n) {
+ if (this.length === 0) return Buffer.alloc(0);
+ if (this.length === 1) return this.head.data;
+ var ret = Buffer.allocUnsafe(n >>> 0);
+ var p = this.head;
+ var i = 0;
+ while (p) {
+ p.data.copy(ret, i);
+ i += p.data.length;
+ p = p.next;
+ }
+ return ret;
+ };
+
+ // Copyright Joyent, Inc. and other Node contributors.
+ var isBufferEncoding = Buffer.isEncoding
+ || function(encoding) {
+ switch (encoding && encoding.toLowerCase()) {
+ case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
+ default: return false;
+ }
+ };
+
+
+ function assertEncoding(encoding) {
+ if (encoding && !isBufferEncoding(encoding)) {
+ throw new Error('Unknown encoding: ' + encoding);
+ }
+ }
+
+ // StringDecoder provides an interface for efficiently splitting a series of
+ // buffers into a series of JS strings without breaking apart multi-byte
+ // characters. CESU-8 is handled as part of the UTF-8 encoding.
+ //
+ // @TODO Handling all encodings inside a single object makes it very difficult
+ // to reason about this code, so it should be split up in the future.
+ // @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
+ // points as used by CESU-8.
+ function StringDecoder(encoding) {
+ this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
+ assertEncoding(encoding);
+ switch (this.encoding) {
+ case 'utf8':
+ // CESU-8 represents each of Surrogate Pair by 3-bytes
+ this.surrogateSize = 3;
+ break;
+ case 'ucs2':
+ case 'utf16le':
+ // UTF-16 represents each of Surrogate Pair by 2-bytes
+ this.surrogateSize = 2;
+ this.detectIncompleteChar = utf16DetectIncompleteChar;
+ break;
+ case 'base64':
+ // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
+ this.surrogateSize = 3;
+ this.detectIncompleteChar = base64DetectIncompleteChar;
+ break;
+ default:
+ this.write = passThroughWrite;
+ return;
+ }
+
+ // Enough space to store all bytes of a single character. UTF-8 needs 4
+ // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
+ this.charBuffer = new Buffer(6);
+ // Number of bytes received for the current incomplete multi-byte character.
+ this.charReceived = 0;
+ // Number of bytes expected for the current incomplete multi-byte character.
+ this.charLength = 0;
+ }
+
+ // write decodes the given buffer and returns it as JS string that is
+ // guaranteed to not contain any partial multi-byte characters. Any partial
+ // character found at the end of the buffer is buffered up, and will be
+ // returned when calling write again with the remaining bytes.
+ //
+ // Note: Converting a Buffer containing an orphan surrogate to a String
+ // currently works, but converting a String to a Buffer (via `new Buffer`, or
+ // Buffer#write) will replace incomplete surrogates with the unicode
+ // replacement character. See https://codereview.chromium.org/121173009/ .
+ StringDecoder.prototype.write = function(buffer) {
+ var charStr = '';
+ // if our last write ended with an incomplete multibyte character
+ while (this.charLength) {
+ // determine how many remaining bytes this buffer has to offer for this char
+ var available = (buffer.length >= this.charLength - this.charReceived) ?
+ this.charLength - this.charReceived :
+ buffer.length;
+
+ // add the new bytes to the char buffer
+ buffer.copy(this.charBuffer, this.charReceived, 0, available);
+ this.charReceived += available;
+
+ if (this.charReceived < this.charLength) {
+ // still not enough chars in this buffer? wait for more ...
+ return '';
+ }
+
+ // remove bytes belonging to the current character from the buffer
+ buffer = buffer.slice(available, buffer.length);
+
+ // get the character that was split
+ charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
+
+ // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
+ var charCode = charStr.charCodeAt(charStr.length - 1);
+ if (charCode >= 0xD800 && charCode <= 0xDBFF) {
+ this.charLength += this.surrogateSize;
+ charStr = '';
+ continue;
+ }
+ this.charReceived = this.charLength = 0;
+
+ // if there are no more bytes in this buffer, just emit our char
+ if (buffer.length === 0) {
+ return charStr;
+ }
+ break;
+ }
+
+ // determine and set charLength / charReceived
+ this.detectIncompleteChar(buffer);
+
+ var end = buffer.length;
+ if (this.charLength) {
+ // buffer the incomplete character bytes we got
+ buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
+ end -= this.charReceived;
+ }
+
+ charStr += buffer.toString(this.encoding, 0, end);
+
+ var end = charStr.length - 1;
+ var charCode = charStr.charCodeAt(end);
+ // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
+ if (charCode >= 0xD800 && charCode <= 0xDBFF) {
+ var size = this.surrogateSize;
+ this.charLength += size;
+ this.charReceived += size;
+ this.charBuffer.copy(this.charBuffer, size, 0, size);
+ buffer.copy(this.charBuffer, 0, 0, size);
+ return charStr.substring(0, end);
+ }
+
+ // or just emit the charStr
+ return charStr;
+ };
+
+ // detectIncompleteChar determines if there is an incomplete UTF-8 character at
+ // the end of the given buffer. If so, it sets this.charLength to the byte
+ // length that character, and sets this.charReceived to the number of bytes
+ // that are available for this character.
+ StringDecoder.prototype.detectIncompleteChar = function(buffer) {
+ // determine how many bytes we have to check at the end of this buffer
+ var i = (buffer.length >= 3) ? 3 : buffer.length;
+
+ // Figure out if one of the last i bytes of our buffer announces an
+ // incomplete char.
+ for (; i > 0; i--) {
+ var c = buffer[buffer.length - i];
+
+ // See http://en.wikipedia.org/wiki/UTF-8#Description
+
+ // 110XXXXX
+ if (i == 1 && c >> 5 == 0x06) {
+ this.charLength = 2;
+ break;
+ }
+
+ // 1110XXXX
+ if (i <= 2 && c >> 4 == 0x0E) {
+ this.charLength = 3;
+ break;
+ }
+
+ // 11110XXX
+ if (i <= 3 && c >> 3 == 0x1E) {
+ this.charLength = 4;
+ break;
+ }
+ }
+ this.charReceived = i;
+ };
+
+ StringDecoder.prototype.end = function(buffer) {
+ var res = '';
+ if (buffer && buffer.length)
+ res = this.write(buffer);
+
+ if (this.charReceived) {
+ var cr = this.charReceived;
+ var buf = this.charBuffer;
+ var enc = this.encoding;
+ res += buf.slice(0, cr).toString(enc);
+ }
+
+ return res;
+ };
+
+ function passThroughWrite(buffer) {
+ return buffer.toString(this.encoding);
+ }
+
+ function utf16DetectIncompleteChar(buffer) {
+ this.charReceived = buffer.length % 2;
+ this.charLength = this.charReceived ? 2 : 0;
+ }
+
+ function base64DetectIncompleteChar(buffer) {
+ this.charReceived = buffer.length % 3;
+ this.charLength = this.charReceived ? 3 : 0;
+ }
+
+ Readable.ReadableState = ReadableState;
+
+ var debug$2 = debuglog('stream');
+ inherits$3(Readable, EventEmitter$2);
+
+ function prependListener(emitter, event, fn) {
+ // Sadly this is not cacheable as some libraries bundle their own
+ // event emitter implementation with them.
+ if (typeof emitter.prependListener === 'function') {
+ return emitter.prependListener(event, fn);
+ } else {
+ // This is a hack to make sure that our error handler is attached before any
+ // userland ones. NEVER DO THIS. This is here only because this code needs
+ // to continue to work with older versions of Node.js that do not include
+ // the prependListener() method. The goal is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event])
+ emitter.on(event, fn);
+ else if (Array.isArray(emitter._events[event]))
+ emitter._events[event].unshift(fn);
+ else
+ emitter._events[event] = [fn, emitter._events[event]];
+ }
+ }
+ function listenerCount (emitter, type) {
+ return emitter.listeners(type).length;
+ }
+ function ReadableState(options, stream) {
+
+ options = options || {};
+
+ // object stream flag. Used to make read(n) ignore n and to
+ // make all the buffer merging and length checks go away
+ this.objectMode = !!options.objectMode;
+
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
+
+ // the point at which it stops calling _read() to fill the buffer
+ // Note: 0 is a valid value, means "don't call _read preemptively ever"
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+
+ // A linked list is used to store data chunks instead of an array because the
+ // linked list can remove elements from the beginning faster than
+ // array.shift()
+ this.buffer = new BufferList();
+ this.length = 0;
+ this.pipes = null;
+ this.pipesCount = 0;
+ this.flowing = null;
+ this.ended = false;
+ this.endEmitted = false;
+ this.reading = false;
+
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+
+ // whenever we return null, then we set a flag to say
+ // that we're awaiting a 'readable' event emission.
+ this.needReadable = false;
+ this.emittedReadable = false;
+ this.readableListening = false;
+ this.resumeScheduled = false;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // when piping, we only care about 'readable' events that happen
+ // after read()ing all the bytes and not getting any pushback.
+ this.ranOut = false;
+
+ // the number of writers that are awaiting a drain event in .pipe()s
+ this.awaitDrain = 0;
+
+ // if true, a maybeReadMore has been scheduled
+ this.readingMore = false;
+
+ this.decoder = null;
+ this.encoding = null;
+ if (options.encoding) {
+ this.decoder = new StringDecoder(options.encoding);
+ this.encoding = options.encoding;
+ }
+ }
+ function Readable(options) {
+
+ if (!(this instanceof Readable)) return new Readable(options);
+
+ this._readableState = new ReadableState(options, this);
+
+ // legacy
+ this.readable = true;
+
+ if (options && typeof options.read === 'function') this._read = options.read;
+
+ EventEmitter$2.call(this);
+ }
+
+ // Manually shove something into the read() buffer.
+ // This returns true if the highWaterMark has not been hit yet,
+ // similar to how Writable.write() returns true if you should
+ // write() some more.
+ Readable.prototype.push = function (chunk, encoding) {
+ var state = this._readableState;
+
+ if (!state.objectMode && typeof chunk === 'string') {
+ encoding = encoding || state.defaultEncoding;
+ if (encoding !== state.encoding) {
+ chunk = Buffer$1.from(chunk, encoding);
+ encoding = '';
+ }
+ }
+
+ return readableAddChunk(this, state, chunk, encoding, false);
+ };
+
+ // Unshift should *always* be something directly out of read()
+ Readable.prototype.unshift = function (chunk) {
+ var state = this._readableState;
+ return readableAddChunk(this, state, chunk, '', true);
+ };
+
+ Readable.prototype.isPaused = function () {
+ return this._readableState.flowing === false;
+ };
+
+ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
+ var er = chunkInvalid(state, chunk);
+ if (er) {
+ stream.emit('error', er);
+ } else if (chunk === null) {
+ state.reading = false;
+ onEofChunk(stream, state);
+ } else if (state.objectMode || chunk && chunk.length > 0) {
+ if (state.ended && !addToFront) {
+ var e = new Error('stream.push() after EOF');
+ stream.emit('error', e);
+ } else if (state.endEmitted && addToFront) {
+ var _e = new Error('stream.unshift() after end event');
+ stream.emit('error', _e);
+ } else {
+ var skipAdd;
+ if (state.decoder && !addToFront && !encoding) {
+ chunk = state.decoder.write(chunk);
+ skipAdd = !state.objectMode && chunk.length === 0;
+ }
+
+ if (!addToFront) state.reading = false;
+
+ // Don't add to the buffer if we've decoded to an empty string chunk and
+ // we're not in object mode
+ if (!skipAdd) {
+ // if we want the data now, just emit it.
+ if (state.flowing && state.length === 0 && !state.sync) {
+ stream.emit('data', chunk);
+ stream.read(0);
+ } else {
+ // update the buffer info.
+ state.length += state.objectMode ? 1 : chunk.length;
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+
+ if (state.needReadable) emitReadable(stream);
+ }
+ }
+
+ maybeReadMore(stream, state);
+ }
+ } else if (!addToFront) {
+ state.reading = false;
+ }
+
+ return needMoreData(state);
+ }
+
+ // if it's past the high water mark, we can push in some more.
+ // Also, if we have no data yet, we can stand some
+ // more bytes. This is to work around cases where hwm=0,
+ // such as the repl. Also, if the push() triggered a
+ // readable event, and the user called read(largeNumber) such that
+ // needReadable was set, then we ought to push more, so that another
+ // 'readable' event will be triggered.
+ function needMoreData(state) {
+ return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
+ }
+
+ // backwards compatibility.
+ Readable.prototype.setEncoding = function (enc) {
+ this._readableState.decoder = new StringDecoder(enc);
+ this._readableState.encoding = enc;
+ return this;
+ };
+
+ // Don't raise the hwm > 8MB
+ var MAX_HWM = 0x800000;
+ function computeNewHighWaterMark(n) {
+ if (n >= MAX_HWM) {
+ n = MAX_HWM;
+ } else {
+ // Get the next highest power of 2 to prevent increasing hwm excessively in
+ // tiny amounts
+ n--;
+ n |= n >>> 1;
+ n |= n >>> 2;
+ n |= n >>> 4;
+ n |= n >>> 8;
+ n |= n >>> 16;
+ n++;
+ }
+ return n;
+ }
+
+ // This function is designed to be inlinable, so please take care when making
+ // changes to the function body.
+ function howMuchToRead(n, state) {
+ if (n <= 0 || state.length === 0 && state.ended) return 0;
+ if (state.objectMode) return 1;
+ if (n !== n) {
+ // Only flow one buffer at a time
+ if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
+ }
+ // If we're asking for more than the current hwm, then raise the hwm.
+ if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
+ if (n <= state.length) return n;
+ // Don't have enough
+ if (!state.ended) {
+ state.needReadable = true;
+ return 0;
+ }
+ return state.length;
+ }
+
+ // you can override either this method, or the async _read(n) below.
+ Readable.prototype.read = function (n) {
+ debug$2('read', n);
+ n = parseInt(n, 10);
+ var state = this._readableState;
+ var nOrig = n;
+
+ if (n !== 0) state.emittedReadable = false;
+
+ // if we're doing read(0) to trigger a readable event, but we
+ // already have a bunch of data in the buffer, then just trigger
+ // the 'readable' event and move on.
+ if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
+ debug$2('read: emitReadable', state.length, state.ended);
+ if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
+ return null;
+ }
+
+ n = howMuchToRead(n, state);
+
+ // if we've ended, and we're now clear, then finish it up.
+ if (n === 0 && state.ended) {
+ if (state.length === 0) endReadable(this);
+ return null;
+ }
+
+ // All the actual chunk generation logic needs to be
+ // *below* the call to _read. The reason is that in certain
+ // synthetic stream cases, such as passthrough streams, _read
+ // may be a completely synchronous operation which may change
+ // the state of the read buffer, providing enough data when
+ // before there was *not* enough.
+ //
+ // So, the steps are:
+ // 1. Figure out what the state of things will be after we do
+ // a read from the buffer.
+ //
+ // 2. If that resulting state will trigger a _read, then call _read.
+ // Note that this may be asynchronous, or synchronous. Yes, it is
+ // deeply ugly to write APIs this way, but that still doesn't mean
+ // that the Readable class should behave improperly, as streams are
+ // designed to be sync/async agnostic.
+ // Take note if the _read call is sync or async (ie, if the read call
+ // has returned yet), so that we know whether or not it's safe to emit
+ // 'readable' etc.
+ //
+ // 3. Actually pull the requested chunks out of the buffer and return.
+
+ // if we need a readable event, then we need to do some reading.
+ var doRead = state.needReadable;
+ debug$2('need readable', doRead);
+
+ // if we currently have less than the highWaterMark, then also read some
+ if (state.length === 0 || state.length - n < state.highWaterMark) {
+ doRead = true;
+ debug$2('length less than watermark', doRead);
+ }
+
+ // however, if we've ended, then there's no point, and if we're already
+ // reading, then it's unnecessary.
+ if (state.ended || state.reading) {
+ doRead = false;
+ debug$2('reading or ended', doRead);
+ } else if (doRead) {
+ debug$2('do read');
+ state.reading = true;
+ state.sync = true;
+ // if the length is currently zero, then we *need* a readable event.
+ if (state.length === 0) state.needReadable = true;
+ // call internal read method
+ this._read(state.highWaterMark);
+ state.sync = false;
+ // If _read pushed data synchronously, then `reading` will be false,
+ // and we need to re-evaluate how much data we can return to the user.
+ if (!state.reading) n = howMuchToRead(nOrig, state);
+ }
+
+ var ret;
+ if (n > 0) ret = fromList(n, state);else ret = null;
+
+ if (ret === null) {
+ state.needReadable = true;
+ n = 0;
+ } else {
+ state.length -= n;
+ }
+
+ if (state.length === 0) {
+ // If we have nothing in the buffer, then we want to know
+ // as soon as we *do* get something into the buffer.
+ if (!state.ended) state.needReadable = true;
+
+ // If we tried to read() past the EOF, then emit end on the next tick.
+ if (nOrig !== n && state.ended) endReadable(this);
+ }
+
+ if (ret !== null) this.emit('data', ret);
+
+ return ret;
+ };
+
+ function chunkInvalid(state, chunk) {
+ var er = null;
+ if (!isBuffer$2(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ return er;
+ }
+
+ function onEofChunk(stream, state) {
+ if (state.ended) return;
+ if (state.decoder) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) {
+ state.buffer.push(chunk);
+ state.length += state.objectMode ? 1 : chunk.length;
+ }
+ }
+ state.ended = true;
+
+ // emit 'readable' now to make sure it gets picked up.
+ emitReadable(stream);
+ }
+
+ // Don't emit readable right away in sync mode, because this can trigger
+ // another read() call => stack overflow. This way, it might trigger
+ // a nextTick recursion warning, but that's not so bad.
+ function emitReadable(stream) {
+ var state = stream._readableState;
+ state.needReadable = false;
+ if (!state.emittedReadable) {
+ debug$2('emitReadable', state.flowing);
+ state.emittedReadable = true;
+ if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);
+ }
+ }
+
+ function emitReadable_(stream) {
+ debug$2('emit readable');
+ stream.emit('readable');
+ flow(stream);
+ }
+
+ // at this point, the user has presumably seen the 'readable' event,
+ // and called read() to consume some data. that may have triggered
+ // in turn another _read(n) call, in which case reading = true if
+ // it's in progress.
+ // However, if we're not ended, or reading, and the length < hwm,
+ // then go ahead and try to read some more preemptively.
+ function maybeReadMore(stream, state) {
+ if (!state.readingMore) {
+ state.readingMore = true;
+ nextTick(maybeReadMore_, stream, state);
+ }
+ }
+
+ function maybeReadMore_(stream, state) {
+ var len = state.length;
+ while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
+ debug$2('maybeReadMore read 0');
+ stream.read(0);
+ if (len === state.length)
+ // didn't get any data, stop spinning.
+ break;else len = state.length;
+ }
+ state.readingMore = false;
+ }
+
+ // abstract method. to be overridden in specific implementation classes.
+ // call cb(er, data) where data is <= n in length.
+ // for virtual (non-string, non-buffer) streams, "length" is somewhat
+ // arbitrary, and perhaps not very meaningful.
+ Readable.prototype._read = function (n) {
+ this.emit('error', new Error('not implemented'));
+ };
+
+ Readable.prototype.pipe = function (dest, pipeOpts) {
+ var src = this;
+ var state = this._readableState;
+
+ switch (state.pipesCount) {
+ case 0:
+ state.pipes = dest;
+ break;
+ case 1:
+ state.pipes = [state.pipes, dest];
+ break;
+ default:
+ state.pipes.push(dest);
+ break;
+ }
+ state.pipesCount += 1;
+ debug$2('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
+
+ var doEnd = (!pipeOpts || pipeOpts.end !== false);
+
+ var endFn = doEnd ? onend : cleanup;
+ if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);
+
+ dest.on('unpipe', onunpipe);
+ function onunpipe(readable) {
+ debug$2('onunpipe');
+ if (readable === src) {
+ cleanup();
+ }
+ }
+
+ function onend() {
+ debug$2('onend');
+ dest.end();
+ }
+
+ // when the dest drains, it reduces the awaitDrain counter
+ // on the source. This would be more elegant with a .once()
+ // handler in flow(), but adding and removing repeatedly is
+ // too slow.
+ var ondrain = pipeOnDrain(src);
+ dest.on('drain', ondrain);
+
+ var cleanedUp = false;
+ function cleanup() {
+ debug$2('cleanup');
+ // cleanup event handlers once the pipe is broken
+ dest.removeListener('close', onclose);
+ dest.removeListener('finish', onfinish);
+ dest.removeListener('drain', ondrain);
+ dest.removeListener('error', onerror);
+ dest.removeListener('unpipe', onunpipe);
+ src.removeListener('end', onend);
+ src.removeListener('end', cleanup);
+ src.removeListener('data', ondata);
+
+ cleanedUp = true;
+
+ // if the reader is waiting for a drain event from this
+ // specific writer, then it would cause it to never start
+ // flowing again.
+ // So, if this is awaiting a drain, then we just call it now.
+ // If we don't know, then assume that we are waiting for one.
+ if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
+ }
+
+ // If the user pushes more data while we're writing to dest then we'll end up
+ // in ondata again. However, we only want to increase awaitDrain once because
+ // dest will only emit one 'drain' event for the multiple writes.
+ // => Introduce a guard on increasing awaitDrain.
+ var increasedAwaitDrain = false;
+ src.on('data', ondata);
+ function ondata(chunk) {
+ debug$2('ondata');
+ increasedAwaitDrain = false;
+ var ret = dest.write(chunk);
+ if (false === ret && !increasedAwaitDrain) {
+ // If the user unpiped during `dest.write()`, it is possible
+ // to get stuck in a permanently paused state if that write
+ // also returned false.
+ // => Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
+ debug$2('false write response, pause', src._readableState.awaitDrain);
+ src._readableState.awaitDrain++;
+ increasedAwaitDrain = true;
+ }
+ src.pause();
+ }
+ }
+
+ // if the dest has an error, then stop piping into it.
+ // however, don't suppress the throwing behavior for this.
+ function onerror(er) {
+ debug$2('onerror', er);
+ unpipe();
+ dest.removeListener('error', onerror);
+ if (listenerCount(dest, 'error') === 0) dest.emit('error', er);
+ }
+
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
+
+ // Both close and finish should trigger unpipe, but only once.
+ function onclose() {
+ dest.removeListener('finish', onfinish);
+ unpipe();
+ }
+ dest.once('close', onclose);
+ function onfinish() {
+ debug$2('onfinish');
+ dest.removeListener('close', onclose);
+ unpipe();
+ }
+ dest.once('finish', onfinish);
+
+ function unpipe() {
+ debug$2('unpipe');
+ src.unpipe(dest);
+ }
+
+ // tell the dest that it's being piped to
+ dest.emit('pipe', src);
+
+ // start the flow if it hasn't been started already.
+ if (!state.flowing) {
+ debug$2('pipe resume');
+ src.resume();
+ }
+
+ return dest;
+ };
+
+ function pipeOnDrain(src) {
+ return function () {
+ var state = src._readableState;
+ debug$2('pipeOnDrain', state.awaitDrain);
+ if (state.awaitDrain) state.awaitDrain--;
+ if (state.awaitDrain === 0 && src.listeners('data').length) {
+ state.flowing = true;
+ flow(src);
+ }
+ };
+ }
+
+ Readable.prototype.unpipe = function (dest) {
+ var state = this._readableState;
+
+ // if we're not piping anywhere, then do nothing.
+ if (state.pipesCount === 0) return this;
+
+ // just one destination. most common case.
+ if (state.pipesCount === 1) {
+ // passed in one, but it's not the right one.
+ if (dest && dest !== state.pipes) return this;
+
+ if (!dest) dest = state.pipes;
+
+ // got a match.
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+ if (dest) dest.emit('unpipe', this);
+ return this;
+ }
+
+ // slow case. multiple pipe destinations.
+
+ if (!dest) {
+ // remove all.
+ var dests = state.pipes;
+ var len = state.pipesCount;
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+
+ for (var _i = 0; _i < len; _i++) {
+ dests[_i].emit('unpipe', this);
+ }return this;
+ }
+
+ // try to find the right one.
+ var i = indexOf(state.pipes, dest);
+ if (i === -1) return this;
+
+ state.pipes.splice(i, 1);
+ state.pipesCount -= 1;
+ if (state.pipesCount === 1) state.pipes = state.pipes[0];
+
+ dest.emit('unpipe', this);
+
+ return this;
+ };
+
+ // set up data events if they are asked for
+ // Ensure readable listeners eventually get something
+ Readable.prototype.on = function (ev, fn) {
+ var res = EventEmitter$2.prototype.on.call(this, ev, fn);
+
+ if (ev === 'data') {
+ // Start flowing on next tick if stream isn't explicitly paused
+ if (this._readableState.flowing !== false) this.resume();
+ } else if (ev === 'readable') {
+ var state = this._readableState;
+ if (!state.endEmitted && !state.readableListening) {
+ state.readableListening = state.needReadable = true;
+ state.emittedReadable = false;
+ if (!state.reading) {
+ nextTick(nReadingNextTick, this);
+ } else if (state.length) {
+ emitReadable(this);
+ }
+ }
+ }
+
+ return res;
+ };
+ Readable.prototype.addListener = Readable.prototype.on;
+
+ function nReadingNextTick(self) {
+ debug$2('readable nexttick read 0');
+ self.read(0);
+ }
+
+ // pause() and resume() are remnants of the legacy readable stream API
+ // If the user uses them, then switch into old mode.
+ Readable.prototype.resume = function () {
+ var state = this._readableState;
+ if (!state.flowing) {
+ debug$2('resume');
+ state.flowing = true;
+ resume(this, state);
+ }
+ return this;
+ };
+
+ function resume(stream, state) {
+ if (!state.resumeScheduled) {
+ state.resumeScheduled = true;
+ nextTick(resume_, stream, state);
+ }
+ }
+
+ function resume_(stream, state) {
+ if (!state.reading) {
+ debug$2('resume read 0');
+ stream.read(0);
+ }
+
+ state.resumeScheduled = false;
+ state.awaitDrain = 0;
+ stream.emit('resume');
+ flow(stream);
+ if (state.flowing && !state.reading) stream.read(0);
+ }
+
+ Readable.prototype.pause = function () {
+ debug$2('call pause flowing=%j', this._readableState.flowing);
+ if (false !== this._readableState.flowing) {
+ debug$2('pause');
+ this._readableState.flowing = false;
+ this.emit('pause');
+ }
+ return this;
+ };
+
+ function flow(stream) {
+ var state = stream._readableState;
+ debug$2('flow', state.flowing);
+ while (state.flowing && stream.read() !== null) {}
+ }
+
+ // wrap an old-style stream as the async data source.
+ // This is *not* part of the readable stream interface.
+ // It is an ugly unfortunate mess of history.
+ Readable.prototype.wrap = function (stream) {
+ var state = this._readableState;
+ var paused = false;
+
+ var self = this;
+ stream.on('end', function () {
+ debug$2('wrapped end');
+ if (state.decoder && !state.ended) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) self.push(chunk);
+ }
+
+ self.push(null);
+ });
+
+ stream.on('data', function (chunk) {
+ debug$2('wrapped data');
+ if (state.decoder) chunk = state.decoder.write(chunk);
+
+ // don't skip over falsy values in objectMode
+ if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
+
+ var ret = self.push(chunk);
+ if (!ret) {
+ paused = true;
+ stream.pause();
+ }
+ });
+
+ // proxy all the other methods.
+ // important when wrapping filters and duplexes.
+ for (var i in stream) {
+ if (this[i] === undefined && typeof stream[i] === 'function') {
+ this[i] = function (method) {
+ return function () {
+ return stream[method].apply(stream, arguments);
+ };
+ }(i);
+ }
+ }
+
+ // proxy certain important events.
+ var events = ['error', 'close', 'destroy', 'pause', 'resume'];
+ forEach(events, function (ev) {
+ stream.on(ev, self.emit.bind(self, ev));
+ });
+
+ // when we try to consume some more bytes, simply unpause the
+ // underlying stream.
+ self._read = function (n) {
+ debug$2('wrapped _read', n);
+ if (paused) {
+ paused = false;
+ stream.resume();
+ }
+ };
+
+ return self;
+ };
+
+ // exposed for testing purposes only.
+ Readable._fromList = fromList;
+
+ // Pluck off n bytes from an array of buffers.
+ // Length is the combined lengths of all the buffers in the list.
+ // This function is designed to be inlinable, so please take care when making
+ // changes to the function body.
+ function fromList(n, state) {
+ // nothing buffered
+ if (state.length === 0) return null;
+
+ var ret;
+ if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
+ // read it all, truncate the list
+ if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
+ state.buffer.clear();
+ } else {
+ // read part of list
+ ret = fromListPartial(n, state.buffer, state.decoder);
+ }
+
+ return ret;
+ }
+
+ // Extracts only enough buffered data to satisfy the amount requested.
+ // This function is designed to be inlinable, so please take care when making
+ // changes to the function body.
+ function fromListPartial(n, list, hasStrings) {
+ var ret;
+ if (n < list.head.data.length) {
+ // slice is the same for buffers and strings
+ ret = list.head.data.slice(0, n);
+ list.head.data = list.head.data.slice(n);
+ } else if (n === list.head.data.length) {
+ // first chunk is a perfect match
+ ret = list.shift();
+ } else {
+ // result spans more than one buffer
+ ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
+ }
+ return ret;
+ }
+
+ // Copies a specified amount of characters from the list of buffered data
+ // chunks.
+ // This function is designed to be inlinable, so please take care when making
+ // changes to the function body.
+ function copyFromBufferString(n, list) {
+ var p = list.head;
+ var c = 1;
+ var ret = p.data;
+ n -= ret.length;
+ while (p = p.next) {
+ var str = p.data;
+ var nb = n > str.length ? str.length : n;
+ if (nb === str.length) ret += str;else ret += str.slice(0, n);
+ n -= nb;
+ if (n === 0) {
+ if (nb === str.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = str.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+ }
+
+ // Copies a specified amount of bytes from the list of buffered data chunks.
+ // This function is designed to be inlinable, so please take care when making
+ // changes to the function body.
+ function copyFromBuffer(n, list) {
+ var ret = Buffer$1.allocUnsafe(n);
+ var p = list.head;
+ var c = 1;
+ p.data.copy(ret);
+ n -= p.data.length;
+ while (p = p.next) {
+ var buf = p.data;
+ var nb = n > buf.length ? buf.length : n;
+ buf.copy(ret, ret.length - n, 0, nb);
+ n -= nb;
+ if (n === 0) {
+ if (nb === buf.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = buf.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+ }
+
+ function endReadable(stream) {
+ var state = stream._readableState;
+
+ // If we get here before consuming all the bytes, then that is a
+ // bug in node. Should never happen.
+ if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
+
+ if (!state.endEmitted) {
+ state.ended = true;
+ nextTick(endReadableNT, state, stream);
+ }
+ }
+
+ function endReadableNT(state, stream) {
+ // Check that we didn't get one last unshift.
+ if (!state.endEmitted && state.length === 0) {
+ state.endEmitted = true;
+ stream.readable = false;
+ stream.emit('end');
+ }
+ }
+
+ function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ f(xs[i], i);
+ }
+ }
+
+ function indexOf(xs, x) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ if (xs[i] === x) return i;
+ }
+ return -1;
+ }
+
+ // A bit simpler than readable streams.
+ Writable.WritableState = WritableState;
+ inherits$3(Writable, EventEmitter$2);
+
+ function nop() {}
+
+ function WriteReq(chunk, encoding, cb) {
+ this.chunk = chunk;
+ this.encoding = encoding;
+ this.callback = cb;
+ this.next = null;
+ }
+
+ function WritableState(options, stream) {
+ Object.defineProperty(this, 'buffer', {
+ get: deprecate$1(function () {
+ return this.getBuffer();
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+ });
+ options = options || {};
+
+ // object stream flag to indicate whether or not this stream
+ // contains buffers or objects.
+ this.objectMode = !!options.objectMode;
+
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
+
+ // the point at which write() starts returning false
+ // Note: 0 is a valid value, means that we always return false if
+ // the entire buffer is not flushed immediately on write()
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+
+ this.needDrain = false;
+ // at the start of calling end()
+ this.ending = false;
+ // when end() has been called, and returned
+ this.ended = false;
+ // when 'finish' is emitted
+ this.finished = false;
+
+ // should we decode strings into buffers before passing to _write?
+ // this is here so that some node-core streams can optimize string
+ // handling at a lower level.
+ var noDecode = options.decodeStrings === false;
+ this.decodeStrings = !noDecode;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // not an actual buffer we keep track of, but a measurement
+ // of how much we're waiting to get pushed to some underlying
+ // socket or file.
+ this.length = 0;
+
+ // a flag to see when we're in the middle of a write.
+ this.writing = false;
+
+ // when true all writes will be buffered until .uncork() call
+ this.corked = 0;
+
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+
+ // a flag to know if we're processing previously buffered items, which
+ // may call the _write() callback in the same tick, so that we don't
+ // end up in an overlapped onwrite situation.
+ this.bufferProcessing = false;
+
+ // the callback that's passed to _write(chunk,cb)
+ this.onwrite = function (er) {
+ onwrite(stream, er);
+ };
+
+ // the callback that the user supplies to write(chunk,encoding,cb)
+ this.writecb = null;
+
+ // the amount that is being written when _write is called.
+ this.writelen = 0;
+
+ this.bufferedRequest = null;
+ this.lastBufferedRequest = null;
+
+ // number of pending user-supplied write callbacks
+ // this must be 0 before 'finish' can be emitted
+ this.pendingcb = 0;
+
+ // emit prefinish if the only thing we're waiting for is _write cbs
+ // This is relevant for synchronous Transform streams
+ this.prefinished = false;
+
+ // True if the error was already emitted and should not be thrown again
+ this.errorEmitted = false;
+
+ // count buffered requests
+ this.bufferedRequestCount = 0;
+
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
+ this.corkedRequestsFree = new CorkedRequest(this);
+ }
+
+ WritableState.prototype.getBuffer = function writableStateGetBuffer() {
+ var current = this.bufferedRequest;
+ var out = [];
+ while (current) {
+ out.push(current);
+ current = current.next;
+ }
+ return out;
+ };
+ function Writable(options) {
+
+ // Writable ctor is applied to Duplexes, though they're not
+ // instanceof Writable, they're instanceof Readable.
+ if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
+
+ this._writableState = new WritableState(options, this);
+
+ // legacy.
+ this.writable = true;
+
+ if (options) {
+ if (typeof options.write === 'function') this._write = options.write;
+
+ if (typeof options.writev === 'function') this._writev = options.writev;
+ }
+
+ EventEmitter$2.call(this);
+ }
+
+ // Otherwise people can pipe Writable streams, which is just wrong.
+ Writable.prototype.pipe = function () {
+ this.emit('error', new Error('Cannot pipe, not readable'));
+ };
+
+ function writeAfterEnd(stream, cb) {
+ var er = new Error('write after end');
+ // TODO: defer error events consistently everywhere, not just the cb
+ stream.emit('error', er);
+ nextTick(cb, er);
+ }
+
+ // If we get something that is not a buffer, string, null, or undefined,
+ // and we're not in objectMode, then that's an error.
+ // Otherwise stream chunks are all considered to be of length=1, and the
+ // watermarks determine how many objects to keep in the buffer, rather than
+ // how many bytes or characters.
+ function validChunk(stream, state, chunk, cb) {
+ var valid = true;
+ var er = false;
+ // Always throw error if a null is written
+ // if we are not in object mode then throw
+ // if it is not a buffer, string, or undefined.
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
+ stream.emit('error', er);
+ nextTick(cb, er);
+ valid = false;
+ }
+ return valid;
+ }
+
+ Writable.prototype.write = function (chunk, encoding, cb) {
+ var state = this._writableState;
+ var ret = false;
+
+ if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
+
+ if (typeof cb !== 'function') cb = nop;
+
+ if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
+ state.pendingcb++;
+ ret = writeOrBuffer(this, state, chunk, encoding, cb);
+ }
+
+ return ret;
+ };
+
+ Writable.prototype.cork = function () {
+ var state = this._writableState;
+
+ state.corked++;
+ };
+
+ Writable.prototype.uncork = function () {
+ var state = this._writableState;
+
+ if (state.corked) {
+ state.corked--;
+
+ if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
+ }
+ };
+
+ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
+ // node::ParseEncoding() requires lower case.
+ if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+ if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
+ this._writableState.defaultEncoding = encoding;
+ return this;
+ };
+
+ function decodeChunk(state, chunk, encoding) {
+ if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
+ chunk = Buffer.from(chunk, encoding);
+ }
+ return chunk;
+ }
+
+ // if we're already writing something, then just put this
+ // in the queue, and wait our turn. Otherwise, call _write
+ // If we return false, then we need a drain event, so set that flag.
+ function writeOrBuffer(stream, state, chunk, encoding, cb) {
+ chunk = decodeChunk(state, chunk, encoding);
+
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';
+ var len = state.objectMode ? 1 : chunk.length;
+
+ state.length += len;
+
+ var ret = state.length < state.highWaterMark;
+ // we must ensure that previous needDrain will not be reset to false.
+ if (!ret) state.needDrain = true;
+
+ if (state.writing || state.corked) {
+ var last = state.lastBufferedRequest;
+ state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
+ if (last) {
+ last.next = state.lastBufferedRequest;
+ } else {
+ state.bufferedRequest = state.lastBufferedRequest;
+ }
+ state.bufferedRequestCount += 1;
+ } else {
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ }
+
+ return ret;
+ }
+
+ function doWrite(stream, state, writev, len, chunk, encoding, cb) {
+ state.writelen = len;
+ state.writecb = cb;
+ state.writing = true;
+ state.sync = true;
+ if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
+ state.sync = false;
+ }
+
+ function onwriteError(stream, state, sync, er, cb) {
+ --state.pendingcb;
+ if (sync) nextTick(cb, er);else cb(er);
+
+ stream._writableState.errorEmitted = true;
+ stream.emit('error', er);
+ }
+
+ function onwriteStateUpdate(state) {
+ state.writing = false;
+ state.writecb = null;
+ state.length -= state.writelen;
+ state.writelen = 0;
+ }
+
+ function onwrite(stream, er) {
+ var state = stream._writableState;
+ var sync = state.sync;
+ var cb = state.writecb;
+
+ onwriteStateUpdate(state);
+
+ if (er) onwriteError(stream, state, sync, er, cb);else {
+ // Check if we're actually ready to finish, but don't emit yet
+ var finished = needFinish(state);
+
+ if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
+ clearBuffer(stream, state);
+ }
+
+ if (sync) {
+ /*<replacement>*/
+ nextTick(afterWrite, stream, state, finished, cb);
+ /*</replacement>*/
+ } else {
+ afterWrite(stream, state, finished, cb);
+ }
+ }
+ }
+
+ function afterWrite(stream, state, finished, cb) {
+ if (!finished) onwriteDrain(stream, state);
+ state.pendingcb--;
+ cb();
+ finishMaybe(stream, state);
+ }
+
+ // Must force callback to be called on nextTick, so that we don't
+ // emit 'drain' before the write() consumer gets the 'false' return
+ // value, and has a chance to attach a 'drain' listener.
+ function onwriteDrain(stream, state) {
+ if (state.length === 0 && state.needDrain) {
+ state.needDrain = false;
+ stream.emit('drain');
+ }
+ }
+
+ // if there's something in the buffer waiting, then process it
+ function clearBuffer(stream, state) {
+ state.bufferProcessing = true;
+ var entry = state.bufferedRequest;
+
+ if (stream._writev && entry && entry.next) {
+ // Fast case, write everything using _writev()
+ var l = state.bufferedRequestCount;
+ var buffer = new Array(l);
+ var holder = state.corkedRequestsFree;
+ holder.entry = entry;
+
+ var count = 0;
+ while (entry) {
+ buffer[count] = entry;
+ entry = entry.next;
+ count += 1;
+ }
+
+ doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+
+ // doWrite is almost always async, defer these to save a bit of time
+ // as the hot path ends with doWrite
+ state.pendingcb++;
+ state.lastBufferedRequest = null;
+ if (holder.next) {
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
+ } else {
+ // Slow case, write chunks one-by-one
+ while (entry) {
+ var chunk = entry.chunk;
+ var encoding = entry.encoding;
+ var cb = entry.callback;
+ var len = state.objectMode ? 1 : chunk.length;
+
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ entry = entry.next;
+ // if we didn't call the onwrite immediately, then
+ // it means that we need to wait until it does.
+ // also, that means that the chunk and cb are currently
+ // being processed, so move the buffer counter past them.
+ if (state.writing) {
+ break;
+ }
+ }
+
+ if (entry === null) state.lastBufferedRequest = null;
+ }
+
+ state.bufferedRequestCount = 0;
+ state.bufferedRequest = entry;
+ state.bufferProcessing = false;
+ }
+
+ Writable.prototype._write = function (chunk, encoding, cb) {
+ cb(new Error('not implemented'));
+ };
+
+ Writable.prototype._writev = null;
+
+ Writable.prototype.end = function (chunk, encoding, cb) {
+ var state = this._writableState;
+
+ if (typeof chunk === 'function') {
+ cb = chunk;
+ chunk = null;
+ encoding = null;
+ } else if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
+
+ // .end() fully uncorks
+ if (state.corked) {
+ state.corked = 1;
+ this.uncork();
+ }
+
+ // ignore unnecessary end() calls.
+ if (!state.ending && !state.finished) endWritable(this, state, cb);
+ };
+
+ function needFinish(state) {
+ return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
+ }
+
+ function prefinish(stream, state) {
+ if (!state.prefinished) {
+ state.prefinished = true;
+ stream.emit('prefinish');
+ }
+ }
+
+ function finishMaybe(stream, state) {
+ var need = needFinish(state);
+ if (need) {
+ if (state.pendingcb === 0) {
+ prefinish(stream, state);
+ state.finished = true;
+ stream.emit('finish');
+ } else {
+ prefinish(stream, state);
+ }
+ }
+ return need;
+ }
+
+ function endWritable(stream, state, cb) {
+ state.ending = true;
+ finishMaybe(stream, state);
+ if (cb) {
+ if (state.finished) nextTick(cb);else stream.once('finish', cb);
+ }
+ state.ended = true;
+ stream.writable = false;
+ }
+
+ // It seems a linked list but it is not
+ // there will be only 2 of these for each stream
+ function CorkedRequest(state) {
+ var _this = this;
+
+ this.next = null;
+ this.entry = null;
+
+ this.finish = function (err) {
+ var entry = _this.entry;
+ _this.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = _this;
+ } else {
+ state.corkedRequestsFree = _this;
+ }
+ };
+ }
+
+ inherits$3(Duplex, Readable);
+
+ var keys = Object.keys(Writable.prototype);
+ for (var v = 0; v < keys.length; v++) {
+ var method = keys[v];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+ }
+ function Duplex(options) {
+ if (!(this instanceof Duplex)) return new Duplex(options);
+
+ Readable.call(this, options);
+ Writable.call(this, options);
+
+ if (options && options.readable === false) this.readable = false;
+
+ if (options && options.writable === false) this.writable = false;
+
+ this.allowHalfOpen = true;
+ if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
+
+ this.once('end', onend);
+ }
+
+ // the no-half-open enforcer
+ function onend() {
+ // if we allow half-open state, or if the writable side ended,
+ // then we're ok.
+ if (this.allowHalfOpen || this._writableState.ended) return;
+
+ // no more data can be written.
+ // But allow more writes to happen in this tick.
+ nextTick(onEndNT, this);
+ }
+
+ function onEndNT(self) {
+ self.end();
+ }
+
+ // a transform stream is a readable/writable stream where you do
+ inherits$3(Transform, Duplex);
+
+ function TransformState(stream) {
+ this.afterTransform = function (er, data) {
+ return afterTransform(stream, er, data);
+ };
+
+ this.needTransform = false;
+ this.transforming = false;
+ this.writecb = null;
+ this.writechunk = null;
+ this.writeencoding = null;
+ }
+
+ function afterTransform(stream, er, data) {
+ var ts = stream._transformState;
+ ts.transforming = false;
+
+ var cb = ts.writecb;
+
+ if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
+
+ ts.writechunk = null;
+ ts.writecb = null;
+
+ if (data !== null && data !== undefined) stream.push(data);
+
+ cb(er);
+
+ var rs = stream._readableState;
+ rs.reading = false;
+ if (rs.needReadable || rs.length < rs.highWaterMark) {
+ stream._read(rs.highWaterMark);
+ }
+ }
+ function Transform(options) {
+ if (!(this instanceof Transform)) return new Transform(options);
+
+ Duplex.call(this, options);
+
+ this._transformState = new TransformState(this);
+
+ // when the writable side finishes, then flush out anything remaining.
+ var stream = this;
+
+ // start out asking for a readable event once data is transformed.
+ this._readableState.needReadable = true;
+
+ // we have implemented the _read method, and done the other things
+ // that Readable wants before the first _read call, so unset the
+ // sync guard flag.
+ this._readableState.sync = false;
+
+ if (options) {
+ if (typeof options.transform === 'function') this._transform = options.transform;
+
+ if (typeof options.flush === 'function') this._flush = options.flush;
+ }
+
+ this.once('prefinish', function () {
+ if (typeof this._flush === 'function') this._flush(function (er) {
+ done(stream, er);
+ });else done(stream);
+ });
+ }
+
+ Transform.prototype.push = function (chunk, encoding) {
+ this._transformState.needTransform = false;
+ return Duplex.prototype.push.call(this, chunk, encoding);
+ };
+
+ // This is the part where you do stuff!
+ // override this function in implementation classes.
+ // 'chunk' is an input chunk.
+ //
+ // Call `push(newChunk)` to pass along transformed output
+ // to the readable side. You may call 'push' zero or more times.
+ //
+ // Call `cb(err)` when you are done with this chunk. If you pass
+ // an error, then that'll put the hurt on the whole operation. If you
+ // never call cb(), then you'll never get another chunk.
+ Transform.prototype._transform = function (chunk, encoding, cb) {
+ throw new Error('Not implemented');
+ };
+
+ Transform.prototype._write = function (chunk, encoding, cb) {
+ var ts = this._transformState;
+ ts.writecb = cb;
+ ts.writechunk = chunk;
+ ts.writeencoding = encoding;
+ if (!ts.transforming) {
+ var rs = this._readableState;
+ if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
+ }
+ };
+
+ // Doesn't matter what the args are here.
+ // _transform does all the work.
+ // That we got here means that the readable side wants more data.
+ Transform.prototype._read = function (n) {
+ var ts = this._transformState;
+
+ if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
+ ts.transforming = true;
+ this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
+ } else {
+ // mark that we need a transform, so that any data that comes in
+ // will get processed, now that we've asked for it.
+ ts.needTransform = true;
+ }
+ };
+
+ function done(stream, er) {
+ if (er) return stream.emit('error', er);
+
+ // if there's nothing in the write buffer, then that means
+ // that nothing more will ever be provided
+ var ws = stream._writableState;
+ var ts = stream._transformState;
+
+ if (ws.length) throw new Error('Calling transform done when ws.length != 0');
+
+ if (ts.transforming) throw new Error('Calling transform done when still transforming');
+
+ return stream.push(null);
+ }
+
+ inherits$3(PassThrough, Transform);
+ function PassThrough(options) {
+ if (!(this instanceof PassThrough)) return new PassThrough(options);
+
+ Transform.call(this, options);
+ }
+
+ PassThrough.prototype._transform = function (chunk, encoding, cb) {
+ cb(null, chunk);
+ };
+
+ inherits$3(Stream, EventEmitter$2);
+ Stream.Readable = Readable;
+ Stream.Writable = Writable;
+ Stream.Duplex = Duplex;
+ Stream.Transform = Transform;
+ Stream.PassThrough = PassThrough;
+
+ // Backwards-compat with node 0.4.x
+ Stream.Stream = Stream;
+
+ // old-style streams. Note that the pipe method (the only relevant
+ // part of this class) is overridden in the Readable class.
+
+ function Stream() {
+ EventEmitter$2.call(this);
+ }
+
+ Stream.prototype.pipe = function(dest, options) {
+ var source = this;
+
+ function ondata(chunk) {
+ if (dest.writable) {
+ if (false === dest.write(chunk) && source.pause) {
+ source.pause();
+ }
+ }
+ }
+
+ source.on('data', ondata);
+
+ function ondrain() {
+ if (source.readable && source.resume) {
+ source.resume();
+ }
+ }
+
+ dest.on('drain', ondrain);
+
+ // If the 'end' option is not supplied, dest.end() will be called when
+ // source gets the 'end' or 'close' events. Only dest.end() once.
+ if (!dest._isStdio && (!options || options.end !== false)) {
+ source.on('end', onend);
+ source.on('close', onclose);
+ }
+
+ var didOnEnd = false;
+ function onend() {
+ if (didOnEnd) return;
+ didOnEnd = true;
+
+ dest.end();
+ }
+
+
+ function onclose() {
+ if (didOnEnd) return;
+ didOnEnd = true;
+
+ if (typeof dest.destroy === 'function') dest.destroy();
+ }
+
+ // don't leave dangling pipes when there are errors.
+ function onerror(er) {
+ cleanup();
+ if (EventEmitter$2.listenerCount(this, 'error') === 0) {
+ throw er; // Unhandled stream error in pipe.
+ }
+ }
+
+ source.on('error', onerror);
+ dest.on('error', onerror);
+
+ // remove all the event listeners that were added.
+ function cleanup() {
+ source.removeListener('data', ondata);
+ dest.removeListener('drain', ondrain);
+
+ source.removeListener('end', onend);
+ source.removeListener('close', onclose);
+
+ source.removeListener('error', onerror);
+ dest.removeListener('error', onerror);
+
+ source.removeListener('end', cleanup);
+ source.removeListener('close', cleanup);
+
+ dest.removeListener('close', cleanup);
+ }
+
+ source.on('end', cleanup);
+ source.on('close', cleanup);
+
+ dest.on('close', cleanup);
+
+ dest.emit('pipe', source);
+
+ // Allow for unix-like usage: A.pipe(B).pipe(C)
+ return dest;
+ };
+
+ var WritableStream = Stream.Writable;
+ var inherits$1 = util.inherits;
+
+ var browserStdout = BrowserStdout;
+
+
+ inherits$1(BrowserStdout, WritableStream);
+
+ function BrowserStdout(opts) {
+ if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts)
+
+ opts = opts || {};
+ WritableStream.call(this, opts);
+ this.label = (opts.label !== undefined) ? opts.label : 'stdout';
+ }
+
+ BrowserStdout.prototype._write = function(chunks, encoding, cb) {
+ var output = chunks.toString ? chunks.toString() : chunks;
+ if (this.label === false) {
+ console.log(output);
+ } else {
+ console.log(this.label+':', output);
+ }
+ nextTick$1(cb);
+ };
+
+ /**
+ * Parse the given `qs`.
+ *
+ * @private
+ * @param {string} qs
+ * @return {Object<string, string>}
+ */
+ var parseQuery = function parseQuery(qs) {
+ return qs
+ .replace('?', '')
+ .split('&')
+ .reduce(function(obj, pair) {
+ var i = pair.indexOf('=');
+ var key = pair.slice(0, i);
+ var val = pair.slice(++i);
+
+ // Due to how the URLSearchParams API treats spaces
+ obj[key] = decodeURIComponent(val.replace(/\+/g, '%20'));
+
+ return obj;
+ }, {});
+ };
+
+ /**
+ * Highlight the given string of `js`.
+ *
+ * @private
+ * @param {string} js
+ * @return {string}
+ */
+ function highlight(js) {
+ return js
+ .replace(/</g, '&lt;')
+ .replace(/>/g, '&gt;')
+ .replace(/\/\/(.*)/gm, '<span class="comment">//$1</span>')
+ .replace(/('.*?')/gm, '<span class="string">$1</span>')
+ .replace(/(\d+\.\d+)/gm, '<span class="number">$1</span>')
+ .replace(/(\d+)/gm, '<span class="number">$1</span>')
+ .replace(
+ /\bnew[ \t]+(\w+)/gm,
+ '<span class="keyword">new</span> <span class="init">$1</span>'
+ )
+ .replace(
+ /\b(function|new|throw|return|var|if|else)\b/gm,
+ '<span class="keyword">$1</span>'
+ );
+ }
+
+ /**
+ * Highlight the contents of tag `name`.
+ *
+ * @private
+ * @param {string} name
+ */
+ var highlightTags = function highlightTags(name) {
+ var code = document.getElementById('mocha').getElementsByTagName(name);
+ for (var i = 0, len = code.length; i < len; ++i) {
+ code[i].innerHTML = highlight(code[i].innerHTML);
+ }
+ };
+
+ var escapeStringRegexp = string => {
+ if (typeof string !== 'string') {
+ throw new TypeError('Expected a string');
+ }
+
+ // Escape characters with special meaning either inside or outside character sets.
+ // Use a simple backslash escape when it’s always valid, and a \unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.
+ return string
+ .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
+ .replace(/-/g, '\\x2d');
+ };
+
+ // Copyright Joyent, Inc. and other Node contributors.
+ //
+ // Permission is hereby granted, free of charge, to any person obtaining a
+ // copy of this software and associated documentation files (the
+ // "Software"), to deal in the Software without restriction, including
+ // without limitation the rights to use, copy, modify, merge, publish,
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
+ // persons to whom the Software is furnished to do so, subject to the
+ // following conditions:
+ //
+ // The above copyright notice and this permission notice shall be included
+ // in all copies or substantial portions of the Software.
+ //
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ // resolves . and .. elements in a path array with directory names there
+ // must be no slashes, empty elements, or device names (c:\) in the array
+ // (so also no leading and trailing slashes - it does not distinguish
+ // relative and absolute paths)
+ function normalizeArray(parts, allowAboveRoot) {
+ // if the path tries to go above the root, `up` ends up > 0
+ var up = 0;
+ for (var i = parts.length - 1; i >= 0; i--) {
+ var last = parts[i];
+ if (last === '.') {
+ parts.splice(i, 1);
+ } else if (last === '..') {
+ parts.splice(i, 1);
+ up++;
+ } else if (up) {
+ parts.splice(i, 1);
+ up--;
+ }
+ }
+
+ // if the path is allowed to go above the root, restore leading ..s
+ if (allowAboveRoot) {
+ for (; up--; up) {
+ parts.unshift('..');
+ }
+ }
+
+ return parts;
+ }
+
+ // Split a filename into [root, dir, basename, ext], unix version
+ // 'root' is just a slash, or nothing.
+ var splitPathRe =
+ /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+ var splitPath = function(filename) {
+ return splitPathRe.exec(filename).slice(1);
+ };
+
+ // path.resolve([from ...], to)
+ // posix version
+ function resolve() {
+ var resolvedPath = '',
+ resolvedAbsolute = false;
+
+ for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+ var path = (i >= 0) ? arguments[i] : '/';
+
+ // Skip empty and invalid entries
+ if (typeof path !== 'string') {
+ throw new TypeError('Arguments to path.resolve must be strings');
+ } else if (!path) {
+ continue;
+ }
+
+ resolvedPath = path + '/' + resolvedPath;
+ resolvedAbsolute = path.charAt(0) === '/';
+ }
+
+ // At this point the path should be resolved to a full absolute path, but
+ // handle relative paths to be safe (might happen when process.cwd() fails)
+
+ // Normalize the path
+ resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
+ return !!p;
+ }), !resolvedAbsolute).join('/');
+
+ return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
+ }
+ // path.normalize(path)
+ // posix version
+ function normalize(path) {
+ var isPathAbsolute = isAbsolute(path),
+ trailingSlash = substr(path, -1) === '/';
+
+ // Normalize the path
+ path = normalizeArray(filter(path.split('/'), function(p) {
+ return !!p;
+ }), !isPathAbsolute).join('/');
+
+ if (!path && !isPathAbsolute) {
+ path = '.';
+ }
+ if (path && trailingSlash) {
+ path += '/';
+ }
+
+ return (isPathAbsolute ? '/' : '') + path;
+ }
+ // posix version
+ function isAbsolute(path) {
+ return path.charAt(0) === '/';
+ }
+
+ // posix version
+ function join() {
+ var paths = Array.prototype.slice.call(arguments, 0);
+ return normalize(filter(paths, function(p, index) {
+ if (typeof p !== 'string') {
+ throw new TypeError('Arguments to path.join must be strings');
+ }
+ return p;
+ }).join('/'));
+ }
+
+
+ // path.relative(from, to)
+ // posix version
+ function relative(from, to) {
+ from = resolve(from).substr(1);
+ to = resolve(to).substr(1);
+
+ function trim(arr) {
+ var start = 0;
+ for (; start < arr.length; start++) {
+ if (arr[start] !== '') break;
+ }
+
+ var end = arr.length - 1;
+ for (; end >= 0; end--) {
+ if (arr[end] !== '') break;
+ }
+
+ if (start > end) return [];
+ return arr.slice(start, end - start + 1);
+ }
+
+ var fromParts = trim(from.split('/'));
+ var toParts = trim(to.split('/'));
+
+ var length = Math.min(fromParts.length, toParts.length);
+ var samePartsLength = length;
+ for (var i = 0; i < length; i++) {
+ if (fromParts[i] !== toParts[i]) {
+ samePartsLength = i;
+ break;
+ }
+ }
+
+ var outputParts = [];
+ for (var i = samePartsLength; i < fromParts.length; i++) {
+ outputParts.push('..');
+ }
+
+ outputParts = outputParts.concat(toParts.slice(samePartsLength));
+
+ return outputParts.join('/');
+ }
+
+ var sep = '/';
+ var delimiter = ':';
+
+ function dirname(path) {
+ var result = splitPath(path),
+ root = result[0],
+ dir = result[1];
+
+ if (!root && !dir) {
+ // No dirname whatsoever
+ return '.';
+ }
+
+ if (dir) {
+ // It has a dirname, strip trailing slash
+ dir = dir.substr(0, dir.length - 1);
+ }
+
+ return root + dir;
+ }
+
+ function basename(path, ext) {
+ var f = splitPath(path)[2];
+ // TODO: make this comparison case-insensitive on windows?
+ if (ext && f.substr(-1 * ext.length) === ext) {
+ f = f.substr(0, f.length - ext.length);
+ }
+ return f;
+ }
+
+
+ function extname(path) {
+ return splitPath(path)[3];
+ }
+ var path = {
+ extname: extname,
+ basename: basename,
+ dirname: dirname,
+ sep: sep,
+ delimiter: delimiter,
+ relative: relative,
+ join: join,
+ isAbsolute: isAbsolute,
+ normalize: normalize,
+ resolve: resolve
+ };
+ function filter (xs, f) {
+ if (xs.filter) return xs.filter(f);
+ var res = [];
+ for (var i = 0; i < xs.length; i++) {
+ if (f(xs[i], i, xs)) res.push(xs[i]);
+ }
+ return res;
+ }
+
+ // String.prototype.substr - negative index don't work in IE8
+ var substr = 'ab'.substr(-1) === 'b' ?
+ function (str, start, len) { return str.substr(start, len) } :
+ function (str, start, len) {
+ if (start < 0) start = str.length + start;
+ return str.substr(start, len);
+ }
+ ;
+
+ var diff$1 = createCommonjsModule(function (module, exports) {
+ (function (global, factory) {
+ factory(exports) ;
+ }(commonjsGlobal, (function (exports) {
+ function Diff() {}
+ Diff.prototype = {
+ diff: function diff(oldString, newString) {
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+ var callback = options.callback;
+
+ if (typeof options === 'function') {
+ callback = options;
+ options = {};
+ }
+
+ this.options = options;
+ var self = this;
+
+ function done(value) {
+ if (callback) {
+ setTimeout(function () {
+ callback(undefined, value);
+ }, 0);
+ return true;
+ } else {
+ return value;
+ }
+ } // Allow subclasses to massage the input prior to running
+
+
+ oldString = this.castInput(oldString);
+ newString = this.castInput(newString);
+ oldString = this.removeEmpty(this.tokenize(oldString));
+ newString = this.removeEmpty(this.tokenize(newString));
+ var newLen = newString.length,
+ oldLen = oldString.length;
+ var editLength = 1;
+ var maxEditLength = newLen + oldLen;
+ var bestPath = [{
+ newPos: -1,
+ components: []
+ }]; // Seed editLength = 0, i.e. the content starts with the same values
+
+ var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
+
+ if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
+ // Identity per the equality and tokenizer
+ return done([{
+ value: this.join(newString),
+ count: newString.length
+ }]);
+ } // Main worker method. checks all permutations of a given edit length for acceptance.
+
+
+ function execEditLength() {
+ for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
+ var basePath = void 0;
+
+ var addPath = bestPath[diagonalPath - 1],
+ removePath = bestPath[diagonalPath + 1],
+ _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
+
+ if (addPath) {
+ // No one else is going to attempt to use this value, clear it
+ bestPath[diagonalPath - 1] = undefined;
+ }
+
+ var canAdd = addPath && addPath.newPos + 1 < newLen,
+ canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
+
+ if (!canAdd && !canRemove) {
+ // If this path is a terminal then prune
+ bestPath[diagonalPath] = undefined;
+ continue;
+ } // Select the diagonal that we want to branch from. We select the prior
+ // path whose position in the new string is the farthest from the origin
+ // and does not pass the bounds of the diff graph
+
+
+ if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
+ basePath = clonePath(removePath);
+ self.pushComponent(basePath.components, undefined, true);
+ } else {
+ basePath = addPath; // No need to clone, we've pulled it from the list
+
+ basePath.newPos++;
+ self.pushComponent(basePath.components, true, undefined);
+ }
+
+ _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done
+
+ if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
+ return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
+ } else {
+ // Otherwise track this path as a potential candidate and continue.
+ bestPath[diagonalPath] = basePath;
+ }
+ }
+
+ editLength++;
+ } // Performs the length of edit iteration. Is a bit fugly as this has to support the
+ // sync and async mode which is never fun. Loops over execEditLength until a value
+ // is produced.
+
+
+ if (callback) {
+ (function exec() {
+ setTimeout(function () {
+ // This should not happen, but we want to be safe.
+
+ /* istanbul ignore next */
+ if (editLength > maxEditLength) {
+ return callback();
+ }
+
+ if (!execEditLength()) {
+ exec();
+ }
+ }, 0);
+ })();
+ } else {
+ while (editLength <= maxEditLength) {
+ var ret = execEditLength();
+
+ if (ret) {
+ return ret;
+ }
+ }
+ }
+ },
+ pushComponent: function pushComponent(components, added, removed) {
+ var last = components[components.length - 1];
+
+ if (last && last.added === added && last.removed === removed) {
+ // We need to clone here as the component clone operation is just
+ // as shallow array clone
+ components[components.length - 1] = {
+ count: last.count + 1,
+ added: added,
+ removed: removed
+ };
+ } else {
+ components.push({
+ count: 1,
+ added: added,
+ removed: removed
+ });
+ }
+ },
+ extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
+ var newLen = newString.length,
+ oldLen = oldString.length,
+ newPos = basePath.newPos,
+ oldPos = newPos - diagonalPath,
+ commonCount = 0;
+
+ while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
+ newPos++;
+ oldPos++;
+ commonCount++;
+ }
+
+ if (commonCount) {
+ basePath.components.push({
+ count: commonCount
+ });
+ }
+
+ basePath.newPos = newPos;
+ return oldPos;
+ },
+ equals: function equals(left, right) {
+ if (this.options.comparator) {
+ return this.options.comparator(left, right);
+ } else {
+ return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
+ }
+ },
+ removeEmpty: function removeEmpty(array) {
+ var ret = [];
+
+ for (var i = 0; i < array.length; i++) {
+ if (array[i]) {
+ ret.push(array[i]);
+ }
+ }
+
+ return ret;
+ },
+ castInput: function castInput(value) {
+ return value;
+ },
+ tokenize: function tokenize(value) {
+ return value.split('');
+ },
+ join: function join(chars) {
+ return chars.join('');
+ }
+ };
+
+ function buildValues(diff, components, newString, oldString, useLongestToken) {
+ var componentPos = 0,
+ componentLen = components.length,
+ newPos = 0,
+ oldPos = 0;
+
+ for (; componentPos < componentLen; componentPos++) {
+ var component = components[componentPos];
+
+ if (!component.removed) {
+ if (!component.added && useLongestToken) {
+ var value = newString.slice(newPos, newPos + component.count);
+ value = value.map(function (value, i) {
+ var oldValue = oldString[oldPos + i];
+ return oldValue.length > value.length ? oldValue : value;
+ });
+ component.value = diff.join(value);
+ } else {
+ component.value = diff.join(newString.slice(newPos, newPos + component.count));
+ }
+
+ newPos += component.count; // Common case
+
+ if (!component.added) {
+ oldPos += component.count;
+ }
+ } else {
+ component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
+ oldPos += component.count; // Reverse add and remove so removes are output first to match common convention
+ // The diffing algorithm is tied to add then remove output and this is the simplest
+ // route to get the desired output with minimal overhead.
+
+ if (componentPos && components[componentPos - 1].added) {
+ var tmp = components[componentPos - 1];
+ components[componentPos - 1] = components[componentPos];
+ components[componentPos] = tmp;
+ }
+ }
+ } // Special case handle for when one terminal is ignored (i.e. whitespace).
+ // For this case we merge the terminal into the prior string and drop the change.
+ // This is only available for string mode.
+
+
+ var lastComponent = components[componentLen - 1];
+
+ if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
+ components[componentLen - 2].value += lastComponent.value;
+ components.pop();
+ }
+
+ return components;
+ }
+
+ function clonePath(path) {
+ return {
+ newPos: path.newPos,
+ components: path.components.slice(0)
+ };
+ }
+
+ var characterDiff = new Diff();
+ function diffChars(oldStr, newStr, options) {
+ return characterDiff.diff(oldStr, newStr, options);
+ }
+
+ function generateOptions(options, defaults) {
+ if (typeof options === 'function') {
+ defaults.callback = options;
+ } else if (options) {
+ for (var name in options) {
+ /* istanbul ignore else */
+ if (options.hasOwnProperty(name)) {
+ defaults[name] = options[name];
+ }
+ }
+ }
+
+ return defaults;
+ }
+
+ //
+ // Ranges and exceptions:
+ // Latin-1 Supplement, 0080–00FF
+ // - U+00D7 × Multiplication sign
+ // - U+00F7 ÷ Division sign
+ // Latin Extended-A, 0100–017F
+ // Latin Extended-B, 0180–024F
+ // IPA Extensions, 0250–02AF
+ // Spacing Modifier Letters, 02B0–02FF
+ // - U+02C7 ˇ &#711; Caron
+ // - U+02D8 ˘ &#728; Breve
+ // - U+02D9 ˙ &#729; Dot Above
+ // - U+02DA ˚ &#730; Ring Above
+ // - U+02DB ˛ &#731; Ogonek
+ // - U+02DC ˜ &#732; Small Tilde
+ // - U+02DD ˝ &#733; Double Acute Accent
+ // Latin Extended Additional, 1E00–1EFF
+
+ var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
+ var reWhitespace = /\S/;
+ var wordDiff = new Diff();
+
+ wordDiff.equals = function (left, right) {
+ if (this.options.ignoreCase) {
+ left = left.toLowerCase();
+ right = right.toLowerCase();
+ }
+
+ return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
+ };
+
+ wordDiff.tokenize = function (value) {
+ // All whitespace symbols except newline group into one token, each newline - in separate token
+ var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.
+
+ for (var i = 0; i < tokens.length - 1; i++) {
+ // If we have an empty string in the next field and we have only word chars before and after, merge
+ if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
+ tokens[i] += tokens[i + 2];
+ tokens.splice(i + 1, 2);
+ i--;
+ }
+ }
+
+ return tokens;
+ };
+
+ function diffWords(oldStr, newStr, options) {
+ options = generateOptions(options, {
+ ignoreWhitespace: true
+ });
+ return wordDiff.diff(oldStr, newStr, options);
+ }
+ function diffWordsWithSpace(oldStr, newStr, options) {
+ return wordDiff.diff(oldStr, newStr, options);
+ }
+
+ var lineDiff = new Diff();
+
+ lineDiff.tokenize = function (value) {
+ var retLines = [],
+ linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line
+
+ if (!linesAndNewlines[linesAndNewlines.length - 1]) {
+ linesAndNewlines.pop();
+ } // Merge the content and line separators into single tokens
+
+
+ for (var i = 0; i < linesAndNewlines.length; i++) {
+ var line = linesAndNewlines[i];
+
+ if (i % 2 && !this.options.newlineIsToken) {
+ retLines[retLines.length - 1] += line;
+ } else {
+ if (this.options.ignoreWhitespace) {
+ line = line.trim();
+ }
+
+ retLines.push(line);
+ }
+ }
+
+ return retLines;
+ };
+
+ function diffLines(oldStr, newStr, callback) {
+ return lineDiff.diff(oldStr, newStr, callback);
+ }
+ function diffTrimmedLines(oldStr, newStr, callback) {
+ var options = generateOptions(callback, {
+ ignoreWhitespace: true
+ });
+ return lineDiff.diff(oldStr, newStr, options);
+ }
+
+ var sentenceDiff = new Diff();
+
+ sentenceDiff.tokenize = function (value) {
+ return value.split(/(\S.+?[.!?])(?=\s+|$)/);
+ };
+
+ function diffSentences(oldStr, newStr, callback) {
+ return sentenceDiff.diff(oldStr, newStr, callback);
+ }
+
+ var cssDiff = new Diff();
+
+ cssDiff.tokenize = function (value) {
+ return value.split(/([{}:;,]|\s+)/);
+ };
+
+ function diffCss(oldStr, newStr, callback) {
+ return cssDiff.diff(oldStr, newStr, callback);
+ }
+
+ function _typeof(obj) {
+ "@babel/helpers - typeof";
+
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
+ }
+
+ function _toConsumableArray(arr) {
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
+ }
+
+ function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
+ }
+
+ function _iterableToArray(iter) {
+ if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
+ }
+
+ function _unsupportedIterableToArray(o, minLen) {
+ if (!o) return;
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor) n = o.constructor.name;
+ if (n === "Map" || n === "Set") return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
+ }
+
+ function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
+
+ return arr2;
+ }
+
+ function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+ }
+
+ var objectPrototypeToString = Object.prototype.toString;
+ var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
+ // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
+
+ jsonDiff.useLongestToken = true;
+ jsonDiff.tokenize = lineDiff.tokenize;
+
+ jsonDiff.castInput = function (value) {
+ var _this$options = this.options,
+ undefinedReplacement = _this$options.undefinedReplacement,
+ _this$options$stringi = _this$options.stringifyReplacer,
+ stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {
+ return typeof v === 'undefined' ? undefinedReplacement : v;
+ } : _this$options$stringi;
+ return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');
+ };
+
+ jsonDiff.equals = function (left, right) {
+ return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'));
+ };
+
+ function diffJson(oldObj, newObj, options) {
+ return jsonDiff.diff(oldObj, newObj, options);
+ } // This function handles the presence of circular references by bailing out when encountering an
+ // object that is already on the "stack" of items being processed. Accepts an optional replacer
+
+ function canonicalize(obj, stack, replacementStack, replacer, key) {
+ stack = stack || [];
+ replacementStack = replacementStack || [];
+
+ if (replacer) {
+ obj = replacer(key, obj);
+ }
+
+ var i;
+
+ for (i = 0; i < stack.length; i += 1) {
+ if (stack[i] === obj) {
+ return replacementStack[i];
+ }
+ }
+
+ var canonicalizedObj;
+
+ if ('[object Array]' === objectPrototypeToString.call(obj)) {
+ stack.push(obj);
+ canonicalizedObj = new Array(obj.length);
+ replacementStack.push(canonicalizedObj);
+
+ for (i = 0; i < obj.length; i += 1) {
+ canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
+ }
+
+ stack.pop();
+ replacementStack.pop();
+ return canonicalizedObj;
+ }
+
+ if (obj && obj.toJSON) {
+ obj = obj.toJSON();
+ }
+
+ if (_typeof(obj) === 'object' && obj !== null) {
+ stack.push(obj);
+ canonicalizedObj = {};
+ replacementStack.push(canonicalizedObj);
+
+ var sortedKeys = [],
+ _key;
+
+ for (_key in obj) {
+ /* istanbul ignore else */
+ if (obj.hasOwnProperty(_key)) {
+ sortedKeys.push(_key);
+ }
+ }
+
+ sortedKeys.sort();
+
+ for (i = 0; i < sortedKeys.length; i += 1) {
+ _key = sortedKeys[i];
+ canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
+ }
+
+ stack.pop();
+ replacementStack.pop();
+ } else {
+ canonicalizedObj = obj;
+ }
+
+ return canonicalizedObj;
+ }
+
+ var arrayDiff = new Diff();
+
+ arrayDiff.tokenize = function (value) {
+ return value.slice();
+ };
+
+ arrayDiff.join = arrayDiff.removeEmpty = function (value) {
+ return value;
+ };
+
+ function diffArrays(oldArr, newArr, callback) {
+ return arrayDiff.diff(oldArr, newArr, callback);
+ }
+
+ function parsePatch(uniDiff) {
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/),
+ delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [],
+ list = [],
+ i = 0;
+
+ function parseIndex() {
+ var index = {};
+ list.push(index); // Parse diff metadata
+
+ while (i < diffstr.length) {
+ var line = diffstr[i]; // File header found, end parsing diff metadata
+
+ if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
+ break;
+ } // Diff index
+
+
+ var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
+
+ if (header) {
+ index.index = header[1];
+ }
+
+ i++;
+ } // Parse file headers if they are defined. Unified diff requires them, but
+ // there's no technical issues to have an isolated hunk without file header
+
+
+ parseFileHeader(index);
+ parseFileHeader(index); // Parse hunks
+
+ index.hunks = [];
+
+ while (i < diffstr.length) {
+ var _line = diffstr[i];
+
+ if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
+ break;
+ } else if (/^@@/.test(_line)) {
+ index.hunks.push(parseHunk());
+ } else if (_line && options.strict) {
+ // Ignore unexpected content unless in strict mode
+ throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
+ } else {
+ i++;
+ }
+ }
+ } // Parses the --- and +++ headers, if none are found, no lines
+ // are consumed.
+
+
+ function parseFileHeader(index) {
+ var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
+
+ if (fileHeader) {
+ var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
+ var data = fileHeader[2].split('\t', 2);
+ var fileName = data[0].replace(/\\\\/g, '\\');
+
+ if (/^".*"$/.test(fileName)) {
+ fileName = fileName.substr(1, fileName.length - 2);
+ }
+
+ index[keyPrefix + 'FileName'] = fileName;
+ index[keyPrefix + 'Header'] = (data[1] || '').trim();
+ i++;
+ }
+ } // Parses a hunk
+ // This assumes that we are at the start of a hunk.
+
+
+ function parseHunk() {
+ var chunkHeaderIndex = i,
+ chunkHeaderLine = diffstr[i++],
+ chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
+ var hunk = {
+ oldStart: +chunkHeader[1],
+ oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],
+ newStart: +chunkHeader[3],
+ newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],
+ lines: [],
+ linedelimiters: []
+ }; // Unified Diff Format quirk: If the chunk size is 0,
+ // the first number is one lower than one would expect.
+ // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
+
+ if (hunk.oldLines === 0) {
+ hunk.oldStart += 1;
+ }
+
+ if (hunk.newLines === 0) {
+ hunk.newStart += 1;
+ }
+
+ var addCount = 0,
+ removeCount = 0;
+
+ for (; i < diffstr.length; i++) {
+ // Lines starting with '---' could be mistaken for the "remove line" operation
+ // But they could be the header for the next file. Therefore prune such cases out.
+ if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {
+ break;
+ }
+
+ var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];
+
+ if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
+ hunk.lines.push(diffstr[i]);
+ hunk.linedelimiters.push(delimiters[i] || '\n');
+
+ if (operation === '+') {
+ addCount++;
+ } else if (operation === '-') {
+ removeCount++;
+ } else if (operation === ' ') {
+ addCount++;
+ removeCount++;
+ }
+ } else {
+ break;
+ }
+ } // Handle the empty block count case
+
+
+ if (!addCount && hunk.newLines === 1) {
+ hunk.newLines = 0;
+ }
+
+ if (!removeCount && hunk.oldLines === 1) {
+ hunk.oldLines = 0;
+ } // Perform optional sanity checking
+
+
+ if (options.strict) {
+ if (addCount !== hunk.newLines) {
+ throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
+ }
+
+ if (removeCount !== hunk.oldLines) {
+ throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
+ }
+ }
+
+ return hunk;
+ }
+
+ while (i < diffstr.length) {
+ parseIndex();
+ }
+
+ return list;
+ }
+
+ // Iterator that traverses in the range of [min, max], stepping
+ // by distance from a given start position. I.e. for [0, 4], with
+ // start of 2, this will iterate 2, 3, 1, 4, 0.
+ function distanceIterator (start, minLine, maxLine) {
+ var wantForward = true,
+ backwardExhausted = false,
+ forwardExhausted = false,
+ localOffset = 1;
+ return function iterator() {
+ if (wantForward && !forwardExhausted) {
+ if (backwardExhausted) {
+ localOffset++;
+ } else {
+ wantForward = false;
+ } // Check if trying to fit beyond text length, and if not, check it fits
+ // after offset location (or desired location on first iteration)
+
+
+ if (start + localOffset <= maxLine) {
+ return localOffset;
+ }
+
+ forwardExhausted = true;
+ }
+
+ if (!backwardExhausted) {
+ if (!forwardExhausted) {
+ wantForward = true;
+ } // Check if trying to fit before text beginning, and if not, check it fits
+ // before offset location
+
+
+ if (minLine <= start - localOffset) {
+ return -localOffset++;
+ }
+
+ backwardExhausted = true;
+ return iterator();
+ } // We tried to fit hunk before text beginning and beyond text length, then
+ // hunk can't fit on the text. Return undefined
+
+ };
+ }
+
+ function applyPatch(source, uniDiff) {
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+ if (typeof uniDiff === 'string') {
+ uniDiff = parsePatch(uniDiff);
+ }
+
+ if (Array.isArray(uniDiff)) {
+ if (uniDiff.length > 1) {
+ throw new Error('applyPatch only works with a single input.');
+ }
+
+ uniDiff = uniDiff[0];
+ } // Apply the diff to the input
+
+
+ var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
+ delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
+ hunks = uniDiff.hunks,
+ compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {
+ return line === patchContent;
+ },
+ errorCount = 0,
+ fuzzFactor = options.fuzzFactor || 0,
+ minLine = 0,
+ offset = 0,
+ removeEOFNL,
+ addEOFNL;
+ /**
+ * Checks if the hunk exactly fits on the provided location
+ */
+
+
+ function hunkFits(hunk, toPos) {
+ for (var j = 0; j < hunk.lines.length; j++) {
+ var line = hunk.lines[j],
+ operation = line.length > 0 ? line[0] : ' ',
+ content = line.length > 0 ? line.substr(1) : line;
+
+ if (operation === ' ' || operation === '-') {
+ // Context sanity check
+ if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
+ errorCount++;
+
+ if (errorCount > fuzzFactor) {
+ return false;
+ }
+ }
+
+ toPos++;
+ }
+ }
+
+ return true;
+ } // Search best fit offsets for each hunk based on the previous ones
+
+
+ for (var i = 0; i < hunks.length; i++) {
+ var hunk = hunks[i],
+ maxLine = lines.length - hunk.oldLines,
+ localOffset = 0,
+ toPos = offset + hunk.oldStart - 1;
+ var iterator = distanceIterator(toPos, minLine, maxLine);
+
+ for (; localOffset !== undefined; localOffset = iterator()) {
+ if (hunkFits(hunk, toPos + localOffset)) {
+ hunk.offset = offset += localOffset;
+ break;
+ }
+ }
+
+ if (localOffset === undefined) {
+ return false;
+ } // Set lower text limit to end of the current hunk, so next ones don't try
+ // to fit over already patched text
+
+
+ minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
+ } // Apply patch hunks
+
+
+ var diffOffset = 0;
+
+ for (var _i = 0; _i < hunks.length; _i++) {
+ var _hunk = hunks[_i],
+ _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
+
+ diffOffset += _hunk.newLines - _hunk.oldLines;
+
+ for (var j = 0; j < _hunk.lines.length; j++) {
+ var line = _hunk.lines[j],
+ operation = line.length > 0 ? line[0] : ' ',
+ content = line.length > 0 ? line.substr(1) : line,
+ delimiter = _hunk.linedelimiters[j];
+
+ if (operation === ' ') {
+ _toPos++;
+ } else if (operation === '-') {
+ lines.splice(_toPos, 1);
+ delimiters.splice(_toPos, 1);
+ /* istanbul ignore else */
+ } else if (operation === '+') {
+ lines.splice(_toPos, 0, content);
+ delimiters.splice(_toPos, 0, delimiter);
+ _toPos++;
+ } else if (operation === '\\') {
+ var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
+
+ if (previousOperation === '+') {
+ removeEOFNL = true;
+ } else if (previousOperation === '-') {
+ addEOFNL = true;
+ }
+ }
+ }
+ } // Handle EOFNL insertion/removal
+
+
+ if (removeEOFNL) {
+ while (!lines[lines.length - 1]) {
+ lines.pop();
+ delimiters.pop();
+ }
+ } else if (addEOFNL) {
+ lines.push('');
+ delimiters.push('\n');
+ }
+
+ for (var _k = 0; _k < lines.length - 1; _k++) {
+ lines[_k] = lines[_k] + delimiters[_k];
+ }
+
+ return lines.join('');
+ } // Wrapper that supports multiple file patches via callbacks.
+
+ function applyPatches(uniDiff, options) {
+ if (typeof uniDiff === 'string') {
+ uniDiff = parsePatch(uniDiff);
+ }
+
+ var currentIndex = 0;
+
+ function processIndex() {
+ var index = uniDiff[currentIndex++];
+
+ if (!index) {
+ return options.complete();
+ }
+
+ options.loadFile(index, function (err, data) {
+ if (err) {
+ return options.complete(err);
+ }
+
+ var updatedContent = applyPatch(data, index, options);
+ options.patched(index, updatedContent, function (err) {
+ if (err) {
+ return options.complete(err);
+ }
+
+ processIndex();
+ });
+ });
+ }
+
+ processIndex();
+ }
+
+ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
+ if (!options) {
+ options = {};
+ }
+
+ if (typeof options.context === 'undefined') {
+ options.context = 4;
+ }
+
+ var diff = diffLines(oldStr, newStr, options);
+ diff.push({
+ value: '',
+ lines: []
+ }); // Append an empty value to make cleanup easier
+
+ function contextLines(lines) {
+ return lines.map(function (entry) {
+ return ' ' + entry;
+ });
+ }
+
+ var hunks = [];
+ var oldRangeStart = 0,
+ newRangeStart = 0,
+ curRange = [],
+ oldLine = 1,
+ newLine = 1;
+
+ var _loop = function _loop(i) {
+ var current = diff[i],
+ lines = current.lines || current.value.replace(/\n$/, '').split('\n');
+ current.lines = lines;
+
+ if (current.added || current.removed) {
+ var _curRange;
+
+ // If we have previous context, start with that
+ if (!oldRangeStart) {
+ var prev = diff[i - 1];
+ oldRangeStart = oldLine;
+ newRangeStart = newLine;
+
+ if (prev) {
+ curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
+ oldRangeStart -= curRange.length;
+ newRangeStart -= curRange.length;
+ }
+ } // Output our changes
+
+
+ (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {
+ return (current.added ? '+' : '-') + entry;
+ }))); // Track the updated file position
+
+
+ if (current.added) {
+ newLine += lines.length;
+ } else {
+ oldLine += lines.length;
+ }
+ } else {
+ // Identical context lines. Track line changes
+ if (oldRangeStart) {
+ // Close out any changes that have been output (or join overlapping)
+ if (lines.length <= options.context * 2 && i < diff.length - 2) {
+ var _curRange2;
+
+ // Overlapping
+ (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));
+ } else {
+ var _curRange3;
+
+ // end the range and output
+ var contextSize = Math.min(lines.length, options.context);
+
+ (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));
+
+ var hunk = {
+ oldStart: oldRangeStart,
+ oldLines: oldLine - oldRangeStart + contextSize,
+ newStart: newRangeStart,
+ newLines: newLine - newRangeStart + contextSize,
+ lines: curRange
+ };
+
+ if (i >= diff.length - 2 && lines.length <= options.context) {
+ // EOF is inside this hunk
+ var oldEOFNewline = /\n$/.test(oldStr);
+ var newEOFNewline = /\n$/.test(newStr);
+ var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
+
+ if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
+ // special case: old has no eol and no trailing context; no-nl can end up before adds
+ // however, if the old file is empty, do not output the no-nl line
+ curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
+ }
+
+ if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
+ curRange.push('\\ No newline at end of file');
+ }
+ }
+
+ hunks.push(hunk);
+ oldRangeStart = 0;
+ newRangeStart = 0;
+ curRange = [];
+ }
+ }
+
+ oldLine += lines.length;
+ newLine += lines.length;
+ }
+ };
+
+ for (var i = 0; i < diff.length; i++) {
+ _loop(i);
+ }
+
+ return {
+ oldFileName: oldFileName,
+ newFileName: newFileName,
+ oldHeader: oldHeader,
+ newHeader: newHeader,
+ hunks: hunks
+ };
+ }
+ function formatPatch(diff) {
+ var ret = [];
+
+ if (diff.oldFileName == diff.newFileName) {
+ ret.push('Index: ' + diff.oldFileName);
+ }
+
+ ret.push('===================================================================');
+ ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
+ ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
+
+ for (var i = 0; i < diff.hunks.length; i++) {
+ var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,
+ // the first number is one lower than one would expect.
+ // https://www.artima.com/weblogs/viewpost.jsp?thread=164293
+
+ if (hunk.oldLines === 0) {
+ hunk.oldStart -= 1;
+ }
+
+ if (hunk.newLines === 0) {
+ hunk.newStart -= 1;
+ }
+
+ ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
+ ret.push.apply(ret, hunk.lines);
+ }
+
+ return ret.join('\n') + '\n';
+ }
+ function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
+ return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
+ }
+ function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
+ return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
+ }
+
+ function arrayEqual(a, b) {
+ if (a.length !== b.length) {
+ return false;
+ }
+
+ return arrayStartsWith(a, b);
+ }
+ function arrayStartsWith(array, start) {
+ if (start.length > array.length) {
+ return false;
+ }
+
+ for (var i = 0; i < start.length; i++) {
+ if (start[i] !== array[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ function calcLineCount(hunk) {
+ var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),
+ oldLines = _calcOldNewLineCount.oldLines,
+ newLines = _calcOldNewLineCount.newLines;
+
+ if (oldLines !== undefined) {
+ hunk.oldLines = oldLines;
+ } else {
+ delete hunk.oldLines;
+ }
+
+ if (newLines !== undefined) {
+ hunk.newLines = newLines;
+ } else {
+ delete hunk.newLines;
+ }
+ }
+ function merge(mine, theirs, base) {
+ mine = loadPatch(mine, base);
+ theirs = loadPatch(theirs, base);
+ var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.
+ // Leaving sanity checks on this to the API consumer that may know more about the
+ // meaning in their own context.
+
+ if (mine.index || theirs.index) {
+ ret.index = mine.index || theirs.index;
+ }
+
+ if (mine.newFileName || theirs.newFileName) {
+ if (!fileNameChanged(mine)) {
+ // No header or no change in ours, use theirs (and ours if theirs does not exist)
+ ret.oldFileName = theirs.oldFileName || mine.oldFileName;
+ ret.newFileName = theirs.newFileName || mine.newFileName;
+ ret.oldHeader = theirs.oldHeader || mine.oldHeader;
+ ret.newHeader = theirs.newHeader || mine.newHeader;
+ } else if (!fileNameChanged(theirs)) {
+ // No header or no change in theirs, use ours
+ ret.oldFileName = mine.oldFileName;
+ ret.newFileName = mine.newFileName;
+ ret.oldHeader = mine.oldHeader;
+ ret.newHeader = mine.newHeader;
+ } else {
+ // Both changed... figure it out
+ ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
+ ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
+ ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
+ ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
+ }
+ }
+
+ ret.hunks = [];
+ var mineIndex = 0,
+ theirsIndex = 0,
+ mineOffset = 0,
+ theirsOffset = 0;
+
+ while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
+ var mineCurrent = mine.hunks[mineIndex] || {
+ oldStart: Infinity
+ },
+ theirsCurrent = theirs.hunks[theirsIndex] || {
+ oldStart: Infinity
+ };
+
+ if (hunkBefore(mineCurrent, theirsCurrent)) {
+ // This patch does not overlap with any of the others, yay.
+ ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
+ mineIndex++;
+ theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
+ } else if (hunkBefore(theirsCurrent, mineCurrent)) {
+ // This patch does not overlap with any of the others, yay.
+ ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
+ theirsIndex++;
+ mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
+ } else {
+ // Overlap, merge as best we can
+ var mergedHunk = {
+ oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
+ oldLines: 0,
+ newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
+ newLines: 0,
+ lines: []
+ };
+ mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
+ theirsIndex++;
+ mineIndex++;
+ ret.hunks.push(mergedHunk);
+ }
+ }
+
+ return ret;
+ }
+
+ function loadPatch(param, base) {
+ if (typeof param === 'string') {
+ if (/^@@/m.test(param) || /^Index:/m.test(param)) {
+ return parsePatch(param)[0];
+ }
+
+ if (!base) {
+ throw new Error('Must provide a base reference or pass in a patch');
+ }
+
+ return structuredPatch(undefined, undefined, base, param);
+ }
+
+ return param;
+ }
+
+ function fileNameChanged(patch) {
+ return patch.newFileName && patch.newFileName !== patch.oldFileName;
+ }
+
+ function selectField(index, mine, theirs) {
+ if (mine === theirs) {
+ return mine;
+ } else {
+ index.conflict = true;
+ return {
+ mine: mine,
+ theirs: theirs
+ };
+ }
+ }
+
+ function hunkBefore(test, check) {
+ return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
+ }
+
+ function cloneHunk(hunk, offset) {
+ return {
+ oldStart: hunk.oldStart,
+ oldLines: hunk.oldLines,
+ newStart: hunk.newStart + offset,
+ newLines: hunk.newLines,
+ lines: hunk.lines
+ };
+ }
+
+ function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
+ // This will generally result in a conflicted hunk, but there are cases where the context
+ // is the only overlap where we can successfully merge the content here.
+ var mine = {
+ offset: mineOffset,
+ lines: mineLines,
+ index: 0
+ },
+ their = {
+ offset: theirOffset,
+ lines: theirLines,
+ index: 0
+ }; // Handle any leading content
+
+ insertLeading(hunk, mine, their);
+ insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.
+
+ while (mine.index < mine.lines.length && their.index < their.lines.length) {
+ var mineCurrent = mine.lines[mine.index],
+ theirCurrent = their.lines[their.index];
+
+ if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
+ // Both modified ...
+ mutualChange(hunk, mine, their);
+ } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
+ var _hunk$lines;
+
+ // Mine inserted
+ (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));
+ } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
+ var _hunk$lines2;
+
+ // Theirs inserted
+ (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));
+ } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
+ // Mine removed or edited
+ removal(hunk, mine, their);
+ } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
+ // Their removed or edited
+ removal(hunk, their, mine, true);
+ } else if (mineCurrent === theirCurrent) {
+ // Context identity
+ hunk.lines.push(mineCurrent);
+ mine.index++;
+ their.index++;
+ } else {
+ // Context mismatch
+ conflict(hunk, collectChange(mine), collectChange(their));
+ }
+ } // Now push anything that may be remaining
+
+
+ insertTrailing(hunk, mine);
+ insertTrailing(hunk, their);
+ calcLineCount(hunk);
+ }
+
+ function mutualChange(hunk, mine, their) {
+ var myChanges = collectChange(mine),
+ theirChanges = collectChange(their);
+
+ if (allRemoves(myChanges) && allRemoves(theirChanges)) {
+ // Special case for remove changes that are supersets of one another
+ if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
+ var _hunk$lines3;
+
+ (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));
+
+ return;
+ } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
+ var _hunk$lines4;
+
+ (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));
+
+ return;
+ }
+ } else if (arrayEqual(myChanges, theirChanges)) {
+ var _hunk$lines5;
+
+ (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));
+
+ return;
+ }
+
+ conflict(hunk, myChanges, theirChanges);
+ }
+
+ function removal(hunk, mine, their, swap) {
+ var myChanges = collectChange(mine),
+ theirChanges = collectContext(their, myChanges);
+
+ if (theirChanges.merged) {
+ var _hunk$lines6;
+
+ (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));
+ } else {
+ conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
+ }
+ }
+
+ function conflict(hunk, mine, their) {
+ hunk.conflict = true;
+ hunk.lines.push({
+ conflict: true,
+ mine: mine,
+ theirs: their
+ });
+ }
+
+ function insertLeading(hunk, insert, their) {
+ while (insert.offset < their.offset && insert.index < insert.lines.length) {
+ var line = insert.lines[insert.index++];
+ hunk.lines.push(line);
+ insert.offset++;
+ }
+ }
+
+ function insertTrailing(hunk, insert) {
+ while (insert.index < insert.lines.length) {
+ var line = insert.lines[insert.index++];
+ hunk.lines.push(line);
+ }
+ }
+
+ function collectChange(state) {
+ var ret = [],
+ operation = state.lines[state.index][0];
+
+ while (state.index < state.lines.length) {
+ var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
+
+ if (operation === '-' && line[0] === '+') {
+ operation = '+';
+ }
+
+ if (operation === line[0]) {
+ ret.push(line);
+ state.index++;
+ } else {
+ break;
+ }
+ }
+
+ return ret;
+ }
+
+ function collectContext(state, matchChanges) {
+ var changes = [],
+ merged = [],
+ matchIndex = 0,
+ contextChanges = false,
+ conflicted = false;
+
+ while (matchIndex < matchChanges.length && state.index < state.lines.length) {
+ var change = state.lines[state.index],
+ match = matchChanges[matchIndex]; // Once we've hit our add, then we are done
+
+ if (match[0] === '+') {
+ break;
+ }
+
+ contextChanges = contextChanges || change[0] !== ' ';
+ merged.push(match);
+ matchIndex++; // Consume any additions in the other block as a conflict to attempt
+ // to pull in the remaining context after this
+
+ if (change[0] === '+') {
+ conflicted = true;
+
+ while (change[0] === '+') {
+ changes.push(change);
+ change = state.lines[++state.index];
+ }
+ }
+
+ if (match.substr(1) === change.substr(1)) {
+ changes.push(change);
+ state.index++;
+ } else {
+ conflicted = true;
+ }
+ }
+
+ if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
+ conflicted = true;
+ }
+
+ if (conflicted) {
+ return changes;
+ }
+
+ while (matchIndex < matchChanges.length) {
+ merged.push(matchChanges[matchIndex++]);
+ }
+
+ return {
+ merged: merged,
+ changes: changes
+ };
+ }
+
+ function allRemoves(changes) {
+ return changes.reduce(function (prev, change) {
+ return prev && change[0] === '-';
+ }, true);
+ }
+
+ function skipRemoveSuperset(state, removeChanges, delta) {
+ for (var i = 0; i < delta; i++) {
+ var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
+
+ if (state.lines[state.index + i] !== ' ' + changeContent) {
+ return false;
+ }
+ }
+
+ state.index += delta;
+ return true;
+ }
+
+ function calcOldNewLineCount(lines) {
+ var oldLines = 0;
+ var newLines = 0;
+ lines.forEach(function (line) {
+ if (typeof line !== 'string') {
+ var myCount = calcOldNewLineCount(line.mine);
+ var theirCount = calcOldNewLineCount(line.theirs);
+
+ if (oldLines !== undefined) {
+ if (myCount.oldLines === theirCount.oldLines) {
+ oldLines += myCount.oldLines;
+ } else {
+ oldLines = undefined;
+ }
+ }
+
+ if (newLines !== undefined) {
+ if (myCount.newLines === theirCount.newLines) {
+ newLines += myCount.newLines;
+ } else {
+ newLines = undefined;
+ }
+ }
+ } else {
+ if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {
+ newLines++;
+ }
+
+ if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {
+ oldLines++;
+ }
+ }
+ });
+ return {
+ oldLines: oldLines,
+ newLines: newLines
+ };
+ }
+
+ // See: http://code.google.com/p/google-diff-match-patch/wiki/API
+ function convertChangesToDMP(changes) {
+ var ret = [],
+ change,
+ operation;
+
+ for (var i = 0; i < changes.length; i++) {
+ change = changes[i];
+
+ if (change.added) {
+ operation = 1;
+ } else if (change.removed) {
+ operation = -1;
+ } else {
+ operation = 0;
+ }
+
+ ret.push([operation, change.value]);
+ }
+
+ return ret;
+ }
+
+ function convertChangesToXML(changes) {
+ var ret = [];
+
+ for (var i = 0; i < changes.length; i++) {
+ var change = changes[i];
+
+ if (change.added) {
+ ret.push('<ins>');
+ } else if (change.removed) {
+ ret.push('<del>');
+ }
+
+ ret.push(escapeHTML(change.value));
+
+ if (change.added) {
+ ret.push('</ins>');
+ } else if (change.removed) {
+ ret.push('</del>');
+ }
+ }
+
+ return ret.join('');
+ }
+
+ function escapeHTML(s) {
+ var n = s;
+ n = n.replace(/&/g, '&amp;');
+ n = n.replace(/</g, '&lt;');
+ n = n.replace(/>/g, '&gt;');
+ n = n.replace(/"/g, '&quot;');
+ return n;
+ }
+
+ exports.Diff = Diff;
+ exports.applyPatch = applyPatch;
+ exports.applyPatches = applyPatches;
+ exports.canonicalize = canonicalize;
+ exports.convertChangesToDMP = convertChangesToDMP;
+ exports.convertChangesToXML = convertChangesToXML;
+ exports.createPatch = createPatch;
+ exports.createTwoFilesPatch = createTwoFilesPatch;
+ exports.diffArrays = diffArrays;
+ exports.diffChars = diffChars;
+ exports.diffCss = diffCss;
+ exports.diffJson = diffJson;
+ exports.diffLines = diffLines;
+ exports.diffSentences = diffSentences;
+ exports.diffTrimmedLines = diffTrimmedLines;
+ exports.diffWords = diffWords;
+ exports.diffWordsWithSpace = diffWordsWithSpace;
+ exports.merge = merge;
+ exports.parsePatch = parsePatch;
+ exports.structuredPatch = structuredPatch;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+ })));
+ });
+
+ /**
+ * Helpers.
+ */
+
+ var s$1 = 1000;
+ var m$1 = s$1 * 60;
+ var h$1 = m$1 * 60;
+ var d$1 = h$1 * 24;
+ var w$1 = d$1 * 7;
+ var y$1 = d$1 * 365.25;
+
+ /**
+ * Parse or format the given `val`.
+ *
+ * Options:
+ *
+ * - `long` verbose formatting [false]
+ *
+ * @param {String|Number} val
+ * @param {Object} [options]
+ * @throws {Error} throw an error if val is not a non-empty string or a number
+ * @return {String|Number}
+ * @api public
+ */
+
+ var ms$1 = function (val, options) {
+ options = options || {};
+ var type = typeof val;
+ if (type === 'string' && val.length > 0) {
+ return parse$1(val);
+ } else if (type === 'number' && isFinite(val)) {
+ return options.long ? fmtLong$1(val) : fmtShort$1(val);
+ }
+ throw new Error(
+ 'val is not a non-empty string or a valid number. val=' +
+ JSON.stringify(val)
+ );
+ };
+
+ /**
+ * Parse the given `str` and return milliseconds.
+ *
+ * @param {String} str
+ * @return {Number}
+ * @api private
+ */
+
+ function parse$1(str) {
+ str = String(str);
+ if (str.length > 100) {
+ return;
+ }
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+ str
+ );
+ if (!match) {
+ return;
+ }
+ var n = parseFloat(match[1]);
+ var type = (match[2] || 'ms').toLowerCase();
+ switch (type) {
+ case 'years':
+ case 'year':
+ case 'yrs':
+ case 'yr':
+ case 'y':
+ return n * y$1;
+ case 'weeks':
+ case 'week':
+ case 'w':
+ return n * w$1;
+ case 'days':
+ case 'day':
+ case 'd':
+ return n * d$1;
+ case 'hours':
+ case 'hour':
+ case 'hrs':
+ case 'hr':
+ case 'h':
+ return n * h$1;
+ case 'minutes':
+ case 'minute':
+ case 'mins':
+ case 'min':
+ case 'm':
+ return n * m$1;
+ case 'seconds':
+ case 'second':
+ case 'secs':
+ case 'sec':
+ case 's':
+ return n * s$1;
+ case 'milliseconds':
+ case 'millisecond':
+ case 'msecs':
+ case 'msec':
+ case 'ms':
+ return n;
+ default:
+ return undefined;
+ }
+ }
+
+ /**
+ * Short format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+ function fmtShort$1(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d$1) {
+ return Math.round(ms / d$1) + 'd';
+ }
+ if (msAbs >= h$1) {
+ return Math.round(ms / h$1) + 'h';
+ }
+ if (msAbs >= m$1) {
+ return Math.round(ms / m$1) + 'm';
+ }
+ if (msAbs >= s$1) {
+ return Math.round(ms / s$1) + 's';
+ }
+ return ms + 'ms';
+ }
+
+ /**
+ * Long format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+ function fmtLong$1(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d$1) {
+ return plural$1(ms, msAbs, d$1, 'day');
+ }
+ if (msAbs >= h$1) {
+ return plural$1(ms, msAbs, h$1, 'hour');
+ }
+ if (msAbs >= m$1) {
+ return plural$1(ms, msAbs, m$1, 'minute');
+ }
+ if (msAbs >= s$1) {
+ return plural$1(ms, msAbs, s$1, 'second');
+ }
+ return ms + ' ms';
+ }
+
+ /**
+ * Pluralization helper.
+ */
+
+ function plural$1(ms, msAbs, n, name) {
+ var isPlural = msAbs >= n * 1.5;
+ return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
+ }
+
+ var browser$2 = true;
+
+ // This alphabet uses `A-Za-z0-9_-` symbols. The genetic algorithm helped
+ // optimize the gzip compression for this alphabet.
+ let urlAlphabet =
+ 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';
+
+ let customAlphabet = (alphabet, size) => {
+ return () => {
+ let id = '';
+ // A compact alternative for `for (var i = 0; i < step; i++)`.
+ let i = size;
+ while (i--) {
+ // `| 0` is more compact and faster than `Math.floor()`.
+ id += alphabet[(Math.random() * alphabet.length) | 0];
+ }
+ return id
+ }
+ };
+
+ let nanoid = (size = 21) => {
+ let id = '';
+ // A compact alternative for `for (var i = 0; i < step; i++)`.
+ let i = size;
+ while (i--) {
+ // `| 0` is more compact and faster than `Math.floor()`.
+ id += urlAlphabet[(Math.random() * 64) | 0];
+ }
+ return id
+ };
+
+ var nonSecure = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ nanoid: nanoid,
+ customAlphabet: customAlphabet
+ });
+
+ var he = createCommonjsModule(function (module, exports) {
+ (function(root) {
+
+ // Detect free variables `exports`.
+ var freeExports = exports;
+
+ // Detect free variable `module`.
+ var freeModule = module &&
+ module.exports == freeExports && module;
+
+ // Detect free variable `global`, from Node.js or Browserified code,
+ // and use it as `root`.
+ var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal;
+ if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
+ root = freeGlobal;
+ }
+
+ /*--------------------------------------------------------------------------*/
+
+ // All astral symbols.
+ var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+ // All ASCII symbols (not just printable ASCII) except those listed in the
+ // first column of the overrides table.
+ // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides
+ var regexAsciiWhitelist = /[\x01-\x7F]/g;
+ // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or
+ // code points listed in the first column of the overrides table on
+ // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.
+ var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;
+
+ var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g;
+ var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'};
+
+ var regexEscape = /["&'<>`]/g;
+ var escapeMap = {
+ '"': '&quot;',
+ '&': '&amp;',
+ '\'': '&#x27;',
+ '<': '&lt;',
+ // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
+ // following is not strictly necessary unless it’s part of a tag or an
+ // unquoted attribute value. We’re only escaping it to support those
+ // situations, and for XML support.
+ '>': '&gt;',
+ // In Internet Explorer ≤ 8, the backtick character can be used
+ // to break out of (un)quoted attribute values or HTML comments.
+ // See http://html5sec.org/#102, http://html5sec.org/#108, and
+ // http://html5sec.org/#133.
+ '`': '&#x60;'
+ };
+
+ var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;
+ var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
+ var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;
+ var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'};
+ var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'};
+ var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'};
+ var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];
+
+ /*--------------------------------------------------------------------------*/
+
+ var stringFromCharCode = String.fromCharCode;
+
+ var object = {};
+ var hasOwnProperty = object.hasOwnProperty;
+ var has = function(object, propertyName) {
+ return hasOwnProperty.call(object, propertyName);
+ };
+
+ var contains = function(array, value) {
+ var index = -1;
+ var length = array.length;
+ while (++index < length) {
+ if (array[index] == value) {
+ return true;
+ }
+ }
+ return false;
+ };
+
+ var merge = function(options, defaults) {
+ if (!options) {
+ return defaults;
+ }
+ var result = {};
+ var key;
+ for (key in defaults) {
+ // A `hasOwnProperty` check is not needed here, since only recognized
+ // option names are used anyway. Any others are ignored.
+ result[key] = has(options, key) ? options[key] : defaults[key];
+ }
+ return result;
+ };
+
+ // Modified version of `ucs2encode`; see https://mths.be/punycode.
+ var codePointToSymbol = function(codePoint, strict) {
+ var output = '';
+ if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {
+ // See issue #4:
+ // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is
+ // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD
+ // REPLACEMENT CHARACTER.”
+ if (strict) {
+ parseError('character reference outside the permissible Unicode range');
+ }
+ return '\uFFFD';
+ }
+ if (has(decodeMapNumeric, codePoint)) {
+ if (strict) {
+ parseError('disallowed character reference');
+ }
+ return decodeMapNumeric[codePoint];
+ }
+ if (strict && contains(invalidReferenceCodePoints, codePoint)) {
+ parseError('disallowed character reference');
+ }
+ if (codePoint > 0xFFFF) {
+ codePoint -= 0x10000;
+ output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);
+ codePoint = 0xDC00 | codePoint & 0x3FF;
+ }
+ output += stringFromCharCode(codePoint);
+ return output;
+ };
+
+ var hexEscape = function(codePoint) {
+ return '&#x' + codePoint.toString(16).toUpperCase() + ';';
+ };
+
+ var decEscape = function(codePoint) {
+ return '&#' + codePoint + ';';
+ };
+
+ var parseError = function(message) {
+ throw Error('Parse error: ' + message);
+ };
+
+ /*--------------------------------------------------------------------------*/
+
+ var encode = function(string, options) {
+ options = merge(options, encode.options);
+ var strict = options.strict;
+ if (strict && regexInvalidRawCodePoint.test(string)) {
+ parseError('forbidden code point');
+ }
+ var encodeEverything = options.encodeEverything;
+ var useNamedReferences = options.useNamedReferences;
+ var allowUnsafeSymbols = options.allowUnsafeSymbols;
+ var escapeCodePoint = options.decimal ? decEscape : hexEscape;
+
+ var escapeBmpSymbol = function(symbol) {
+ return escapeCodePoint(symbol.charCodeAt(0));
+ };
+
+ if (encodeEverything) {
+ // Encode ASCII symbols.
+ string = string.replace(regexAsciiWhitelist, function(symbol) {
+ // Use named references if requested & possible.
+ if (useNamedReferences && has(encodeMap, symbol)) {
+ return '&' + encodeMap[symbol] + ';';
+ }
+ return escapeBmpSymbol(symbol);
+ });
+ // Shorten a few escapes that represent two symbols, of which at least one
+ // is within the ASCII range.
+ if (useNamedReferences) {
+ string = string
+ .replace(/&gt;\u20D2/g, '&nvgt;')
+ .replace(/&lt;\u20D2/g, '&nvlt;')
+ .replace(/&#x66;&#x6A;/g, '&fjlig;');
+ }
+ // Encode non-ASCII symbols.
+ if (useNamedReferences) {
+ // Encode non-ASCII symbols that can be replaced with a named reference.
+ string = string.replace(regexEncodeNonAscii, function(string) {
+ // Note: there is no need to check `has(encodeMap, string)` here.
+ return '&' + encodeMap[string] + ';';
+ });
+ }
+ // Note: any remaining non-ASCII symbols are handled outside of the `if`.
+ } else if (useNamedReferences) {
+ // Apply named character references.
+ // Encode `<>"'&` using named character references.
+ if (!allowUnsafeSymbols) {
+ string = string.replace(regexEscape, function(string) {
+ return '&' + encodeMap[string] + ';'; // no need to check `has()` here
+ });
+ }
+ // Shorten escapes that represent two symbols, of which at least one is
+ // `<>"'&`.
+ string = string
+ .replace(/&gt;\u20D2/g, '&nvgt;')
+ .replace(/&lt;\u20D2/g, '&nvlt;');
+ // Encode non-ASCII symbols that can be replaced with a named reference.
+ string = string.replace(regexEncodeNonAscii, function(string) {
+ // Note: there is no need to check `has(encodeMap, string)` here.
+ return '&' + encodeMap[string] + ';';
+ });
+ } else if (!allowUnsafeSymbols) {
+ // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled
+ // using named character references.
+ string = string.replace(regexEscape, escapeBmpSymbol);
+ }
+ return string
+ // Encode astral symbols.
+ .replace(regexAstralSymbols, function($0) {
+ // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
+ var high = $0.charCodeAt(0);
+ var low = $0.charCodeAt(1);
+ var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;
+ return escapeCodePoint(codePoint);
+ })
+ // Encode any remaining BMP symbols that are not printable ASCII symbols
+ // using a hexadecimal escape.
+ .replace(regexBmpWhitelist, escapeBmpSymbol);
+ };
+ // Expose default options (so they can be overridden globally).
+ encode.options = {
+ 'allowUnsafeSymbols': false,
+ 'encodeEverything': false,
+ 'strict': false,
+ 'useNamedReferences': false,
+ 'decimal' : false
+ };
+
+ var decode = function(html, options) {
+ options = merge(options, decode.options);
+ var strict = options.strict;
+ if (strict && regexInvalidEntity.test(html)) {
+ parseError('malformed character reference');
+ }
+ return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {
+ var codePoint;
+ var semicolon;
+ var decDigits;
+ var hexDigits;
+ var reference;
+ var next;
+
+ if ($1) {
+ reference = $1;
+ // Note: there is no need to check `has(decodeMap, reference)`.
+ return decodeMap[reference];
+ }
+
+ if ($2) {
+ // Decode named character references without trailing `;`, e.g. `&amp`.
+ // This is only a parse error if it gets converted to `&`, or if it is
+ // followed by `=` in an attribute context.
+ reference = $2;
+ next = $3;
+ if (next && options.isAttributeValue) {
+ if (strict && next == '=') {
+ parseError('`&` did not start a character reference');
+ }
+ return $0;
+ } else {
+ if (strict) {
+ parseError(
+ 'named character reference was not terminated by a semicolon'
+ );
+ }
+ // Note: there is no need to check `has(decodeMapLegacy, reference)`.
+ return decodeMapLegacy[reference] + (next || '');
+ }
+ }
+
+ if ($4) {
+ // Decode decimal escapes, e.g. `&#119558;`.
+ decDigits = $4;
+ semicolon = $5;
+ if (strict && !semicolon) {
+ parseError('character reference was not terminated by a semicolon');
+ }
+ codePoint = parseInt(decDigits, 10);
+ return codePointToSymbol(codePoint, strict);
+ }
+
+ if ($6) {
+ // Decode hexadecimal escapes, e.g. `&#x1D306;`.
+ hexDigits = $6;
+ semicolon = $7;
+ if (strict && !semicolon) {
+ parseError('character reference was not terminated by a semicolon');
+ }
+ codePoint = parseInt(hexDigits, 16);
+ return codePointToSymbol(codePoint, strict);
+ }
+
+ // If we’re still here, `if ($7)` is implied; it’s an ambiguous
+ // ampersand for sure. https://mths.be/notes/ambiguous-ampersands
+ if (strict) {
+ parseError(
+ 'named character reference was not terminated by a semicolon'
+ );
+ }
+ return $0;
+ });
+ };
+ // Expose default options (so they can be overridden globally).
+ decode.options = {
+ 'isAttributeValue': false,
+ 'strict': false
+ };
+
+ var escape = function(string) {
+ return string.replace(regexEscape, function($0) {
+ // Note: there is no need to check `has(escapeMap, $0)` here.
+ return escapeMap[$0];
+ });
+ };
+
+ /*--------------------------------------------------------------------------*/
+
+ var he = {
+ 'version': '1.2.0',
+ 'encode': encode,
+ 'decode': decode,
+ 'escape': escape,
+ 'unescape': decode
+ };
+
+ // Some AMD build optimizers, like r.js, check for specific condition patterns
+ // like the following:
+ if (freeExports && !freeExports.nodeType) {
+ if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+
+ freeModule.exports = he;
+ } else { // in Narwhal or RingoJS v0.7.0-
+ for (var key in he) {
+ has(he, key) && (freeExports[key] = he[key]);
+ }
+ }
+ } else { // in Rhino or a web browser
+ root.he = he;
+ }
+
+ }(commonjsGlobal));
+ });
+
+ var utils = createCommonjsModule(function (module, exports) {
+
+ /**
+ * Various utility functions used throughout Mocha's codebase.
+ * @module utils
+ */
+
+ /**
+ * Module dependencies.
+ */
+
+ const {nanoid} = nonSecure;
+
+
+
+
+ const MOCHA_ID_PROP_NAME = '__mocha_id__';
+
+ /**
+ * Inherit the prototype methods from one constructor into another.
+ *
+ * @param {function} ctor - Constructor function which needs to inherit the
+ * prototype.
+ * @param {function} superCtor - Constructor function to inherit prototype from.
+ * @throws {TypeError} if either constructor is null, or if super constructor
+ * lacks a prototype.
+ */
+ exports.inherits = util.inherits;
+
+ /**
+ * Escape special characters in the given string of html.
+ *
+ * @private
+ * @param {string} html
+ * @return {string}
+ */
+ exports.escape = function(html) {
+ return he.encode(String(html), {useNamedReferences: false});
+ };
+
+ /**
+ * Test if the given obj is type of string.
+ *
+ * @private
+ * @param {Object} obj
+ * @return {boolean}
+ */
+ exports.isString = function(obj) {
+ return typeof obj === 'string';
+ };
+
+ /**
+ * Compute a slug from the given `str`.
+ *
+ * @private
+ * @param {string} str
+ * @return {string}
+ */
+ exports.slug = function(str) {
+ return str
+ .toLowerCase()
+ .replace(/\s+/g, '-')
+ .replace(/[^-\w]/g, '')
+ .replace(/-{2,}/g, '-');
+ };
+
+ /**
+ * Strip the function definition from `str`, and re-indent for pre whitespace.
+ *
+ * @param {string} str
+ * @return {string}
+ */
+ exports.clean = function(str) {
+ str = str
+ .replace(/\r\n?|[\n\u2028\u2029]/g, '\n')
+ .replace(/^\uFEFF/, '')
+ // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content
+ .replace(
+ /^function(?:\s*|\s+[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\s*\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\s*\}|((?:.|\n)*))$/,
+ '$1$2$3'
+ );
+
+ var spaces = str.match(/^\n?( *)/)[1].length;
+ var tabs = str.match(/^\n?(\t*)/)[1].length;
+ var re = new RegExp(
+ '^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs || spaces) + '}',
+ 'gm'
+ );
+
+ str = str.replace(re, '');
+
+ return str.trim();
+ };
+
+ /**
+ * If a value could have properties, and has none, this function is called,
+ * which returns a string representation of the empty value.
+ *
+ * Functions w/ no properties return `'[Function]'`
+ * Arrays w/ length === 0 return `'[]'`
+ * Objects w/ no properties return `'{}'`
+ * All else: return result of `value.toString()`
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @param {string} typeHint The type of the value
+ * @returns {string}
+ */
+ function emptyRepresentation(value, typeHint) {
+ switch (typeHint) {
+ case 'function':
+ return '[Function]';
+ case 'object':
+ return '{}';
+ case 'array':
+ return '[]';
+ default:
+ return value.toString();
+ }
+ }
+
+ /**
+ * Takes some variable and asks `Object.prototype.toString()` what it thinks it
+ * is.
+ *
+ * @private
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString
+ * @param {*} value The value to test.
+ * @returns {string} Computed type
+ * @example
+ * canonicalType({}) // 'object'
+ * canonicalType([]) // 'array'
+ * canonicalType(1) // 'number'
+ * canonicalType(false) // 'boolean'
+ * canonicalType(Infinity) // 'number'
+ * canonicalType(null) // 'null'
+ * canonicalType(new Date()) // 'date'
+ * canonicalType(/foo/) // 'regexp'
+ * canonicalType('type') // 'string'
+ * canonicalType(global) // 'global'
+ * canonicalType(new String('foo') // 'object'
+ * canonicalType(async function() {}) // 'asyncfunction'
+ * canonicalType(await import(name)) // 'module'
+ */
+ var canonicalType = (exports.canonicalType = function canonicalType(value) {
+ if (value === undefined) {
+ return 'undefined';
+ } else if (value === null) {
+ return 'null';
+ } else if (isBuffer$2(value)) {
+ return 'buffer';
+ }
+ return Object.prototype.toString
+ .call(value)
+ .replace(/^\[.+\s(.+?)]$/, '$1')
+ .toLowerCase();
+ });
+
+ /**
+ *
+ * Returns a general type or data structure of a variable
+ * @private
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures
+ * @param {*} value The value to test.
+ * @returns {string} One of undefined, boolean, number, string, bigint, symbol, object
+ * @example
+ * type({}) // 'object'
+ * type([]) // 'array'
+ * type(1) // 'number'
+ * type(false) // 'boolean'
+ * type(Infinity) // 'number'
+ * type(null) // 'null'
+ * type(new Date()) // 'object'
+ * type(/foo/) // 'object'
+ * type('type') // 'string'
+ * type(global) // 'object'
+ * type(new String('foo') // 'string'
+ */
+ exports.type = function type(value) {
+ // Null is special
+ if (value === null) return 'null';
+ const primitives = new Set([
+ 'undefined',
+ 'boolean',
+ 'number',
+ 'string',
+ 'bigint',
+ 'symbol'
+ ]);
+ const _type = typeof value;
+ if (_type === 'function') return _type;
+ if (primitives.has(_type)) return _type;
+ if (value instanceof String) return 'string';
+ if (value instanceof Error) return 'error';
+ if (Array.isArray(value)) return 'array';
+
+ return _type;
+ };
+
+ /**
+ * Stringify `value`. Different behavior depending on type of value:
+ *
+ * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.
+ * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.
+ * - If `value` is an *empty* object, function, or array, return result of function
+ * {@link emptyRepresentation}.
+ * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of
+ * JSON.stringify().
+ *
+ * @private
+ * @see exports.type
+ * @param {*} value
+ * @return {string}
+ */
+ exports.stringify = function(value) {
+ var typeHint = canonicalType(value);
+
+ if (!~['object', 'array', 'function'].indexOf(typeHint)) {
+ if (typeHint === 'buffer') {
+ var json = Buffer$1.prototype.toJSON.call(value);
+ // Based on the toJSON result
+ return jsonStringify(
+ json.data && json.type ? json.data : json,
+ 2
+ ).replace(/,(\n|$)/g, '$1');
+ }
+
+ // IE7/IE8 has a bizarre String constructor; needs to be coerced
+ // into an array and back to obj.
+ if (typeHint === 'string' && typeof value === 'object') {
+ value = value.split('').reduce(function(acc, char, idx) {
+ acc[idx] = char;
+ return acc;
+ }, {});
+ typeHint = 'object';
+ } else {
+ return jsonStringify(value);
+ }
+ }
+
+ for (var prop in value) {
+ if (Object.prototype.hasOwnProperty.call(value, prop)) {
+ return jsonStringify(
+ exports.canonicalize(value, null, typeHint),
+ 2
+ ).replace(/,(\n|$)/g, '$1');
+ }
+ }
+
+ return emptyRepresentation(value, typeHint);
+ };
+
+ /**
+ * like JSON.stringify but more sense.
+ *
+ * @private
+ * @param {Object} object
+ * @param {number=} spaces
+ * @param {number=} depth
+ * @returns {*}
+ */
+ function jsonStringify(object, spaces, depth) {
+ if (typeof spaces === 'undefined') {
+ // primitive types
+ return _stringify(object);
+ }
+
+ depth = depth || 1;
+ var space = spaces * depth;
+ var str = Array.isArray(object) ? '[' : '{';
+ var end = Array.isArray(object) ? ']' : '}';
+ var length =
+ typeof object.length === 'number'
+ ? object.length
+ : Object.keys(object).length;
+ // `.repeat()` polyfill
+ function repeat(s, n) {
+ return new Array(n).join(s);
+ }
+
+ function _stringify(val) {
+ switch (canonicalType(val)) {
+ case 'null':
+ case 'undefined':
+ val = '[' + val + ']';
+ break;
+ case 'array':
+ case 'object':
+ val = jsonStringify(val, spaces, depth + 1);
+ break;
+ case 'boolean':
+ case 'regexp':
+ case 'symbol':
+ case 'number':
+ val =
+ val === 0 && 1 / val === -Infinity // `-0`
+ ? '-0'
+ : val.toString();
+ break;
+ case 'bigint':
+ val = val.toString() + 'n';
+ break;
+ case 'date':
+ var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString();
+ val = '[Date: ' + sDate + ']';
+ break;
+ case 'buffer':
+ var json = val.toJSON();
+ // Based on the toJSON result
+ json = json.data && json.type ? json.data : json;
+ val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']';
+ break;
+ default:
+ val =
+ val === '[Function]' || val === '[Circular]'
+ ? val
+ : JSON.stringify(val); // string
+ }
+ return val;
+ }
+
+ for (var i in object) {
+ if (!Object.prototype.hasOwnProperty.call(object, i)) {
+ continue; // not my business
+ }
+ --length;
+ str +=
+ '\n ' +
+ repeat(' ', space) +
+ (Array.isArray(object) ? '' : '"' + i + '": ') + // key
+ _stringify(object[i]) + // value
+ (length ? ',' : ''); // comma
+ }
+
+ return (
+ str +
+ // [], {}
+ (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end)
+ );
+ }
+
+ /**
+ * Return a new Thing that has the keys in sorted order. Recursive.
+ *
+ * If the Thing...
+ * - has already been seen, return string `'[Circular]'`
+ * - is `undefined`, return string `'[undefined]'`
+ * - is `null`, return value `null`
+ * - is some other primitive, return the value
+ * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method
+ * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.
+ * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()`
+ *
+ * @private
+ * @see {@link exports.stringify}
+ * @param {*} value Thing to inspect. May or may not have properties.
+ * @param {Array} [stack=[]] Stack of seen values
+ * @param {string} [typeHint] Type hint
+ * @return {(Object|Array|Function|string|undefined)}
+ */
+ exports.canonicalize = function canonicalize(value, stack, typeHint) {
+ var canonicalizedObj;
+ /* eslint-disable no-unused-vars */
+ var prop;
+ /* eslint-enable no-unused-vars */
+ typeHint = typeHint || canonicalType(value);
+ function withStack(value, fn) {
+ stack.push(value);
+ fn();
+ stack.pop();
+ }
+
+ stack = stack || [];
+
+ if (stack.indexOf(value) !== -1) {
+ return '[Circular]';
+ }
+
+ switch (typeHint) {
+ case 'undefined':
+ case 'buffer':
+ case 'null':
+ canonicalizedObj = value;
+ break;
+ case 'array':
+ withStack(value, function() {
+ canonicalizedObj = value.map(function(item) {
+ return exports.canonicalize(item, stack);
+ });
+ });
+ break;
+ case 'function':
+ /* eslint-disable-next-line no-unused-vars */
+ for (prop in value) {
+ canonicalizedObj = {};
+ break;
+ }
+ /* eslint-enable guard-for-in */
+ if (!canonicalizedObj) {
+ canonicalizedObj = emptyRepresentation(value, typeHint);
+ break;
+ }
+ /* falls through */
+ case 'object':
+ canonicalizedObj = canonicalizedObj || {};
+ withStack(value, function() {
+ Object.keys(value)
+ .sort()
+ .forEach(function(key) {
+ canonicalizedObj[key] = exports.canonicalize(value[key], stack);
+ });
+ });
+ break;
+ case 'date':
+ case 'number':
+ case 'regexp':
+ case 'boolean':
+ case 'symbol':
+ canonicalizedObj = value;
+ break;
+ default:
+ canonicalizedObj = value + '';
+ }
+
+ return canonicalizedObj;
+ };
+
+ /**
+ * @summary
+ * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`)
+ * @description
+ * When invoking this function you get a filter function that get the Error.stack as an input,
+ * and return a prettify output.
+ * (i.e: strip Mocha and internal node functions from stack trace).
+ * @returns {Function}
+ */
+ exports.stackTraceFilter = function() {
+ // TODO: Replace with `process.browser`
+ var is = typeof document === 'undefined' ? {node: true} : {browser: true};
+ var slash = path.sep;
+ var cwd;
+ if (is.node) {
+ cwd = exports.cwd() + slash;
+ } else {
+ cwd = (typeof location === 'undefined'
+ ? window.location
+ : location
+ ).href.replace(/\/[^/]*$/, '/');
+ slash = '/';
+ }
+
+ function isMochaInternal(line) {
+ return (
+ ~line.indexOf('node_modules' + slash + 'mocha' + slash) ||
+ ~line.indexOf(slash + 'mocha.js') ||
+ ~line.indexOf(slash + 'mocha.min.js')
+ );
+ }
+
+ function isNodeInternal(line) {
+ return (
+ ~line.indexOf('(timers.js:') ||
+ ~line.indexOf('(events.js:') ||
+ ~line.indexOf('(node.js:') ||
+ ~line.indexOf('(module.js:') ||
+ ~line.indexOf('GeneratorFunctionPrototype.next (native)') ||
+ false
+ );
+ }
+
+ return function(stack) {
+ stack = stack.split('\n');
+
+ stack = stack.reduce(function(list, line) {
+ if (isMochaInternal(line)) {
+ return list;
+ }
+
+ if (is.node && isNodeInternal(line)) {
+ return list;
+ }
+
+ // Clean up cwd(absolute)
+ if (/:\d+:\d+\)?$/.test(line)) {
+ line = line.replace('(' + cwd, '(');
+ }
+
+ list.push(line);
+ return list;
+ }, []);
+
+ return stack.join('\n');
+ };
+ };
+
+ /**
+ * Crude, but effective.
+ * @public
+ * @param {*} value
+ * @returns {boolean} Whether or not `value` is a Promise
+ */
+ exports.isPromise = function isPromise(value) {
+ return (
+ typeof value === 'object' &&
+ value !== null &&
+ typeof value.then === 'function'
+ );
+ };
+
+ /**
+ * Clamps a numeric value to an inclusive range.
+ *
+ * @param {number} value - Value to be clamped.
+ * @param {number[]} range - Two element array specifying [min, max] range.
+ * @returns {number} clamped value
+ */
+ exports.clamp = function clamp(value, range) {
+ return Math.min(Math.max(value, range[0]), range[1]);
+ };
+
+ /**
+ * It's a noop.
+ * @public
+ */
+ exports.noop = function() {};
+
+ /**
+ * Creates a map-like object.
+ *
+ * @description
+ * A "map" is an object with no prototype, for our purposes. In some cases
+ * this would be more appropriate than a `Map`, especially if your environment
+ * doesn't support it. Recommended for use in Mocha's public APIs.
+ *
+ * @public
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Custom_and_Null_objects|MDN:Map}
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Custom_and_Null_objects|MDN:Object.create - Custom objects}
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Custom_and_Null_objects|MDN:Object.assign}
+ * @param {...*} [obj] - Arguments to `Object.assign()`.
+ * @returns {Object} An object with no prototype, having `...obj` properties
+ */
+ exports.createMap = function(obj) {
+ return Object.assign.apply(
+ null,
+ [Object.create(null)].concat(Array.prototype.slice.call(arguments))
+ );
+ };
+
+ /**
+ * Creates a read-only map-like object.
+ *
+ * @description
+ * This differs from {@link module:utils.createMap createMap} only in that
+ * the argument must be non-empty, because the result is frozen.
+ *
+ * @see {@link module:utils.createMap createMap}
+ * @param {...*} [obj] - Arguments to `Object.assign()`.
+ * @returns {Object} A frozen object with no prototype, having `...obj` properties
+ * @throws {TypeError} if argument is not a non-empty object.
+ */
+ exports.defineConstants = function(obj) {
+ if (canonicalType(obj) !== 'object' || !Object.keys(obj).length) {
+ throw new TypeError('Invalid argument; expected a non-empty object');
+ }
+ return Object.freeze(exports.createMap(obj));
+ };
+
+ /**
+ * Whether current version of Node support ES modules
+ *
+ * @description
+ * Versions prior to 10 did not support ES Modules, and version 10 has an old incompatible version of ESM.
+ * This function returns whether Node.JS has ES Module supports that is compatible with Mocha's needs,
+ * which is version >=12.11.
+ *
+ * @param {partialSupport} whether the full Node.js ESM support is available (>= 12) or just something that supports the runtime (>= 10)
+ *
+ * @returns {Boolean} whether the current version of Node.JS supports ES Modules in a way that is compatible with Mocha
+ */
+ exports.supportsEsModules = function(partialSupport) {
+ if (!exports.isBrowser() && process$1.versions && process$1.versions.node) {
+ var versionFields = process$1.versions.node.split('.');
+ var major = +versionFields[0];
+ var minor = +versionFields[1];
+
+ if (!partialSupport) {
+ return major >= 13 || (major === 12 && minor >= 11);
+ } else {
+ return major >= 10;
+ }
+ }
+ };
+
+ /**
+ * Returns current working directory
+ *
+ * Wrapper around `process.cwd()` for isolation
+ * @private
+ */
+ exports.cwd = function cwd() {
+ return process$1.cwd();
+ };
+
+ /**
+ * Returns `true` if Mocha is running in a browser.
+ * Checks for `process.browser`.
+ * @returns {boolean}
+ * @private
+ */
+ exports.isBrowser = function isBrowser() {
+ return Boolean(browser$2);
+ };
+
+ /*
+ * Casts `value` to an array; useful for optionally accepting array parameters
+ *
+ * It follows these rules, depending on `value`. If `value` is...
+ * 1. `undefined`: return an empty Array
+ * 2. `null`: return an array with a single `null` element
+ * 3. Any other object: return the value of `Array.from()` _if_ the object is iterable
+ * 4. otherwise: return an array with a single element, `value`
+ * @param {*} value - Something to cast to an Array
+ * @returns {Array<*>}
+ */
+ exports.castArray = function castArray(value) {
+ if (value === undefined) {
+ return [];
+ }
+ if (value === null) {
+ return [null];
+ }
+ if (
+ typeof value === 'object' &&
+ (typeof value[Symbol.iterator] === 'function' || value.length !== undefined)
+ ) {
+ return Array.from(value);
+ }
+ return [value];
+ };
+
+ exports.constants = exports.defineConstants({
+ MOCHA_ID_PROP_NAME
+ });
+
+ /**
+ * Creates a new unique identifier
+ * @returns {string} Unique identifier
+ */
+ exports.uniqueID = () => nanoid();
+
+ exports.assignNewMochaID = obj => {
+ const id = exports.uniqueID();
+ Object.defineProperty(obj, MOCHA_ID_PROP_NAME, {
+ get() {
+ return id;
+ }
+ });
+ return obj;
+ };
+
+ /**
+ * Retrieves a Mocha ID from an object, if present.
+ * @param {*} [obj] - Object
+ * @returns {string|void}
+ */
+ exports.getMochaID = obj =>
+ obj && typeof obj === 'object' ? obj[MOCHA_ID_PROP_NAME] : undefined;
+ });
+
+ var _nodeResolve_empty = {};
+
+ var _nodeResolve_empty$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ 'default': _nodeResolve_empty
+ });
+
+ var browser$1 = {
+ info: 'ℹ️',
+ success: '✅',
+ warning: '⚠️',
+ error: '❌️'
+ };
+
+ /**
+ @module Pending
+ */
+
+ var pending = Pending;
+
+ /**
+ * Initialize a new `Pending` error with the given message.
+ *
+ * @param {string} message
+ */
+ function Pending(message) {
+ this.message = message;
+ }
+
+ /**
+ * Helpers.
+ */
+
+ var s = 1000;
+ var m = s * 60;
+ var h = m * 60;
+ var d = h * 24;
+ var w = d * 7;
+ var y = d * 365.25;
+
+ /**
+ * Parse or format the given `val`.
+ *
+ * Options:
+ *
+ * - `long` verbose formatting [false]
+ *
+ * @param {String|Number} val
+ * @param {Object} [options]
+ * @throws {Error} throw an error if val is not a non-empty string or a number
+ * @return {String|Number}
+ * @api public
+ */
+
+ var ms = function(val, options) {
+ options = options || {};
+ var type = typeof val;
+ if (type === 'string' && val.length > 0) {
+ return parse(val);
+ } else if (type === 'number' && isFinite(val)) {
+ return options.long ? fmtLong(val) : fmtShort(val);
+ }
+ throw new Error(
+ 'val is not a non-empty string or a valid number. val=' +
+ JSON.stringify(val)
+ );
+ };
+
+ /**
+ * Parse the given `str` and return milliseconds.
+ *
+ * @param {String} str
+ * @return {Number}
+ * @api private
+ */
+
+ function parse(str) {
+ str = String(str);
+ if (str.length > 100) {
+ return;
+ }
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+ str
+ );
+ if (!match) {
+ return;
+ }
+ var n = parseFloat(match[1]);
+ var type = (match[2] || 'ms').toLowerCase();
+ switch (type) {
+ case 'years':
+ case 'year':
+ case 'yrs':
+ case 'yr':
+ case 'y':
+ return n * y;
+ case 'weeks':
+ case 'week':
+ case 'w':
+ return n * w;
+ case 'days':
+ case 'day':
+ case 'd':
+ return n * d;
+ case 'hours':
+ case 'hour':
+ case 'hrs':
+ case 'hr':
+ case 'h':
+ return n * h;
+ case 'minutes':
+ case 'minute':
+ case 'mins':
+ case 'min':
+ case 'm':
+ return n * m;
+ case 'seconds':
+ case 'second':
+ case 'secs':
+ case 'sec':
+ case 's':
+ return n * s;
+ case 'milliseconds':
+ case 'millisecond':
+ case 'msecs':
+ case 'msec':
+ case 'ms':
+ return n;
+ default:
+ return undefined;
+ }
+ }
+
+ /**
+ * Short format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+ function fmtShort(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return Math.round(ms / d) + 'd';
+ }
+ if (msAbs >= h) {
+ return Math.round(ms / h) + 'h';
+ }
+ if (msAbs >= m) {
+ return Math.round(ms / m) + 'm';
+ }
+ if (msAbs >= s) {
+ return Math.round(ms / s) + 's';
+ }
+ return ms + 'ms';
+ }
+
+ /**
+ * Long format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+ function fmtLong(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return plural(ms, msAbs, d, 'day');
+ }
+ if (msAbs >= h) {
+ return plural(ms, msAbs, h, 'hour');
+ }
+ if (msAbs >= m) {
+ return plural(ms, msAbs, m, 'minute');
+ }
+ if (msAbs >= s) {
+ return plural(ms, msAbs, s, 'second');
+ }
+ return ms + ' ms';
+ }
+
+ /**
+ * Pluralization helper.
+ */
+
+ function plural(ms, msAbs, n, name) {
+ var isPlural = msAbs >= n * 1.5;
+ return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
+ }
+
+ /**
+ * This is the common logic for both the Node.js and web browser
+ * implementations of `debug()`.
+ */
+
+ function setup(env) {
+ createDebug.debug = createDebug;
+ createDebug.default = createDebug;
+ createDebug.coerce = coerce;
+ createDebug.disable = disable;
+ createDebug.enable = enable;
+ createDebug.enabled = enabled;
+ createDebug.humanize = ms;
+ createDebug.destroy = destroy;
+
+ Object.keys(env).forEach(key => {
+ createDebug[key] = env[key];
+ });
+
+ /**
+ * The currently active debug mode names, and names to skip.
+ */
+
+ createDebug.names = [];
+ createDebug.skips = [];
+
+ /**
+ * Map of special "%n" handling functions, for the debug "format" argument.
+ *
+ * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
+ */
+ createDebug.formatters = {};
+
+ /**
+ * Selects a color for a debug namespace
+ * @param {String} namespace The namespace string for the for the debug instance to be colored
+ * @return {Number|String} An ANSI color code for the given namespace
+ * @api private
+ */
+ function selectColor(namespace) {
+ let hash = 0;
+
+ for (let i = 0; i < namespace.length; i++) {
+ hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
+ hash |= 0; // Convert to 32bit integer
+ }
+
+ return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
+ }
+ createDebug.selectColor = selectColor;
+
+ /**
+ * Create a debugger with the given `namespace`.
+ *
+ * @param {String} namespace
+ * @return {Function}
+ * @api public
+ */
+ function createDebug(namespace) {
+ let prevTime;
+ let enableOverride = null;
+
+ function debug(...args) {
+ // Disabled?
+ if (!debug.enabled) {
+ return;
+ }
+
+ const self = debug;
+
+ // Set `diff` timestamp
+ const curr = Number(new Date());
+ const ms = curr - (prevTime || curr);
+ self.diff = ms;
+ self.prev = prevTime;
+ self.curr = curr;
+ prevTime = curr;
+
+ args[0] = createDebug.coerce(args[0]);
+
+ if (typeof args[0] !== 'string') {
+ // Anything else let's inspect with %O
+ args.unshift('%O');
+ }
+
+ // Apply any `formatters` transformations
+ let index = 0;
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
+ // If we encounter an escaped % then don't increase the array index
+ if (match === '%%') {
+ return '%';
+ }
+ index++;
+ const formatter = createDebug.formatters[format];
+ if (typeof formatter === 'function') {
+ const val = args[index];
+ match = formatter.call(self, val);
+
+ // Now we need to remove `args[index]` since it's inlined in the `format`
+ args.splice(index, 1);
+ index--;
+ }
+ return match;
+ });
+
+ // Apply env-specific formatting (colors, etc.)
+ createDebug.formatArgs.call(self, args);
+
+ const logFn = self.log || createDebug.log;
+ logFn.apply(self, args);
+ }
+
+ debug.namespace = namespace;
+ debug.useColors = createDebug.useColors();
+ debug.color = createDebug.selectColor(namespace);
+ debug.extend = extend;
+ debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.
+
+ Object.defineProperty(debug, 'enabled', {
+ enumerable: true,
+ configurable: false,
+ get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride,
+ set: v => {
+ enableOverride = v;
+ }
+ });
+
+ // Env-specific initialization logic for debug instances
+ if (typeof createDebug.init === 'function') {
+ createDebug.init(debug);
+ }
+
+ return debug;
+ }
+
+ function extend(namespace, delimiter) {
+ const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
+ newDebug.log = this.log;
+ return newDebug;
+ }
+
+ /**
+ * Enables a debug mode by namespaces. This can include modes
+ * separated by a colon and wildcards.
+ *
+ * @param {String} namespaces
+ * @api public
+ */
+ function enable(namespaces) {
+ createDebug.save(namespaces);
+
+ createDebug.names = [];
+ createDebug.skips = [];
+
+ let i;
+ const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
+ const len = split.length;
+
+ for (i = 0; i < len; i++) {
+ if (!split[i]) {
+ // ignore empty strings
+ continue;
+ }
+
+ namespaces = split[i].replace(/\*/g, '.*?');
+
+ if (namespaces[0] === '-') {
+ createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
+ } else {
+ createDebug.names.push(new RegExp('^' + namespaces + '$'));
+ }
+ }
+ }
+
+ /**
+ * Disable debug output.
+ *
+ * @return {String} namespaces
+ * @api public
+ */
+ function disable() {
+ const namespaces = [
+ ...createDebug.names.map(toNamespace),
+ ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
+ ].join(',');
+ createDebug.enable('');
+ return namespaces;
+ }
+
+ /**
+ * Returns true if the given mode name is enabled, false otherwise.
+ *
+ * @param {String} name
+ * @return {Boolean}
+ * @api public
+ */
+ function enabled(name) {
+ if (name[name.length - 1] === '*') {
+ return true;
+ }
+
+ let i;
+ let len;
+
+ for (i = 0, len = createDebug.skips.length; i < len; i++) {
+ if (createDebug.skips[i].test(name)) {
+ return false;
+ }
+ }
+
+ for (i = 0, len = createDebug.names.length; i < len; i++) {
+ if (createDebug.names[i].test(name)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Convert regexp to namespace
+ *
+ * @param {RegExp} regxep
+ * @return {String} namespace
+ * @api private
+ */
+ function toNamespace(regexp) {
+ return regexp.toString()
+ .substring(2, regexp.toString().length - 2)
+ .replace(/\.\*\?$/, '*');
+ }
+
+ /**
+ * Coerce `val`.
+ *
+ * @param {Mixed} val
+ * @return {Mixed}
+ * @api private
+ */
+ function coerce(val) {
+ if (val instanceof Error) {
+ return val.stack || val.message;
+ }
+ return val;
+ }
+
+ /**
+ * XXX DO NOT USE. This is a temporary stub function.
+ * XXX It WILL be removed in the next major release.
+ */
+ function destroy() {
+ console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
+ }
+
+ createDebug.enable(createDebug.load());
+
+ return createDebug;
+ }
+
+ var common$1 = setup;
+
+ var browser = createCommonjsModule(function (module, exports) {
+ /* eslint-env browser */
+
+ /**
+ * This is the web browser implementation of `debug()`.
+ */
+
+ exports.formatArgs = formatArgs;
+ exports.save = save;
+ exports.load = load;
+ exports.useColors = useColors;
+ exports.storage = localstorage();
+ exports.destroy = (() => {
+ let warned = false;
+
+ return () => {
+ if (!warned) {
+ warned = true;
+ console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
+ }
+ };
+ })();
+
+ /**
+ * Colors.
+ */
+
+ exports.colors = [
+ '#0000CC',
+ '#0000FF',
+ '#0033CC',
+ '#0033FF',
+ '#0066CC',
+ '#0066FF',
+ '#0099CC',
+ '#0099FF',
+ '#00CC00',
+ '#00CC33',
+ '#00CC66',
+ '#00CC99',
+ '#00CCCC',
+ '#00CCFF',
+ '#3300CC',
+ '#3300FF',
+ '#3333CC',
+ '#3333FF',
+ '#3366CC',
+ '#3366FF',
+ '#3399CC',
+ '#3399FF',
+ '#33CC00',
+ '#33CC33',
+ '#33CC66',
+ '#33CC99',
+ '#33CCCC',
+ '#33CCFF',
+ '#6600CC',
+ '#6600FF',
+ '#6633CC',
+ '#6633FF',
+ '#66CC00',
+ '#66CC33',
+ '#9900CC',
+ '#9900FF',
+ '#9933CC',
+ '#9933FF',
+ '#99CC00',
+ '#99CC33',
+ '#CC0000',
+ '#CC0033',
+ '#CC0066',
+ '#CC0099',
+ '#CC00CC',
+ '#CC00FF',
+ '#CC3300',
+ '#CC3333',
+ '#CC3366',
+ '#CC3399',
+ '#CC33CC',
+ '#CC33FF',
+ '#CC6600',
+ '#CC6633',
+ '#CC9900',
+ '#CC9933',
+ '#CCCC00',
+ '#CCCC33',
+ '#FF0000',
+ '#FF0033',
+ '#FF0066',
+ '#FF0099',
+ '#FF00CC',
+ '#FF00FF',
+ '#FF3300',
+ '#FF3333',
+ '#FF3366',
+ '#FF3399',
+ '#FF33CC',
+ '#FF33FF',
+ '#FF6600',
+ '#FF6633',
+ '#FF9900',
+ '#FF9933',
+ '#FFCC00',
+ '#FFCC33'
+ ];
+
+ /**
+ * Currently only WebKit-based Web Inspectors, Firefox >= v31,
+ * and the Firebug extension (any Firefox version) are known
+ * to support "%c" CSS customizations.
+ *
+ * TODO: add a `localStorage` variable to explicitly enable/disable colors
+ */
+
+ // eslint-disable-next-line complexity
+ function useColors() {
+ // NB: In an Electron preload script, document will be defined but not fully
+ // initialized. Since we know we're in Chrome, we'll just detect this case
+ // explicitly
+ if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
+ return true;
+ }
+
+ // Internet Explorer and Edge do not support colors.
+ if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
+ return false;
+ }
+
+ // Is webkit? http://stackoverflow.com/a/16459606/376773
+ // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
+ return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
+ // Is firebug? http://stackoverflow.com/a/398120/376773
+ (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
+ // Is firefox >= v31?
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
+ // Double check webkit in userAgent just in case we are in a worker
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
+ }
+
+ /**
+ * Colorize log arguments if enabled.
+ *
+ * @api public
+ */
+
+ function formatArgs(args) {
+ args[0] = (this.useColors ? '%c' : '') +
+ this.namespace +
+ (this.useColors ? ' %c' : ' ') +
+ args[0] +
+ (this.useColors ? '%c ' : ' ') +
+ '+' + module.exports.humanize(this.diff);
+
+ if (!this.useColors) {
+ return;
+ }
+
+ const c = 'color: ' + this.color;
+ args.splice(1, 0, c, 'color: inherit');
+
+ // The final "%c" is somewhat tricky, because there could be other
+ // arguments passed either before or after the %c, so we need to
+ // figure out the correct index to insert the CSS into
+ let index = 0;
+ let lastC = 0;
+ args[0].replace(/%[a-zA-Z%]/g, match => {
+ if (match === '%%') {
+ return;
+ }
+ index++;
+ if (match === '%c') {
+ // We only are interested in the *last* %c
+ // (the user may have provided their own)
+ lastC = index;
+ }
+ });
+
+ args.splice(lastC, 0, c);
+ }
+
+ /**
+ * Invokes `console.debug()` when available.
+ * No-op when `console.debug` is not a "function".
+ * If `console.debug` is not available, falls back
+ * to `console.log`.
+ *
+ * @api public
+ */
+ exports.log = console.debug || console.log || (() => {});
+
+ /**
+ * Save `namespaces`.
+ *
+ * @param {String} namespaces
+ * @api private
+ */
+ function save(namespaces) {
+ try {
+ if (namespaces) {
+ exports.storage.setItem('debug', namespaces);
+ } else {
+ exports.storage.removeItem('debug');
+ }
+ } catch (error) {
+ // Swallow
+ // XXX (@Qix-) should we be logging these?
+ }
+ }
+
+ /**
+ * Load `namespaces`.
+ *
+ * @return {String} returns the previously persisted debug modes
+ * @api private
+ */
+ function load() {
+ let r;
+ try {
+ r = exports.storage.getItem('debug');
+ } catch (error) {
+ // Swallow
+ // XXX (@Qix-) should we be logging these?
+ }
+
+ // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
+ if (!r && typeof process$1 !== 'undefined' && 'env' in process$1) {
+ r = process$1.env.DEBUG;
+ }
+
+ return r;
+ }
+
+ /**
+ * Localstorage attempts to return the localstorage.
+ *
+ * This is necessary because safari throws
+ * when a user disables cookies/localstorage
+ * and you attempt to access it.
+ *
+ * @return {LocalStorage}
+ * @api private
+ */
+
+ function localstorage() {
+ try {
+ // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
+ // The Browser also has localStorage in the global context.
+ return localStorage;
+ } catch (error) {
+ // Swallow
+ // XXX (@Qix-) should we be logging these?
+ }
+ }
+
+ module.exports = common$1(exports);
+
+ const {formatters} = module.exports;
+
+ /**
+ * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
+ */
+
+ formatters.j = function (v) {
+ try {
+ return JSON.stringify(v);
+ } catch (error) {
+ return '[UnexpectedJSONParseError]: ' + error.message;
+ }
+ };
+ });
+
+ const {format} = util;
+
+ /**
+ * Contains error codes, factory functions to create throwable error objects,
+ * and warning/deprecation functions.
+ * @module
+ */
+
+ /**
+ * process.emitWarning or a polyfill
+ * @see https://nodejs.org/api/process.html#process_process_emitwarning_warning_options
+ * @ignore
+ */
+ const emitWarning = (msg, type) => {
+ if (process$1.emitWarning) {
+ process$1.emitWarning(msg, type);
+ } else {
+ /* istanbul ignore next */
+ nextTick$1(function() {
+ console.warn(type + ': ' + msg);
+ });
+ }
+ };
+
+ /**
+ * Show a deprecation warning. Each distinct message is only displayed once.
+ * Ignores empty messages.
+ *
+ * @param {string} [msg] - Warning to print
+ * @private
+ */
+ const deprecate = msg => {
+ msg = String(msg);
+ if (msg && !deprecate.cache[msg]) {
+ deprecate.cache[msg] = true;
+ emitWarning(msg, 'DeprecationWarning');
+ }
+ };
+ deprecate.cache = {};
+
+ /**
+ * Show a generic warning.
+ * Ignores empty messages.
+ *
+ * @param {string} [msg] - Warning to print
+ * @private
+ */
+ const warn = msg => {
+ if (msg) {
+ emitWarning(msg);
+ }
+ };
+
+ /**
+ * When Mocha throws exceptions (or rejects `Promise`s), it attempts to assign a `code` property to the `Error` object, for easier handling. These are the potential values of `code`.
+ * @public
+ * @namespace
+ * @memberof module:lib/errors
+ */
+ var constants$4 = {
+ /**
+ * An unrecoverable error.
+ * @constant
+ * @default
+ */
+ FATAL: 'ERR_MOCHA_FATAL',
+
+ /**
+ * The type of an argument to a function call is invalid
+ * @constant
+ * @default
+ */
+ INVALID_ARG_TYPE: 'ERR_MOCHA_INVALID_ARG_TYPE',
+
+ /**
+ * The value of an argument to a function call is invalid
+ * @constant
+ * @default
+ */
+ INVALID_ARG_VALUE: 'ERR_MOCHA_INVALID_ARG_VALUE',
+
+ /**
+ * Something was thrown, but it wasn't an `Error`
+ * @constant
+ * @default
+ */
+ INVALID_EXCEPTION: 'ERR_MOCHA_INVALID_EXCEPTION',
+
+ /**
+ * An interface (e.g., `Mocha.interfaces`) is unknown or invalid
+ * @constant
+ * @default
+ */
+ INVALID_INTERFACE: 'ERR_MOCHA_INVALID_INTERFACE',
+
+ /**
+ * A reporter (.e.g, `Mocha.reporters`) is unknown or invalid
+ * @constant
+ * @default
+ */
+ INVALID_REPORTER: 'ERR_MOCHA_INVALID_REPORTER',
+
+ /**
+ * `done()` was called twice in a `Test` or `Hook` callback
+ * @constant
+ * @default
+ */
+ MULTIPLE_DONE: 'ERR_MOCHA_MULTIPLE_DONE',
+
+ /**
+ * No files matched the pattern provided by the user
+ * @constant
+ * @default
+ */
+ NO_FILES_MATCH_PATTERN: 'ERR_MOCHA_NO_FILES_MATCH_PATTERN',
+
+ /**
+ * Known, but unsupported behavior of some kind
+ * @constant
+ * @default
+ */
+ UNSUPPORTED: 'ERR_MOCHA_UNSUPPORTED',
+
+ /**
+ * Invalid state transition occurring in `Mocha` instance
+ * @constant
+ * @default
+ */
+ INSTANCE_ALREADY_RUNNING: 'ERR_MOCHA_INSTANCE_ALREADY_RUNNING',
+
+ /**
+ * Invalid state transition occurring in `Mocha` instance
+ * @constant
+ * @default
+ */
+ INSTANCE_ALREADY_DISPOSED: 'ERR_MOCHA_INSTANCE_ALREADY_DISPOSED',
+
+ /**
+ * Use of `only()` w/ `--forbid-only` results in this error.
+ * @constant
+ * @default
+ */
+ FORBIDDEN_EXCLUSIVITY: 'ERR_MOCHA_FORBIDDEN_EXCLUSIVITY',
+
+ /**
+ * To be thrown when a user-defined plugin implementation (e.g., `mochaHooks`) is invalid
+ * @constant
+ * @default
+ */
+ INVALID_PLUGIN_IMPLEMENTATION: 'ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION',
+
+ /**
+ * To be thrown when a builtin or third-party plugin definition (the _definition_ of `mochaHooks`) is invalid
+ * @constant
+ * @default
+ */
+ INVALID_PLUGIN_DEFINITION: 'ERR_MOCHA_INVALID_PLUGIN_DEFINITION',
+
+ /**
+ * When a runnable exceeds its allowed run time.
+ * @constant
+ * @default
+ */
+ TIMEOUT: 'ERR_MOCHA_TIMEOUT',
+
+ /**
+ * Input file is not able to be parsed
+ * @constant
+ * @default
+ */
+ UNPARSABLE_FILE: 'ERR_MOCHA_UNPARSABLE_FILE'
+ };
+
+ /**
+ * A set containing all string values of all Mocha error constants, for use by {@link isMochaError}.
+ * @private
+ */
+ const MOCHA_ERRORS = new Set(Object.values(constants$4));
+
+ /**
+ * Creates an error object to be thrown when no files to be tested could be found using specified pattern.
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @param {string} pattern - User-specified argument value.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createNoFilesMatchPatternError(message, pattern) {
+ var err = new Error(message);
+ err.code = constants$4.NO_FILES_MATCH_PATTERN;
+ err.pattern = pattern;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when the reporter specified in the options was not found.
+ *
+ * @public
+ * @param {string} message - Error message to be displayed.
+ * @param {string} reporter - User-specified reporter value.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createInvalidReporterError(message, reporter) {
+ var err = new TypeError(message);
+ err.code = constants$4.INVALID_REPORTER;
+ err.reporter = reporter;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when the interface specified in the options was not found.
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @param {string} ui - User-specified interface value.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createInvalidInterfaceError(message, ui) {
+ var err = new Error(message);
+ err.code = constants$4.INVALID_INTERFACE;
+ err.interface = ui;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when a behavior, option, or parameter is unsupported.
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createUnsupportedError$2(message) {
+ var err = new Error(message);
+ err.code = constants$4.UNSUPPORTED;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when an argument is missing.
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @param {string} argument - Argument name.
+ * @param {string} expected - Expected argument datatype.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createMissingArgumentError$1(message, argument, expected) {
+ return createInvalidArgumentTypeError$1(message, argument, expected);
+ }
+
+ /**
+ * Creates an error object to be thrown when an argument did not use the supported type
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @param {string} argument - Argument name.
+ * @param {string} expected - Expected argument datatype.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createInvalidArgumentTypeError$1(message, argument, expected) {
+ var err = new TypeError(message);
+ err.code = constants$4.INVALID_ARG_TYPE;
+ err.argument = argument;
+ err.expected = expected;
+ err.actual = typeof argument;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when an argument did not use the supported value
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @param {string} argument - Argument name.
+ * @param {string} value - Argument value.
+ * @param {string} [reason] - Why value is invalid.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createInvalidArgumentValueError(message, argument, value, reason) {
+ var err = new TypeError(message);
+ err.code = constants$4.INVALID_ARG_VALUE;
+ err.argument = argument;
+ err.value = value;
+ err.reason = typeof reason !== 'undefined' ? reason : 'is invalid';
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when an exception was caught, but the `Error` is falsy or undefined.
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createInvalidExceptionError$2(message, value) {
+ var err = new Error(message);
+ err.code = constants$4.INVALID_EXCEPTION;
+ err.valueType = typeof value;
+ err.value = value;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when an unrecoverable error occurs.
+ *
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @returns {Error} instance detailing the error condition
+ */
+ function createFatalError$1(message, value) {
+ var err = new Error(message);
+ err.code = constants$4.FATAL;
+ err.valueType = typeof value;
+ err.value = value;
+ return err;
+ }
+
+ /**
+ * Dynamically creates a plugin-type-specific error based on plugin type
+ * @param {string} message - Error message
+ * @param {"reporter"|"ui"} pluginType - Plugin type. Future: expand as needed
+ * @param {string} [pluginId] - Name/path of plugin, if any
+ * @throws When `pluginType` is not known
+ * @public
+ * @static
+ * @returns {Error}
+ */
+ function createInvalidLegacyPluginError(message, pluginType, pluginId) {
+ switch (pluginType) {
+ case 'reporter':
+ return createInvalidReporterError(message, pluginId);
+ case 'ui':
+ return createInvalidInterfaceError(message, pluginId);
+ default:
+ throw new Error('unknown pluginType "' + pluginType + '"');
+ }
+ }
+
+ /**
+ * **DEPRECATED**. Use {@link createInvalidLegacyPluginError} instead Dynamically creates a plugin-type-specific error based on plugin type
+ * @deprecated
+ * @param {string} message - Error message
+ * @param {"reporter"|"interface"} pluginType - Plugin type. Future: expand as needed
+ * @param {string} [pluginId] - Name/path of plugin, if any
+ * @throws When `pluginType` is not known
+ * @public
+ * @static
+ * @returns {Error}
+ */
+ function createInvalidPluginError(...args) {
+ deprecate('Use createInvalidLegacyPluginError() instead');
+ return createInvalidLegacyPluginError(...args);
+ }
+
+ /**
+ * Creates an error object to be thrown when a mocha object's `run` method is executed while it is already disposed.
+ * @param {string} message The error message to be displayed.
+ * @param {boolean} cleanReferencesAfterRun the value of `cleanReferencesAfterRun`
+ * @param {Mocha} instance the mocha instance that throw this error
+ * @static
+ */
+ function createMochaInstanceAlreadyDisposedError(
+ message,
+ cleanReferencesAfterRun,
+ instance
+ ) {
+ var err = new Error(message);
+ err.code = constants$4.INSTANCE_ALREADY_DISPOSED;
+ err.cleanReferencesAfterRun = cleanReferencesAfterRun;
+ err.instance = instance;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when a mocha object's `run` method is called while a test run is in progress.
+ * @param {string} message The error message to be displayed.
+ * @static
+ * @public
+ */
+ function createMochaInstanceAlreadyRunningError(message, instance) {
+ var err = new Error(message);
+ err.code = constants$4.INSTANCE_ALREADY_RUNNING;
+ err.instance = instance;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when done() is called multiple times in a test
+ *
+ * @public
+ * @param {Runnable} runnable - Original runnable
+ * @param {Error} [originalErr] - Original error, if any
+ * @returns {Error} instance detailing the error condition
+ * @static
+ */
+ function createMultipleDoneError$1(runnable, originalErr) {
+ var title;
+ try {
+ title = format('<%s>', runnable.fullTitle());
+ if (runnable.parent.root) {
+ title += ' (of root suite)';
+ }
+ } catch (ignored) {
+ title = format('<%s> (of unknown suite)', runnable.title);
+ }
+ var message = format(
+ 'done() called multiple times in %s %s',
+ runnable.type ? runnable.type : 'unknown runnable',
+ title
+ );
+ if (runnable.file) {
+ message += format(' of file %s', runnable.file);
+ }
+ if (originalErr) {
+ message += format('; in addition, done() received error: %s', originalErr);
+ }
+
+ var err = new Error(message);
+ err.code = constants$4.MULTIPLE_DONE;
+ err.valueType = typeof originalErr;
+ err.value = originalErr;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when `.only()` is used with
+ * `--forbid-only`.
+ * @static
+ * @public
+ * @param {Mocha} mocha - Mocha instance
+ * @returns {Error} Error with code {@link constants.FORBIDDEN_EXCLUSIVITY}
+ */
+ function createForbiddenExclusivityError$1(mocha) {
+ var err = new Error(
+ mocha.isWorker
+ ? '`.only` is not supported in parallel mode'
+ : '`.only` forbidden by --forbid-only'
+ );
+ err.code = constants$4.FORBIDDEN_EXCLUSIVITY;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when a plugin definition is invalid
+ * @static
+ * @param {string} msg - Error message
+ * @param {PluginDefinition} [pluginDef] - Problematic plugin definition
+ * @public
+ * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}
+ */
+ function createInvalidPluginDefinitionError(msg, pluginDef) {
+ const err = new Error(msg);
+ err.code = constants$4.INVALID_PLUGIN_DEFINITION;
+ err.pluginDef = pluginDef;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when a plugin implementation (user code) is invalid
+ * @static
+ * @param {string} msg - Error message
+ * @param {Object} [opts] - Plugin definition and user-supplied implementation
+ * @param {PluginDefinition} [opts.pluginDef] - Plugin Definition
+ * @param {*} [opts.pluginImpl] - Plugin Implementation (user-supplied)
+ * @public
+ * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}
+ */
+ function createInvalidPluginImplementationError(
+ msg,
+ {pluginDef, pluginImpl} = {}
+ ) {
+ const err = new Error(msg);
+ err.code = constants$4.INVALID_PLUGIN_IMPLEMENTATION;
+ err.pluginDef = pluginDef;
+ err.pluginImpl = pluginImpl;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when a runnable exceeds its allowed run time.
+ * @static
+ * @param {string} msg - Error message
+ * @param {number} [timeout] - Timeout in ms
+ * @param {string} [file] - File, if given
+ * @returns {MochaTimeoutError}
+ */
+ function createTimeoutError$1(msg, timeout, file) {
+ const err = new Error(msg);
+ err.code = constants$4.TIMEOUT;
+ err.timeout = timeout;
+ err.file = file;
+ return err;
+ }
+
+ /**
+ * Creates an error object to be thrown when file is unparsable
+ * @public
+ * @static
+ * @param {string} message - Error message to be displayed.
+ * @param {string} filename - File name
+ * @returns {Error} Error with code {@link constants.UNPARSABLE_FILE}
+ */
+ function createUnparsableFileError(message, filename) {
+ var err = new Error(message);
+ err.code = constants$4.UNPARSABLE_FILE;
+ return err;
+ }
+
+ /**
+ * Returns `true` if an error came out of Mocha.
+ * _Can suffer from false negatives, but not false positives._
+ * @static
+ * @public
+ * @param {*} err - Error, or anything
+ * @returns {boolean}
+ */
+ const isMochaError$1 = err =>
+ Boolean(err && typeof err === 'object' && MOCHA_ERRORS.has(err.code));
+
+ var errors = {
+ constants: constants$4,
+ createFatalError: createFatalError$1,
+ createForbiddenExclusivityError: createForbiddenExclusivityError$1,
+ createInvalidArgumentTypeError: createInvalidArgumentTypeError$1,
+ createInvalidArgumentValueError,
+ createInvalidExceptionError: createInvalidExceptionError$2,
+ createInvalidInterfaceError,
+ createInvalidLegacyPluginError,
+ createInvalidPluginDefinitionError,
+ createInvalidPluginError,
+ createInvalidPluginImplementationError,
+ createInvalidReporterError,
+ createMissingArgumentError: createMissingArgumentError$1,
+ createMochaInstanceAlreadyDisposedError,
+ createMochaInstanceAlreadyRunningError,
+ createMultipleDoneError: createMultipleDoneError$1,
+ createNoFilesMatchPatternError,
+ createTimeoutError: createTimeoutError$1,
+ createUnparsableFileError,
+ createUnsupportedError: createUnsupportedError$2,
+ deprecate,
+ isMochaError: isMochaError$1,
+ warn
+ };
+
+ var EventEmitter$1 = EventEmitter$2.EventEmitter;
+
+ var debug$1 = browser('mocha:runnable');
+
+
+ const {
+ createInvalidExceptionError: createInvalidExceptionError$1,
+ createMultipleDoneError,
+ createTimeoutError
+ } = errors;
+
+ /**
+ * Save timer references to avoid Sinon interfering (see GH-237).
+ * @private
+ */
+ var Date$4 = commonjsGlobal.Date;
+ var setTimeout$3 = commonjsGlobal.setTimeout;
+ var clearTimeout$1 = commonjsGlobal.clearTimeout;
+ var toString = Object.prototype.toString;
+
+ var runnable = Runnable;
+
+ /**
+ * Initialize a new `Runnable` with the given `title` and callback `fn`.
+ *
+ * @class
+ * @extends external:EventEmitter
+ * @public
+ * @param {String} title
+ * @param {Function} fn
+ */
+ function Runnable(title, fn) {
+ this.title = title;
+ this.fn = fn;
+ this.body = (fn || '').toString();
+ this.async = fn && fn.length;
+ this.sync = !this.async;
+ this._timeout = 2000;
+ this._slow = 75;
+ this._retries = -1;
+ utils.assignNewMochaID(this);
+ Object.defineProperty(this, 'id', {
+ get() {
+ return utils.getMochaID(this);
+ }
+ });
+ this.reset();
+ }
+
+ /**
+ * Inherit from `EventEmitter.prototype`.
+ */
+ utils.inherits(Runnable, EventEmitter$1);
+
+ /**
+ * Resets the state initially or for a next run.
+ */
+ Runnable.prototype.reset = function() {
+ this.timedOut = false;
+ this._currentRetry = 0;
+ this.pending = false;
+ delete this.state;
+ delete this.err;
+ };
+
+ /**
+ * Get current timeout value in msecs.
+ *
+ * @private
+ * @returns {number} current timeout threshold value
+ */
+ /**
+ * @summary
+ * Set timeout threshold value (msecs).
+ *
+ * @description
+ * A string argument can use shorthand (e.g., "2s") and will be converted.
+ * The value will be clamped to range [<code>0</code>, <code>2^<sup>31</sup>-1</code>].
+ * If clamped value matches either range endpoint, timeouts will be disabled.
+ *
+ * @private
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Maximum_delay_value}
+ * @param {number|string} ms - Timeout threshold value.
+ * @returns {Runnable} this
+ * @chainable
+ */
+ Runnable.prototype.timeout = function(ms) {
+ if (!arguments.length) {
+ return this._timeout;
+ }
+ if (typeof ms === 'string') {
+ ms = ms$1(ms);
+ }
+
+ // Clamp to range
+ var INT_MAX = Math.pow(2, 31) - 1;
+ var range = [0, INT_MAX];
+ ms = utils.clamp(ms, range);
+
+ // see #1652 for reasoning
+ if (ms === range[0] || ms === range[1]) {
+ this._timeout = 0;
+ } else {
+ this._timeout = ms;
+ }
+ debug$1('timeout %d', this._timeout);
+
+ if (this.timer) {
+ this.resetTimeout();
+ }
+ return this;
+ };
+
+ /**
+ * Set or get slow `ms`.
+ *
+ * @private
+ * @param {number|string} ms
+ * @return {Runnable|number} ms or Runnable instance.
+ */
+ Runnable.prototype.slow = function(ms) {
+ if (!arguments.length || typeof ms === 'undefined') {
+ return this._slow;
+ }
+ if (typeof ms === 'string') {
+ ms = ms$1(ms);
+ }
+ debug$1('slow %d', ms);
+ this._slow = ms;
+ return this;
+ };
+
+ /**
+ * Halt and mark as pending.
+ *
+ * @memberof Mocha.Runnable
+ * @public
+ */
+ Runnable.prototype.skip = function() {
+ this.pending = true;
+ throw new pending('sync skip; aborting execution');
+ };
+
+ /**
+ * Check if this runnable or its parent suite is marked as pending.
+ *
+ * @private
+ */
+ Runnable.prototype.isPending = function() {
+ return this.pending || (this.parent && this.parent.isPending());
+ };
+
+ /**
+ * Return `true` if this Runnable has failed.
+ * @return {boolean}
+ * @private
+ */
+ Runnable.prototype.isFailed = function() {
+ return !this.isPending() && this.state === constants$3.STATE_FAILED;
+ };
+
+ /**
+ * Return `true` if this Runnable has passed.
+ * @return {boolean}
+ * @private
+ */
+ Runnable.prototype.isPassed = function() {
+ return !this.isPending() && this.state === constants$3.STATE_PASSED;
+ };
+
+ /**
+ * Set or get number of retries.
+ *
+ * @private
+ */
+ Runnable.prototype.retries = function(n) {
+ if (!arguments.length) {
+ return this._retries;
+ }
+ this._retries = n;
+ };
+
+ /**
+ * Set or get current retry
+ *
+ * @private
+ */
+ Runnable.prototype.currentRetry = function(n) {
+ if (!arguments.length) {
+ return this._currentRetry;
+ }
+ this._currentRetry = n;
+ };
+
+ /**
+ * Return the full title generated by recursively concatenating the parent's
+ * full title.
+ *
+ * @memberof Mocha.Runnable
+ * @public
+ * @return {string}
+ */
+ Runnable.prototype.fullTitle = function() {
+ return this.titlePath().join(' ');
+ };
+
+ /**
+ * Return the title path generated by concatenating the parent's title path with the title.
+ *
+ * @memberof Mocha.Runnable
+ * @public
+ * @return {string}
+ */
+ Runnable.prototype.titlePath = function() {
+ return this.parent.titlePath().concat([this.title]);
+ };
+
+ /**
+ * Clear the timeout.
+ *
+ * @private
+ */
+ Runnable.prototype.clearTimeout = function() {
+ clearTimeout$1(this.timer);
+ };
+
+ /**
+ * Reset the timeout.
+ *
+ * @private
+ */
+ Runnable.prototype.resetTimeout = function() {
+ var self = this;
+ var ms = this.timeout();
+
+ if (ms === 0) {
+ return;
+ }
+ this.clearTimeout();
+ this.timer = setTimeout$3(function() {
+ if (self.timeout() === 0) {
+ return;
+ }
+ self.callback(self._timeoutError(ms));
+ self.timedOut = true;
+ }, ms);
+ };
+
+ /**
+ * Set or get a list of whitelisted globals for this test run.
+ *
+ * @private
+ * @param {string[]} globals
+ */
+ Runnable.prototype.globals = function(globals) {
+ if (!arguments.length) {
+ return this._allowedGlobals;
+ }
+ this._allowedGlobals = globals;
+ };
+
+ /**
+ * Run the test and invoke `fn(err)`.
+ *
+ * @param {Function} fn
+ * @private
+ */
+ Runnable.prototype.run = function(fn) {
+ var self = this;
+ var start = new Date$4();
+ var ctx = this.ctx;
+ var finished;
+ var errorWasHandled = false;
+
+ if (this.isPending()) return fn();
+
+ // Sometimes the ctx exists, but it is not runnable
+ if (ctx && ctx.runnable) {
+ ctx.runnable(this);
+ }
+
+ // called multiple times
+ function multiple(err) {
+ if (errorWasHandled) {
+ return;
+ }
+ errorWasHandled = true;
+ self.emit('error', createMultipleDoneError(self, err));
+ }
+
+ // finished
+ function done(err) {
+ var ms = self.timeout();
+ if (self.timedOut) {
+ return;
+ }
+
+ if (finished) {
+ return multiple(err);
+ }
+
+ self.clearTimeout();
+ self.duration = new Date$4() - start;
+ finished = true;
+ if (!err && self.duration > ms && ms > 0) {
+ err = self._timeoutError(ms);
+ }
+ fn(err);
+ }
+
+ // for .resetTimeout() and Runner#uncaught()
+ this.callback = done;
+
+ if (this.fn && typeof this.fn.call !== 'function') {
+ done(
+ new TypeError(
+ 'A runnable must be passed a function as its second argument.'
+ )
+ );
+ return;
+ }
+
+ // explicit async with `done` argument
+ if (this.async) {
+ this.resetTimeout();
+
+ // allows skip() to be used in an explicit async context
+ this.skip = function asyncSkip() {
+ this.pending = true;
+ done();
+ // halt execution, the uncaught handler will ignore the failure.
+ throw new pending('async skip; aborting execution');
+ };
+
+ try {
+ callFnAsync(this.fn);
+ } catch (err) {
+ // handles async runnables which actually run synchronously
+ errorWasHandled = true;
+ if (err instanceof pending) {
+ return; // done() is already called in this.skip()
+ } else if (this.allowUncaught) {
+ throw err;
+ }
+ done(Runnable.toValueOrError(err));
+ }
+ return;
+ }
+
+ // sync or promise-returning
+ try {
+ callFn(this.fn);
+ } catch (err) {
+ errorWasHandled = true;
+ if (err instanceof pending) {
+ return done();
+ } else if (this.allowUncaught) {
+ throw err;
+ }
+ done(Runnable.toValueOrError(err));
+ }
+
+ function callFn(fn) {
+ var result = fn.call(ctx);
+ if (result && typeof result.then === 'function') {
+ self.resetTimeout();
+ result.then(
+ function() {
+ done();
+ // Return null so libraries like bluebird do not warn about
+ // subsequently constructed Promises.
+ return null;
+ },
+ function(reason) {
+ done(reason || new Error('Promise rejected with no or falsy reason'));
+ }
+ );
+ } else {
+ if (self.asyncOnly) {
+ return done(
+ new Error(
+ '--async-only option in use without declaring `done()` or returning a promise'
+ )
+ );
+ }
+
+ done();
+ }
+ }
+
+ function callFnAsync(fn) {
+ var result = fn.call(ctx, function(err) {
+ if (err instanceof Error || toString.call(err) === '[object Error]') {
+ return done(err);
+ }
+ if (err) {
+ if (Object.prototype.toString.call(err) === '[object Object]') {
+ return done(
+ new Error('done() invoked with non-Error: ' + JSON.stringify(err))
+ );
+ }
+ return done(new Error('done() invoked with non-Error: ' + err));
+ }
+ if (result && utils.isPromise(result)) {
+ return done(
+ new Error(
+ 'Resolution method is overspecified. Specify a callback *or* return a Promise; not both.'
+ )
+ );
+ }
+
+ done();
+ });
+ }
+ };
+
+ /**
+ * Instantiates a "timeout" error
+ *
+ * @param {number} ms - Timeout (in milliseconds)
+ * @returns {Error} a "timeout" error
+ * @private
+ */
+ Runnable.prototype._timeoutError = function(ms) {
+ let msg = `Timeout of ${ms}ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.`;
+ if (this.file) {
+ msg += ' (' + this.file + ')';
+ }
+ return createTimeoutError(msg, ms, this.file);
+ };
+
+ var constants$3 = utils.defineConstants(
+ /**
+ * {@link Runnable}-related constants.
+ * @public
+ * @memberof Runnable
+ * @readonly
+ * @static
+ * @alias constants
+ * @enum {string}
+ */
+ {
+ /**
+ * Value of `state` prop when a `Runnable` has failed
+ */
+ STATE_FAILED: 'failed',
+ /**
+ * Value of `state` prop when a `Runnable` has passed
+ */
+ STATE_PASSED: 'passed',
+ /**
+ * Value of `state` prop when a `Runnable` has been skipped by user
+ */
+ STATE_PENDING: 'pending'
+ }
+ );
+
+ /**
+ * Given `value`, return identity if truthy, otherwise create an "invalid exception" error and return that.
+ * @param {*} [value] - Value to return, if present
+ * @returns {*|Error} `value`, otherwise an `Error`
+ * @private
+ */
+ Runnable.toValueOrError = function(value) {
+ return (
+ value ||
+ createInvalidExceptionError$1(
+ 'Runnable failed with falsy or undefined exception. Please throw an Error instead.',
+ value
+ )
+ );
+ };
+
+ Runnable.constants = constants$3;
+
+ const {inherits, constants: constants$2} = utils;
+ const {MOCHA_ID_PROP_NAME: MOCHA_ID_PROP_NAME$1} = constants$2;
+
+ /**
+ * Expose `Hook`.
+ */
+
+ var hook = Hook;
+
+ /**
+ * Initialize a new `Hook` with the given `title` and callback `fn`
+ *
+ * @class
+ * @extends Runnable
+ * @param {String} title
+ * @param {Function} fn
+ */
+ function Hook(title, fn) {
+ runnable.call(this, title, fn);
+ this.type = 'hook';
+ }
+
+ /**
+ * Inherit from `Runnable.prototype`.
+ */
+ inherits(Hook, runnable);
+
+ /**
+ * Resets the state for a next run.
+ */
+ Hook.prototype.reset = function() {
+ runnable.prototype.reset.call(this);
+ delete this._error;
+ };
+
+ /**
+ * Get or set the test `err`.
+ *
+ * @memberof Hook
+ * @public
+ * @param {Error} err
+ * @return {Error}
+ */
+ Hook.prototype.error = function(err) {
+ if (!arguments.length) {
+ err = this._error;
+ this._error = null;
+ return err;
+ }
+
+ this._error = err;
+ };
+
+ /**
+ * Returns an object suitable for IPC.
+ * Functions are represented by keys beginning with `$$`.
+ * @private
+ * @returns {Object}
+ */
+ Hook.prototype.serialize = function serialize() {
+ return {
+ $$currentRetry: this.currentRetry(),
+ $$fullTitle: this.fullTitle(),
+ $$isPending: Boolean(this.isPending()),
+ $$titlePath: this.titlePath(),
+ ctx:
+ this.ctx && this.ctx.currentTest
+ ? {
+ currentTest: {
+ title: this.ctx.currentTest.title,
+ [MOCHA_ID_PROP_NAME$1]: this.ctx.currentTest.id
+ }
+ }
+ : {},
+ duration: this.duration,
+ file: this.file,
+ parent: {
+ $$fullTitle: this.parent.fullTitle(),
+ [MOCHA_ID_PROP_NAME$1]: this.parent.id
+ },
+ state: this.state,
+ title: this.title,
+ type: this.type,
+ [MOCHA_ID_PROP_NAME$1]: this.id
+ };
+ };
+
+ var suite = createCommonjsModule(function (module, exports) {
+
+ /**
+ * Module dependencies.
+ * @private
+ */
+ const {EventEmitter} = EventEmitter$2;
+
+ var {
+ assignNewMochaID,
+ clamp,
+ constants: utilsConstants,
+ createMap,
+ defineConstants,
+ getMochaID,
+ inherits,
+ isString
+ } = utils;
+ const debug = browser('mocha:suite');
+
+
+
+ const {MOCHA_ID_PROP_NAME} = utilsConstants;
+
+ /**
+ * Expose `Suite`.
+ */
+
+ module.exports = Suite;
+
+ /**
+ * Create a new `Suite` with the given `title` and parent `Suite`.
+ *
+ * @public
+ * @param {Suite} parent - Parent suite (required!)
+ * @param {string} title - Title
+ * @return {Suite}
+ */
+ Suite.create = function(parent, title) {
+ var suite = new Suite(title, parent.ctx);
+ suite.parent = parent;
+ title = suite.fullTitle();
+ parent.addSuite(suite);
+ return suite;
+ };
+
+ /**
+ * Constructs a new `Suite` instance with the given `title`, `ctx`, and `isRoot`.
+ *
+ * @public
+ * @class
+ * @extends EventEmitter
+ * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter|EventEmitter}
+ * @param {string} title - Suite title.
+ * @param {Context} parentContext - Parent context instance.
+ * @param {boolean} [isRoot=false] - Whether this is the root suite.
+ */
+ function Suite(title, parentContext, isRoot) {
+ if (!isString(title)) {
+ throw errors.createInvalidArgumentTypeError(
+ 'Suite argument "title" must be a string. Received type "' +
+ typeof title +
+ '"',
+ 'title',
+ 'string'
+ );
+ }
+ this.title = title;
+ function Context() {}
+ Context.prototype = parentContext;
+ this.ctx = new Context();
+ this.suites = [];
+ this.tests = [];
+ this.root = isRoot === true;
+ this.pending = false;
+ this._retries = -1;
+ this._beforeEach = [];
+ this._beforeAll = [];
+ this._afterEach = [];
+ this._afterAll = [];
+ this._timeout = 2000;
+ this._slow = 75;
+ this._bail = false;
+ this._onlyTests = [];
+ this._onlySuites = [];
+ assignNewMochaID(this);
+
+ Object.defineProperty(this, 'id', {
+ get() {
+ return getMochaID(this);
+ }
+ });
+
+ this.reset();
+
+ this.on('newListener', function(event) {
+ if (deprecatedEvents[event]) {
+ errors.deprecate(
+ 'Event "' +
+ event +
+ '" is deprecated. Please let the Mocha team know about your use case: https://git.io/v6Lwm'
+ );
+ }
+ });
+ }
+
+ /**
+ * Inherit from `EventEmitter.prototype`.
+ */
+ inherits(Suite, EventEmitter);
+
+ /**
+ * Resets the state initially or for a next run.
+ */
+ Suite.prototype.reset = function() {
+ this.delayed = false;
+ function doReset(thingToReset) {
+ thingToReset.reset();
+ }
+ this.suites.forEach(doReset);
+ this.tests.forEach(doReset);
+ this._beforeEach.forEach(doReset);
+ this._afterEach.forEach(doReset);
+ this._beforeAll.forEach(doReset);
+ this._afterAll.forEach(doReset);
+ };
+
+ /**
+ * Return a clone of this `Suite`.
+ *
+ * @private
+ * @return {Suite}
+ */
+ Suite.prototype.clone = function() {
+ var suite = new Suite(this.title);
+ debug('clone');
+ suite.ctx = this.ctx;
+ suite.root = this.root;
+ suite.timeout(this.timeout());
+ suite.retries(this.retries());
+ suite.slow(this.slow());
+ suite.bail(this.bail());
+ return suite;
+ };
+
+ /**
+ * Set or get timeout `ms` or short-hand such as "2s".
+ *
+ * @private
+ * @todo Do not attempt to set value if `ms` is undefined
+ * @param {number|string} ms
+ * @return {Suite|number} for chaining
+ */
+ Suite.prototype.timeout = function(ms) {
+ if (!arguments.length) {
+ return this._timeout;
+ }
+ if (typeof ms === 'string') {
+ ms = ms$1(ms);
+ }
+
+ // Clamp to range
+ var INT_MAX = Math.pow(2, 31) - 1;
+ var range = [0, INT_MAX];
+ ms = clamp(ms, range);
+
+ debug('timeout %d', ms);
+ this._timeout = parseInt(ms, 10);
+ return this;
+ };
+
+ /**
+ * Set or get number of times to retry a failed test.
+ *
+ * @private
+ * @param {number|string} n
+ * @return {Suite|number} for chaining
+ */
+ Suite.prototype.retries = function(n) {
+ if (!arguments.length) {
+ return this._retries;
+ }
+ debug('retries %d', n);
+ this._retries = parseInt(n, 10) || 0;
+ return this;
+ };
+
+ /**
+ * Set or get slow `ms` or short-hand such as "2s".
+ *
+ * @private
+ * @param {number|string} ms
+ * @return {Suite|number} for chaining
+ */
+ Suite.prototype.slow = function(ms) {
+ if (!arguments.length) {
+ return this._slow;
+ }
+ if (typeof ms === 'string') {
+ ms = ms$1(ms);
+ }
+ debug('slow %d', ms);
+ this._slow = ms;
+ return this;
+ };
+
+ /**
+ * Set or get whether to bail after first error.
+ *
+ * @private
+ * @param {boolean} bail
+ * @return {Suite|number} for chaining
+ */
+ Suite.prototype.bail = function(bail) {
+ if (!arguments.length) {
+ return this._bail;
+ }
+ debug('bail %s', bail);
+ this._bail = bail;
+ return this;
+ };
+
+ /**
+ * Check if this suite or its parent suite is marked as pending.
+ *
+ * @private
+ */
+ Suite.prototype.isPending = function() {
+ return this.pending || (this.parent && this.parent.isPending());
+ };
+
+ /**
+ * Generic hook-creator.
+ * @private
+ * @param {string} title - Title of hook
+ * @param {Function} fn - Hook callback
+ * @returns {Hook} A new hook
+ */
+ Suite.prototype._createHook = function(title, fn) {
+ var hook$1 = new hook(title, fn);
+ hook$1.parent = this;
+ hook$1.timeout(this.timeout());
+ hook$1.retries(this.retries());
+ hook$1.slow(this.slow());
+ hook$1.ctx = this.ctx;
+ hook$1.file = this.file;
+ return hook$1;
+ };
+
+ /**
+ * Run `fn(test[, done])` before running tests.
+ *
+ * @private
+ * @param {string} title
+ * @param {Function} fn
+ * @return {Suite} for chaining
+ */
+ Suite.prototype.beforeAll = function(title, fn) {
+ if (this.isPending()) {
+ return this;
+ }
+ if (typeof title === 'function') {
+ fn = title;
+ title = fn.name;
+ }
+ title = '"before all" hook' + (title ? ': ' + title : '');
+
+ var hook = this._createHook(title, fn);
+ this._beforeAll.push(hook);
+ this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_ALL, hook);
+ return this;
+ };
+
+ /**
+ * Run `fn(test[, done])` after running tests.
+ *
+ * @private
+ * @param {string} title
+ * @param {Function} fn
+ * @return {Suite} for chaining
+ */
+ Suite.prototype.afterAll = function(title, fn) {
+ if (this.isPending()) {
+ return this;
+ }
+ if (typeof title === 'function') {
+ fn = title;
+ title = fn.name;
+ }
+ title = '"after all" hook' + (title ? ': ' + title : '');
+
+ var hook = this._createHook(title, fn);
+ this._afterAll.push(hook);
+ this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_ALL, hook);
+ return this;
+ };
+
+ /**
+ * Run `fn(test[, done])` before each test case.
+ *
+ * @private
+ * @param {string} title
+ * @param {Function} fn
+ * @return {Suite} for chaining
+ */
+ Suite.prototype.beforeEach = function(title, fn) {
+ if (this.isPending()) {
+ return this;
+ }
+ if (typeof title === 'function') {
+ fn = title;
+ title = fn.name;
+ }
+ title = '"before each" hook' + (title ? ': ' + title : '');
+
+ var hook = this._createHook(title, fn);
+ this._beforeEach.push(hook);
+ this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_EACH, hook);
+ return this;
+ };
+
+ /**
+ * Run `fn(test[, done])` after each test case.
+ *
+ * @private
+ * @param {string} title
+ * @param {Function} fn
+ * @return {Suite} for chaining
+ */
+ Suite.prototype.afterEach = function(title, fn) {
+ if (this.isPending()) {
+ return this;
+ }
+ if (typeof title === 'function') {
+ fn = title;
+ title = fn.name;
+ }
+ title = '"after each" hook' + (title ? ': ' + title : '');
+
+ var hook = this._createHook(title, fn);
+ this._afterEach.push(hook);
+ this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_EACH, hook);
+ return this;
+ };
+
+ /**
+ * Add a test `suite`.
+ *
+ * @private
+ * @param {Suite} suite
+ * @return {Suite} for chaining
+ */
+ Suite.prototype.addSuite = function(suite) {
+ suite.parent = this;
+ suite.root = false;
+ suite.timeout(this.timeout());
+ suite.retries(this.retries());
+ suite.slow(this.slow());
+ suite.bail(this.bail());
+ this.suites.push(suite);
+ this.emit(constants.EVENT_SUITE_ADD_SUITE, suite);
+ return this;
+ };
+
+ /**
+ * Add a `test` to this suite.
+ *
+ * @private
+ * @param {Test} test
+ * @return {Suite} for chaining
+ */
+ Suite.prototype.addTest = function(test) {
+ test.parent = this;
+ test.timeout(this.timeout());
+ test.retries(this.retries());
+ test.slow(this.slow());
+ test.ctx = this.ctx;
+ this.tests.push(test);
+ this.emit(constants.EVENT_SUITE_ADD_TEST, test);
+ return this;
+ };
+
+ /**
+ * Return the full title generated by recursively concatenating the parent's
+ * full title.
+ *
+ * @memberof Suite
+ * @public
+ * @return {string}
+ */
+ Suite.prototype.fullTitle = function() {
+ return this.titlePath().join(' ');
+ };
+
+ /**
+ * Return the title path generated by recursively concatenating the parent's
+ * title path.
+ *
+ * @memberof Suite
+ * @public
+ * @return {string}
+ */
+ Suite.prototype.titlePath = function() {
+ var result = [];
+ if (this.parent) {
+ result = result.concat(this.parent.titlePath());
+ }
+ if (!this.root) {
+ result.push(this.title);
+ }
+ return result;
+ };
+
+ /**
+ * Return the total number of tests.
+ *
+ * @memberof Suite
+ * @public
+ * @return {number}
+ */
+ Suite.prototype.total = function() {
+ return (
+ this.suites.reduce(function(sum, suite) {
+ return sum + suite.total();
+ }, 0) + this.tests.length
+ );
+ };
+
+ /**
+ * Iterates through each suite recursively to find all tests. Applies a
+ * function in the format `fn(test)`.
+ *
+ * @private
+ * @param {Function} fn
+ * @return {Suite}
+ */
+ Suite.prototype.eachTest = function(fn) {
+ this.tests.forEach(fn);
+ this.suites.forEach(function(suite) {
+ suite.eachTest(fn);
+ });
+ return this;
+ };
+
+ /**
+ * This will run the root suite if we happen to be running in delayed mode.
+ * @private
+ */
+ Suite.prototype.run = function run() {
+ if (this.root) {
+ this.emit(constants.EVENT_ROOT_SUITE_RUN);
+ }
+ };
+
+ /**
+ * Determines whether a suite has an `only` test or suite as a descendant.
+ *
+ * @private
+ * @returns {Boolean}
+ */
+ Suite.prototype.hasOnly = function hasOnly() {
+ return (
+ this._onlyTests.length > 0 ||
+ this._onlySuites.length > 0 ||
+ this.suites.some(function(suite) {
+ return suite.hasOnly();
+ })
+ );
+ };
+
+ /**
+ * Filter suites based on `isOnly` logic.
+ *
+ * @private
+ * @returns {Boolean}
+ */
+ Suite.prototype.filterOnly = function filterOnly() {
+ if (this._onlyTests.length) {
+ // If the suite contains `only` tests, run those and ignore any nested suites.
+ this.tests = this._onlyTests;
+ this.suites = [];
+ } else {
+ // Otherwise, do not run any of the tests in this suite.
+ this.tests = [];
+ this._onlySuites.forEach(function(onlySuite) {
+ // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite.
+ // Otherwise, all of the tests on this `only` suite should be run, so don't filter it.
+ if (onlySuite.hasOnly()) {
+ onlySuite.filterOnly();
+ }
+ });
+ // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants.
+ var onlySuites = this._onlySuites;
+ this.suites = this.suites.filter(function(childSuite) {
+ return onlySuites.indexOf(childSuite) !== -1 || childSuite.filterOnly();
+ });
+ }
+ // Keep the suite only if there is something to run
+ return this.tests.length > 0 || this.suites.length > 0;
+ };
+
+ /**
+ * Adds a suite to the list of subsuites marked `only`.
+ *
+ * @private
+ * @param {Suite} suite
+ */
+ Suite.prototype.appendOnlySuite = function(suite) {
+ this._onlySuites.push(suite);
+ };
+
+ /**
+ * Marks a suite to be `only`.
+ *
+ * @private
+ */
+ Suite.prototype.markOnly = function() {
+ this.parent && this.parent.appendOnlySuite(this);
+ };
+
+ /**
+ * Adds a test to the list of tests marked `only`.
+ *
+ * @private
+ * @param {Test} test
+ */
+ Suite.prototype.appendOnlyTest = function(test) {
+ this._onlyTests.push(test);
+ };
+
+ /**
+ * Returns the array of hooks by hook name; see `HOOK_TYPE_*` constants.
+ * @private
+ */
+ Suite.prototype.getHooks = function getHooks(name) {
+ return this['_' + name];
+ };
+
+ /**
+ * cleans all references from this suite and all child suites.
+ */
+ Suite.prototype.dispose = function() {
+ this.suites.forEach(function(suite) {
+ suite.dispose();
+ });
+ this.cleanReferences();
+ };
+
+ /**
+ * Cleans up the references to all the deferred functions
+ * (before/after/beforeEach/afterEach) and tests of a Suite.
+ * These must be deleted otherwise a memory leak can happen,
+ * as those functions may reference variables from closures,
+ * thus those variables can never be garbage collected as long
+ * as the deferred functions exist.
+ *
+ * @private
+ */
+ Suite.prototype.cleanReferences = function cleanReferences() {
+ function cleanArrReferences(arr) {
+ for (var i = 0; i < arr.length; i++) {
+ delete arr[i].fn;
+ }
+ }
+
+ if (Array.isArray(this._beforeAll)) {
+ cleanArrReferences(this._beforeAll);
+ }
+
+ if (Array.isArray(this._beforeEach)) {
+ cleanArrReferences(this._beforeEach);
+ }
+
+ if (Array.isArray(this._afterAll)) {
+ cleanArrReferences(this._afterAll);
+ }
+
+ if (Array.isArray(this._afterEach)) {
+ cleanArrReferences(this._afterEach);
+ }
+
+ for (var i = 0; i < this.tests.length; i++) {
+ delete this.tests[i].fn;
+ }
+ };
+
+ /**
+ * Returns an object suitable for IPC.
+ * Functions are represented by keys beginning with `$$`.
+ * @private
+ * @returns {Object}
+ */
+ Suite.prototype.serialize = function serialize() {
+ return {
+ _bail: this._bail,
+ $$fullTitle: this.fullTitle(),
+ $$isPending: Boolean(this.isPending()),
+ root: this.root,
+ title: this.title,
+ [MOCHA_ID_PROP_NAME]: this.id,
+ parent: this.parent ? {[MOCHA_ID_PROP_NAME]: this.parent.id} : null
+ };
+ };
+
+ var constants = defineConstants(
+ /**
+ * {@link Suite}-related constants.
+ * @public
+ * @memberof Suite
+ * @alias constants
+ * @readonly
+ * @static
+ * @enum {string}
+ */
+ {
+ /**
+ * Event emitted after a test file has been loaded Not emitted in browser.
+ */
+ EVENT_FILE_POST_REQUIRE: 'post-require',
+ /**
+ * Event emitted before a test file has been loaded. In browser, this is emitted once an interface has been selected.
+ */
+ EVENT_FILE_PRE_REQUIRE: 'pre-require',
+ /**
+ * Event emitted immediately after a test file has been loaded. Not emitted in browser.
+ */
+ EVENT_FILE_REQUIRE: 'require',
+ /**
+ * Event emitted when `global.run()` is called (use with `delay` option)
+ */
+ EVENT_ROOT_SUITE_RUN: 'run',
+
+ /**
+ * Namespace for collection of a `Suite`'s "after all" hooks
+ */
+ HOOK_TYPE_AFTER_ALL: 'afterAll',
+ /**
+ * Namespace for collection of a `Suite`'s "after each" hooks
+ */
+ HOOK_TYPE_AFTER_EACH: 'afterEach',
+ /**
+ * Namespace for collection of a `Suite`'s "before all" hooks
+ */
+ HOOK_TYPE_BEFORE_ALL: 'beforeAll',
+ /**
+ * Namespace for collection of a `Suite`'s "before all" hooks
+ */
+ HOOK_TYPE_BEFORE_EACH: 'beforeEach',
+
+ // the following events are all deprecated
+
+ /**
+ * Emitted after an "after all" `Hook` has been added to a `Suite`. Deprecated
+ */
+ EVENT_SUITE_ADD_HOOK_AFTER_ALL: 'afterAll',
+ /**
+ * Emitted after an "after each" `Hook` has been added to a `Suite` Deprecated
+ */
+ EVENT_SUITE_ADD_HOOK_AFTER_EACH: 'afterEach',
+ /**
+ * Emitted after an "before all" `Hook` has been added to a `Suite` Deprecated
+ */
+ EVENT_SUITE_ADD_HOOK_BEFORE_ALL: 'beforeAll',
+ /**
+ * Emitted after an "before each" `Hook` has been added to a `Suite` Deprecated
+ */
+ EVENT_SUITE_ADD_HOOK_BEFORE_EACH: 'beforeEach',
+ /**
+ * Emitted after a child `Suite` has been added to a `Suite`. Deprecated
+ */
+ EVENT_SUITE_ADD_SUITE: 'suite',
+ /**
+ * Emitted after a `Test` has been added to a `Suite`. Deprecated
+ */
+ EVENT_SUITE_ADD_TEST: 'test'
+ }
+ );
+
+ /**
+ * @summary There are no known use cases for these events.
+ * @desc This is a `Set`-like object having all keys being the constant's string value and the value being `true`.
+ * @todo Remove eventually
+ * @type {Object<string,boolean>}
+ * @ignore
+ */
+ var deprecatedEvents = Object.keys(constants)
+ .filter(function(constant) {
+ return constant.substring(0, 15) === 'EVENT_SUITE_ADD';
+ })
+ .reduce(function(acc, constant) {
+ acc[constants[constant]] = true;
+ return acc;
+ }, createMap());
+
+ Suite.constants = constants;
+ });
+
+ /**
+ * Module dependencies.
+ * @private
+ */
+ var EventEmitter = EventEmitter$2.EventEmitter;
+
+
+ var debug = browser('mocha:runner');
+
+
+ var HOOK_TYPE_BEFORE_EACH = suite.constants.HOOK_TYPE_BEFORE_EACH;
+ var HOOK_TYPE_AFTER_EACH = suite.constants.HOOK_TYPE_AFTER_EACH;
+ var HOOK_TYPE_AFTER_ALL = suite.constants.HOOK_TYPE_AFTER_ALL;
+ var HOOK_TYPE_BEFORE_ALL = suite.constants.HOOK_TYPE_BEFORE_ALL;
+ var EVENT_ROOT_SUITE_RUN = suite.constants.EVENT_ROOT_SUITE_RUN;
+ var STATE_FAILED = runnable.constants.STATE_FAILED;
+ var STATE_PASSED = runnable.constants.STATE_PASSED;
+ var STATE_PENDING = runnable.constants.STATE_PENDING;
+ var stackFilter = utils.stackTraceFilter();
+ var stringify = utils.stringify;
+
+ const {
+ createInvalidExceptionError,
+ createUnsupportedError: createUnsupportedError$1,
+ createFatalError,
+ isMochaError,
+ constants: errorConstants
+ } = errors;
+
+ /**
+ * Non-enumerable globals.
+ * @private
+ * @readonly
+ */
+ var globals = [
+ 'setTimeout',
+ 'clearTimeout',
+ 'setInterval',
+ 'clearInterval',
+ 'XMLHttpRequest',
+ 'Date',
+ 'setImmediate',
+ 'clearImmediate'
+ ];
+
+ var constants$1 = utils.defineConstants(
+ /**
+ * {@link Runner}-related constants.
+ * @public
+ * @memberof Runner
+ * @readonly
+ * @alias constants
+ * @static
+ * @enum {string}
+ */
+ {
+ /**
+ * Emitted when {@link Hook} execution begins
+ */
+ EVENT_HOOK_BEGIN: 'hook',
+ /**
+ * Emitted when {@link Hook} execution ends
+ */
+ EVENT_HOOK_END: 'hook end',
+ /**
+ * Emitted when Root {@link Suite} execution begins (all files have been parsed and hooks/tests are ready for execution)
+ */
+ EVENT_RUN_BEGIN: 'start',
+ /**
+ * Emitted when Root {@link Suite} execution has been delayed via `delay` option
+ */
+ EVENT_DELAY_BEGIN: 'waiting',
+ /**
+ * Emitted when delayed Root {@link Suite} execution is triggered by user via `global.run()`
+ */
+ EVENT_DELAY_END: 'ready',
+ /**
+ * Emitted when Root {@link Suite} execution ends
+ */
+ EVENT_RUN_END: 'end',
+ /**
+ * Emitted when {@link Suite} execution begins
+ */
+ EVENT_SUITE_BEGIN: 'suite',
+ /**
+ * Emitted when {@link Suite} execution ends
+ */
+ EVENT_SUITE_END: 'suite end',
+ /**
+ * Emitted when {@link Test} execution begins
+ */
+ EVENT_TEST_BEGIN: 'test',
+ /**
+ * Emitted when {@link Test} execution ends
+ */
+ EVENT_TEST_END: 'test end',
+ /**
+ * Emitted when {@link Test} execution fails
+ */
+ EVENT_TEST_FAIL: 'fail',
+ /**
+ * Emitted when {@link Test} execution succeeds
+ */
+ EVENT_TEST_PASS: 'pass',
+ /**
+ * Emitted when {@link Test} becomes pending
+ */
+ EVENT_TEST_PENDING: 'pending',
+ /**
+ * Emitted when {@link Test} execution has failed, but will retry
+ */
+ EVENT_TEST_RETRY: 'retry',
+ /**
+ * Initial state of Runner
+ */
+ STATE_IDLE: 'idle',
+ /**
+ * State set to this value when the Runner has started running
+ */
+ STATE_RUNNING: 'running',
+ /**
+ * State set to this value when the Runner has stopped
+ */
+ STATE_STOPPED: 'stopped'
+ }
+ );
+
+ class Runner extends EventEmitter {
+ /**
+ * Initialize a `Runner` at the Root {@link Suite}, which represents a hierarchy of {@link Suite|Suites} and {@link Test|Tests}.
+ *
+ * @extends external:EventEmitter
+ * @public
+ * @class
+ * @param {Suite} suite - Root suite
+ * @param {Object|boolean} [opts] - Options. If `boolean` (deprecated), whether to delay execution of root suite until ready.
+ * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.
+ * @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.
+ * @param {boolean} [opts.dryRun] - Whether to report tests without running them.
+ * @param {boolean} [options.failZero] - Whether to fail test run if zero tests encountered.
+ */
+ constructor(suite, opts) {
+ super();
+ if (opts === undefined) {
+ opts = {};
+ }
+ if (typeof opts === 'boolean') {
+ // TODO: remove this
+ errors.deprecate(
+ '"Runner(suite: Suite, delay: boolean)" is deprecated. Use "Runner(suite: Suite, {delay: boolean})" instead.'
+ );
+ this._delay = opts;
+ opts = {};
+ } else {
+ this._delay = opts.delay;
+ }
+ var self = this;
+ this._globals = [];
+ this._abort = false;
+ this.suite = suite;
+ this._opts = opts;
+ this.state = constants$1.STATE_IDLE;
+ this.total = suite.total();
+ this.failures = 0;
+ /**
+ * @type {Map<EventEmitter,Map<string,Set<EventListener>>>}
+ */
+ this._eventListeners = new Map();
+ this.on(constants$1.EVENT_TEST_END, function(test) {
+ if (test.type === 'test' && test.retriedTest() && test.parent) {
+ var idx =
+ test.parent.tests && test.parent.tests.indexOf(test.retriedTest());
+ if (idx > -1) test.parent.tests[idx] = test;
+ }
+ self.checkGlobals(test);
+ });
+ this.on(constants$1.EVENT_HOOK_END, function(hook) {
+ self.checkGlobals(hook);
+ });
+ this._defaultGrep = /.*/;
+ this.grep(this._defaultGrep);
+ this.globals(this.globalProps());
+
+ this.uncaught = this._uncaught.bind(this);
+ this.unhandled = (reason, promise) => {
+ if (isMochaError(reason)) {
+ debug(
+ 'trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:',
+ reason
+ );
+ this.uncaught(reason);
+ } else {
+ debug(
+ 'trapped unhandled rejection from (probably) user code; re-emitting on process'
+ );
+ this._removeEventListener(
+ process$1,
+ 'unhandledRejection',
+ this.unhandled
+ );
+ try {
+ process$1.emit('unhandledRejection', reason, promise);
+ } finally {
+ this._addEventListener(process$1, 'unhandledRejection', this.unhandled);
+ }
+ }
+ };
+ }
+ }
+
+ /**
+ * Wrapper for setImmediate, process.nextTick, or browser polyfill.
+ *
+ * @param {Function} fn
+ * @private
+ */
+ Runner.immediately = commonjsGlobal.setImmediate || nextTick$1;
+
+ /**
+ * Replacement for `target.on(eventName, listener)` that does bookkeeping to remove them when this runner instance is disposed.
+ * @param {EventEmitter} target - The `EventEmitter`
+ * @param {string} eventName - The event name
+ * @param {string} fn - Listener function
+ * @private
+ */
+ Runner.prototype._addEventListener = function(target, eventName, listener) {
+ debug(
+ '_addEventListener(): adding for event %s; %d current listeners',
+ eventName,
+ target.listenerCount(eventName)
+ );
+ /* istanbul ignore next */
+ if (
+ this._eventListeners.has(target) &&
+ this._eventListeners.get(target).has(eventName) &&
+ this._eventListeners
+ .get(target)
+ .get(eventName)
+ .has(listener)
+ ) {
+ debug(
+ 'warning: tried to attach duplicate event listener for %s',
+ eventName
+ );
+ return;
+ }
+ target.on(eventName, listener);
+ const targetListeners = this._eventListeners.has(target)
+ ? this._eventListeners.get(target)
+ : new Map();
+ const targetEventListeners = targetListeners.has(eventName)
+ ? targetListeners.get(eventName)
+ : new Set();
+ targetEventListeners.add(listener);
+ targetListeners.set(eventName, targetEventListeners);
+ this._eventListeners.set(target, targetListeners);
+ };
+
+ /**
+ * Replacement for `target.removeListener(eventName, listener)` that also updates the bookkeeping.
+ * @param {EventEmitter} target - The `EventEmitter`
+ * @param {string} eventName - The event name
+ * @param {function} listener - Listener function
+ * @private
+ */
+ Runner.prototype._removeEventListener = function(target, eventName, listener) {
+ target.removeListener(eventName, listener);
+
+ if (this._eventListeners.has(target)) {
+ const targetListeners = this._eventListeners.get(target);
+ if (targetListeners.has(eventName)) {
+ const targetEventListeners = targetListeners.get(eventName);
+ targetEventListeners.delete(listener);
+ if (!targetEventListeners.size) {
+ targetListeners.delete(eventName);
+ }
+ }
+ if (!targetListeners.size) {
+ this._eventListeners.delete(target);
+ }
+ } else {
+ debug('trying to remove listener for untracked object %s', target);
+ }
+ };
+
+ /**
+ * Removes all event handlers set during a run on this instance.
+ * Remark: this does _not_ clean/dispose the tests or suites themselves.
+ */
+ Runner.prototype.dispose = function() {
+ this.removeAllListeners();
+ this._eventListeners.forEach((targetListeners, target) => {
+ targetListeners.forEach((targetEventListeners, eventName) => {
+ targetEventListeners.forEach(listener => {
+ target.removeListener(eventName, listener);
+ });
+ });
+ });
+ this._eventListeners.clear();
+ };
+
+ /**
+ * Run tests with full titles matching `re`. Updates runner.total
+ * with number of tests matched.
+ *
+ * @public
+ * @memberof Runner
+ * @param {RegExp} re
+ * @param {boolean} invert
+ * @return {Runner} Runner instance.
+ */
+ Runner.prototype.grep = function(re, invert) {
+ debug('grep(): setting to %s', re);
+ this._grep = re;
+ this._invert = invert;
+ this.total = this.grepTotal(this.suite);
+ return this;
+ };
+
+ /**
+ * Returns the number of tests matching the grep search for the
+ * given suite.
+ *
+ * @memberof Runner
+ * @public
+ * @param {Suite} suite
+ * @return {number}
+ */
+ Runner.prototype.grepTotal = function(suite) {
+ var self = this;
+ var total = 0;
+
+ suite.eachTest(function(test) {
+ var match = self._grep.test(test.fullTitle());
+ if (self._invert) {
+ match = !match;
+ }
+ if (match) {
+ total++;
+ }
+ });
+
+ return total;
+ };
+
+ /**
+ * Return a list of global properties.
+ *
+ * @return {Array}
+ * @private
+ */
+ Runner.prototype.globalProps = function() {
+ var props = Object.keys(commonjsGlobal);
+
+ // non-enumerables
+ for (var i = 0; i < globals.length; ++i) {
+ if (~props.indexOf(globals[i])) {
+ continue;
+ }
+ props.push(globals[i]);
+ }
+
+ return props;
+ };
+
+ /**
+ * Allow the given `arr` of globals.
+ *
+ * @public
+ * @memberof Runner
+ * @param {Array} arr
+ * @return {Runner} Runner instance.
+ */
+ Runner.prototype.globals = function(arr) {
+ if (!arguments.length) {
+ return this._globals;
+ }
+ debug('globals(): setting to %O', arr);
+ this._globals = this._globals.concat(arr);
+ return this;
+ };
+
+ /**
+ * Check for global variable leaks.
+ *
+ * @private
+ */
+ Runner.prototype.checkGlobals = function(test) {
+ if (!this.checkLeaks) {
+ return;
+ }
+ var ok = this._globals;
+
+ var globals = this.globalProps();
+ var leaks;
+
+ if (test) {
+ ok = ok.concat(test._allowedGlobals || []);
+ }
+
+ if (this.prevGlobalsLength === globals.length) {
+ return;
+ }
+ this.prevGlobalsLength = globals.length;
+
+ leaks = filterLeaks(ok, globals);
+ this._globals = this._globals.concat(leaks);
+
+ if (leaks.length) {
+ var msg = `global leak(s) detected: ${leaks.map(e => `'${e}'`).join(', ')}`;
+ this.fail(test, new Error(msg));
+ }
+ };
+
+ /**
+ * Fail the given `test`.
+ *
+ * If `test` is a hook, failures work in the following pattern:
+ * - If bail, run corresponding `after each` and `after` hooks,
+ * then exit
+ * - Failed `before` hook skips all tests in a suite and subsuites,
+ * but jumps to corresponding `after` hook
+ * - Failed `before each` hook skips remaining tests in a
+ * suite and jumps to corresponding `after each` hook,
+ * which is run only once
+ * - Failed `after` hook does not alter execution order
+ * - Failed `after each` hook skips remaining tests in a
+ * suite and subsuites, but executes other `after each`
+ * hooks
+ *
+ * @private
+ * @param {Runnable} test
+ * @param {Error} err
+ * @param {boolean} [force=false] - Whether to fail a pending test.
+ */
+ Runner.prototype.fail = function(test, err, force) {
+ force = force === true;
+ if (test.isPending() && !force) {
+ return;
+ }
+ if (this.state === constants$1.STATE_STOPPED) {
+ if (err.code === errorConstants.MULTIPLE_DONE) {
+ throw err;
+ }
+ throw createFatalError(
+ 'Test failed after root suite execution completed!',
+ err
+ );
+ }
+
+ ++this.failures;
+ debug('total number of failures: %d', this.failures);
+ test.state = STATE_FAILED;
+
+ if (!isError(err)) {
+ err = thrown2Error(err);
+ }
+
+ try {
+ err.stack =
+ this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack);
+ } catch (ignore) {
+ // some environments do not take kindly to monkeying with the stack
+ }
+
+ this.emit(constants$1.EVENT_TEST_FAIL, test, err);
+ };
+
+ /**
+ * Run hook `name` callbacks and then invoke `fn()`.
+ *
+ * @private
+ * @param {string} name
+ * @param {Function} fn
+ */
+
+ Runner.prototype.hook = function(name, fn) {
+ if (this._opts.dryRun) return fn();
+
+ var suite = this.suite;
+ var hooks = suite.getHooks(name);
+ var self = this;
+
+ function next(i) {
+ var hook = hooks[i];
+ if (!hook) {
+ return fn();
+ }
+ self.currentRunnable = hook;
+
+ if (name === HOOK_TYPE_BEFORE_ALL) {
+ hook.ctx.currentTest = hook.parent.tests[0];
+ } else if (name === HOOK_TYPE_AFTER_ALL) {
+ hook.ctx.currentTest = hook.parent.tests[hook.parent.tests.length - 1];
+ } else {
+ hook.ctx.currentTest = self.test;
+ }
+
+ setHookTitle(hook);
+
+ hook.allowUncaught = self.allowUncaught;
+
+ self.emit(constants$1.EVENT_HOOK_BEGIN, hook);
+
+ if (!hook.listeners('error').length) {
+ self._addEventListener(hook, 'error', function(err) {
+ self.fail(hook, err);
+ });
+ }
+
+ hook.run(function cbHookRun(err) {
+ var testError = hook.error();
+ if (testError) {
+ self.fail(self.test, testError);
+ }
+ // conditional skip
+ if (hook.pending) {
+ if (name === HOOK_TYPE_AFTER_EACH) {
+ // TODO define and implement use case
+ if (self.test) {
+ self.test.pending = true;
+ }
+ } else if (name === HOOK_TYPE_BEFORE_EACH) {
+ if (self.test) {
+ self.test.pending = true;
+ }
+ self.emit(constants$1.EVENT_HOOK_END, hook);
+ hook.pending = false; // activates hook for next test
+ return fn(new Error('abort hookDown'));
+ } else if (name === HOOK_TYPE_BEFORE_ALL) {
+ suite.tests.forEach(function(test) {
+ test.pending = true;
+ });
+ suite.suites.forEach(function(suite) {
+ suite.pending = true;
+ });
+ hooks = [];
+ } else {
+ hook.pending = false;
+ var errForbid = createUnsupportedError$1('`this.skip` forbidden');
+ self.fail(hook, errForbid);
+ return fn(errForbid);
+ }
+ } else if (err) {
+ self.fail(hook, err);
+ // stop executing hooks, notify callee of hook err
+ return fn(err);
+ }
+ self.emit(constants$1.EVENT_HOOK_END, hook);
+ delete hook.ctx.currentTest;
+ setHookTitle(hook);
+ next(++i);
+ });
+
+ function setHookTitle(hook) {
+ hook.originalTitle = hook.originalTitle || hook.title;
+ if (hook.ctx && hook.ctx.currentTest) {
+ hook.title = `${hook.originalTitle} for "${hook.ctx.currentTest.title}"`;
+ } else {
+ var parentTitle;
+ if (hook.parent.title) {
+ parentTitle = hook.parent.title;
+ } else {
+ parentTitle = hook.parent.root ? '{root}' : '';
+ }
+ hook.title = `${hook.originalTitle} in "${parentTitle}"`;
+ }
+ }
+ }
+
+ Runner.immediately(function() {
+ next(0);
+ });
+ };
+
+ /**
+ * Run hook `name` for the given array of `suites`
+ * in order, and callback `fn(err, errSuite)`.
+ *
+ * @private
+ * @param {string} name
+ * @param {Array} suites
+ * @param {Function} fn
+ */
+ Runner.prototype.hooks = function(name, suites, fn) {
+ var self = this;
+ var orig = this.suite;
+
+ function next(suite) {
+ self.suite = suite;
+
+ if (!suite) {
+ self.suite = orig;
+ return fn();
+ }
+
+ self.hook(name, function(err) {
+ if (err) {
+ var errSuite = self.suite;
+ self.suite = orig;
+ return fn(err, errSuite);
+ }
+
+ next(suites.pop());
+ });
+ }
+
+ next(suites.pop());
+ };
+
+ /**
+ * Run 'afterEach' hooks from bottom up.
+ *
+ * @param {String} name
+ * @param {Function} fn
+ * @private
+ */
+ Runner.prototype.hookUp = function(name, fn) {
+ var suites = [this.suite].concat(this.parents()).reverse();
+ this.hooks(name, suites, fn);
+ };
+
+ /**
+ * Run 'beforeEach' hooks from top level down.
+ *
+ * @param {String} name
+ * @param {Function} fn
+ * @private
+ */
+ Runner.prototype.hookDown = function(name, fn) {
+ var suites = [this.suite].concat(this.parents());
+ this.hooks(name, suites, fn);
+ };
+
+ /**
+ * Return an array of parent Suites from
+ * closest to furthest.
+ *
+ * @return {Array}
+ * @private
+ */
+ Runner.prototype.parents = function() {
+ var suite = this.suite;
+ var suites = [];
+ while (suite.parent) {
+ suite = suite.parent;
+ suites.push(suite);
+ }
+ return suites;
+ };
+
+ /**
+ * Run the current test and callback `fn(err)`.
+ *
+ * @param {Function} fn
+ * @private
+ */
+ Runner.prototype.runTest = function(fn) {
+ if (this._opts.dryRun) return fn();
+
+ var self = this;
+ var test = this.test;
+
+ if (!test) {
+ return;
+ }
+
+ if (this.asyncOnly) {
+ test.asyncOnly = true;
+ }
+ this._addEventListener(test, 'error', function(err) {
+ self.fail(test, err);
+ });
+ if (this.allowUncaught) {
+ test.allowUncaught = true;
+ return test.run(fn);
+ }
+ try {
+ test.run(fn);
+ } catch (err) {
+ fn(err);
+ }
+ };
+
+ /**
+ * Run tests in the given `suite` and invoke the callback `fn()` when complete.
+ *
+ * @private
+ * @param {Suite} suite
+ * @param {Function} fn
+ */
+ Runner.prototype.runTests = function(suite, fn) {
+ var self = this;
+ var tests = suite.tests.slice();
+ var test;
+
+ function hookErr(_, errSuite, after) {
+ // before/after Each hook for errSuite failed:
+ var orig = self.suite;
+
+ // for failed 'after each' hook start from errSuite parent,
+ // otherwise start from errSuite itself
+ self.suite = after ? errSuite.parent : errSuite;
+
+ if (self.suite) {
+ self.hookUp(HOOK_TYPE_AFTER_EACH, function(err2, errSuite2) {
+ self.suite = orig;
+ // some hooks may fail even now
+ if (err2) {
+ return hookErr(err2, errSuite2, true);
+ }
+ // report error suite
+ fn(errSuite);
+ });
+ } else {
+ // there is no need calling other 'after each' hooks
+ self.suite = orig;
+ fn(errSuite);
+ }
+ }
+
+ function next(err, errSuite) {
+ // if we bail after first err
+ if (self.failures && suite._bail) {
+ tests = [];
+ }
+
+ if (self._abort) {
+ return fn();
+ }
+
+ if (err) {
+ return hookErr(err, errSuite, true);
+ }
+
+ // next test
+ test = tests.shift();
+
+ // all done
+ if (!test) {
+ return fn();
+ }
+
+ // grep
+ var match = self._grep.test(test.fullTitle());
+ if (self._invert) {
+ match = !match;
+ }
+ if (!match) {
+ // Run immediately only if we have defined a grep. When we
+ // define a grep — It can cause maximum callstack error if
+ // the grep is doing a large recursive loop by neglecting
+ // all tests. The run immediately function also comes with
+ // a performance cost. So we don't want to run immediately
+ // if we run the whole test suite, because running the whole
+ // test suite don't do any immediate recursive loops. Thus,
+ // allowing a JS runtime to breathe.
+ if (self._grep !== self._defaultGrep) {
+ Runner.immediately(next);
+ } else {
+ next();
+ }
+ return;
+ }
+
+ // static skip, no hooks are executed
+ if (test.isPending()) {
+ if (self.forbidPending) {
+ self.fail(test, new Error('Pending test forbidden'), true);
+ } else {
+ test.state = STATE_PENDING;
+ self.emit(constants$1.EVENT_TEST_PENDING, test);
+ }
+ self.emit(constants$1.EVENT_TEST_END, test);
+ return next();
+ }
+
+ // execute test and hook(s)
+ self.emit(constants$1.EVENT_TEST_BEGIN, (self.test = test));
+ self.hookDown(HOOK_TYPE_BEFORE_EACH, function(err, errSuite) {
+ // conditional skip within beforeEach
+ if (test.isPending()) {
+ if (self.forbidPending) {
+ self.fail(test, new Error('Pending test forbidden'), true);
+ } else {
+ test.state = STATE_PENDING;
+ self.emit(constants$1.EVENT_TEST_PENDING, test);
+ }
+ self.emit(constants$1.EVENT_TEST_END, test);
+ // skip inner afterEach hooks below errSuite level
+ var origSuite = self.suite;
+ self.suite = errSuite || self.suite;
+ return self.hookUp(HOOK_TYPE_AFTER_EACH, function(e, eSuite) {
+ self.suite = origSuite;
+ next(e, eSuite);
+ });
+ }
+ if (err) {
+ return hookErr(err, errSuite, false);
+ }
+ self.currentRunnable = self.test;
+ self.runTest(function(err) {
+ test = self.test;
+ // conditional skip within it
+ if (test.pending) {
+ if (self.forbidPending) {
+ self.fail(test, new Error('Pending test forbidden'), true);
+ } else {
+ test.state = STATE_PENDING;
+ self.emit(constants$1.EVENT_TEST_PENDING, test);
+ }
+ self.emit(constants$1.EVENT_TEST_END, test);
+ return self.hookUp(HOOK_TYPE_AFTER_EACH, next);
+ } else if (err) {
+ var retry = test.currentRetry();
+ if (retry < test.retries()) {
+ var clonedTest = test.clone();
+ clonedTest.currentRetry(retry + 1);
+ tests.unshift(clonedTest);
+
+ self.emit(constants$1.EVENT_TEST_RETRY, test, err);
+
+ // Early return + hook trigger so that it doesn't
+ // increment the count wrong
+ return self.hookUp(HOOK_TYPE_AFTER_EACH, next);
+ } else {
+ self.fail(test, err);
+ }
+ self.emit(constants$1.EVENT_TEST_END, test);
+ return self.hookUp(HOOK_TYPE_AFTER_EACH, next);
+ }
+
+ test.state = STATE_PASSED;
+ self.emit(constants$1.EVENT_TEST_PASS, test);
+ self.emit(constants$1.EVENT_TEST_END, test);
+ self.hookUp(HOOK_TYPE_AFTER_EACH, next);
+ });
+ });
+ }
+
+ this.next = next;
+ this.hookErr = hookErr;
+ next();
+ };
+
+ /**
+ * Run the given `suite` and invoke the callback `fn()` when complete.
+ *
+ * @private
+ * @param {Suite} suite
+ * @param {Function} fn
+ */
+ Runner.prototype.runSuite = function(suite, fn) {
+ var i = 0;
+ var self = this;
+ var total = this.grepTotal(suite);
+
+ debug('runSuite(): running %s', suite.fullTitle());
+
+ if (!total || (self.failures && suite._bail)) {
+ debug('runSuite(): bailing');
+ return fn();
+ }
+
+ this.emit(constants$1.EVENT_SUITE_BEGIN, (this.suite = suite));
+
+ function next(errSuite) {
+ if (errSuite) {
+ // current suite failed on a hook from errSuite
+ if (errSuite === suite) {
+ // if errSuite is current suite
+ // continue to the next sibling suite
+ return done();
+ }
+ // errSuite is among the parents of current suite
+ // stop execution of errSuite and all sub-suites
+ return done(errSuite);
+ }
+
+ if (self._abort) {
+ return done();
+ }
+
+ var curr = suite.suites[i++];
+ if (!curr) {
+ return done();
+ }
+
+ // Avoid grep neglecting large number of tests causing a
+ // huge recursive loop and thus a maximum call stack error.
+ // See comment in `this.runTests()` for more information.
+ if (self._grep !== self._defaultGrep) {
+ Runner.immediately(function() {
+ self.runSuite(curr, next);
+ });
+ } else {
+ self.runSuite(curr, next);
+ }
+ }
+
+ function done(errSuite) {
+ self.suite = suite;
+ self.nextSuite = next;
+
+ // remove reference to test
+ delete self.test;
+
+ self.hook(HOOK_TYPE_AFTER_ALL, function() {
+ self.emit(constants$1.EVENT_SUITE_END, suite);
+ fn(errSuite);
+ });
+ }
+
+ this.nextSuite = next;
+
+ this.hook(HOOK_TYPE_BEFORE_ALL, function(err) {
+ if (err) {
+ return done();
+ }
+ self.runTests(suite, next);
+ });
+ };
+
+ /**
+ * Handle uncaught exceptions within runner.
+ *
+ * This function is bound to the instance as `Runner#uncaught` at instantiation
+ * time. It's intended to be listening on the `Process.uncaughtException` event.
+ * In order to not leak EE listeners, we need to ensure no more than a single
+ * `uncaughtException` listener exists per `Runner`. The only way to do
+ * this--because this function needs the context (and we don't have lambdas)--is
+ * to use `Function.prototype.bind`. We need strict equality to unregister and
+ * _only_ unregister the _one_ listener we set from the
+ * `Process.uncaughtException` event; would be poor form to just remove
+ * everything. See {@link Runner#run} for where the event listener is registered
+ * and unregistered.
+ * @param {Error} err - Some uncaught error
+ * @private
+ */
+ Runner.prototype._uncaught = function(err) {
+ // this is defensive to prevent future developers from mis-calling this function.
+ // it's more likely that it'd be called with the incorrect context--say, the global
+ // `process` object--than it would to be called with a context that is not a "subclass"
+ // of `Runner`.
+ if (!(this instanceof Runner)) {
+ throw createFatalError(
+ 'Runner#uncaught() called with invalid context',
+ this
+ );
+ }
+ if (err instanceof pending) {
+ debug('uncaught(): caught a Pending');
+ return;
+ }
+ // browser does not exit script when throwing in global.onerror()
+ if (this.allowUncaught && !utils.isBrowser()) {
+ debug('uncaught(): bubbling exception due to --allow-uncaught');
+ throw err;
+ }
+
+ if (this.state === constants$1.STATE_STOPPED) {
+ debug('uncaught(): throwing after run has completed!');
+ throw err;
+ }
+
+ if (err) {
+ debug('uncaught(): got truthy exception %O', err);
+ } else {
+ debug('uncaught(): undefined/falsy exception');
+ err = createInvalidExceptionError(
+ 'Caught falsy/undefined exception which would otherwise be uncaught. No stack trace found; try a debugger',
+ err
+ );
+ }
+
+ if (!isError(err)) {
+ err = thrown2Error(err);
+ debug('uncaught(): converted "error" %o to Error', err);
+ }
+ err.uncaught = true;
+
+ var runnable$1 = this.currentRunnable;
+
+ if (!runnable$1) {
+ runnable$1 = new runnable('Uncaught error outside test suite');
+ debug('uncaught(): no current Runnable; created a phony one');
+ runnable$1.parent = this.suite;
+
+ if (this.state === constants$1.STATE_RUNNING) {
+ debug('uncaught(): failing gracefully');
+ this.fail(runnable$1, err);
+ } else {
+ // Can't recover from this failure
+ debug('uncaught(): test run has not yet started; unrecoverable');
+ this.emit(constants$1.EVENT_RUN_BEGIN);
+ this.fail(runnable$1, err);
+ this.emit(constants$1.EVENT_RUN_END);
+ }
+
+ return;
+ }
+
+ runnable$1.clearTimeout();
+
+ if (runnable$1.isFailed()) {
+ debug('uncaught(): Runnable has already failed');
+ // Ignore error if already failed
+ return;
+ } else if (runnable$1.isPending()) {
+ debug('uncaught(): pending Runnable wound up failing!');
+ // report 'pending test' retrospectively as failed
+ this.fail(runnable$1, err, true);
+ return;
+ }
+
+ // we cannot recover gracefully if a Runnable has already passed
+ // then fails asynchronously
+ if (runnable$1.isPassed()) {
+ debug('uncaught(): Runnable has already passed; bailing gracefully');
+ this.fail(runnable$1, err);
+ this.abort();
+ } else {
+ debug('uncaught(): forcing Runnable to complete with Error');
+ return runnable$1.callback(err);
+ }
+ };
+
+ /**
+ * Run the root suite and invoke `fn(failures)`
+ * on completion.
+ *
+ * @public
+ * @memberof Runner
+ * @param {Function} fn - Callback when finished
+ * @param {{files: string[], options: Options}} [opts] - For subclasses
+ * @returns {Runner} Runner instance.
+ */
+ Runner.prototype.run = function(fn, opts = {}) {
+ var rootSuite = this.suite;
+ var options = opts.options || {};
+
+ debug('run(): got options: %O', options);
+ fn = fn || function() {};
+
+ const end = () => {
+ if (!this.total && this._opts.failZero) this.failures = 1;
+
+ debug('run(): root suite completed; emitting %s', constants$1.EVENT_RUN_END);
+ this.emit(constants$1.EVENT_RUN_END);
+ };
+
+ const begin = () => {
+ debug('run(): emitting %s', constants$1.EVENT_RUN_BEGIN);
+ this.emit(constants$1.EVENT_RUN_BEGIN);
+ debug('run(): emitted %s', constants$1.EVENT_RUN_BEGIN);
+
+ this.runSuite(rootSuite, end);
+ };
+
+ const prepare = () => {
+ debug('run(): starting');
+ // If there is an `only` filter
+ if (rootSuite.hasOnly()) {
+ rootSuite.filterOnly();
+ debug('run(): filtered exclusive Runnables');
+ }
+ this.state = constants$1.STATE_RUNNING;
+ if (this._delay) {
+ this.emit(constants$1.EVENT_DELAY_END);
+ debug('run(): "delay" ended');
+ }
+
+ return begin();
+ };
+
+ // references cleanup to avoid memory leaks
+ if (this._opts.cleanReferencesAfterRun) {
+ this.on(constants$1.EVENT_SUITE_END, suite => {
+ suite.cleanReferences();
+ });
+ }
+
+ // callback
+ this.on(constants$1.EVENT_RUN_END, function() {
+ this.state = constants$1.STATE_STOPPED;
+ debug('run(): emitted %s', constants$1.EVENT_RUN_END);
+ fn(this.failures);
+ });
+
+ this._removeEventListener(process$1, 'uncaughtException', this.uncaught);
+ this._removeEventListener(process$1, 'unhandledRejection', this.unhandled);
+ this._addEventListener(process$1, 'uncaughtException', this.uncaught);
+ this._addEventListener(process$1, 'unhandledRejection', this.unhandled);
+
+ if (this._delay) {
+ // for reporters, I guess.
+ // might be nice to debounce some dots while we wait.
+ this.emit(constants$1.EVENT_DELAY_BEGIN, rootSuite);
+ rootSuite.once(EVENT_ROOT_SUITE_RUN, prepare);
+ debug('run(): waiting for green light due to --delay');
+ } else {
+ Runner.immediately(prepare);
+ }
+
+ return this;
+ };
+
+ /**
+ * Toggle partial object linking behavior; used for building object references from
+ * unique ID's. Does nothing in serial mode, because the object references already exist.
+ * Subclasses can implement this (e.g., `ParallelBufferedRunner`)
+ * @abstract
+ * @param {boolean} [value] - If `true`, enable partial object linking, otherwise disable
+ * @returns {Runner}
+ * @chainable
+ * @public
+ * @example
+ * // this reporter needs proper object references when run in parallel mode
+ * class MyReporter() {
+ * constructor(runner) {
+ * this.runner.linkPartialObjects(true)
+ * .on(EVENT_SUITE_BEGIN, suite => {
+ // this Suite may be the same object...
+ * })
+ * .on(EVENT_TEST_BEGIN, test => {
+ * // ...as the `test.parent` property
+ * });
+ * }
+ * }
+ */
+ Runner.prototype.linkPartialObjects = function(value) {
+ return this;
+ };
+
+ /*
+ * Like {@link Runner#run}, but does not accept a callback and returns a `Promise` instead of a `Runner`.
+ * This function cannot reject; an `unhandledRejection` event will bubble up to the `process` object instead.
+ * @public
+ * @memberof Runner
+ * @param {Object} [opts] - Options for {@link Runner#run}
+ * @returns {Promise<number>} Failure count
+ */
+ Runner.prototype.runAsync = async function runAsync(opts = {}) {
+ return new Promise(resolve => {
+ this.run(resolve, opts);
+ });
+ };
+
+ /**
+ * Cleanly abort execution.
+ *
+ * @memberof Runner
+ * @public
+ * @return {Runner} Runner instance.
+ */
+ Runner.prototype.abort = function() {
+ debug('abort(): aborting');
+ this._abort = true;
+
+ return this;
+ };
+
+ /**
+ * Returns `true` if Mocha is running in parallel mode. For reporters.
+ *
+ * Subclasses should return an appropriate value.
+ * @public
+ * @returns {false}
+ */
+ Runner.prototype.isParallelMode = function isParallelMode() {
+ return false;
+ };
+
+ /**
+ * Configures an alternate reporter for worker processes to use. Subclasses
+ * using worker processes should implement this.
+ * @public
+ * @param {string} path - Absolute path to alternate reporter for worker processes to use
+ * @returns {Runner}
+ * @throws When in serial mode
+ * @chainable
+ * @abstract
+ */
+ Runner.prototype.workerReporter = function() {
+ throw createUnsupportedError$1('workerReporter() not supported in serial mode');
+ };
+
+ /**
+ * Filter leaks with the given globals flagged as `ok`.
+ *
+ * @private
+ * @param {Array} ok
+ * @param {Array} globals
+ * @return {Array}
+ */
+ function filterLeaks(ok, globals) {
+ return globals.filter(function(key) {
+ // Firefox and Chrome exposes iframes as index inside the window object
+ if (/^\d+/.test(key)) {
+ return false;
+ }
+
+ // in firefox
+ // if runner runs in an iframe, this iframe's window.getInterface method
+ // not init at first it is assigned in some seconds
+ if (commonjsGlobal.navigator && /^getInterface/.test(key)) {
+ return false;
+ }
+
+ // an iframe could be approached by window[iframeIndex]
+ // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak
+ if (commonjsGlobal.navigator && /^\d+/.test(key)) {
+ return false;
+ }
+
+ // Opera and IE expose global variables for HTML element IDs (issue #243)
+ if (/^mocha-/.test(key)) {
+ return false;
+ }
+
+ var matched = ok.filter(function(ok) {
+ if (~ok.indexOf('*')) {
+ return key.indexOf(ok.split('*')[0]) === 0;
+ }
+ return key === ok;
+ });
+ return !matched.length && (!commonjsGlobal.navigator || key !== 'onerror');
+ });
+ }
+
+ /**
+ * Check if argument is an instance of Error object or a duck-typed equivalent.
+ *
+ * @private
+ * @param {Object} err - object to check
+ * @param {string} err.message - error message
+ * @returns {boolean}
+ */
+ function isError(err) {
+ return err instanceof Error || (err && typeof err.message === 'string');
+ }
+
+ /**
+ *
+ * Converts thrown non-extensible type into proper Error.
+ *
+ * @private
+ * @param {*} thrown - Non-extensible type thrown by code
+ * @return {Error}
+ */
+ function thrown2Error(err) {
+ return new Error(
+ `the ${utils.canonicalType(err)} ${stringify(
+ err
+ )} was thrown, throw an Error :)`
+ );
+ }
+
+ Runner.constants = constants$1;
+
+ /**
+ * Node.js' `EventEmitter`
+ * @external EventEmitter
+ * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter}
+ */
+
+ var runner = Runner;
+
+ var require$$11 = getCjsExportFromNamespace(_nodeResolve_empty$1);
+
+ var base = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Base
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+
+
+
+
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+
+ const isBrowser = utils.isBrowser();
+
+ function getBrowserWindowSize() {
+ if ('innerHeight' in commonjsGlobal) {
+ return [commonjsGlobal.innerHeight, commonjsGlobal.innerWidth];
+ }
+ // In a Web Worker, the DOM Window is not available.
+ return [640, 480];
+ }
+
+ /**
+ * Expose `Base`.
+ */
+
+ exports = module.exports = Base;
+
+ /**
+ * Check if both stdio streams are associated with a tty.
+ */
+
+ var isatty = isBrowser || (process$1.stdout.isTTY && process$1.stderr.isTTY);
+
+ /**
+ * Save log references to avoid tests interfering (see GH-3604).
+ */
+ var consoleLog = console.log;
+
+ /**
+ * Enable coloring by default, except in the browser interface.
+ */
+
+ exports.useColors =
+ !isBrowser &&
+ (require$$11.stdout || process$1.env.MOCHA_COLORS !== undefined);
+
+ /**
+ * Inline diffs instead of +/-
+ */
+
+ exports.inlineDiffs = false;
+
+ /**
+ * Default color map.
+ */
+
+ exports.colors = {
+ pass: 90,
+ fail: 31,
+ 'bright pass': 92,
+ 'bright fail': 91,
+ 'bright yellow': 93,
+ pending: 36,
+ suite: 0,
+ 'error title': 0,
+ 'error message': 31,
+ 'error stack': 90,
+ checkmark: 32,
+ fast: 90,
+ medium: 33,
+ slow: 31,
+ green: 32,
+ light: 90,
+ 'diff gutter': 90,
+ 'diff added': 32,
+ 'diff removed': 31,
+ 'diff added inline': '30;42',
+ 'diff removed inline': '30;41'
+ };
+
+ /**
+ * Default symbol map.
+ */
+
+ exports.symbols = {
+ ok: browser$1.success,
+ err: browser$1.error,
+ dot: '.',
+ comma: ',',
+ bang: '!'
+ };
+
+ /**
+ * Color `str` with the given `type`,
+ * allowing colors to be disabled,
+ * as well as user-defined color
+ * schemes.
+ *
+ * @private
+ * @param {string} type
+ * @param {string} str
+ * @return {string}
+ */
+ var color = (exports.color = function(type, str) {
+ if (!exports.useColors) {
+ return String(str);
+ }
+ return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m';
+ });
+
+ /**
+ * Expose term window size, with some defaults for when stderr is not a tty.
+ */
+
+ exports.window = {
+ width: 75
+ };
+
+ if (isatty) {
+ if (isBrowser) {
+ exports.window.width = getBrowserWindowSize()[1];
+ } else {
+ exports.window.width = process$1.stdout.getWindowSize(1)[0];
+ }
+ }
+
+ /**
+ * Expose some basic cursor interactions that are common among reporters.
+ */
+
+ exports.cursor = {
+ hide: function() {
+ isatty && process$1.stdout.write('\u001b[?25l');
+ },
+
+ show: function() {
+ isatty && process$1.stdout.write('\u001b[?25h');
+ },
+
+ deleteLine: function() {
+ isatty && process$1.stdout.write('\u001b[2K');
+ },
+
+ beginningOfLine: function() {
+ isatty && process$1.stdout.write('\u001b[0G');
+ },
+
+ CR: function() {
+ if (isatty) {
+ exports.cursor.deleteLine();
+ exports.cursor.beginningOfLine();
+ } else {
+ process$1.stdout.write('\r');
+ }
+ }
+ };
+
+ var showDiff = (exports.showDiff = function(err) {
+ return (
+ err &&
+ err.showDiff !== false &&
+ sameType(err.actual, err.expected) &&
+ err.expected !== undefined
+ );
+ });
+
+ function stringifyDiffObjs(err) {
+ if (!utils.isString(err.actual) || !utils.isString(err.expected)) {
+ err.actual = utils.stringify(err.actual);
+ err.expected = utils.stringify(err.expected);
+ }
+ }
+
+ /**
+ * Returns a diff between 2 strings with coloured ANSI output.
+ *
+ * @description
+ * The diff will be either inline or unified dependent on the value
+ * of `Base.inlineDiff`.
+ *
+ * @param {string} actual
+ * @param {string} expected
+ * @return {string} Diff
+ */
+ var generateDiff = (exports.generateDiff = function(actual, expected) {
+ try {
+ const diffSize = 2048;
+ if (actual.length > diffSize) {
+ actual = actual.substring(0, diffSize) + ' ... Lines skipped';
+ }
+ if (expected.length > diffSize) {
+ expected = expected.substring(0, diffSize) + ' ... Lines skipped';
+ }
+ return exports.inlineDiffs
+ ? inlineDiff(actual, expected)
+ : unifiedDiff(actual, expected);
+ } catch (err) {
+ var msg =
+ '\n ' +
+ color('diff added', '+ expected') +
+ ' ' +
+ color('diff removed', '- actual: failed to generate Mocha diff') +
+ '\n';
+ return msg;
+ }
+ });
+
+ /**
+ * Outputs the given `failures` as a list.
+ *
+ * @public
+ * @memberof Mocha.reporters.Base
+ * @variation 1
+ * @param {Object[]} failures - Each is Test instance with corresponding
+ * Error property
+ */
+ exports.list = function(failures) {
+ var multipleErr, multipleTest;
+ Base.consoleLog();
+ failures.forEach(function(test, i) {
+ // format
+ var fmt =
+ color('error title', ' %s) %s:\n') +
+ color('error message', ' %s') +
+ color('error stack', '\n%s\n');
+
+ // msg
+ var msg;
+ var err;
+ if (test.err && test.err.multiple) {
+ if (multipleTest !== test) {
+ multipleTest = test;
+ multipleErr = [test.err].concat(test.err.multiple);
+ }
+ err = multipleErr.shift();
+ } else {
+ err = test.err;
+ }
+ var message;
+ if (typeof err.inspect === 'function') {
+ message = err.inspect() + '';
+ } else if (err.message && typeof err.message.toString === 'function') {
+ message = err.message + '';
+ } else {
+ message = '';
+ }
+ var stack = err.stack || message;
+ var index = message ? stack.indexOf(message) : -1;
+
+ if (index === -1) {
+ msg = message;
+ } else {
+ index += message.length;
+ msg = stack.slice(0, index);
+ // remove msg from stack
+ stack = stack.slice(index + 1);
+ }
+
+ // uncaught
+ if (err.uncaught) {
+ msg = 'Uncaught ' + msg;
+ }
+ // explicitly show diff
+ if (!exports.hideDiff && showDiff(err)) {
+ stringifyDiffObjs(err);
+ fmt =
+ color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n');
+ var match = message.match(/^([^:]+): expected/);
+ msg = '\n ' + color('error message', match ? match[1] : msg);
+
+ msg += generateDiff(err.actual, err.expected);
+ }
+
+ // indent stack trace
+ stack = stack.replace(/^/gm, ' ');
+
+ // indented test title
+ var testTitle = '';
+ test.titlePath().forEach(function(str, index) {
+ if (index !== 0) {
+ testTitle += '\n ';
+ }
+ for (var i = 0; i < index; i++) {
+ testTitle += ' ';
+ }
+ testTitle += str;
+ });
+
+ Base.consoleLog(fmt, i + 1, testTitle, msg, stack);
+ });
+ };
+
+ /**
+ * Constructs a new `Base` reporter instance.
+ *
+ * @description
+ * All other reporters generally inherit from this reporter.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Base(runner, options) {
+ var failures = (this.failures = []);
+
+ if (!runner) {
+ throw new TypeError('Missing runner argument');
+ }
+ this.options = options || {};
+ this.runner = runner;
+ this.stats = runner.stats; // assigned so Reporters keep a closer reference
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ if (test.duration > test.slow()) {
+ test.speed = 'slow';
+ } else if (test.duration > test.slow() / 2) {
+ test.speed = 'medium';
+ } else {
+ test.speed = 'fast';
+ }
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test, err) {
+ if (showDiff(err)) {
+ stringifyDiffObjs(err);
+ }
+ // more than one error per test
+ if (test.err && err instanceof Error) {
+ test.err.multiple = (test.err.multiple || []).concat(err);
+ } else {
+ test.err = err;
+ }
+ failures.push(test);
+ });
+ }
+
+ /**
+ * Outputs common epilogue used by many of the bundled reporters.
+ *
+ * @public
+ * @memberof Mocha.reporters
+ */
+ Base.prototype.epilogue = function() {
+ var stats = this.stats;
+ var fmt;
+
+ Base.consoleLog();
+
+ // passes
+ fmt =
+ color('bright pass', ' ') +
+ color('green', ' %d passing') +
+ color('light', ' (%s)');
+
+ Base.consoleLog(fmt, stats.passes || 0, ms$1(stats.duration));
+
+ // pending
+ if (stats.pending) {
+ fmt = color('pending', ' ') + color('pending', ' %d pending');
+
+ Base.consoleLog(fmt, stats.pending);
+ }
+
+ // failures
+ if (stats.failures) {
+ fmt = color('fail', ' %d failing');
+
+ Base.consoleLog(fmt, stats.failures);
+
+ Base.list(this.failures);
+ Base.consoleLog();
+ }
+
+ Base.consoleLog();
+ };
+
+ /**
+ * Pads the given `str` to `len`.
+ *
+ * @private
+ * @param {string} str
+ * @param {string} len
+ * @return {string}
+ */
+ function pad(str, len) {
+ str = String(str);
+ return Array(len - str.length + 1).join(' ') + str;
+ }
+
+ /**
+ * Returns inline diff between 2 strings with coloured ANSI output.
+ *
+ * @private
+ * @param {String} actual
+ * @param {String} expected
+ * @return {string} Diff
+ */
+ function inlineDiff(actual, expected) {
+ var msg = errorDiff(actual, expected);
+
+ // linenos
+ var lines = msg.split('\n');
+ if (lines.length > 4) {
+ var width = String(lines.length).length;
+ msg = lines
+ .map(function(str, i) {
+ return pad(++i, width) + ' |' + ' ' + str;
+ })
+ .join('\n');
+ }
+
+ // legend
+ msg =
+ '\n' +
+ color('diff removed inline', 'actual') +
+ ' ' +
+ color('diff added inline', 'expected') +
+ '\n\n' +
+ msg +
+ '\n';
+
+ // indent
+ msg = msg.replace(/^/gm, ' ');
+ return msg;
+ }
+
+ /**
+ * Returns unified diff between two strings with coloured ANSI output.
+ *
+ * @private
+ * @param {String} actual
+ * @param {String} expected
+ * @return {string} The diff.
+ */
+ function unifiedDiff(actual, expected) {
+ var indent = ' ';
+ function cleanUp(line) {
+ if (line[0] === '+') {
+ return indent + colorLines('diff added', line);
+ }
+ if (line[0] === '-') {
+ return indent + colorLines('diff removed', line);
+ }
+ if (line.match(/@@/)) {
+ return '--';
+ }
+ if (line.match(/\\ No newline/)) {
+ return null;
+ }
+ return indent + line;
+ }
+ function notBlank(line) {
+ return typeof line !== 'undefined' && line !== null;
+ }
+ var msg = diff$1.createPatch('string', actual, expected);
+ var lines = msg.split('\n').splice(5);
+ return (
+ '\n ' +
+ colorLines('diff added', '+ expected') +
+ ' ' +
+ colorLines('diff removed', '- actual') +
+ '\n\n' +
+ lines
+ .map(cleanUp)
+ .filter(notBlank)
+ .join('\n')
+ );
+ }
+
+ /**
+ * Returns character diff for `err`.
+ *
+ * @private
+ * @param {String} actual
+ * @param {String} expected
+ * @return {string} the diff
+ */
+ function errorDiff(actual, expected) {
+ return diff$1
+ .diffWordsWithSpace(actual, expected)
+ .map(function(str) {
+ if (str.added) {
+ return colorLines('diff added inline', str.value);
+ }
+ if (str.removed) {
+ return colorLines('diff removed inline', str.value);
+ }
+ return str.value;
+ })
+ .join('');
+ }
+
+ /**
+ * Colors lines for `str`, using the color `name`.
+ *
+ * @private
+ * @param {string} name
+ * @param {string} str
+ * @return {string}
+ */
+ function colorLines(name, str) {
+ return str
+ .split('\n')
+ .map(function(str) {
+ return color(name, str);
+ })
+ .join('\n');
+ }
+
+ /**
+ * Object#toString reference.
+ */
+ var objToString = Object.prototype.toString;
+
+ /**
+ * Checks that a / b have the same type.
+ *
+ * @private
+ * @param {Object} a
+ * @param {Object} b
+ * @return {boolean}
+ */
+ function sameType(a, b) {
+ return objToString.call(a) === objToString.call(b);
+ }
+
+ Base.consoleLog = consoleLog;
+
+ Base.abstract = true;
+ });
+
+ var dot = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Dot
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var inherits = utils.inherits;
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+
+ /**
+ * Expose `Dot`.
+ */
+
+ module.exports = Dot;
+
+ /**
+ * Constructs a new `Dot` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Dot(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var width = (base.window.width * 0.75) | 0;
+ var n = -1;
+
+ runner.on(EVENT_RUN_BEGIN, function() {
+ process$1.stdout.write('\n');
+ });
+
+ runner.on(EVENT_TEST_PENDING, function() {
+ if (++n % width === 0) {
+ process$1.stdout.write('\n ');
+ }
+ process$1.stdout.write(base.color('pending', base.symbols.comma));
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ if (++n % width === 0) {
+ process$1.stdout.write('\n ');
+ }
+ if (test.speed === 'slow') {
+ process$1.stdout.write(base.color('bright yellow', base.symbols.dot));
+ } else {
+ process$1.stdout.write(base.color(test.speed, base.symbols.dot));
+ }
+ });
+
+ runner.on(EVENT_TEST_FAIL, function() {
+ if (++n % width === 0) {
+ process$1.stdout.write('\n ');
+ }
+ process$1.stdout.write(base.color('fail', base.symbols.bang));
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ process$1.stdout.write('\n');
+ self.epilogue();
+ });
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(Dot, base);
+
+ Dot.description = 'dot matrix representation';
+ });
+
+ var doc = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Doc
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;
+ var EVENT_SUITE_END = constants.EVENT_SUITE_END;
+
+ /**
+ * Expose `Doc`.
+ */
+
+ module.exports = Doc;
+
+ /**
+ * Constructs a new `Doc` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Doc(runner, options) {
+ base.call(this, runner, options);
+
+ var indents = 2;
+
+ function indent() {
+ return Array(indents).join(' ');
+ }
+
+ runner.on(EVENT_SUITE_BEGIN, function(suite) {
+ if (suite.root) {
+ return;
+ }
+ ++indents;
+ base.consoleLog('%s<section class="suite">', indent());
+ ++indents;
+ base.consoleLog('%s<h1>%s</h1>', indent(), utils.escape(suite.title));
+ base.consoleLog('%s<dl>', indent());
+ });
+
+ runner.on(EVENT_SUITE_END, function(suite) {
+ if (suite.root) {
+ return;
+ }
+ base.consoleLog('%s</dl>', indent());
+ --indents;
+ base.consoleLog('%s</section>', indent());
+ --indents;
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ base.consoleLog('%s <dt>%s</dt>', indent(), utils.escape(test.title));
+ base.consoleLog('%s <dt>%s</dt>', indent(), utils.escape(test.file));
+ var code = utils.escape(utils.clean(test.body));
+ base.consoleLog('%s <dd><pre><code>%s</code></pre></dd>', indent(), code);
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test, err) {
+ base.consoleLog(
+ '%s <dt class="error">%s</dt>',
+ indent(),
+ utils.escape(test.title)
+ );
+ base.consoleLog(
+ '%s <dt class="error">%s</dt>',
+ indent(),
+ utils.escape(test.file)
+ );
+ var code = utils.escape(utils.clean(test.body));
+ base.consoleLog(
+ '%s <dd class="error"><pre><code>%s</code></pre></dd>',
+ indent(),
+ code
+ );
+ base.consoleLog(
+ '%s <dd class="error">%s</dd>',
+ indent(),
+ utils.escape(err)
+ );
+ });
+ }
+
+ Doc.description = 'HTML documentation';
+ });
+
+ var tap = createCommonjsModule(function (module, exports) {
+ /**
+ * @module TAP
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var EVENT_TEST_END = constants.EVENT_TEST_END;
+ var inherits = utils.inherits;
+ var sprintf = util.format;
+
+ /**
+ * Expose `TAP`.
+ */
+
+ module.exports = TAP;
+
+ /**
+ * Constructs a new `TAP` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function TAP(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var n = 1;
+
+ var tapVersion = '12';
+ if (options && options.reporterOptions) {
+ if (options.reporterOptions.tapVersion) {
+ tapVersion = options.reporterOptions.tapVersion.toString();
+ }
+ }
+
+ this._producer = createProducer(tapVersion);
+
+ runner.once(EVENT_RUN_BEGIN, function() {
+ self._producer.writeVersion();
+ });
+
+ runner.on(EVENT_TEST_END, function() {
+ ++n;
+ });
+
+ runner.on(EVENT_TEST_PENDING, function(test) {
+ self._producer.writePending(n, test);
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ self._producer.writePass(n, test);
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test, err) {
+ self._producer.writeFail(n, test, err);
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ self._producer.writeEpilogue(runner.stats);
+ });
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(TAP, base);
+
+ /**
+ * Returns a TAP-safe title of `test`.
+ *
+ * @private
+ * @param {Test} test - Test instance.
+ * @return {String} title with any hash character removed
+ */
+ function title(test) {
+ return test.fullTitle().replace(/#/g, '');
+ }
+
+ /**
+ * Writes newline-terminated formatted string to reporter output stream.
+ *
+ * @private
+ * @param {string} format - `printf`-like format string
+ * @param {...*} [varArgs] - Format string arguments
+ */
+ function println(format, varArgs) {
+ var vargs = Array.from(arguments);
+ vargs[0] += '\n';
+ process$1.stdout.write(sprintf.apply(null, vargs));
+ }
+
+ /**
+ * Returns a `tapVersion`-appropriate TAP producer instance, if possible.
+ *
+ * @private
+ * @param {string} tapVersion - Version of TAP specification to produce.
+ * @returns {TAPProducer} specification-appropriate instance
+ * @throws {Error} if specification version has no associated producer.
+ */
+ function createProducer(tapVersion) {
+ var producers = {
+ '12': new TAP12Producer(),
+ '13': new TAP13Producer()
+ };
+ var producer = producers[tapVersion];
+
+ if (!producer) {
+ throw new Error(
+ 'invalid or unsupported TAP version: ' + JSON.stringify(tapVersion)
+ );
+ }
+
+ return producer;
+ }
+
+ /**
+ * @summary
+ * Constructs a new TAPProducer.
+ *
+ * @description
+ * <em>Only</em> to be used as an abstract base class.
+ *
+ * @private
+ * @constructor
+ */
+ function TAPProducer() {}
+
+ /**
+ * Writes the TAP version to reporter output stream.
+ *
+ * @abstract
+ */
+ TAPProducer.prototype.writeVersion = function() {};
+
+ /**
+ * Writes the plan to reporter output stream.
+ *
+ * @abstract
+ * @param {number} ntests - Number of tests that are planned to run.
+ */
+ TAPProducer.prototype.writePlan = function(ntests) {
+ println('%d..%d', 1, ntests);
+ };
+
+ /**
+ * Writes that test passed to reporter output stream.
+ *
+ * @abstract
+ * @param {number} n - Index of test that passed.
+ * @param {Test} test - Instance containing test information.
+ */
+ TAPProducer.prototype.writePass = function(n, test) {
+ println('ok %d %s', n, title(test));
+ };
+
+ /**
+ * Writes that test was skipped to reporter output stream.
+ *
+ * @abstract
+ * @param {number} n - Index of test that was skipped.
+ * @param {Test} test - Instance containing test information.
+ */
+ TAPProducer.prototype.writePending = function(n, test) {
+ println('ok %d %s # SKIP -', n, title(test));
+ };
+
+ /**
+ * Writes that test failed to reporter output stream.
+ *
+ * @abstract
+ * @param {number} n - Index of test that failed.
+ * @param {Test} test - Instance containing test information.
+ * @param {Error} err - Reason the test failed.
+ */
+ TAPProducer.prototype.writeFail = function(n, test, err) {
+ println('not ok %d %s', n, title(test));
+ };
+
+ /**
+ * Writes the summary epilogue to reporter output stream.
+ *
+ * @abstract
+ * @param {Object} stats - Object containing run statistics.
+ */
+ TAPProducer.prototype.writeEpilogue = function(stats) {
+ // :TBD: Why is this not counting pending tests?
+ println('# tests ' + (stats.passes + stats.failures));
+ println('# pass ' + stats.passes);
+ // :TBD: Why are we not showing pending results?
+ println('# fail ' + stats.failures);
+ this.writePlan(stats.passes + stats.failures + stats.pending);
+ };
+
+ /**
+ * @summary
+ * Constructs a new TAP12Producer.
+ *
+ * @description
+ * Produces output conforming to the TAP12 specification.
+ *
+ * @private
+ * @constructor
+ * @extends TAPProducer
+ * @see {@link https://testanything.org/tap-specification.html|Specification}
+ */
+ function TAP12Producer() {
+ /**
+ * Writes that test failed to reporter output stream, with error formatting.
+ * @override
+ */
+ this.writeFail = function(n, test, err) {
+ TAPProducer.prototype.writeFail.call(this, n, test, err);
+ if (err.message) {
+ println(err.message.replace(/^/gm, ' '));
+ }
+ if (err.stack) {
+ println(err.stack.replace(/^/gm, ' '));
+ }
+ };
+ }
+
+ /**
+ * Inherit from `TAPProducer.prototype`.
+ */
+ inherits(TAP12Producer, TAPProducer);
+
+ /**
+ * @summary
+ * Constructs a new TAP13Producer.
+ *
+ * @description
+ * Produces output conforming to the TAP13 specification.
+ *
+ * @private
+ * @constructor
+ * @extends TAPProducer
+ * @see {@link https://testanything.org/tap-version-13-specification.html|Specification}
+ */
+ function TAP13Producer() {
+ /**
+ * Writes the TAP version to reporter output stream.
+ * @override
+ */
+ this.writeVersion = function() {
+ println('TAP version 13');
+ };
+
+ /**
+ * Writes that test failed to reporter output stream, with error formatting.
+ * @override
+ */
+ this.writeFail = function(n, test, err) {
+ TAPProducer.prototype.writeFail.call(this, n, test, err);
+ var emitYamlBlock = err.message != null || err.stack != null;
+ if (emitYamlBlock) {
+ println(indent(1) + '---');
+ if (err.message) {
+ println(indent(2) + 'message: |-');
+ println(err.message.replace(/^/gm, indent(3)));
+ }
+ if (err.stack) {
+ println(indent(2) + 'stack: |-');
+ println(err.stack.replace(/^/gm, indent(3)));
+ }
+ println(indent(1) + '...');
+ }
+ };
+
+ function indent(level) {
+ return Array(level + 1).join(' ');
+ }
+ }
+
+ /**
+ * Inherit from `TAPProducer.prototype`.
+ */
+ inherits(TAP13Producer, TAPProducer);
+
+ TAP.description = 'TAP-compatible output';
+ });
+
+ var fs = {};
+
+ var json = createCommonjsModule(function (module, exports) {
+ /**
+ * @module JSON
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+
+
+ const createUnsupportedError = errors.createUnsupportedError;
+
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_TEST_END = constants.EVENT_TEST_END;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+
+ /**
+ * Expose `JSON`.
+ */
+
+ module.exports = JSONReporter;
+
+ /**
+ * Constructs a new `JSON` reporter instance.
+ *
+ * @public
+ * @class JSON
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function JSONReporter(runner, options = {}) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var tests = [];
+ var pending = [];
+ var failures = [];
+ var passes = [];
+ var output;
+
+ if (options.reporterOption && options.reporterOption.output) {
+ if (utils.isBrowser()) {
+ throw createUnsupportedError('file output not supported in browser');
+ }
+ output = options.reporterOption.output;
+ }
+
+ runner.on(EVENT_TEST_END, function(test) {
+ tests.push(test);
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ passes.push(test);
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test) {
+ failures.push(test);
+ });
+
+ runner.on(EVENT_TEST_PENDING, function(test) {
+ pending.push(test);
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ var obj = {
+ stats: self.stats,
+ tests: tests.map(clean),
+ pending: pending.map(clean),
+ failures: failures.map(clean),
+ passes: passes.map(clean)
+ };
+
+ runner.testResults = obj;
+
+ var json = JSON.stringify(obj, null, 2);
+ if (output) {
+ try {
+ fs.mkdirSync(path.dirname(output), {recursive: true});
+ fs.writeFileSync(output, json);
+ } catch (err) {
+ console.error(
+ `${base.symbols.err} [mocha] writing output to "${output}" failed: ${err.message}\n`
+ );
+ process$1.stdout.write(json);
+ }
+ } else {
+ process$1.stdout.write(json);
+ }
+ });
+ }
+
+ /**
+ * Return a plain-object representation of `test`
+ * free of cyclic properties etc.
+ *
+ * @private
+ * @param {Object} test
+ * @return {Object}
+ */
+ function clean(test) {
+ var err = test.err || {};
+ if (err instanceof Error) {
+ err = errorJSON(err);
+ }
+
+ return {
+ title: test.title,
+ fullTitle: test.fullTitle(),
+ file: test.file,
+ duration: test.duration,
+ currentRetry: test.currentRetry(),
+ speed: test.speed,
+ err: cleanCycles(err)
+ };
+ }
+
+ /**
+ * Replaces any circular references inside `obj` with '[object Object]'
+ *
+ * @private
+ * @param {Object} obj
+ * @return {Object}
+ */
+ function cleanCycles(obj) {
+ var cache = [];
+ return JSON.parse(
+ JSON.stringify(obj, function(key, value) {
+ if (typeof value === 'object' && value !== null) {
+ if (cache.indexOf(value) !== -1) {
+ // Instead of going in a circle, we'll print [object Object]
+ return '' + value;
+ }
+ cache.push(value);
+ }
+
+ return value;
+ })
+ );
+ }
+
+ /**
+ * Transform an Error object into a JSON object.
+ *
+ * @private
+ * @param {Error} err
+ * @return {Object}
+ */
+ function errorJSON(err) {
+ var res = {};
+ Object.getOwnPropertyNames(err).forEach(function(key) {
+ res[key] = err[key];
+ }, err);
+ return res;
+ }
+
+ JSONReporter.description = 'single JSON object';
+ });
+
+ /**
+ @module browser/Progress
+ */
+
+ /**
+ * Expose `Progress`.
+ */
+
+ var progress$1 = Progress;
+
+ /**
+ * Initialize a new `Progress` indicator.
+ */
+ function Progress() {
+ this.percent = 0;
+ this.size(0);
+ this.fontSize(11);
+ this.font('helvetica, arial, sans-serif');
+ }
+
+ /**
+ * Set progress size to `size`.
+ *
+ * @public
+ * @param {number} size
+ * @return {Progress} Progress instance.
+ */
+ Progress.prototype.size = function(size) {
+ this._size = size;
+ return this;
+ };
+
+ /**
+ * Set text to `text`.
+ *
+ * @public
+ * @param {string} text
+ * @return {Progress} Progress instance.
+ */
+ Progress.prototype.text = function(text) {
+ this._text = text;
+ return this;
+ };
+
+ /**
+ * Set font size to `size`.
+ *
+ * @public
+ * @param {number} size
+ * @return {Progress} Progress instance.
+ */
+ Progress.prototype.fontSize = function(size) {
+ this._fontSize = size;
+ return this;
+ };
+
+ /**
+ * Set font to `family`.
+ *
+ * @param {string} family
+ * @return {Progress} Progress instance.
+ */
+ Progress.prototype.font = function(family) {
+ this._font = family;
+ return this;
+ };
+
+ /**
+ * Update percentage to `n`.
+ *
+ * @param {number} n
+ * @return {Progress} Progress instance.
+ */
+ Progress.prototype.update = function(n) {
+ this.percent = n;
+ return this;
+ };
+
+ /**
+ * Draw on `ctx`.
+ *
+ * @param {CanvasRenderingContext2d} ctx
+ * @return {Progress} Progress instance.
+ */
+ Progress.prototype.draw = function(ctx) {
+ try {
+ var percent = Math.min(this.percent, 100);
+ var size = this._size;
+ var half = size / 2;
+ var x = half;
+ var y = half;
+ var rad = half - 1;
+ var fontSize = this._fontSize;
+
+ ctx.font = fontSize + 'px ' + this._font;
+
+ var angle = Math.PI * 2 * (percent / 100);
+ ctx.clearRect(0, 0, size, size);
+
+ // outer circle
+ ctx.strokeStyle = '#9f9f9f';
+ ctx.beginPath();
+ ctx.arc(x, y, rad, 0, angle, false);
+ ctx.stroke();
+
+ // inner circle
+ ctx.strokeStyle = '#eee';
+ ctx.beginPath();
+ ctx.arc(x, y, rad - 1, 0, angle, true);
+ ctx.stroke();
+
+ // text
+ var text = this._text || (percent | 0) + '%';
+ var w = ctx.measureText(text).width;
+
+ ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1);
+ } catch (ignore) {
+ // don't fail if we can't render progress
+ }
+ return this;
+ };
+
+ var html = createCommonjsModule(function (module, exports) {
+
+ /* eslint-env browser */
+ /**
+ * @module HTML
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+
+
+
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;
+ var EVENT_SUITE_END = constants.EVENT_SUITE_END;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var escape = utils.escape;
+
+ /**
+ * Save timer references to avoid Sinon interfering (see GH-237).
+ */
+
+ var Date = commonjsGlobal.Date;
+
+ /**
+ * Expose `HTML`.
+ */
+
+ module.exports = HTML;
+
+ /**
+ * Stats template.
+ */
+
+ var statsTemplate =
+ '<ul id="mocha-stats">' +
+ '<li class="progress"><canvas width="40" height="40"></canvas></li>' +
+ '<li class="passes"><a href="javascript:void(0);">passes:</a> <em>0</em></li>' +
+ '<li class="failures"><a href="javascript:void(0);">failures:</a> <em>0</em></li>' +
+ '<li class="duration">duration: <em>0</em>s</li>' +
+ '</ul>';
+
+ var playIcon = '&#x2023;';
+
+ /**
+ * Constructs a new `HTML` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function HTML(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var stats = this.stats;
+ var stat = fragment(statsTemplate);
+ var items = stat.getElementsByTagName('li');
+ var passes = items[1].getElementsByTagName('em')[0];
+ var passesLink = items[1].getElementsByTagName('a')[0];
+ var failures = items[2].getElementsByTagName('em')[0];
+ var failuresLink = items[2].getElementsByTagName('a')[0];
+ var duration = items[3].getElementsByTagName('em')[0];
+ var canvas = stat.getElementsByTagName('canvas')[0];
+ var report = fragment('<ul id="mocha-report"></ul>');
+ var stack = [report];
+ var progress;
+ var ctx;
+ var root = document.getElementById('mocha');
+
+ if (canvas.getContext) {
+ var ratio = window.devicePixelRatio || 1;
+ canvas.style.width = canvas.width;
+ canvas.style.height = canvas.height;
+ canvas.width *= ratio;
+ canvas.height *= ratio;
+ ctx = canvas.getContext('2d');
+ ctx.scale(ratio, ratio);
+ progress = new progress$1();
+ }
+
+ if (!root) {
+ return error('#mocha div missing, add it to your document');
+ }
+
+ // pass toggle
+ on(passesLink, 'click', function(evt) {
+ evt.preventDefault();
+ unhide();
+ var name = /pass/.test(report.className) ? '' : ' pass';
+ report.className = report.className.replace(/fail|pass/g, '') + name;
+ if (report.className.trim()) {
+ hideSuitesWithout('test pass');
+ }
+ });
+
+ // failure toggle
+ on(failuresLink, 'click', function(evt) {
+ evt.preventDefault();
+ unhide();
+ var name = /fail/.test(report.className) ? '' : ' fail';
+ report.className = report.className.replace(/fail|pass/g, '') + name;
+ if (report.className.trim()) {
+ hideSuitesWithout('test fail');
+ }
+ });
+
+ root.appendChild(stat);
+ root.appendChild(report);
+
+ if (progress) {
+ progress.size(40);
+ }
+
+ runner.on(EVENT_SUITE_BEGIN, function(suite) {
+ if (suite.root) {
+ return;
+ }
+
+ // suite
+ var url = self.suiteURL(suite);
+ var el = fragment(
+ '<li class="suite"><h1><a href="%s">%s</a></h1></li>',
+ url,
+ escape(suite.title)
+ );
+
+ // container
+ stack[0].appendChild(el);
+ stack.unshift(document.createElement('ul'));
+ el.appendChild(stack[0]);
+ });
+
+ runner.on(EVENT_SUITE_END, function(suite) {
+ if (suite.root) {
+ updateStats();
+ return;
+ }
+ stack.shift();
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ var url = self.testURL(test);
+ var markup =
+ '<li class="test pass %e"><h2>%e<span class="duration">%ems</span> ' +
+ '<a href="%s" class="replay">' +
+ playIcon +
+ '</a></h2></li>';
+ var el = fragment(markup, test.speed, test.title, test.duration, url);
+ self.addCodeToggle(el, test.body);
+ appendToStack(el);
+ updateStats();
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test) {
+ var el = fragment(
+ '<li class="test fail"><h2>%e <a href="%e" class="replay">' +
+ playIcon +
+ '</a></h2></li>',
+ test.title,
+ self.testURL(test)
+ );
+ var stackString; // Note: Includes leading newline
+ var message = test.err.toString();
+
+ // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we
+ // check for the result of the stringifying.
+ if (message === '[object Error]') {
+ message = test.err.message;
+ }
+
+ if (test.err.stack) {
+ var indexOfMessage = test.err.stack.indexOf(test.err.message);
+ if (indexOfMessage === -1) {
+ stackString = test.err.stack;
+ } else {
+ stackString = test.err.stack.substr(
+ test.err.message.length + indexOfMessage
+ );
+ }
+ } else if (test.err.sourceURL && test.err.line !== undefined) {
+ // Safari doesn't give you a stack. Let's at least provide a source line.
+ stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')';
+ }
+
+ stackString = stackString || '';
+
+ if (test.err.htmlMessage && stackString) {
+ el.appendChild(
+ fragment(
+ '<div class="html-error">%s\n<pre class="error">%e</pre></div>',
+ test.err.htmlMessage,
+ stackString
+ )
+ );
+ } else if (test.err.htmlMessage) {
+ el.appendChild(
+ fragment('<div class="html-error">%s</div>', test.err.htmlMessage)
+ );
+ } else {
+ el.appendChild(
+ fragment('<pre class="error">%e%e</pre>', message, stackString)
+ );
+ }
+
+ self.addCodeToggle(el, test.body);
+ appendToStack(el);
+ updateStats();
+ });
+
+ runner.on(EVENT_TEST_PENDING, function(test) {
+ var el = fragment(
+ '<li class="test pass pending"><h2>%e</h2></li>',
+ test.title
+ );
+ appendToStack(el);
+ updateStats();
+ });
+
+ function appendToStack(el) {
+ // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack.
+ if (stack[0]) {
+ stack[0].appendChild(el);
+ }
+ }
+
+ function updateStats() {
+ // TODO: add to stats
+ var percent = ((stats.tests / runner.total) * 100) | 0;
+ if (progress) {
+ progress.update(percent).draw(ctx);
+ }
+
+ // update stats
+ var ms = new Date() - stats.start;
+ text(passes, stats.passes);
+ text(failures, stats.failures);
+ text(duration, (ms / 1000).toFixed(2));
+ }
+ }
+
+ /**
+ * Makes a URL, preserving querystring ("search") parameters.
+ *
+ * @param {string} s
+ * @return {string} A new URL.
+ */
+ function makeUrl(s) {
+ var search = window.location.search;
+
+ // Remove previous grep query parameter if present
+ if (search) {
+ search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?');
+ }
+
+ return (
+ window.location.pathname +
+ (search ? search + '&' : '?') +
+ 'grep=' +
+ encodeURIComponent(escapeStringRegexp(s))
+ );
+ }
+
+ /**
+ * Provide suite URL.
+ *
+ * @param {Object} [suite]
+ */
+ HTML.prototype.suiteURL = function(suite) {
+ return makeUrl(suite.fullTitle());
+ };
+
+ /**
+ * Provide test URL.
+ *
+ * @param {Object} [test]
+ */
+ HTML.prototype.testURL = function(test) {
+ return makeUrl(test.fullTitle());
+ };
+
+ /**
+ * Adds code toggle functionality for the provided test's list element.
+ *
+ * @param {HTMLLIElement} el
+ * @param {string} contents
+ */
+ HTML.prototype.addCodeToggle = function(el, contents) {
+ var h2 = el.getElementsByTagName('h2')[0];
+
+ on(h2, 'click', function() {
+ pre.style.display = pre.style.display === 'none' ? 'block' : 'none';
+ });
+
+ var pre = fragment('<pre><code>%e</code></pre>', utils.clean(contents));
+ el.appendChild(pre);
+ pre.style.display = 'none';
+ };
+
+ /**
+ * Display error `msg`.
+ *
+ * @param {string} msg
+ */
+ function error(msg) {
+ document.body.appendChild(fragment('<div id="mocha-error">%s</div>', msg));
+ }
+
+ /**
+ * Return a DOM fragment from `html`.
+ *
+ * @param {string} html
+ */
+ function fragment(html) {
+ var args = arguments;
+ var div = document.createElement('div');
+ var i = 1;
+
+ div.innerHTML = html.replace(/%([se])/g, function(_, type) {
+ switch (type) {
+ case 's':
+ return String(args[i++]);
+ case 'e':
+ return escape(args[i++]);
+ // no default
+ }
+ });
+
+ return div.firstChild;
+ }
+
+ /**
+ * Check for suites that do not have elements
+ * with `classname`, and hide them.
+ *
+ * @param {text} classname
+ */
+ function hideSuitesWithout(classname) {
+ var suites = document.getElementsByClassName('suite');
+ for (var i = 0; i < suites.length; i++) {
+ var els = suites[i].getElementsByClassName(classname);
+ if (!els.length) {
+ suites[i].className += ' hidden';
+ }
+ }
+ }
+
+ /**
+ * Unhide .hidden suites.
+ */
+ function unhide() {
+ var els = document.getElementsByClassName('suite hidden');
+ while (els.length > 0) {
+ els[0].className = els[0].className.replace('suite hidden', 'suite');
+ }
+ }
+
+ /**
+ * Set an element's text contents.
+ *
+ * @param {HTMLElement} el
+ * @param {string} contents
+ */
+ function text(el, contents) {
+ if (el.textContent) {
+ el.textContent = contents;
+ } else {
+ el.innerText = contents;
+ }
+ }
+
+ /**
+ * Listen on `event` with callback `fn`.
+ */
+ function on(el, event, fn) {
+ if (el.addEventListener) {
+ el.addEventListener(event, fn, false);
+ } else {
+ el.attachEvent('on' + event, fn);
+ }
+ }
+
+ HTML.browserOnly = true;
+ });
+
+ var list = createCommonjsModule(function (module, exports) {
+ /**
+ * @module List
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var inherits = utils.inherits;
+ var constants = runner.constants;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_TEST_BEGIN = constants.EVENT_TEST_BEGIN;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var color = base.color;
+ var cursor = base.cursor;
+
+ /**
+ * Expose `List`.
+ */
+
+ module.exports = List;
+
+ /**
+ * Constructs a new `List` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function List(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var n = 0;
+
+ runner.on(EVENT_RUN_BEGIN, function() {
+ base.consoleLog();
+ });
+
+ runner.on(EVENT_TEST_BEGIN, function(test) {
+ process$1.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));
+ });
+
+ runner.on(EVENT_TEST_PENDING, function(test) {
+ var fmt = color('checkmark', ' -') + color('pending', ' %s');
+ base.consoleLog(fmt, test.fullTitle());
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ var fmt =
+ color('checkmark', ' ' + base.symbols.ok) +
+ color('pass', ' %s: ') +
+ color(test.speed, '%dms');
+ cursor.CR();
+ base.consoleLog(fmt, test.fullTitle(), test.duration);
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test) {
+ cursor.CR();
+ base.consoleLog(color('fail', ' %d) %s'), ++n, test.fullTitle());
+ });
+
+ runner.once(EVENT_RUN_END, self.epilogue.bind(self));
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(List, base);
+
+ List.description = 'like "spec" reporter but flat';
+ });
+
+ var min = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Min
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var inherits = utils.inherits;
+ var constants = runner.constants;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+
+ /**
+ * Expose `Min`.
+ */
+
+ module.exports = Min;
+
+ /**
+ * Constructs a new `Min` reporter instance.
+ *
+ * @description
+ * This minimal test reporter is best used with '--watch'.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Min(runner, options) {
+ base.call(this, runner, options);
+
+ runner.on(EVENT_RUN_BEGIN, function() {
+ // clear screen
+ process$1.stdout.write('\u001b[2J');
+ // set cursor position
+ process$1.stdout.write('\u001b[1;3H');
+ });
+
+ runner.once(EVENT_RUN_END, this.epilogue.bind(this));
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(Min, base);
+
+ Min.description = 'essentially just a summary';
+ });
+
+ var spec = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Spec
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var constants = runner.constants;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;
+ var EVENT_SUITE_END = constants.EVENT_SUITE_END;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var inherits = utils.inherits;
+ var color = base.color;
+
+ /**
+ * Expose `Spec`.
+ */
+
+ module.exports = Spec;
+
+ /**
+ * Constructs a new `Spec` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Spec(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var indents = 0;
+ var n = 0;
+
+ function indent() {
+ return Array(indents).join(' ');
+ }
+
+ runner.on(EVENT_RUN_BEGIN, function() {
+ base.consoleLog();
+ });
+
+ runner.on(EVENT_SUITE_BEGIN, function(suite) {
+ ++indents;
+ base.consoleLog(color('suite', '%s%s'), indent(), suite.title);
+ });
+
+ runner.on(EVENT_SUITE_END, function() {
+ --indents;
+ if (indents === 1) {
+ base.consoleLog();
+ }
+ });
+
+ runner.on(EVENT_TEST_PENDING, function(test) {
+ var fmt = indent() + color('pending', ' - %s');
+ base.consoleLog(fmt, test.title);
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ var fmt;
+ if (test.speed === 'fast') {
+ fmt =
+ indent() +
+ color('checkmark', ' ' + base.symbols.ok) +
+ color('pass', ' %s');
+ base.consoleLog(fmt, test.title);
+ } else {
+ fmt =
+ indent() +
+ color('checkmark', ' ' + base.symbols.ok) +
+ color('pass', ' %s') +
+ color(test.speed, ' (%dms)');
+ base.consoleLog(fmt, test.title, test.duration);
+ }
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test) {
+ base.consoleLog(indent() + color('fail', ' %d) %s'), ++n, test.title);
+ });
+
+ runner.once(EVENT_RUN_END, self.epilogue.bind(self));
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(Spec, base);
+
+ Spec.description = 'hierarchical & verbose [default]';
+ });
+
+ var nyan = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Nyan
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var constants = runner.constants;
+ var inherits = utils.inherits;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+
+ /**
+ * Expose `Dot`.
+ */
+
+ module.exports = NyanCat;
+
+ /**
+ * Constructs a new `Nyan` reporter instance.
+ *
+ * @public
+ * @class Nyan
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function NyanCat(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var width = (base.window.width * 0.75) | 0;
+ var nyanCatWidth = (this.nyanCatWidth = 11);
+
+ this.colorIndex = 0;
+ this.numberOfLines = 4;
+ this.rainbowColors = self.generateColors();
+ this.scoreboardWidth = 5;
+ this.tick = 0;
+ this.trajectories = [[], [], [], []];
+ this.trajectoryWidthMax = width - nyanCatWidth;
+
+ runner.on(EVENT_RUN_BEGIN, function() {
+ base.cursor.hide();
+ self.draw();
+ });
+
+ runner.on(EVENT_TEST_PENDING, function() {
+ self.draw();
+ });
+
+ runner.on(EVENT_TEST_PASS, function() {
+ self.draw();
+ });
+
+ runner.on(EVENT_TEST_FAIL, function() {
+ self.draw();
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ base.cursor.show();
+ for (var i = 0; i < self.numberOfLines; i++) {
+ write('\n');
+ }
+ self.epilogue();
+ });
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(NyanCat, base);
+
+ /**
+ * Draw the nyan cat
+ *
+ * @private
+ */
+
+ NyanCat.prototype.draw = function() {
+ this.appendRainbow();
+ this.drawScoreboard();
+ this.drawRainbow();
+ this.drawNyanCat();
+ this.tick = !this.tick;
+ };
+
+ /**
+ * Draw the "scoreboard" showing the number
+ * of passes, failures and pending tests.
+ *
+ * @private
+ */
+
+ NyanCat.prototype.drawScoreboard = function() {
+ var stats = this.stats;
+
+ function draw(type, n) {
+ write(' ');
+ write(base.color(type, n));
+ write('\n');
+ }
+
+ draw('green', stats.passes);
+ draw('fail', stats.failures);
+ draw('pending', stats.pending);
+ write('\n');
+
+ this.cursorUp(this.numberOfLines);
+ };
+
+ /**
+ * Append the rainbow.
+ *
+ * @private
+ */
+
+ NyanCat.prototype.appendRainbow = function() {
+ var segment = this.tick ? '_' : '-';
+ var rainbowified = this.rainbowify(segment);
+
+ for (var index = 0; index < this.numberOfLines; index++) {
+ var trajectory = this.trajectories[index];
+ if (trajectory.length >= this.trajectoryWidthMax) {
+ trajectory.shift();
+ }
+ trajectory.push(rainbowified);
+ }
+ };
+
+ /**
+ * Draw the rainbow.
+ *
+ * @private
+ */
+
+ NyanCat.prototype.drawRainbow = function() {
+ var self = this;
+
+ this.trajectories.forEach(function(line) {
+ write('\u001b[' + self.scoreboardWidth + 'C');
+ write(line.join(''));
+ write('\n');
+ });
+
+ this.cursorUp(this.numberOfLines);
+ };
+
+ /**
+ * Draw the nyan cat
+ *
+ * @private
+ */
+ NyanCat.prototype.drawNyanCat = function() {
+ var self = this;
+ var startWidth = this.scoreboardWidth + this.trajectories[0].length;
+ var dist = '\u001b[' + startWidth + 'C';
+ var padding = '';
+
+ write(dist);
+ write('_,------,');
+ write('\n');
+
+ write(dist);
+ padding = self.tick ? ' ' : ' ';
+ write('_|' + padding + '/\\_/\\ ');
+ write('\n');
+
+ write(dist);
+ padding = self.tick ? '_' : '__';
+ var tail = self.tick ? '~' : '^';
+ write(tail + '|' + padding + this.face() + ' ');
+ write('\n');
+
+ write(dist);
+ padding = self.tick ? ' ' : ' ';
+ write(padding + '"" "" ');
+ write('\n');
+
+ this.cursorUp(this.numberOfLines);
+ };
+
+ /**
+ * Draw nyan cat face.
+ *
+ * @private
+ * @return {string}
+ */
+
+ NyanCat.prototype.face = function() {
+ var stats = this.stats;
+ if (stats.failures) {
+ return '( x .x)';
+ } else if (stats.pending) {
+ return '( o .o)';
+ } else if (stats.passes) {
+ return '( ^ .^)';
+ }
+ return '( - .-)';
+ };
+
+ /**
+ * Move cursor up `n`.
+ *
+ * @private
+ * @param {number} n
+ */
+
+ NyanCat.prototype.cursorUp = function(n) {
+ write('\u001b[' + n + 'A');
+ };
+
+ /**
+ * Move cursor down `n`.
+ *
+ * @private
+ * @param {number} n
+ */
+
+ NyanCat.prototype.cursorDown = function(n) {
+ write('\u001b[' + n + 'B');
+ };
+
+ /**
+ * Generate rainbow colors.
+ *
+ * @private
+ * @return {Array}
+ */
+ NyanCat.prototype.generateColors = function() {
+ var colors = [];
+
+ for (var i = 0; i < 6 * 7; i++) {
+ var pi3 = Math.floor(Math.PI / 3);
+ var n = i * (1.0 / 6);
+ var r = Math.floor(3 * Math.sin(n) + 3);
+ var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3);
+ var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3);
+ colors.push(36 * r + 6 * g + b + 16);
+ }
+
+ return colors;
+ };
+
+ /**
+ * Apply rainbow to the given `str`.
+ *
+ * @private
+ * @param {string} str
+ * @return {string}
+ */
+ NyanCat.prototype.rainbowify = function(str) {
+ if (!base.useColors) {
+ return str;
+ }
+ var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];
+ this.colorIndex += 1;
+ return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m';
+ };
+
+ /**
+ * Stdout helper.
+ *
+ * @param {string} string A message to write to stdout.
+ */
+ function write(string) {
+ process$1.stdout.write(string);
+ }
+
+ NyanCat.description = '"nyan cat"';
+ });
+
+ var xunit = createCommonjsModule(function (module, exports) {
+ /**
+ * @module XUnit
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+
+
+
+
+ var createUnsupportedError = errors.createUnsupportedError;
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var STATE_FAILED = runnable.constants.STATE_FAILED;
+ var inherits = utils.inherits;
+ var escape = utils.escape;
+
+ /**
+ * Save timer references to avoid Sinon interfering (see GH-237).
+ */
+ var Date = commonjsGlobal.Date;
+
+ /**
+ * Expose `XUnit`.
+ */
+
+ module.exports = XUnit;
+
+ /**
+ * Constructs a new `XUnit` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function XUnit(runner, options) {
+ base.call(this, runner, options);
+
+ var stats = this.stats;
+ var tests = [];
+ var self = this;
+
+ // the name of the test suite, as it will appear in the resulting XML file
+ var suiteName;
+
+ // the default name of the test suite if none is provided
+ var DEFAULT_SUITE_NAME = 'Mocha Tests';
+
+ if (options && options.reporterOptions) {
+ if (options.reporterOptions.output) {
+ {
+ throw createUnsupportedError('file output not supported in browser');
+ }
+ }
+
+ // get the suite name from the reporter options (if provided)
+ suiteName = options.reporterOptions.suiteName;
+ }
+
+ // fall back to the default suite name
+ suiteName = suiteName || DEFAULT_SUITE_NAME;
+
+ runner.on(EVENT_TEST_PENDING, function(test) {
+ tests.push(test);
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ tests.push(test);
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test) {
+ tests.push(test);
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ self.write(
+ tag(
+ 'testsuite',
+ {
+ name: suiteName,
+ tests: stats.tests,
+ failures: 0,
+ errors: stats.failures,
+ skipped: stats.tests - stats.failures - stats.passes,
+ timestamp: new Date().toUTCString(),
+ time: stats.duration / 1000 || 0
+ },
+ false
+ )
+ );
+
+ tests.forEach(function(t) {
+ self.test(t);
+ });
+
+ self.write('</testsuite>');
+ });
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(XUnit, base);
+
+ /**
+ * Override done to close the stream (if it's a file).
+ *
+ * @param failures
+ * @param {Function} fn
+ */
+ XUnit.prototype.done = function(failures, fn) {
+ if (this.fileStream) {
+ this.fileStream.end(function() {
+ fn(failures);
+ });
+ } else {
+ fn(failures);
+ }
+ };
+
+ /**
+ * Write out the given line.
+ *
+ * @param {string} line
+ */
+ XUnit.prototype.write = function(line) {
+ if (this.fileStream) {
+ this.fileStream.write(line + '\n');
+ } else if (typeof process$1 === 'object' && process$1.stdout) {
+ process$1.stdout.write(line + '\n');
+ } else {
+ base.consoleLog(line);
+ }
+ };
+
+ /**
+ * Output tag for the given `test.`
+ *
+ * @param {Test} test
+ */
+ XUnit.prototype.test = function(test) {
+ base.useColors = false;
+
+ var attrs = {
+ classname: test.parent.fullTitle(),
+ name: test.title,
+ time: test.duration / 1000 || 0
+ };
+
+ if (test.state === STATE_FAILED) {
+ var err = test.err;
+ var diff =
+ !base.hideDiff && base.showDiff(err)
+ ? '\n' + base.generateDiff(err.actual, err.expected)
+ : '';
+ this.write(
+ tag(
+ 'testcase',
+ attrs,
+ false,
+ tag(
+ 'failure',
+ {},
+ false,
+ escape(err.message) + escape(diff) + '\n' + escape(err.stack)
+ )
+ )
+ );
+ } else if (test.isPending()) {
+ this.write(tag('testcase', attrs, false, tag('skipped', {}, true)));
+ } else {
+ this.write(tag('testcase', attrs, true));
+ }
+ };
+
+ /**
+ * HTML tag helper.
+ *
+ * @param name
+ * @param attrs
+ * @param close
+ * @param content
+ * @return {string}
+ */
+ function tag(name, attrs, close, content) {
+ var end = close ? '/>' : '>';
+ var pairs = [];
+ var tag;
+
+ for (var key in attrs) {
+ if (Object.prototype.hasOwnProperty.call(attrs, key)) {
+ pairs.push(key + '="' + escape(attrs[key]) + '"');
+ }
+ }
+
+ tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end;
+ if (content) {
+ tag += content + '</' + name + end;
+ }
+ return tag;
+ }
+
+ XUnit.description = 'XUnit-compatible XML output';
+ });
+
+ var markdown = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Markdown
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+
+ var constants = runner.constants;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;
+ var EVENT_SUITE_END = constants.EVENT_SUITE_END;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+
+ /**
+ * Constants
+ */
+
+ var SUITE_PREFIX = '$';
+
+ /**
+ * Expose `Markdown`.
+ */
+
+ module.exports = Markdown;
+
+ /**
+ * Constructs a new `Markdown` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Markdown(runner, options) {
+ base.call(this, runner, options);
+
+ var level = 0;
+ var buf = '';
+
+ function title(str) {
+ return Array(level).join('#') + ' ' + str;
+ }
+
+ function mapTOC(suite, obj) {
+ var ret = obj;
+ var key = SUITE_PREFIX + suite.title;
+
+ obj = obj[key] = obj[key] || {suite: suite};
+ suite.suites.forEach(function(suite) {
+ mapTOC(suite, obj);
+ });
+
+ return ret;
+ }
+
+ function stringifyTOC(obj, level) {
+ ++level;
+ var buf = '';
+ var link;
+ for (var key in obj) {
+ if (key === 'suite') {
+ continue;
+ }
+ if (key !== SUITE_PREFIX) {
+ link = ' - [' + key.substring(1) + ']';
+ link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n';
+ buf += Array(level).join(' ') + link;
+ }
+ buf += stringifyTOC(obj[key], level);
+ }
+ return buf;
+ }
+
+ function generateTOC(suite) {
+ var obj = mapTOC(suite, {});
+ return stringifyTOC(obj, 0);
+ }
+
+ generateTOC(runner.suite);
+
+ runner.on(EVENT_SUITE_BEGIN, function(suite) {
+ ++level;
+ var slug = utils.slug(suite.fullTitle());
+ buf += '<a name="' + slug + '"></a>' + '\n';
+ buf += title(suite.title) + '\n';
+ });
+
+ runner.on(EVENT_SUITE_END, function() {
+ --level;
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ var code = utils.clean(test.body);
+ buf += test.title + '.\n';
+ buf += '\n```js\n';
+ buf += code + '\n';
+ buf += '```\n\n';
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ process$1.stdout.write('# TOC\n');
+ process$1.stdout.write(generateTOC(runner.suite));
+ process$1.stdout.write(buf);
+ });
+ }
+
+ Markdown.description = 'GitHub Flavored Markdown';
+ });
+
+ var progress = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Progress
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var constants = runner.constants;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_TEST_END = constants.EVENT_TEST_END;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var inherits = utils.inherits;
+ var color = base.color;
+ var cursor = base.cursor;
+
+ /**
+ * Expose `Progress`.
+ */
+
+ module.exports = Progress;
+
+ /**
+ * General progress bar color.
+ */
+
+ base.colors.progress = 90;
+
+ /**
+ * Constructs a new `Progress` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Progress(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var width = (base.window.width * 0.5) | 0;
+ var total = runner.total;
+ var complete = 0;
+ var lastN = -1;
+
+ // default chars
+ options = options || {};
+ var reporterOptions = options.reporterOptions || {};
+
+ options.open = reporterOptions.open || '[';
+ options.complete = reporterOptions.complete || '▬';
+ options.incomplete = reporterOptions.incomplete || base.symbols.dot;
+ options.close = reporterOptions.close || ']';
+ options.verbose = reporterOptions.verbose || false;
+
+ // tests started
+ runner.on(EVENT_RUN_BEGIN, function() {
+ process$1.stdout.write('\n');
+ cursor.hide();
+ });
+
+ // tests complete
+ runner.on(EVENT_TEST_END, function() {
+ complete++;
+
+ var percent = complete / total;
+ var n = (width * percent) | 0;
+ var i = width - n;
+
+ if (n === lastN && !options.verbose) {
+ // Don't re-render the line if it hasn't changed
+ return;
+ }
+ lastN = n;
+
+ cursor.CR();
+ process$1.stdout.write('\u001b[J');
+ process$1.stdout.write(color('progress', ' ' + options.open));
+ process$1.stdout.write(Array(n).join(options.complete));
+ process$1.stdout.write(Array(i).join(options.incomplete));
+ process$1.stdout.write(color('progress', options.close));
+ if (options.verbose) {
+ process$1.stdout.write(color('progress', ' ' + complete + ' of ' + total));
+ }
+ });
+
+ // tests are complete, output some stats
+ // and the failures if any
+ runner.once(EVENT_RUN_END, function() {
+ cursor.show();
+ process$1.stdout.write('\n');
+ self.epilogue();
+ });
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(Progress, base);
+
+ Progress.description = 'a progress bar';
+ });
+
+ var landing = createCommonjsModule(function (module, exports) {
+ /**
+ * @module Landing
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var inherits = utils.inherits;
+ var constants = runner.constants;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_TEST_END = constants.EVENT_TEST_END;
+ var STATE_FAILED = runnable.constants.STATE_FAILED;
+
+ var cursor = base.cursor;
+ var color = base.color;
+
+ /**
+ * Expose `Landing`.
+ */
+
+ module.exports = Landing;
+
+ /**
+ * Airplane color.
+ */
+
+ base.colors.plane = 0;
+
+ /**
+ * Airplane crash color.
+ */
+
+ base.colors['plane crash'] = 31;
+
+ /**
+ * Runway color.
+ */
+
+ base.colors.runway = 90;
+
+ /**
+ * Constructs a new `Landing` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function Landing(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var width = (base.window.width * 0.75) | 0;
+ var stream = process$1.stdout;
+
+ var plane = color('plane', '✈');
+ var crashed = -1;
+ var n = 0;
+ var total = 0;
+
+ function runway() {
+ var buf = Array(width).join('-');
+ return ' ' + color('runway', buf);
+ }
+
+ runner.on(EVENT_RUN_BEGIN, function() {
+ stream.write('\n\n\n ');
+ cursor.hide();
+ });
+
+ runner.on(EVENT_TEST_END, function(test) {
+ // check if the plane crashed
+ var col = crashed === -1 ? ((width * ++n) / ++total) | 0 : crashed;
+ // show the crash
+ if (test.state === STATE_FAILED) {
+ plane = color('plane crash', '✈');
+ crashed = col;
+ }
+
+ // render landing strip
+ stream.write('\u001b[' + (width + 1) + 'D\u001b[2A');
+ stream.write(runway());
+ stream.write('\n ');
+ stream.write(color('runway', Array(col).join('⋅')));
+ stream.write(plane);
+ stream.write(color('runway', Array(width - col).join('⋅') + '\n'));
+ stream.write(runway());
+ stream.write('\u001b[0m');
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ cursor.show();
+ process$1.stdout.write('\n');
+ self.epilogue();
+ });
+
+ // if cursor is hidden when we ctrl-C, then it will remain hidden unless...
+ process$1.once('SIGINT', function() {
+ cursor.show();
+ nextTick$1(function() {
+ process$1.kill(process$1.pid, 'SIGINT');
+ });
+ });
+ }
+
+ /**
+ * Inherit from `Base.prototype`.
+ */
+ inherits(Landing, base);
+
+ Landing.description = 'Unicode landing strip';
+ });
+
+ var jsonStream = createCommonjsModule(function (module, exports) {
+ /**
+ * @module JSONStream
+ */
+ /**
+ * Module dependencies.
+ */
+
+
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+
+ /**
+ * Expose `JSONStream`.
+ */
+
+ module.exports = JSONStream;
+
+ /**
+ * Constructs a new `JSONStream` reporter instance.
+ *
+ * @public
+ * @class
+ * @memberof Mocha.reporters
+ * @extends Mocha.reporters.Base
+ * @param {Runner} runner - Instance triggers reporter actions.
+ * @param {Object} [options] - runner options
+ */
+ function JSONStream(runner, options) {
+ base.call(this, runner, options);
+
+ var self = this;
+ var total = runner.total;
+
+ runner.once(EVENT_RUN_BEGIN, function() {
+ writeEvent(['start', {total: total}]);
+ });
+
+ runner.on(EVENT_TEST_PASS, function(test) {
+ writeEvent(['pass', clean(test)]);
+ });
+
+ runner.on(EVENT_TEST_FAIL, function(test, err) {
+ test = clean(test);
+ test.err = err.message;
+ test.stack = err.stack || null;
+ writeEvent(['fail', test]);
+ });
+
+ runner.once(EVENT_RUN_END, function() {
+ writeEvent(['end', self.stats]);
+ });
+ }
+
+ /**
+ * Mocha event to be written to the output stream.
+ * @typedef {Array} JSONStream~MochaEvent
+ */
+
+ /**
+ * Writes Mocha event to reporter output stream.
+ *
+ * @private
+ * @param {JSONStream~MochaEvent} event - Mocha event to be output.
+ */
+ function writeEvent(event) {
+ process$1.stdout.write(JSON.stringify(event) + '\n');
+ }
+
+ /**
+ * Returns an object literal representation of `test`
+ * free of cyclic properties, etc.
+ *
+ * @private
+ * @param {Test} test - Instance used as data source.
+ * @return {Object} object containing pared-down test instance data
+ */
+ function clean(test) {
+ return {
+ title: test.title,
+ fullTitle: test.fullTitle(),
+ file: test.file,
+ duration: test.duration,
+ currentRetry: test.currentRetry(),
+ speed: test.speed
+ };
+ }
+
+ JSONStream.description = 'newline delimited JSON events';
+ });
+
+ var reporters = createCommonjsModule(function (module, exports) {
+
+ // Alias exports to a their normalized format Mocha#reporter to prevent a need
+ // for dynamic (try/catch) requires, which Browserify doesn't handle.
+ exports.Base = exports.base = base;
+ exports.Dot = exports.dot = dot;
+ exports.Doc = exports.doc = doc;
+ exports.TAP = exports.tap = tap;
+ exports.JSON = exports.json = json;
+ exports.HTML = exports.html = html;
+ exports.List = exports.list = list;
+ exports.Min = exports.min = min;
+ exports.Spec = exports.spec = spec;
+ exports.Nyan = exports.nyan = nyan;
+ exports.XUnit = exports.xunit = xunit;
+ exports.Markdown = exports.markdown = markdown;
+ exports.Progress = exports.progress = progress;
+ exports.Landing = exports.landing = landing;
+ exports.JSONStream = exports['json-stream'] = jsonStream;
+ });
+
+ var name = "mocha";
+ var version = "9.1.1";
+ var homepage = "https://mochajs.org/";
+ var notifyLogo = "https://ibin.co/4QuRuGjXvl36.png";
+ var _package = {
+ name: name,
+ version: version,
+ homepage: homepage,
+ notifyLogo: notifyLogo
+ };
+
+ var _package$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ name: name,
+ version: version,
+ homepage: homepage,
+ notifyLogo: notifyLogo,
+ 'default': _package
+ });
+
+ var require$$10 = getCjsExportFromNamespace(_package$1);
+
+ /**
+ * Web Notifications module.
+ * @module Growl
+ */
+
+ /**
+ * Save timer references to avoid Sinon interfering (see GH-237).
+ */
+ var Date$3 = commonjsGlobal.Date;
+ var setTimeout$2 = commonjsGlobal.setTimeout;
+ var EVENT_RUN_END$1 = runner.constants.EVENT_RUN_END;
+ var isBrowser = utils.isBrowser;
+
+ /**
+ * Checks if browser notification support exists.
+ *
+ * @public
+ * @see {@link https://caniuse.com/#feat=notifications|Browser support (notifications)}
+ * @see {@link https://caniuse.com/#feat=promises|Browser support (promises)}
+ * @see {@link Mocha#growl}
+ * @see {@link Mocha#isGrowlCapable}
+ * @return {boolean} whether browser notification support exists
+ */
+ var isCapable = function() {
+ var hasNotificationSupport = 'Notification' in window;
+ var hasPromiseSupport = typeof Promise === 'function';
+ return isBrowser() && hasNotificationSupport && hasPromiseSupport;
+ };
+
+ /**
+ * Implements browser notifications as a pseudo-reporter.
+ *
+ * @public
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/notification|Notification API}
+ * @see {@link https://developers.google.com/web/fundamentals/push-notifications/display-a-notification|Displaying a Notification}
+ * @see {@link Growl#isPermitted}
+ * @see {@link Mocha#_growl}
+ * @param {Runner} runner - Runner instance.
+ */
+ var notify = function(runner) {
+ var promise = isPermitted();
+
+ /**
+ * Attempt notification.
+ */
+ var sendNotification = function() {
+ // If user hasn't responded yet... "No notification for you!" (Seinfeld)
+ Promise.race([promise, Promise.resolve(undefined)])
+ .then(canNotify)
+ .then(function() {
+ display(runner);
+ })
+ .catch(notPermitted);
+ };
+
+ runner.once(EVENT_RUN_END$1, sendNotification);
+ };
+
+ /**
+ * Checks if browser notification is permitted by user.
+ *
+ * @private
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Notification/permission|Notification.permission}
+ * @see {@link Mocha#growl}
+ * @see {@link Mocha#isGrowlPermitted}
+ * @returns {Promise<boolean>} promise determining if browser notification
+ * permissible when fulfilled.
+ */
+ function isPermitted() {
+ var permitted = {
+ granted: function allow() {
+ return Promise.resolve(true);
+ },
+ denied: function deny() {
+ return Promise.resolve(false);
+ },
+ default: function ask() {
+ return Notification.requestPermission().then(function(permission) {
+ return permission === 'granted';
+ });
+ }
+ };
+
+ return permitted[Notification.permission]();
+ }
+
+ /**
+ * @summary
+ * Determines if notification should proceed.
+ *
+ * @description
+ * Notification shall <strong>not</strong> proceed unless `value` is true.
+ *
+ * `value` will equal one of:
+ * <ul>
+ * <li><code>true</code> (from `isPermitted`)</li>
+ * <li><code>false</code> (from `isPermitted`)</li>
+ * <li><code>undefined</code> (from `Promise.race`)</li>
+ * </ul>
+ *
+ * @private
+ * @param {boolean|undefined} value - Determines if notification permissible.
+ * @returns {Promise<undefined>} Notification can proceed
+ */
+ function canNotify(value) {
+ if (!value) {
+ var why = value === false ? 'blocked' : 'unacknowledged';
+ var reason = 'not permitted by user (' + why + ')';
+ return Promise.reject(new Error(reason));
+ }
+ return Promise.resolve();
+ }
+
+ /**
+ * Displays the notification.
+ *
+ * @private
+ * @param {Runner} runner - Runner instance.
+ */
+ function display(runner) {
+ var stats = runner.stats;
+ var symbol = {
+ cross: '\u274C',
+ tick: '\u2705'
+ };
+ var logo = require$$10.notifyLogo;
+ var _message;
+ var message;
+ var title;
+
+ if (stats.failures) {
+ _message = stats.failures + ' of ' + stats.tests + ' tests failed';
+ message = symbol.cross + ' ' + _message;
+ title = 'Failed';
+ } else {
+ _message = stats.passes + ' tests passed in ' + stats.duration + 'ms';
+ message = symbol.tick + ' ' + _message;
+ title = 'Passed';
+ }
+
+ // Send notification
+ var options = {
+ badge: logo,
+ body: message,
+ dir: 'ltr',
+ icon: logo,
+ lang: 'en-US',
+ name: 'mocha',
+ requireInteraction: false,
+ timestamp: Date$3.now()
+ };
+ var notification = new Notification(title, options);
+
+ // Autoclose after brief delay (makes various browsers act same)
+ var FORCE_DURATION = 4000;
+ setTimeout$2(notification.close.bind(notification), FORCE_DURATION);
+ }
+
+ /**
+ * As notifications are tangential to our purpose, just log the error.
+ *
+ * @private
+ * @param {Error} err - Why notification didn't happen.
+ */
+ function notPermitted(err) {
+ console.error('notification error:', err.message);
+ }
+
+ var growl = {
+ isCapable: isCapable,
+ notify: notify
+ };
+
+ var diff = true;
+ var extension = [
+ "js",
+ "cjs",
+ "mjs"
+ ];
+ var reporter = "spec";
+ var slow = 75;
+ var timeout = 2000;
+ var ui = "bdd";
+ var mocharc$1 = {
+ diff: diff,
+ extension: extension,
+ "package": "./package.json",
+ reporter: reporter,
+ slow: slow,
+ timeout: timeout,
+ ui: ui,
+ "watch-ignore": [
+ "node_modules",
+ ".git"
+ ]
+ };
+
+ var mocharc$2 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ diff: diff,
+ extension: extension,
+ reporter: reporter,
+ slow: slow,
+ timeout: timeout,
+ ui: ui,
+ 'default': mocharc$1
+ });
+
+ /**
+ * Provides a factory function for a {@link StatsCollector} object.
+ * @module
+ */
+
+ var constants = runner.constants;
+ var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
+ var EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;
+ var EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
+ var EVENT_RUN_END = constants.EVENT_RUN_END;
+ var EVENT_TEST_END = constants.EVENT_TEST_END;
+
+ /**
+ * Test statistics collector.
+ *
+ * @public
+ * @typedef {Object} StatsCollector
+ * @property {number} suites - integer count of suites run.
+ * @property {number} tests - integer count of tests run.
+ * @property {number} passes - integer count of passing tests.
+ * @property {number} pending - integer count of pending tests.
+ * @property {number} failures - integer count of failed tests.
+ * @property {Date} start - time when testing began.
+ * @property {Date} end - time when testing concluded.
+ * @property {number} duration - number of msecs that testing took.
+ */
+
+ var Date$2 = commonjsGlobal.Date;
+
+ /**
+ * Provides stats such as test duration, number of tests passed / failed etc., by listening for events emitted by `runner`.
+ *
+ * @private
+ * @param {Runner} runner - Runner instance
+ * @throws {TypeError} If falsy `runner`
+ */
+ function createStatsCollector(runner) {
+ /**
+ * @type StatsCollector
+ */
+ var stats = {
+ suites: 0,
+ tests: 0,
+ passes: 0,
+ pending: 0,
+ failures: 0
+ };
+
+ if (!runner) {
+ throw new TypeError('Missing runner argument');
+ }
+
+ runner.stats = stats;
+
+ runner.once(EVENT_RUN_BEGIN, function() {
+ stats.start = new Date$2();
+ });
+ runner.on(EVENT_SUITE_BEGIN, function(suite) {
+ suite.root || stats.suites++;
+ });
+ runner.on(EVENT_TEST_PASS, function() {
+ stats.passes++;
+ });
+ runner.on(EVENT_TEST_FAIL, function() {
+ stats.failures++;
+ });
+ runner.on(EVENT_TEST_PENDING, function() {
+ stats.pending++;
+ });
+ runner.on(EVENT_TEST_END, function() {
+ stats.tests++;
+ });
+ runner.once(EVENT_RUN_END, function() {
+ stats.end = new Date$2();
+ stats.duration = stats.end - stats.start;
+ });
+ }
+
+ var statsCollector = createStatsCollector;
+
+ var createInvalidArgumentTypeError = errors.createInvalidArgumentTypeError;
+ var isString = utils.isString;
+
+ const {MOCHA_ID_PROP_NAME} = utils.constants;
+
+ var test = Test;
+
+ /**
+ * Initialize a new `Test` with the given `title` and callback `fn`.
+ *
+ * @public
+ * @class
+ * @extends Runnable
+ * @param {String} title - Test title (required)
+ * @param {Function} [fn] - Test callback. If omitted, the Test is considered "pending"
+ */
+ function Test(title, fn) {
+ if (!isString(title)) {
+ throw createInvalidArgumentTypeError(
+ 'Test argument "title" should be a string. Received type "' +
+ typeof title +
+ '"',
+ 'title',
+ 'string'
+ );
+ }
+ this.type = 'test';
+ runnable.call(this, title, fn);
+ this.reset();
+ }
+
+ /**
+ * Inherit from `Runnable.prototype`.
+ */
+ utils.inherits(Test, runnable);
+
+ /**
+ * Resets the state initially or for a next run.
+ */
+ Test.prototype.reset = function() {
+ runnable.prototype.reset.call(this);
+ this.pending = !this.fn;
+ delete this.state;
+ };
+
+ /**
+ * Set or get retried test
+ *
+ * @private
+ */
+ Test.prototype.retriedTest = function(n) {
+ if (!arguments.length) {
+ return this._retriedTest;
+ }
+ this._retriedTest = n;
+ };
+
+ /**
+ * Add test to the list of tests marked `only`.
+ *
+ * @private
+ */
+ Test.prototype.markOnly = function() {
+ this.parent.appendOnlyTest(this);
+ };
+
+ Test.prototype.clone = function() {
+ var test = new Test(this.title, this.fn);
+ test.timeout(this.timeout());
+ test.slow(this.slow());
+ test.retries(this.retries());
+ test.currentRetry(this.currentRetry());
+ test.retriedTest(this.retriedTest() || this);
+ test.globals(this.globals());
+ test.parent = this.parent;
+ test.file = this.file;
+ test.ctx = this.ctx;
+ return test;
+ };
+
+ /**
+ * Returns an minimal object suitable for transmission over IPC.
+ * Functions are represented by keys beginning with `$$`.
+ * @private
+ * @returns {Object}
+ */
+ Test.prototype.serialize = function serialize() {
+ return {
+ $$currentRetry: this._currentRetry,
+ $$fullTitle: this.fullTitle(),
+ $$isPending: Boolean(this.pending),
+ $$retriedTest: this._retriedTest || null,
+ $$slow: this._slow,
+ $$titlePath: this.titlePath(),
+ body: this.body,
+ duration: this.duration,
+ err: this.err,
+ parent: {
+ $$fullTitle: this.parent.fullTitle(),
+ [MOCHA_ID_PROP_NAME]: this.parent.id
+ },
+ speed: this.speed,
+ state: this.state,
+ title: this.title,
+ type: this.type,
+ file: this.file,
+ [MOCHA_ID_PROP_NAME]: this.id
+ };
+ };
+
+ /**
+ @module interfaces/common
+ */
+
+
+
+ var createMissingArgumentError = errors.createMissingArgumentError;
+ var createUnsupportedError = errors.createUnsupportedError;
+ var createForbiddenExclusivityError = errors.createForbiddenExclusivityError;
+
+ /**
+ * Functions common to more than one interface.
+ *
+ * @private
+ * @param {Suite[]} suites
+ * @param {Context} context
+ * @param {Mocha} mocha
+ * @return {Object} An object containing common functions.
+ */
+ var common = function(suites, context, mocha) {
+ /**
+ * Check if the suite should be tested.
+ *
+ * @private
+ * @param {Suite} suite - suite to check
+ * @returns {boolean}
+ */
+ function shouldBeTested(suite) {
+ return (
+ !mocha.options.grep ||
+ (mocha.options.grep &&
+ mocha.options.grep.test(suite.fullTitle()) &&
+ !mocha.options.invert)
+ );
+ }
+
+ return {
+ /**
+ * This is only present if flag --delay is passed into Mocha. It triggers
+ * root suite execution.
+ *
+ * @param {Suite} suite The root suite.
+ * @return {Function} A function which runs the root suite
+ */
+ runWithSuite: function runWithSuite(suite) {
+ return function run() {
+ suite.run();
+ };
+ },
+
+ /**
+ * Execute before running tests.
+ *
+ * @param {string} name
+ * @param {Function} fn
+ */
+ before: function(name, fn) {
+ suites[0].beforeAll(name, fn);
+ },
+
+ /**
+ * Execute after running tests.
+ *
+ * @param {string} name
+ * @param {Function} fn
+ */
+ after: function(name, fn) {
+ suites[0].afterAll(name, fn);
+ },
+
+ /**
+ * Execute before each test case.
+ *
+ * @param {string} name
+ * @param {Function} fn
+ */
+ beforeEach: function(name, fn) {
+ suites[0].beforeEach(name, fn);
+ },
+
+ /**
+ * Execute after each test case.
+ *
+ * @param {string} name
+ * @param {Function} fn
+ */
+ afterEach: function(name, fn) {
+ suites[0].afterEach(name, fn);
+ },
+
+ suite: {
+ /**
+ * Create an exclusive Suite; convenience function
+ * See docstring for create() below.
+ *
+ * @param {Object} opts
+ * @returns {Suite}
+ */
+ only: function only(opts) {
+ if (mocha.options.forbidOnly) {
+ throw createForbiddenExclusivityError(mocha);
+ }
+ opts.isOnly = true;
+ return this.create(opts);
+ },
+
+ /**
+ * Create a Suite, but skip it; convenience function
+ * See docstring for create() below.
+ *
+ * @param {Object} opts
+ * @returns {Suite}
+ */
+ skip: function skip(opts) {
+ opts.pending = true;
+ return this.create(opts);
+ },
+
+ /**
+ * Creates a suite.
+ *
+ * @param {Object} opts Options
+ * @param {string} opts.title Title of Suite
+ * @param {Function} [opts.fn] Suite Function (not always applicable)
+ * @param {boolean} [opts.pending] Is Suite pending?
+ * @param {string} [opts.file] Filepath where this Suite resides
+ * @param {boolean} [opts.isOnly] Is Suite exclusive?
+ * @returns {Suite}
+ */
+ create: function create(opts) {
+ var suite$1 = suite.create(suites[0], opts.title);
+ suite$1.pending = Boolean(opts.pending);
+ suite$1.file = opts.file;
+ suites.unshift(suite$1);
+ if (opts.isOnly) {
+ suite$1.markOnly();
+ }
+ if (
+ suite$1.pending &&
+ mocha.options.forbidPending &&
+ shouldBeTested(suite$1)
+ ) {
+ throw createUnsupportedError('Pending test forbidden');
+ }
+ if (typeof opts.fn === 'function') {
+ opts.fn.call(suite$1);
+ suites.shift();
+ } else if (typeof opts.fn === 'undefined' && !suite$1.pending) {
+ throw createMissingArgumentError(
+ 'Suite "' +
+ suite$1.fullTitle() +
+ '" was defined but no callback was supplied. ' +
+ 'Supply a callback or explicitly skip the suite.',
+ 'callback',
+ 'function'
+ );
+ } else if (!opts.fn && suite$1.pending) {
+ suites.shift();
+ }
+
+ return suite$1;
+ }
+ },
+
+ test: {
+ /**
+ * Exclusive test-case.
+ *
+ * @param {Object} mocha
+ * @param {Function} test
+ * @returns {*}
+ */
+ only: function(mocha, test) {
+ if (mocha.options.forbidOnly) {
+ throw createForbiddenExclusivityError(mocha);
+ }
+ test.markOnly();
+ return test;
+ },
+
+ /**
+ * Pending test case.
+ *
+ * @param {string} title
+ */
+ skip: function(title) {
+ context.test(title);
+ }
+ }
+ };
+ };
+
+ var EVENT_FILE_PRE_REQUIRE$2 = suite.constants
+ .EVENT_FILE_PRE_REQUIRE;
+
+ /**
+ * BDD-style interface:
+ *
+ * describe('Array', function() {
+ * describe('#indexOf()', function() {
+ * it('should return -1 when not present', function() {
+ * // ...
+ * });
+ *
+ * it('should return the index when present', function() {
+ * // ...
+ * });
+ * });
+ * });
+ *
+ * @param {Suite} suite Root suite.
+ */
+ var bdd$1 = function bddInterface(suite) {
+ var suites = [suite];
+
+ suite.on(EVENT_FILE_PRE_REQUIRE$2, function(context, file, mocha) {
+ var common$1 = common(suites, context, mocha);
+
+ context.before = common$1.before;
+ context.after = common$1.after;
+ context.beforeEach = common$1.beforeEach;
+ context.afterEach = common$1.afterEach;
+ context.run = mocha.options.delay && common$1.runWithSuite(suite);
+ /**
+ * Describe a "suite" with the given `title`
+ * and callback `fn` containing nested suites
+ * and/or tests.
+ */
+
+ context.describe = context.context = function(title, fn) {
+ return common$1.suite.create({
+ title: title,
+ file: file,
+ fn: fn
+ });
+ };
+
+ /**
+ * Pending describe.
+ */
+
+ context.xdescribe = context.xcontext = context.describe.skip = function(
+ title,
+ fn
+ ) {
+ return common$1.suite.skip({
+ title: title,
+ file: file,
+ fn: fn
+ });
+ };
+
+ /**
+ * Exclusive suite.
+ */
+
+ context.describe.only = function(title, fn) {
+ return common$1.suite.only({
+ title: title,
+ file: file,
+ fn: fn
+ });
+ };
+
+ /**
+ * Describe a specification or test-case
+ * with the given `title` and callback `fn`
+ * acting as a thunk.
+ */
+
+ context.it = context.specify = function(title, fn) {
+ var suite = suites[0];
+ if (suite.isPending()) {
+ fn = null;
+ }
+ var test$1 = new test(title, fn);
+ test$1.file = file;
+ suite.addTest(test$1);
+ return test$1;
+ };
+
+ /**
+ * Exclusive test-case.
+ */
+
+ context.it.only = function(title, fn) {
+ return common$1.test.only(mocha, context.it(title, fn));
+ };
+
+ /**
+ * Pending test case.
+ */
+
+ context.xit = context.xspecify = context.it.skip = function(title) {
+ return context.it(title);
+ };
+ });
+ };
+
+ var description$3 = 'BDD or RSpec style [default]';
+ bdd$1.description = description$3;
+
+ var EVENT_FILE_PRE_REQUIRE$1 = suite.constants
+ .EVENT_FILE_PRE_REQUIRE;
+
+ /**
+ * TDD-style interface:
+ *
+ * suite('Array', function() {
+ * suite('#indexOf()', function() {
+ * suiteSetup(function() {
+ *
+ * });
+ *
+ * test('should return -1 when not present', function() {
+ *
+ * });
+ *
+ * test('should return the index when present', function() {
+ *
+ * });
+ *
+ * suiteTeardown(function() {
+ *
+ * });
+ * });
+ * });
+ *
+ * @param {Suite} suite Root suite.
+ */
+ var tdd$1 = function(suite) {
+ var suites = [suite];
+
+ suite.on(EVENT_FILE_PRE_REQUIRE$1, function(context, file, mocha) {
+ var common$1 = common(suites, context, mocha);
+
+ context.setup = common$1.beforeEach;
+ context.teardown = common$1.afterEach;
+ context.suiteSetup = common$1.before;
+ context.suiteTeardown = common$1.after;
+ context.run = mocha.options.delay && common$1.runWithSuite(suite);
+
+ /**
+ * Describe a "suite" with the given `title` and callback `fn` containing
+ * nested suites and/or tests.
+ */
+ context.suite = function(title, fn) {
+ return common$1.suite.create({
+ title: title,
+ file: file,
+ fn: fn
+ });
+ };
+
+ /**
+ * Pending suite.
+ */
+ context.suite.skip = function(title, fn) {
+ return common$1.suite.skip({
+ title: title,
+ file: file,
+ fn: fn
+ });
+ };
+
+ /**
+ * Exclusive test-case.
+ */
+ context.suite.only = function(title, fn) {
+ return common$1.suite.only({
+ title: title,
+ file: file,
+ fn: fn
+ });
+ };
+
+ /**
+ * Describe a specification or test-case with the given `title` and
+ * callback `fn` acting as a thunk.
+ */
+ context.test = function(title, fn) {
+ var suite = suites[0];
+ if (suite.isPending()) {
+ fn = null;
+ }
+ var test$1 = new test(title, fn);
+ test$1.file = file;
+ suite.addTest(test$1);
+ return test$1;
+ };
+
+ /**
+ * Exclusive test-case.
+ */
+
+ context.test.only = function(title, fn) {
+ return common$1.test.only(mocha, context.test(title, fn));
+ };
+
+ context.test.skip = common$1.test.skip;
+ });
+ };
+
+ var description$2 =
+ 'traditional "suite"/"test" instead of BDD\'s "describe"/"it"';
+ tdd$1.description = description$2;
+
+ var EVENT_FILE_PRE_REQUIRE = suite.constants
+ .EVENT_FILE_PRE_REQUIRE;
+
+ /**
+ * QUnit-style interface:
+ *
+ * suite('Array');
+ *
+ * test('#length', function() {
+ * var arr = [1,2,3];
+ * ok(arr.length == 3);
+ * });
+ *
+ * test('#indexOf()', function() {
+ * var arr = [1,2,3];
+ * ok(arr.indexOf(1) == 0);
+ * ok(arr.indexOf(2) == 1);
+ * ok(arr.indexOf(3) == 2);
+ * });
+ *
+ * suite('String');
+ *
+ * test('#length', function() {
+ * ok('foo'.length == 3);
+ * });
+ *
+ * @param {Suite} suite Root suite.
+ */
+ var qunit$1 = function qUnitInterface(suite) {
+ var suites = [suite];
+
+ suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {
+ var common$1 = common(suites, context, mocha);
+
+ context.before = common$1.before;
+ context.after = common$1.after;
+ context.beforeEach = common$1.beforeEach;
+ context.afterEach = common$1.afterEach;
+ context.run = mocha.options.delay && common$1.runWithSuite(suite);
+ /**
+ * Describe a "suite" with the given `title`.
+ */
+
+ context.suite = function(title) {
+ if (suites.length > 1) {
+ suites.shift();
+ }
+ return common$1.suite.create({
+ title: title,
+ file: file,
+ fn: false
+ });
+ };
+
+ /**
+ * Exclusive Suite.
+ */
+
+ context.suite.only = function(title) {
+ if (suites.length > 1) {
+ suites.shift();
+ }
+ return common$1.suite.only({
+ title: title,
+ file: file,
+ fn: false
+ });
+ };
+
+ /**
+ * Describe a specification or test-case
+ * with the given `title` and callback `fn`
+ * acting as a thunk.
+ */
+
+ context.test = function(title, fn) {
+ var test$1 = new test(title, fn);
+ test$1.file = file;
+ suites[0].addTest(test$1);
+ return test$1;
+ };
+
+ /**
+ * Exclusive test-case.
+ */
+
+ context.test.only = function(title, fn) {
+ return common$1.test.only(mocha, context.test(title, fn));
+ };
+
+ context.test.skip = common$1.test.skip;
+ });
+ };
+
+ var description$1 = 'QUnit style';
+ qunit$1.description = description$1;
+
+ /**
+ * Exports-style (as Node.js module) interface:
+ *
+ * exports.Array = {
+ * '#indexOf()': {
+ * 'should return -1 when the value is not present': function() {
+ *
+ * },
+ *
+ * 'should return the correct index when the value is present': function() {
+ *
+ * }
+ * }
+ * };
+ *
+ * @param {Suite} suite Root suite.
+ */
+ var exports$2 = function(suite$1) {
+ var suites = [suite$1];
+
+ suite$1.on(suite.constants.EVENT_FILE_REQUIRE, visit);
+
+ function visit(obj, file) {
+ var suite$1;
+ for (var key in obj) {
+ if (typeof obj[key] === 'function') {
+ var fn = obj[key];
+ switch (key) {
+ case 'before':
+ suites[0].beforeAll(fn);
+ break;
+ case 'after':
+ suites[0].afterAll(fn);
+ break;
+ case 'beforeEach':
+ suites[0].beforeEach(fn);
+ break;
+ case 'afterEach':
+ suites[0].afterEach(fn);
+ break;
+ default:
+ var test$1 = new test(key, fn);
+ test$1.file = file;
+ suites[0].addTest(test$1);
+ }
+ } else {
+ suite$1 = suite.create(suites[0], key);
+ suites.unshift(suite$1);
+ visit(obj[key], file);
+ suites.shift();
+ }
+ }
+ }
+ };
+
+ var description = 'Node.js module ("exports") style';
+ exports$2.description = description;
+
+ var bdd = bdd$1;
+ var tdd = tdd$1;
+ var qunit = qunit$1;
+ var exports$1 = exports$2;
+
+ var interfaces = {
+ bdd: bdd,
+ tdd: tdd,
+ qunit: qunit,
+ exports: exports$1
+ };
+
+ /**
+ * @module Context
+ */
+ /**
+ * Expose `Context`.
+ */
+
+ var context = Context;
+
+ /**
+ * Initialize a new `Context`.
+ *
+ * @private
+ */
+ function Context() {}
+
+ /**
+ * Set or get the context `Runnable` to `runnable`.
+ *
+ * @private
+ * @param {Runnable} runnable
+ * @return {Context} context
+ */
+ Context.prototype.runnable = function(runnable) {
+ if (!arguments.length) {
+ return this._runnable;
+ }
+ this.test = this._runnable = runnable;
+ return this;
+ };
+
+ /**
+ * Set or get test timeout `ms`.
+ *
+ * @private
+ * @param {number} ms
+ * @return {Context} self
+ */
+ Context.prototype.timeout = function(ms) {
+ if (!arguments.length) {
+ return this.runnable().timeout();
+ }
+ this.runnable().timeout(ms);
+ return this;
+ };
+
+ /**
+ * Set or get test slowness threshold `ms`.
+ *
+ * @private
+ * @param {number} ms
+ * @return {Context} self
+ */
+ Context.prototype.slow = function(ms) {
+ if (!arguments.length) {
+ return this.runnable().slow();
+ }
+ this.runnable().slow(ms);
+ return this;
+ };
+
+ /**
+ * Mark a test as skipped.
+ *
+ * @private
+ * @throws Pending
+ */
+ Context.prototype.skip = function() {
+ this.runnable().skip();
+ };
+
+ /**
+ * Set or get a number of allowed retries on failed tests
+ *
+ * @private
+ * @param {number} n
+ * @return {Context} self
+ */
+ Context.prototype.retries = function(n) {
+ if (!arguments.length) {
+ return this.runnable().retries();
+ }
+ this.runnable().retries(n);
+ return this;
+ };
+
+ var mocharc = getCjsExportFromNamespace(mocharc$2);
+
+ var mocha$1 = createCommonjsModule(function (module, exports) {
+
+ /*!
+ * mocha
+ * Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>
+ * MIT Licensed
+ */
+
+
+
+
+
+
+
+
+ var esmUtils = utils.supportsEsModules(true)
+ ? require$$11
+ : undefined;
+
+ const {
+ warn,
+ createInvalidReporterError,
+ createInvalidInterfaceError,
+ createMochaInstanceAlreadyDisposedError,
+ createMochaInstanceAlreadyRunningError,
+ createUnsupportedError
+ } = errors;
+ const {
+ EVENT_FILE_PRE_REQUIRE,
+ EVENT_FILE_POST_REQUIRE,
+ EVENT_FILE_REQUIRE
+ } = suite.constants;
+ var debug = browser('mocha:mocha');
+
+ exports = module.exports = Mocha;
+
+ /**
+ * A Mocha instance is a finite state machine.
+ * These are the states it can be in.
+ * @private
+ */
+ var mochaStates = utils.defineConstants({
+ /**
+ * Initial state of the mocha instance
+ * @private
+ */
+ INIT: 'init',
+ /**
+ * Mocha instance is running tests
+ * @private
+ */
+ RUNNING: 'running',
+ /**
+ * Mocha instance is done running tests and references to test functions and hooks are cleaned.
+ * You can reset this state by unloading the test files.
+ * @private
+ */
+ REFERENCES_CLEANED: 'referencesCleaned',
+ /**
+ * Mocha instance is disposed and can no longer be used.
+ * @private
+ */
+ DISPOSED: 'disposed'
+ });
+
+ /**
+ * To require local UIs and reporters when running in node.
+ */
+
+ if (!utils.isBrowser() && typeof module.paths !== 'undefined') {
+ var cwd = utils.cwd();
+ module.paths.push(cwd, path.join(cwd, 'node_modules'));
+ }
+
+ /**
+ * Expose internals.
+ * @private
+ */
+
+ exports.utils = utils;
+ exports.interfaces = interfaces;
+ /**
+ * @public
+ * @memberof Mocha
+ */
+ exports.reporters = reporters;
+ exports.Runnable = runnable;
+ exports.Context = context;
+ /**
+ *
+ * @memberof Mocha
+ */
+ exports.Runner = runner;
+ exports.Suite = suite;
+ exports.Hook = hook;
+ exports.Test = test;
+
+ let currentContext;
+ exports.afterEach = function(...args) {
+ return (currentContext.afterEach || currentContext.teardown).apply(
+ this,
+ args
+ );
+ };
+ exports.after = function(...args) {
+ return (currentContext.after || currentContext.suiteTeardown).apply(
+ this,
+ args
+ );
+ };
+ exports.beforeEach = function(...args) {
+ return (currentContext.beforeEach || currentContext.setup).apply(this, args);
+ };
+ exports.before = function(...args) {
+ return (currentContext.before || currentContext.suiteSetup).apply(this, args);
+ };
+ exports.describe = function(...args) {
+ return (currentContext.describe || currentContext.suite).apply(this, args);
+ };
+ exports.describe.only = function(...args) {
+ return (currentContext.describe || currentContext.suite).only.apply(
+ this,
+ args
+ );
+ };
+ exports.describe.skip = function(...args) {
+ return (currentContext.describe || currentContext.suite).skip.apply(
+ this,
+ args
+ );
+ };
+ exports.it = function(...args) {
+ return (currentContext.it || currentContext.test).apply(this, args);
+ };
+ exports.it.only = function(...args) {
+ return (currentContext.it || currentContext.test).only.apply(this, args);
+ };
+ exports.it.skip = function(...args) {
+ return (currentContext.it || currentContext.test).skip.apply(this, args);
+ };
+ exports.xdescribe = exports.describe.skip;
+ exports.xit = exports.it.skip;
+ exports.setup = exports.beforeEach;
+ exports.suiteSetup = exports.before;
+ exports.suiteTeardown = exports.after;
+ exports.suite = exports.describe;
+ exports.teardown = exports.afterEach;
+ exports.test = exports.it;
+ exports.run = function(...args) {
+ return currentContext.run.apply(this, args);
+ };
+
+ /**
+ * Constructs a new Mocha instance with `options`.
+ *
+ * @public
+ * @class Mocha
+ * @param {Object} [options] - Settings object.
+ * @param {boolean} [options.allowUncaught] - Propagate uncaught errors?
+ * @param {boolean} [options.asyncOnly] - Force `done` callback or promise?
+ * @param {boolean} [options.bail] - Bail after first test failure?
+ * @param {boolean} [options.checkLeaks] - Check for global variable leaks?
+ * @param {boolean} [options.color] - Color TTY output from reporter?
+ * @param {boolean} [options.delay] - Delay root suite execution?
+ * @param {boolean} [options.diff] - Show diff on failure?
+ * @param {boolean} [options.dryRun] - Report tests without running them?
+ * @param {boolean} [options.failZero] - Fail test run if zero tests?
+ * @param {string} [options.fgrep] - Test filter given string.
+ * @param {boolean} [options.forbidOnly] - Tests marked `only` fail the suite?
+ * @param {boolean} [options.forbidPending] - Pending tests fail the suite?
+ * @param {boolean} [options.fullTrace] - Full stacktrace upon failure?
+ * @param {string[]} [options.global] - Variables expected in global scope.
+ * @param {RegExp|string} [options.grep] - Test filter given regular expression.
+ * @param {boolean} [options.growl] - Enable desktop notifications?
+ * @param {boolean} [options.inlineDiffs] - Display inline diffs?
+ * @param {boolean} [options.invert] - Invert test filter matches?
+ * @param {boolean} [options.noHighlighting] - Disable syntax highlighting?
+ * @param {string|constructor} [options.reporter] - Reporter name or constructor.
+ * @param {Object} [options.reporterOption] - Reporter settings object.
+ * @param {number} [options.retries] - Number of times to retry failed tests.
+ * @param {number} [options.slow] - Slow threshold value.
+ * @param {number|string} [options.timeout] - Timeout threshold value.
+ * @param {string} [options.ui] - Interface name.
+ * @param {boolean} [options.parallel] - Run jobs in parallel.
+ * @param {number} [options.jobs] - Max number of worker processes for parallel runs.
+ * @param {MochaRootHookObject} [options.rootHooks] - Hooks to bootstrap the root suite with.
+ * @param {string[]} [options.require] - Pathname of `rootHooks` plugin for parallel runs.
+ * @param {boolean} [options.isWorker] - Should be `true` if `Mocha` process is running in a worker process.
+ */
+ function Mocha(options = {}) {
+ options = {...mocharc, ...options};
+ this.files = [];
+ this.options = options;
+ // root suite
+ this.suite = new exports.Suite('', new exports.Context(), true);
+ this._cleanReferencesAfterRun = true;
+ this._state = mochaStates.INIT;
+
+ this.grep(options.grep)
+ .fgrep(options.fgrep)
+ .ui(options.ui)
+ .reporter(
+ options.reporter,
+ options.reporterOption || options.reporterOptions // for backwards compability
+ )
+ .slow(options.slow)
+ .global(options.global);
+
+ // this guard exists because Suite#timeout does not consider `undefined` to be valid input
+ if (typeof options.timeout !== 'undefined') {
+ this.timeout(options.timeout === false ? 0 : options.timeout);
+ }
+
+ if ('retries' in options) {
+ this.retries(options.retries);
+ }
+
+ [
+ 'allowUncaught',
+ 'asyncOnly',
+ 'bail',
+ 'checkLeaks',
+ 'color',
+ 'delay',
+ 'diff',
+ 'dryRun',
+ 'failZero',
+ 'forbidOnly',
+ 'forbidPending',
+ 'fullTrace',
+ 'growl',
+ 'inlineDiffs',
+ 'invert'
+ ].forEach(function(opt) {
+ if (options[opt]) {
+ this[opt]();
+ }
+ }, this);
+
+ if (options.rootHooks) {
+ this.rootHooks(options.rootHooks);
+ }
+
+ /**
+ * The class which we'll instantiate in {@link Mocha#run}. Defaults to
+ * {@link Runner} in serial mode; changes in parallel mode.
+ * @memberof Mocha
+ * @private
+ */
+ this._runnerClass = exports.Runner;
+
+ /**
+ * Whether or not to call {@link Mocha#loadFiles} implicitly when calling
+ * {@link Mocha#run}. If this is `true`, then it's up to the consumer to call
+ * {@link Mocha#loadFiles} _or_ {@link Mocha#loadFilesAsync}.
+ * @private
+ * @memberof Mocha
+ */
+ this._lazyLoadFiles = false;
+
+ /**
+ * It's useful for a Mocha instance to know if it's running in a worker process.
+ * We could derive this via other means, but it's helpful to have a flag to refer to.
+ * @memberof Mocha
+ * @private
+ */
+ this.isWorker = Boolean(options.isWorker);
+
+ this.globalSetup(options.globalSetup)
+ .globalTeardown(options.globalTeardown)
+ .enableGlobalSetup(options.enableGlobalSetup)
+ .enableGlobalTeardown(options.enableGlobalTeardown);
+
+ if (
+ options.parallel &&
+ (typeof options.jobs === 'undefined' || options.jobs > 1)
+ ) {
+ debug('attempting to enable parallel mode');
+ this.parallelMode(true);
+ }
+ }
+
+ /**
+ * Enables or disables bailing on the first failure.
+ *
+ * @public
+ * @see [CLI option](../#-bail-b)
+ * @param {boolean} [bail=true] - Whether to bail on first error.
+ * @returns {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.bail = function(bail) {
+ this.suite.bail(bail !== false);
+ return this;
+ };
+
+ /**
+ * @summary
+ * Adds `file` to be loaded for execution.
+ *
+ * @description
+ * Useful for generic setup code that must be included within test suite.
+ *
+ * @public
+ * @see [CLI option](../#-file-filedirectoryglob)
+ * @param {string} file - Pathname of file to be loaded.
+ * @returns {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.addFile = function(file) {
+ this.files.push(file);
+ return this;
+ };
+
+ /**
+ * Sets reporter to `reporter`, defaults to "spec".
+ *
+ * @public
+ * @see [CLI option](../#-reporter-name-r-name)
+ * @see [Reporters](../#reporters)
+ * @param {String|Function} reporterName - Reporter name or constructor.
+ * @param {Object} [reporterOptions] - Options used to configure the reporter.
+ * @returns {Mocha} this
+ * @chainable
+ * @throws {Error} if requested reporter cannot be loaded
+ * @example
+ *
+ * // Use XUnit reporter and direct its output to file
+ * mocha.reporter('xunit', { output: '/path/to/testspec.xunit.xml' });
+ */
+ Mocha.prototype.reporter = function(reporterName, reporterOptions) {
+ if (typeof reporterName === 'function') {
+ this._reporter = reporterName;
+ } else {
+ reporterName = reporterName || 'spec';
+ var reporter;
+ // Try to load a built-in reporter.
+ if (reporters[reporterName]) {
+ reporter = reporters[reporterName];
+ }
+ // Try to load reporters from process.cwd() and node_modules
+ if (!reporter) {
+ try {
+ reporter = commonjsRequire(reporterName);
+ } catch (err) {
+ if (err.code === 'MODULE_NOT_FOUND') {
+ // Try to load reporters from a path (absolute or relative)
+ try {
+ reporter = commonjsRequire(path.resolve(utils.cwd(), reporterName));
+ } catch (_err) {
+ _err.code === 'MODULE_NOT_FOUND'
+ ? warn(`'${reporterName}' reporter not found`)
+ : warn(
+ `'${reporterName}' reporter blew up with error:\n ${err.stack}`
+ );
+ }
+ } else {
+ warn(`'${reporterName}' reporter blew up with error:\n ${err.stack}`);
+ }
+ }
+ }
+ if (!reporter) {
+ throw createInvalidReporterError(
+ `invalid reporter '${reporterName}'`,
+ reporterName
+ );
+ }
+ this._reporter = reporter;
+ }
+ this.options.reporterOption = reporterOptions;
+ // alias option name is used in public reporters xunit/tap/progress
+ this.options.reporterOptions = reporterOptions;
+ return this;
+ };
+
+ /**
+ * Sets test UI `name`, defaults to "bdd".
+ *
+ * @public
+ * @see [CLI option](../#-ui-name-u-name)
+ * @see [Interface DSLs](../#interfaces)
+ * @param {string|Function} [ui=bdd] - Interface name or class.
+ * @returns {Mocha} this
+ * @chainable
+ * @throws {Error} if requested interface cannot be loaded
+ */
+ Mocha.prototype.ui = function(ui) {
+ var bindInterface;
+ if (typeof ui === 'function') {
+ bindInterface = ui;
+ } else {
+ ui = ui || 'bdd';
+ bindInterface = exports.interfaces[ui];
+ if (!bindInterface) {
+ try {
+ bindInterface = commonjsRequire(ui);
+ } catch (err) {
+ throw createInvalidInterfaceError(`invalid interface '${ui}'`, ui);
+ }
+ }
+ }
+ bindInterface(this.suite);
+
+ this.suite.on(EVENT_FILE_PRE_REQUIRE, function(context) {
+ currentContext = context;
+ });
+
+ return this;
+ };
+
+ /**
+ * Loads `files` prior to execution. Does not support ES Modules.
+ *
+ * @description
+ * The implementation relies on Node's `require` to execute
+ * the test interface functions and will be subject to its cache.
+ * Supports only CommonJS modules. To load ES modules, use Mocha#loadFilesAsync.
+ *
+ * @private
+ * @see {@link Mocha#addFile}
+ * @see {@link Mocha#run}
+ * @see {@link Mocha#unloadFiles}
+ * @see {@link Mocha#loadFilesAsync}
+ * @param {Function} [fn] - Callback invoked upon completion.
+ */
+ Mocha.prototype.loadFiles = function(fn) {
+ var self = this;
+ var suite = this.suite;
+ this.files.forEach(function(file) {
+ file = path.resolve(file);
+ suite.emit(EVENT_FILE_PRE_REQUIRE, commonjsGlobal, file, self);
+ suite.emit(EVENT_FILE_REQUIRE, commonjsRequire(), file, self);
+ suite.emit(EVENT_FILE_POST_REQUIRE, commonjsGlobal, file, self);
+ });
+ fn && fn();
+ };
+
+ /**
+ * Loads `files` prior to execution. Supports Node ES Modules.
+ *
+ * @description
+ * The implementation relies on Node's `require` and `import` to execute
+ * the test interface functions and will be subject to its cache.
+ * Supports both CJS and ESM modules.
+ *
+ * @public
+ * @see {@link Mocha#addFile}
+ * @see {@link Mocha#run}
+ * @see {@link Mocha#unloadFiles}
+ * @returns {Promise}
+ * @example
+ *
+ * // loads ESM (and CJS) test files asynchronously, then runs root suite
+ * mocha.loadFilesAsync()
+ * .then(() => mocha.run(failures => process.exitCode = failures ? 1 : 0))
+ * .catch(() => process.exitCode = 1);
+ */
+ Mocha.prototype.loadFilesAsync = function() {
+ var self = this;
+ var suite = this.suite;
+ this.lazyLoadFiles(true);
+
+ if (!esmUtils) {
+ return new Promise(function(resolve) {
+ self.loadFiles(resolve);
+ });
+ }
+
+ return esmUtils.loadFilesAsync(
+ this.files,
+ function(file) {
+ suite.emit(EVENT_FILE_PRE_REQUIRE, commonjsGlobal, file, self);
+ },
+ function(file, resultModule) {
+ suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self);
+ suite.emit(EVENT_FILE_POST_REQUIRE, commonjsGlobal, file, self);
+ }
+ );
+ };
+
+ /**
+ * Removes a previously loaded file from Node's `require` cache.
+ *
+ * @private
+ * @static
+ * @see {@link Mocha#unloadFiles}
+ * @param {string} file - Pathname of file to be unloaded.
+ */
+ Mocha.unloadFile = function(file) {
+ if (utils.isBrowser()) {
+ throw createUnsupportedError(
+ 'unloadFile() is only suported in a Node.js environment'
+ );
+ }
+ return require$$11.unloadFile(file);
+ };
+
+ /**
+ * Unloads `files` from Node's `require` cache.
+ *
+ * @description
+ * This allows required files to be "freshly" reloaded, providing the ability
+ * to reuse a Mocha instance programmatically.
+ * Note: does not clear ESM module files from the cache
+ *
+ * <strong>Intended for consumers &mdash; not used internally</strong>
+ *
+ * @public
+ * @see {@link Mocha#run}
+ * @returns {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.unloadFiles = function() {
+ if (this._state === mochaStates.DISPOSED) {
+ throw createMochaInstanceAlreadyDisposedError(
+ 'Mocha instance is already disposed, it cannot be used again.',
+ this._cleanReferencesAfterRun,
+ this
+ );
+ }
+
+ this.files.forEach(function(file) {
+ Mocha.unloadFile(file);
+ });
+ this._state = mochaStates.INIT;
+ return this;
+ };
+
+ /**
+ * Sets `grep` filter after escaping RegExp special characters.
+ *
+ * @public
+ * @see {@link Mocha#grep}
+ * @param {string} str - Value to be converted to a regexp.
+ * @returns {Mocha} this
+ * @chainable
+ * @example
+ *
+ * // Select tests whose full title begins with `"foo"` followed by a period
+ * mocha.fgrep('foo.');
+ */
+ Mocha.prototype.fgrep = function(str) {
+ if (!str) {
+ return this;
+ }
+ return this.grep(new RegExp(escapeStringRegexp(str)));
+ };
+
+ /**
+ * @summary
+ * Sets `grep` filter used to select specific tests for execution.
+ *
+ * @description
+ * If `re` is a regexp-like string, it will be converted to regexp.
+ * The regexp is tested against the full title of each test (i.e., the
+ * name of the test preceded by titles of each its ancestral suites).
+ * As such, using an <em>exact-match</em> fixed pattern against the
+ * test name itself will not yield any matches.
+ * <br>
+ * <strong>Previous filter value will be overwritten on each call!</strong>
+ *
+ * @public
+ * @see [CLI option](../#-grep-regexp-g-regexp)
+ * @see {@link Mocha#fgrep}
+ * @see {@link Mocha#invert}
+ * @param {RegExp|String} re - Regular expression used to select tests.
+ * @return {Mocha} this
+ * @chainable
+ * @example
+ *
+ * // Select tests whose full title contains `"match"`, ignoring case
+ * mocha.grep(/match/i);
+ * @example
+ *
+ * // Same as above but with regexp-like string argument
+ * mocha.grep('/match/i');
+ * @example
+ *
+ * // ## Anti-example
+ * // Given embedded test `it('only-this-test')`...
+ * mocha.grep('/^only-this-test$/'); // NO! Use `.only()` to do this!
+ */
+ Mocha.prototype.grep = function(re) {
+ if (utils.isString(re)) {
+ // extract args if it's regex-like, i.e: [string, pattern, flag]
+ var arg = re.match(/^\/(.*)\/([gimy]{0,4})$|.*/);
+ this.options.grep = new RegExp(arg[1] || arg[0], arg[2]);
+ } else {
+ this.options.grep = re;
+ }
+ return this;
+ };
+
+ /**
+ * Inverts `grep` matches.
+ *
+ * @public
+ * @see {@link Mocha#grep}
+ * @return {Mocha} this
+ * @chainable
+ * @example
+ *
+ * // Select tests whose full title does *not* contain `"match"`, ignoring case
+ * mocha.grep(/match/i).invert();
+ */
+ Mocha.prototype.invert = function() {
+ this.options.invert = true;
+ return this;
+ };
+
+ /**
+ * Enables or disables checking for global variables leaked while running tests.
+ *
+ * @public
+ * @see [CLI option](../#-check-leaks)
+ * @param {boolean} [checkLeaks=true] - Whether to check for global variable leaks.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.checkLeaks = function(checkLeaks) {
+ this.options.checkLeaks = checkLeaks !== false;
+ return this;
+ };
+
+ /**
+ * Enables or disables whether or not to dispose after each test run.
+ * Disable this to ensure you can run the test suite multiple times.
+ * If disabled, be sure to dispose mocha when you're done to prevent memory leaks.
+ * @public
+ * @see {@link Mocha#dispose}
+ * @param {boolean} cleanReferencesAfterRun
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.cleanReferencesAfterRun = function(cleanReferencesAfterRun) {
+ this._cleanReferencesAfterRun = cleanReferencesAfterRun !== false;
+ return this;
+ };
+
+ /**
+ * Manually dispose this mocha instance. Mark this instance as `disposed` and unable to run more tests.
+ * It also removes function references to tests functions and hooks, so variables trapped in closures can be cleaned by the garbage collector.
+ * @public
+ */
+ Mocha.prototype.dispose = function() {
+ if (this._state === mochaStates.RUNNING) {
+ throw createMochaInstanceAlreadyRunningError(
+ 'Cannot dispose while the mocha instance is still running tests.'
+ );
+ }
+ this.unloadFiles();
+ this._previousRunner && this._previousRunner.dispose();
+ this.suite.dispose();
+ this._state = mochaStates.DISPOSED;
+ };
+
+ /**
+ * Displays full stack trace upon test failure.
+ *
+ * @public
+ * @see [CLI option](../#-full-trace)
+ * @param {boolean} [fullTrace=true] - Whether to print full stacktrace upon failure.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.fullTrace = function(fullTrace) {
+ this.options.fullTrace = fullTrace !== false;
+ return this;
+ };
+
+ /**
+ * Enables desktop notification support if prerequisite software installed.
+ *
+ * @public
+ * @see [CLI option](../#-growl-g)
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.growl = function() {
+ this.options.growl = this.isGrowlCapable();
+ if (!this.options.growl) {
+ var detail = utils.isBrowser()
+ ? 'notification support not available in this browser...'
+ : 'notification support prerequisites not installed...';
+ console.error(detail + ' cannot enable!');
+ }
+ return this;
+ };
+
+ /**
+ * @summary
+ * Determines if Growl support seems likely.
+ *
+ * @description
+ * <strong>Not available when run in browser.</strong>
+ *
+ * @private
+ * @see {@link Growl#isCapable}
+ * @see {@link Mocha#growl}
+ * @return {boolean} whether Growl support can be expected
+ */
+ Mocha.prototype.isGrowlCapable = growl.isCapable;
+
+ /**
+ * Implements desktop notifications using a pseudo-reporter.
+ *
+ * @private
+ * @see {@link Mocha#growl}
+ * @see {@link Growl#notify}
+ * @param {Runner} runner - Runner instance.
+ */
+ Mocha.prototype._growl = growl.notify;
+
+ /**
+ * Specifies whitelist of variable names to be expected in global scope.
+ *
+ * @public
+ * @see [CLI option](../#-global-variable-name)
+ * @see {@link Mocha#checkLeaks}
+ * @param {String[]|String} global - Accepted global variable name(s).
+ * @return {Mocha} this
+ * @chainable
+ * @example
+ *
+ * // Specify variables to be expected in global scope
+ * mocha.global(['jQuery', 'MyLib']);
+ */
+ Mocha.prototype.global = function(global) {
+ this.options.global = (this.options.global || [])
+ .concat(global)
+ .filter(Boolean)
+ .filter(function(elt, idx, arr) {
+ return arr.indexOf(elt) === idx;
+ });
+ return this;
+ };
+ // for backwards compability, 'globals' is an alias of 'global'
+ Mocha.prototype.globals = Mocha.prototype.global;
+
+ /**
+ * Enables or disables TTY color output by screen-oriented reporters.
+ *
+ * @public
+ * @see [CLI option](../#-color-c-colors)
+ * @param {boolean} [color=true] - Whether to enable color output.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.color = function(color) {
+ this.options.color = color !== false;
+ return this;
+ };
+
+ /**
+ * Enables or disables reporter to use inline diffs (rather than +/-)
+ * in test failure output.
+ *
+ * @public
+ * @see [CLI option](../#-inline-diffs)
+ * @param {boolean} [inlineDiffs=true] - Whether to use inline diffs.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.inlineDiffs = function(inlineDiffs) {
+ this.options.inlineDiffs = inlineDiffs !== false;
+ return this;
+ };
+
+ /**
+ * Enables or disables reporter to include diff in test failure output.
+ *
+ * @public
+ * @see [CLI option](../#-diff)
+ * @param {boolean} [diff=true] - Whether to show diff on failure.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.diff = function(diff) {
+ this.options.diff = diff !== false;
+ return this;
+ };
+
+ /**
+ * @summary
+ * Sets timeout threshold value.
+ *
+ * @description
+ * A string argument can use shorthand (such as "2s") and will be converted.
+ * If the value is `0`, timeouts will be disabled.
+ *
+ * @public
+ * @see [CLI option](../#-timeout-ms-t-ms)
+ * @see [Timeouts](../#timeouts)
+ * @param {number|string} msecs - Timeout threshold value.
+ * @return {Mocha} this
+ * @chainable
+ * @example
+ *
+ * // Sets timeout to one second
+ * mocha.timeout(1000);
+ * @example
+ *
+ * // Same as above but using string argument
+ * mocha.timeout('1s');
+ */
+ Mocha.prototype.timeout = function(msecs) {
+ this.suite.timeout(msecs);
+ return this;
+ };
+
+ /**
+ * Sets the number of times to retry failed tests.
+ *
+ * @public
+ * @see [CLI option](../#-retries-n)
+ * @see [Retry Tests](../#retry-tests)
+ * @param {number} retry - Number of times to retry failed tests.
+ * @return {Mocha} this
+ * @chainable
+ * @example
+ *
+ * // Allow any failed test to retry one more time
+ * mocha.retries(1);
+ */
+ Mocha.prototype.retries = function(retry) {
+ this.suite.retries(retry);
+ return this;
+ };
+
+ /**
+ * Sets slowness threshold value.
+ *
+ * @public
+ * @see [CLI option](../#-slow-ms-s-ms)
+ * @param {number} msecs - Slowness threshold value.
+ * @return {Mocha} this
+ * @chainable
+ * @example
+ *
+ * // Sets "slow" threshold to half a second
+ * mocha.slow(500);
+ * @example
+ *
+ * // Same as above but using string argument
+ * mocha.slow('0.5s');
+ */
+ Mocha.prototype.slow = function(msecs) {
+ this.suite.slow(msecs);
+ return this;
+ };
+
+ /**
+ * Forces all tests to either accept a `done` callback or return a promise.
+ *
+ * @public
+ * @see [CLI option](../#-async-only-a)
+ * @param {boolean} [asyncOnly=true] - Whether to force `done` callback or promise.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.asyncOnly = function(asyncOnly) {
+ this.options.asyncOnly = asyncOnly !== false;
+ return this;
+ };
+
+ /**
+ * Disables syntax highlighting (in browser).
+ *
+ * @public
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.noHighlighting = function() {
+ this.options.noHighlighting = true;
+ return this;
+ };
+
+ /**
+ * Enables or disables uncaught errors to propagate.
+ *
+ * @public
+ * @see [CLI option](../#-allow-uncaught)
+ * @param {boolean} [allowUncaught=true] - Whether to propagate uncaught errors.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.allowUncaught = function(allowUncaught) {
+ this.options.allowUncaught = allowUncaught !== false;
+ return this;
+ };
+
+ /**
+ * @summary
+ * Delays root suite execution.
+ *
+ * @description
+ * Used to perform async operations before any suites are run.
+ *
+ * @public
+ * @see [delayed root suite](../#delayed-root-suite)
+ * @returns {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.delay = function delay() {
+ this.options.delay = true;
+ return this;
+ };
+
+ /**
+ * Enables or disables running tests in dry-run mode.
+ *
+ * @public
+ * @see [CLI option](../#-dry-run)
+ * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.dryRun = function(dryRun) {
+ this.options.dryRun = dryRun !== false;
+ return this;
+ };
+
+ /**
+ * Fails test run if no tests encountered with exit-code 1.
+ *
+ * @public
+ * @see [CLI option](../#-fail-zero)
+ * @param {boolean} [failZero=true] - Whether to fail test run.
+ * @return {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.failZero = function(failZero) {
+ this.options.failZero = failZero !== false;
+ return this;
+ };
+
+ /**
+ * Causes tests marked `only` to fail the suite.
+ *
+ * @public
+ * @see [CLI option](../#-forbid-only)
+ * @param {boolean} [forbidOnly=true] - Whether tests marked `only` fail the suite.
+ * @returns {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.forbidOnly = function(forbidOnly) {
+ this.options.forbidOnly = forbidOnly !== false;
+ return this;
+ };
+
+ /**
+ * Causes pending tests and tests marked `skip` to fail the suite.
+ *
+ * @public
+ * @see [CLI option](../#-forbid-pending)
+ * @param {boolean} [forbidPending=true] - Whether pending tests fail the suite.
+ * @returns {Mocha} this
+ * @chainable
+ */
+ Mocha.prototype.forbidPending = function(forbidPending) {
+ this.options.forbidPending = forbidPending !== false;
+ return this;
+ };
+
+ /**
+ * Throws an error if mocha is in the wrong state to be able to transition to a "running" state.
+ * @private
+ */
+ Mocha.prototype._guardRunningStateTransition = function() {
+ if (this._state === mochaStates.RUNNING) {
+ throw createMochaInstanceAlreadyRunningError(
+ 'Mocha instance is currently running tests, cannot start a next test run until this one is done',
+ this
+ );
+ }
+ if (
+ this._state === mochaStates.DISPOSED ||
+ this._state === mochaStates.REFERENCES_CLEANED
+ ) {
+ throw createMochaInstanceAlreadyDisposedError(
+ 'Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.',
+ this._cleanReferencesAfterRun,
+ this
+ );
+ }
+ };
+
+ /**
+ * Mocha version as specified by "package.json".
+ *
+ * @name Mocha#version
+ * @type string
+ * @readonly
+ */
+ Object.defineProperty(Mocha.prototype, 'version', {
+ value: require$$10.version,
+ configurable: false,
+ enumerable: true,
+ writable: false
+ });
+
+ /**
+ * Callback to be invoked when test execution is complete.
+ *
+ * @private
+ * @callback DoneCB
+ * @param {number} failures - Number of failures that occurred.
+ */
+
+ /**
+ * Runs root suite and invokes `fn()` when complete.
+ *
+ * @description
+ * To run tests multiple times (or to run tests in files that are
+ * already in the `require` cache), make sure to clear them from
+ * the cache first!
+ *
+ * @public
+ * @see {@link Mocha#unloadFiles}
+ * @see {@link Runner#run}
+ * @param {DoneCB} [fn] - Callback invoked when test execution completed.
+ * @returns {Runner} runner instance
+ * @example
+ *
+ * // exit with non-zero status if there were test failures
+ * mocha.run(failures => process.exitCode = failures ? 1 : 0);
+ */
+ Mocha.prototype.run = function(fn) {
+ this._guardRunningStateTransition();
+ this._state = mochaStates.RUNNING;
+ if (this._previousRunner) {
+ this._previousRunner.dispose();
+ this.suite.reset();
+ }
+ if (this.files.length && !this._lazyLoadFiles) {
+ this.loadFiles();
+ }
+ var suite = this.suite;
+ var options = this.options;
+ options.files = this.files;
+ const runner = new this._runnerClass(suite, {
+ cleanReferencesAfterRun: this._cleanReferencesAfterRun,
+ delay: options.delay,
+ dryRun: options.dryRun,
+ failZero: options.failZero
+ });
+ statsCollector(runner);
+ var reporter = new this._reporter(runner, options);
+ runner.checkLeaks = options.checkLeaks === true;
+ runner.fullStackTrace = options.fullTrace;
+ runner.asyncOnly = options.asyncOnly;
+ runner.allowUncaught = options.allowUncaught;
+ runner.forbidOnly = options.forbidOnly;
+ runner.forbidPending = options.forbidPending;
+ if (options.grep) {
+ runner.grep(options.grep, options.invert);
+ }
+ if (options.global) {
+ runner.globals(options.global);
+ }
+ if (options.growl) {
+ this._growl(runner);
+ }
+ if (options.color !== undefined) {
+ exports.reporters.Base.useColors = options.color;
+ }
+ exports.reporters.Base.inlineDiffs = options.inlineDiffs;
+ exports.reporters.Base.hideDiff = !options.diff;
+
+ const done = failures => {
+ this._previousRunner = runner;
+ this._state = this._cleanReferencesAfterRun
+ ? mochaStates.REFERENCES_CLEANED
+ : mochaStates.INIT;
+ fn = fn || utils.noop;
+ if (typeof reporter.done === 'function') {
+ reporter.done(failures, fn);
+ } else {
+ fn(failures);
+ }
+ };
+
+ const runAsync = async runner => {
+ const context =
+ this.options.enableGlobalSetup && this.hasGlobalSetupFixtures()
+ ? await this.runGlobalSetup(runner)
+ : {};
+ const failureCount = await runner.runAsync({
+ files: this.files,
+ options
+ });
+ if (this.options.enableGlobalTeardown && this.hasGlobalTeardownFixtures()) {
+ await this.runGlobalTeardown(runner, {context});
+ }
+ return failureCount;
+ };
+
+ // no "catch" here is intentional. errors coming out of
+ // Runner#run are considered uncaught/unhandled and caught
+ // by the `process` event listeners.
+ // also: returning anything other than `runner` would be a breaking
+ // change
+ runAsync(runner).then(done);
+
+ return runner;
+ };
+
+ /**
+ * Assigns hooks to the root suite
+ * @param {MochaRootHookObject} [hooks] - Hooks to assign to root suite
+ * @chainable
+ */
+ Mocha.prototype.rootHooks = function rootHooks({
+ beforeAll = [],
+ beforeEach = [],
+ afterAll = [],
+ afterEach = []
+ } = {}) {
+ beforeAll = utils.castArray(beforeAll);
+ beforeEach = utils.castArray(beforeEach);
+ afterAll = utils.castArray(afterAll);
+ afterEach = utils.castArray(afterEach);
+ beforeAll.forEach(hook => {
+ this.suite.beforeAll(hook);
+ });
+ beforeEach.forEach(hook => {
+ this.suite.beforeEach(hook);
+ });
+ afterAll.forEach(hook => {
+ this.suite.afterAll(hook);
+ });
+ afterEach.forEach(hook => {
+ this.suite.afterEach(hook);
+ });
+ return this;
+ };
+
+ /**
+ * Toggles parallel mode.
+ *
+ * Must be run before calling {@link Mocha#run}. Changes the `Runner` class to
+ * use; also enables lazy file loading if not already done so.
+ *
+ * Warning: when passed `false` and lazy loading has been enabled _via any means_ (including calling `parallelMode(true)`), this method will _not_ disable lazy loading. Lazy loading is a prerequisite for parallel
+ * mode, but parallel mode is _not_ a prerequisite for lazy loading!
+ * @param {boolean} [enable] - If `true`, enable; otherwise disable.
+ * @throws If run in browser
+ * @throws If Mocha not in `INIT` state
+ * @returns {Mocha}
+ * @chainable
+ * @public
+ */
+ Mocha.prototype.parallelMode = function parallelMode(enable = true) {
+ if (utils.isBrowser()) {
+ throw createUnsupportedError('parallel mode is only supported in Node.js');
+ }
+ const parallel = Boolean(enable);
+ if (
+ parallel === this.options.parallel &&
+ this._lazyLoadFiles &&
+ this._runnerClass !== exports.Runner
+ ) {
+ return this;
+ }
+ if (this._state !== mochaStates.INIT) {
+ throw createUnsupportedError(
+ 'cannot change parallel mode after having called run()'
+ );
+ }
+ this.options.parallel = parallel;
+
+ // swap Runner class
+ this._runnerClass = parallel
+ ? require$$11
+ : exports.Runner;
+
+ // lazyLoadFiles may have been set `true` otherwise (for ESM loading),
+ // so keep `true` if so.
+ return this.lazyLoadFiles(this._lazyLoadFiles || parallel);
+ };
+
+ /**
+ * Disables implicit call to {@link Mocha#loadFiles} in {@link Mocha#run}. This
+ * setting is used by watch mode, parallel mode, and for loading ESM files.
+ * @todo This should throw if we've already loaded files; such behavior
+ * necessitates adding a new state.
+ * @param {boolean} [enable] - If `true`, disable eager loading of files in
+ * {@link Mocha#run}
+ * @chainable
+ * @public
+ */
+ Mocha.prototype.lazyLoadFiles = function lazyLoadFiles(enable) {
+ this._lazyLoadFiles = enable === true;
+ debug('set lazy load to %s', enable);
+ return this;
+ };
+
+ /**
+ * Configures one or more global setup fixtures.
+ *
+ * If given no parameters, _unsets_ any previously-set fixtures.
+ * @chainable
+ * @public
+ * @param {MochaGlobalFixture|MochaGlobalFixture[]} [setupFns] - Global setup fixture(s)
+ * @returns {Mocha}
+ */
+ Mocha.prototype.globalSetup = function globalSetup(setupFns = []) {
+ setupFns = utils.castArray(setupFns);
+ this.options.globalSetup = setupFns;
+ debug('configured %d global setup functions', setupFns.length);
+ return this;
+ };
+
+ /**
+ * Configures one or more global teardown fixtures.
+ *
+ * If given no parameters, _unsets_ any previously-set fixtures.
+ * @chainable
+ * @public
+ * @param {MochaGlobalFixture|MochaGlobalFixture[]} [teardownFns] - Global teardown fixture(s)
+ * @returns {Mocha}
+ */
+ Mocha.prototype.globalTeardown = function globalTeardown(teardownFns = []) {
+ teardownFns = utils.castArray(teardownFns);
+ this.options.globalTeardown = teardownFns;
+ debug('configured %d global teardown functions', teardownFns.length);
+ return this;
+ };
+
+ /**
+ * Run any global setup fixtures sequentially, if any.
+ *
+ * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalSetup` option is `false`; see {@link Mocha#enableGlobalSetup}.
+ *
+ * The context object this function resolves with should be consumed by {@link Mocha#runGlobalTeardown}.
+ * @param {object} [context] - Context object if already have one
+ * @public
+ * @returns {Promise<object>} Context object
+ */
+ Mocha.prototype.runGlobalSetup = async function runGlobalSetup(context = {}) {
+ const {globalSetup} = this.options;
+ if (globalSetup && globalSetup.length) {
+ debug('run(): global setup starting');
+ await this._runGlobalFixtures(globalSetup, context);
+ debug('run(): global setup complete');
+ }
+ return context;
+ };
+
+ /**
+ * Run any global teardown fixtures sequentially, if any.
+ *
+ * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalTeardown` option is `false`; see {@link Mocha#enableGlobalTeardown}.
+ *
+ * Should be called with context object returned by {@link Mocha#runGlobalSetup}, if applicable.
+ * @param {object} [context] - Context object if already have one
+ * @public
+ * @returns {Promise<object>} Context object
+ */
+ Mocha.prototype.runGlobalTeardown = async function runGlobalTeardown(
+ context = {}
+ ) {
+ const {globalTeardown} = this.options;
+ if (globalTeardown && globalTeardown.length) {
+ debug('run(): global teardown starting');
+ await this._runGlobalFixtures(globalTeardown, context);
+ }
+ debug('run(): global teardown complete');
+ return context;
+ };
+
+ /**
+ * Run global fixtures sequentially with context `context`
+ * @private
+ * @param {MochaGlobalFixture[]} [fixtureFns] - Fixtures to run
+ * @param {object} [context] - context object
+ * @returns {Promise<object>} context object
+ */
+ Mocha.prototype._runGlobalFixtures = async function _runGlobalFixtures(
+ fixtureFns = [],
+ context = {}
+ ) {
+ for await (const fixtureFn of fixtureFns) {
+ await fixtureFn.call(context);
+ }
+ return context;
+ };
+
+ /**
+ * Toggle execution of any global setup fixture(s)
+ *
+ * @chainable
+ * @public
+ * @param {boolean } [enabled=true] - If `false`, do not run global setup fixture
+ * @returns {Mocha}
+ */
+ Mocha.prototype.enableGlobalSetup = function enableGlobalSetup(enabled = true) {
+ this.options.enableGlobalSetup = Boolean(enabled);
+ return this;
+ };
+
+ /**
+ * Toggle execution of any global teardown fixture(s)
+ *
+ * @chainable
+ * @public
+ * @param {boolean } [enabled=true] - If `false`, do not run global teardown fixture
+ * @returns {Mocha}
+ */
+ Mocha.prototype.enableGlobalTeardown = function enableGlobalTeardown(
+ enabled = true
+ ) {
+ this.options.enableGlobalTeardown = Boolean(enabled);
+ return this;
+ };
+
+ /**
+ * Returns `true` if one or more global setup fixtures have been supplied.
+ * @public
+ * @returns {boolean}
+ */
+ Mocha.prototype.hasGlobalSetupFixtures = function hasGlobalSetupFixtures() {
+ return Boolean(this.options.globalSetup.length);
+ };
+
+ /**
+ * Returns `true` if one or more global teardown fixtures have been supplied.
+ * @public
+ * @returns {boolean}
+ */
+ Mocha.prototype.hasGlobalTeardownFixtures = function hasGlobalTeardownFixtures() {
+ return Boolean(this.options.globalTeardown.length);
+ };
+
+ /**
+ * An alternative way to define root hooks that works with parallel runs.
+ * @typedef {Object} MochaRootHookObject
+ * @property {Function|Function[]} [beforeAll] - "Before all" hook(s)
+ * @property {Function|Function[]} [beforeEach] - "Before each" hook(s)
+ * @property {Function|Function[]} [afterAll] - "After all" hook(s)
+ * @property {Function|Function[]} [afterEach] - "After each" hook(s)
+ */
+
+ /**
+ * An function that returns a {@link MochaRootHookObject}, either sync or async.
+ @callback MochaRootHookFunction
+ * @returns {MochaRootHookObject|Promise<MochaRootHookObject>}
+ */
+
+ /**
+ * A function that's invoked _once_ which is either sync or async.
+ * Can be a "teardown" or "setup". These will all share the same context.
+ * @callback MochaGlobalFixture
+ * @returns {void|Promise<void>}
+ */
+
+ /**
+ * An object making up all necessary parts of a plugin loader and aggregator
+ * @typedef {Object} PluginDefinition
+ * @property {string} exportName - Named export to use
+ * @property {string} [optionName] - Option name for Mocha constructor (use `exportName` if omitted)
+ * @property {PluginValidator} [validate] - Validator function
+ * @property {PluginFinalizer} [finalize] - Finalizer/aggregator function
+ */
+
+ /**
+ * A (sync) function to assert a user-supplied plugin implementation is valid.
+ *
+ * Defined in a {@link PluginDefinition}.
+
+ * @callback PluginValidator
+ * @param {*} value - Value to check
+ * @this {PluginDefinition}
+ * @returns {void}
+ */
+
+ /**
+ * A function to finalize plugins impls of a particular ilk
+ * @callback PluginFinalizer
+ * @param {Array<*>} impls - User-supplied implementations
+ * @returns {Promise<*>|*}
+ */
+ });
+
+ /* eslint no-unused-vars: off */
+ /* eslint-env commonjs */
+
+ /**
+ * Shim process.stdout.
+ */
+
+ process$1.stdout = browserStdout({label: false});
+
+
+
+
+
+ /**
+ * Create a Mocha instance.
+ *
+ * @return {undefined}
+ */
+
+ var mocha = new mocha$1({reporter: 'html'});
+
+ /**
+ * Save timer references to avoid Sinon interfering (see GH-237).
+ */
+
+ var Date$1 = commonjsGlobal.Date;
+ var setTimeout$1 = commonjsGlobal.setTimeout;
+ commonjsGlobal.setInterval;
+ commonjsGlobal.clearTimeout;
+ commonjsGlobal.clearInterval;
+
+ var uncaughtExceptionHandlers = [];
+
+ var originalOnerrorHandler = commonjsGlobal.onerror;
+
+ /**
+ * Remove uncaughtException listener.
+ * Revert to original onerror handler if previously defined.
+ */
+
+ process$1.removeListener = function(e, fn) {
+ if (e === 'uncaughtException') {
+ if (originalOnerrorHandler) {
+ commonjsGlobal.onerror = originalOnerrorHandler;
+ } else {
+ commonjsGlobal.onerror = function() {};
+ }
+ var i = uncaughtExceptionHandlers.indexOf(fn);
+ if (i !== -1) {
+ uncaughtExceptionHandlers.splice(i, 1);
+ }
+ }
+ };
+
+ /**
+ * Implements listenerCount for 'uncaughtException'.
+ */
+
+ process$1.listenerCount = function(name) {
+ if (name === 'uncaughtException') {
+ return uncaughtExceptionHandlers.length;
+ }
+ return 0;
+ };
+
+ /**
+ * Implements uncaughtException listener.
+ */
+
+ process$1.on = function(e, fn) {
+ if (e === 'uncaughtException') {
+ commonjsGlobal.onerror = function(err, url, line) {
+ fn(new Error(err + ' (' + url + ':' + line + ')'));
+ return !mocha.options.allowUncaught;
+ };
+ uncaughtExceptionHandlers.push(fn);
+ }
+ };
+
+ process$1.listeners = function(e) {
+ if (e === 'uncaughtException') {
+ return uncaughtExceptionHandlers;
+ }
+ return [];
+ };
+
+ // The BDD UI is registered by default, but no UI will be functional in the
+ // browser without an explicit call to the overridden `mocha.ui` (see below).
+ // Ensure that this default UI does not expose its methods to the global scope.
+ mocha.suite.removeAllListeners('pre-require');
+
+ var immediateQueue = [];
+ var immediateTimeout;
+
+ function timeslice() {
+ var immediateStart = new Date$1().getTime();
+ while (immediateQueue.length && new Date$1().getTime() - immediateStart < 100) {
+ immediateQueue.shift()();
+ }
+ if (immediateQueue.length) {
+ immediateTimeout = setTimeout$1(timeslice, 0);
+ } else {
+ immediateTimeout = null;
+ }
+ }
+
+ /**
+ * High-performance override of Runner.immediately.
+ */
+
+ mocha$1.Runner.immediately = function(callback) {
+ immediateQueue.push(callback);
+ if (!immediateTimeout) {
+ immediateTimeout = setTimeout$1(timeslice, 0);
+ }
+ };
+
+ /**
+ * Function to allow assertion libraries to throw errors directly into mocha.
+ * This is useful when running tests in a browser because window.onerror will
+ * only receive the 'message' attribute of the Error.
+ */
+ mocha.throwError = function(err) {
+ uncaughtExceptionHandlers.forEach(function(fn) {
+ fn(err);
+ });
+ throw err;
+ };
+
+ /**
+ * Override ui to ensure that the ui functions are initialized.
+ * Normally this would happen in Mocha.prototype.loadFiles.
+ */
+
+ mocha.ui = function(ui) {
+ mocha$1.prototype.ui.call(this, ui);
+ this.suite.emit('pre-require', commonjsGlobal, null, this);
+ return this;
+ };
+
+ /**
+ * Setup mocha with the given setting options.
+ */
+
+ mocha.setup = function(opts) {
+ if (typeof opts === 'string') {
+ opts = {ui: opts};
+ }
+ if (opts.delay === true) {
+ this.delay();
+ }
+ var self = this;
+ Object.keys(opts)
+ .filter(function(opt) {
+ return opt !== 'delay';
+ })
+ .forEach(function(opt) {
+ if (Object.prototype.hasOwnProperty.call(opts, opt)) {
+ self[opt](opts[opt]);
+ }
+ });
+ return this;
+ };
+
+ /**
+ * Run mocha, returning the Runner.
+ */
+
+ mocha.run = function(fn) {
+ var options = mocha.options;
+ mocha.globals('location');
+
+ var query = parseQuery(commonjsGlobal.location.search || '');
+ if (query.grep) {
+ mocha.grep(query.grep);
+ }
+ if (query.fgrep) {
+ mocha.fgrep(query.fgrep);
+ }
+ if (query.invert) {
+ mocha.invert();
+ }
+
+ return mocha$1.prototype.run.call(mocha, function(err) {
+ // The DOM Document is not available in Web Workers.
+ var document = commonjsGlobal.document;
+ if (
+ document &&
+ document.getElementById('mocha') &&
+ options.noHighlighting !== true
+ ) {
+ highlightTags('code');
+ }
+ if (fn) {
+ fn(err);
+ }
+ });
+ };
+
+ /**
+ * Expose the process shim.
+ * https://github.com/mochajs/mocha/pull/916
+ */
+
+ mocha$1.process = process$1;
+
+ /**
+ * Expose mocha.
+ */
+
+ commonjsGlobal.Mocha = mocha$1;
+ commonjsGlobal.mocha = mocha;
+
+ // this allows test/acceptance/required-tokens.js to pass; thus,
+ // you can now do `const describe = require('mocha').describe` in a
+ // browser context (assuming browserification). should fix #880
+ var browserEntry = Object.assign(mocha, commonjsGlobal);
+
+ return browserEntry;
+
+})));
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js
index eec9b97fbe0..8778c0a8cd4 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js
@@ -1,4 +1,4 @@
-// mocha@9.0.0 transpiled to javascript ES5
+// mocha@9.1.1 transpiled to javascript ES5
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
@@ -119,19 +119,97 @@
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
- // `ToPrimitive` abstract operation
- // https://tc39.es/ecma262/#sec-toprimitive
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- var toPrimitive = function (input, PREFERRED_STRING) {
- if (!isObject$1(input)) return input;
+ var aFunction$1 = function (variable) {
+ return typeof variable == 'function' ? variable : undefined;
+ };
+
+ var getBuiltIn = function (namespace, method) {
+ return arguments.length < 2 ? aFunction$1(global_1[namespace]) : global_1[namespace] && global_1[namespace][method];
+ };
+
+ var engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';
+
+ var process$5 = global_1.process;
+ var Deno = global_1.Deno;
+ var versions$2 = process$5 && process$5.versions || Deno && Deno.version;
+ var v8 = versions$2 && versions$2.v8;
+ var match, version$3;
+
+ if (v8) {
+ match = v8.split('.');
+ version$3 = match[0] < 4 ? 1 : match[0] + match[1];
+ } else if (engineUserAgent) {
+ match = engineUserAgent.match(/Edge\/(\d+)/);
+ if (!match || match[1] >= 74) {
+ match = engineUserAgent.match(/Chrome\/(\d+)/);
+ if (match) version$3 = match[1];
+ }
+ }
+
+ var engineV8Version = version$3 && +version$3;
+
+ /* eslint-disable es/no-symbol -- required for testing */
+
+
+
+ // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
+ var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
+ var symbol = Symbol();
+ // Chrome 38 Symbol has incorrect toString conversion
+ // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
+ return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
+ // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
+ !Symbol.sham && engineV8Version && engineV8Version < 41;
+ });
+
+ /* eslint-disable es/no-symbol -- required for testing */
+
+
+ var useSymbolAsUid = nativeSymbol
+ && !Symbol.sham
+ && typeof Symbol.iterator == 'symbol';
+
+ var isSymbol$1 = useSymbolAsUid ? function (it) {
+ return typeof it == 'symbol';
+ } : function (it) {
+ var $Symbol = getBuiltIn('Symbol');
+ return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;
+ };
+
+ // `OrdinaryToPrimitive` abstract operation
+ // https://tc39.es/ecma262/#sec-ordinarytoprimitive
+ var ordinaryToPrimitive = function (input, pref) {
var fn, val;
- if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$1(val = fn.call(input))) return val;
+ if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject$1(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject$1(val = fn.call(input))) return val;
- if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$1(val = fn.call(input))) return val;
+ if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject$1(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
+ var setGlobal = function (key, value) {
+ try {
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
+ Object.defineProperty(global_1, key, { value: value, configurable: true, writable: true });
+ } catch (error) {
+ global_1[key] = value;
+ } return value;
+ };
+
+ var SHARED = '__core-js_shared__';
+ var store$1 = global_1[SHARED] || setGlobal(SHARED, {});
+
+ var sharedStore = store$1;
+
+ var shared = createCommonjsModule(function (module) {
+ (module.exports = function (key, value) {
+ return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
+ })('versions', []).push({
+ version: '3.16.3',
+ mode: 'global',
+ copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
+ });
+ });
+
// `ToObject` abstract operation
// https://tc39.es/ecma262/#sec-toobject
var toObject = function (argument) {
@@ -144,6 +222,52 @@
return hasOwnProperty$1.call(toObject(it), key);
};
+ var id = 0;
+ var postfix = Math.random();
+
+ var uid = function (key) {
+ return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
+ };
+
+ var WellKnownSymbolsStore$1 = shared('wks');
+ var Symbol$1 = global_1.Symbol;
+ var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;
+
+ var wellKnownSymbol = function (name) {
+ if (!has$1(WellKnownSymbolsStore$1, name) || !(nativeSymbol || typeof WellKnownSymbolsStore$1[name] == 'string')) {
+ if (nativeSymbol && has$1(Symbol$1, name)) {
+ WellKnownSymbolsStore$1[name] = Symbol$1[name];
+ } else {
+ WellKnownSymbolsStore$1[name] = createWellKnownSymbol('Symbol.' + name);
+ }
+ } return WellKnownSymbolsStore$1[name];
+ };
+
+ var TO_PRIMITIVE$1 = wellKnownSymbol('toPrimitive');
+
+ // `ToPrimitive` abstract operation
+ // https://tc39.es/ecma262/#sec-toprimitive
+ var toPrimitive = function (input, pref) {
+ if (!isObject$1(input) || isSymbol$1(input)) return input;
+ var exoticToPrim = input[TO_PRIMITIVE$1];
+ var result;
+ if (exoticToPrim !== undefined) {
+ if (pref === undefined) pref = 'default';
+ result = exoticToPrim.call(input, pref);
+ if (!isObject$1(result) || isSymbol$1(result)) return result;
+ throw TypeError("Can't convert object to primitive value");
+ }
+ if (pref === undefined) pref = 'number';
+ return ordinaryToPrimitive(input, pref);
+ };
+
+ // `ToPropertyKey` abstract operation
+ // https://tc39.es/ecma262/#sec-topropertykey
+ var toPropertyKey = function (argument) {
+ var key = toPrimitive(argument, 'string');
+ return isSymbol$1(key) ? key : String(key);
+ };
+
var document$3 = global_1.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject$1(document$3) && isObject$1(document$3.createElement);
@@ -167,7 +291,7 @@
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
var f$6 = descriptors ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
- P = toPrimitive(P, true);
+ P = toPropertyKey(P);
if (ie8DomDefine) try {
return $getOwnPropertyDescriptor$1(O, P);
} catch (error) { /* empty */ }
@@ -191,7 +315,7 @@
// https://tc39.es/ecma262/#sec-object.defineproperty
var f$5 = descriptors ? $defineProperty$1 : function defineProperty(O, P, Attributes) {
anObject(O);
- P = toPrimitive(P, true);
+ P = toPropertyKey(P);
anObject(Attributes);
if (ie8DomDefine) try {
return $defineProperty$1(O, P, Attributes);
@@ -212,19 +336,6 @@
return object;
};
- var setGlobal = function (key, value) {
- try {
- createNonEnumerableProperty(global_1, key, value);
- } catch (error) {
- global_1[key] = value;
- } return value;
- };
-
- var SHARED = '__core-js_shared__';
- var store$1 = global_1[SHARED] || setGlobal(SHARED, {});
-
- var sharedStore = store$1;
-
var functionToString = Function.toString;
// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
@@ -240,23 +351,6 @@
var nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource(WeakMap$1));
- var shared = createCommonjsModule(function (module) {
- (module.exports = function (key, value) {
- return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
- })('versions', []).push({
- version: '3.14.0',
- mode: 'global',
- copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
- });
- });
-
- var id = 0;
- var postfix = Math.random();
-
- var uid = function (key) {
- return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
- };
-
var keys$4 = shared('keys');
var sharedKey = function (key) {
@@ -360,24 +454,13 @@
});
});
- var path$1 = global_1;
-
- var aFunction$1 = function (variable) {
- return typeof variable == 'function' ? variable : undefined;
- };
-
- var getBuiltIn = function (namespace, method) {
- return arguments.length < 2 ? aFunction$1(path$1[namespace]) || aFunction$1(global_1[namespace])
- : path$1[namespace] && path$1[namespace][method] || global_1[namespace] && global_1[namespace][method];
- };
-
var ceil = Math.ceil;
- var floor$5 = Math.floor;
+ var floor$6 = Math.floor;
// `ToInteger` abstract operation
// https://tc39.es/ecma262/#sec-tointeger
var toInteger = function (argument) {
- return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$5 : ceil)(argument);
+ return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$6 : ceil)(argument);
};
var min$7 = Math.min;
@@ -566,6 +649,153 @@
}
};
+ // `IsArray` abstract operation
+ // https://tc39.es/ecma262/#sec-isarray
+ // eslint-disable-next-line es/no-array-isarray -- safe
+ var isArray$3 = Array.isArray || function isArray(arg) {
+ return classofRaw(arg) == 'Array';
+ };
+
+ var SPECIES$6 = wellKnownSymbol('species');
+
+ // a part of `ArraySpeciesCreate` abstract operation
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
+ var arraySpeciesConstructor = function (originalArray) {
+ var C;
+ if (isArray$3(originalArray)) {
+ C = originalArray.constructor;
+ // cross-realm fallback
+ if (typeof C == 'function' && (C === Array || isArray$3(C.prototype))) C = undefined;
+ else if (isObject$1(C)) {
+ C = C[SPECIES$6];
+ if (C === null) C = undefined;
+ }
+ } return C === undefined ? Array : C;
+ };
+
+ // `ArraySpeciesCreate` abstract operation
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
+ var arraySpeciesCreate = function (originalArray, length) {
+ return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
+ };
+
+ var createProperty = function (object, key, value) {
+ var propertyKey = toPropertyKey(key);
+ if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
+ else object[propertyKey] = value;
+ };
+
+ var SPECIES$5 = wellKnownSymbol('species');
+
+ var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
+ // We can't use this feature detection in V8 since it causes
+ // deoptimization and serious performance degradation
+ // https://github.com/zloirock/core-js/issues/677
+ return engineV8Version >= 51 || !fails(function () {
+ var array = [];
+ var constructor = array.constructor = {};
+ constructor[SPECIES$5] = function () {
+ return { foo: 1 };
+ };
+ return array[METHOD_NAME](Boolean).foo !== 1;
+ });
+ };
+
+ var HAS_SPECIES_SUPPORT$3 = arrayMethodHasSpeciesSupport('splice');
+
+ var max$2 = Math.max;
+ var min$5 = Math.min;
+ var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF;
+ var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
+
+ // `Array.prototype.splice` method
+ // https://tc39.es/ecma262/#sec-array.prototype.splice
+ // with adding support of @@species
+ _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$3 }, {
+ splice: function splice(start, deleteCount /* , ...items */) {
+ var O = toObject(this);
+ var len = toLength(O.length);
+ var actualStart = toAbsoluteIndex(start, len);
+ var argumentsLength = arguments.length;
+ var insertCount, actualDeleteCount, A, k, from, to;
+ if (argumentsLength === 0) {
+ insertCount = actualDeleteCount = 0;
+ } else if (argumentsLength === 1) {
+ insertCount = 0;
+ actualDeleteCount = len - actualStart;
+ } else {
+ insertCount = argumentsLength - 2;
+ actualDeleteCount = min$5(max$2(toInteger(deleteCount), 0), len - actualStart);
+ }
+ if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER$1) {
+ throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);
+ }
+ A = arraySpeciesCreate(O, actualDeleteCount);
+ for (k = 0; k < actualDeleteCount; k++) {
+ from = actualStart + k;
+ if (from in O) createProperty(A, k, O[from]);
+ }
+ A.length = actualDeleteCount;
+ if (insertCount < actualDeleteCount) {
+ for (k = actualStart; k < len - actualDeleteCount; k++) {
+ from = k + actualDeleteCount;
+ to = k + insertCount;
+ if (from in O) O[to] = O[from];
+ else delete O[to];
+ }
+ for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];
+ } else if (insertCount > actualDeleteCount) {
+ for (k = len - actualDeleteCount; k > actualStart; k--) {
+ from = k + actualDeleteCount - 1;
+ to = k + insertCount - 1;
+ if (from in O) O[to] = O[from];
+ else delete O[to];
+ }
+ }
+ for (k = 0; k < insertCount; k++) {
+ O[k + actualStart] = arguments[k + 2];
+ }
+ O.length = len - actualDeleteCount + insertCount;
+ return A;
+ }
+ });
+
+ // iterable DOM collections
+ // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
+ var domIterables = {
+ CSSRuleList: 0,
+ CSSStyleDeclaration: 0,
+ CSSValueList: 0,
+ ClientRectList: 0,
+ DOMRectList: 0,
+ DOMStringList: 0,
+ DOMTokenList: 1,
+ DataTransferItemList: 0,
+ FileList: 0,
+ HTMLAllCollection: 0,
+ HTMLCollection: 0,
+ HTMLFormElement: 0,
+ HTMLSelectElement: 0,
+ MediaList: 0,
+ MimeTypeArray: 0,
+ NamedNodeMap: 0,
+ NodeList: 1,
+ PaintRequestList: 0,
+ Plugin: 0,
+ PluginArray: 0,
+ SVGLengthList: 0,
+ SVGNumberList: 0,
+ SVGPathSegList: 0,
+ SVGPointList: 0,
+ SVGStringList: 0,
+ SVGTransformList: 0,
+ SourceBufferList: 0,
+ StyleSheetList: 0,
+ TextTrackCueList: 0,
+ TextTrackList: 0,
+ TouchList: 0
+ };
+
var aFunction = function (it) {
if (typeof it != 'function') {
throw TypeError(String(it) + ' is not a function');
@@ -595,95 +825,16 @@
};
};
- // `IsArray` abstract operation
- // https://tc39.es/ecma262/#sec-isarray
- // eslint-disable-next-line es/no-array-isarray -- safe
- var isArray$3 = Array.isArray || function isArray(arg) {
- return classofRaw(arg) == 'Array';
- };
-
- var engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';
-
- var process$4 = global_1.process;
- var versions$1 = process$4 && process$4.versions;
- var v8 = versions$1 && versions$1.v8;
- var match, version$2;
-
- if (v8) {
- match = v8.split('.');
- version$2 = match[0] < 4 ? 1 : match[0] + match[1];
- } else if (engineUserAgent) {
- match = engineUserAgent.match(/Edge\/(\d+)/);
- if (!match || match[1] >= 74) {
- match = engineUserAgent.match(/Chrome\/(\d+)/);
- if (match) version$2 = match[1];
- }
- }
-
- var engineV8Version = version$2 && +version$2;
-
- /* eslint-disable es/no-symbol -- required for testing */
-
-
-
- // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
- var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
- var symbol = Symbol();
- // Chrome 38 Symbol has incorrect toString conversion
- // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
- return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
- // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
- !Symbol.sham && engineV8Version && engineV8Version < 41;
- });
-
- /* eslint-disable es/no-symbol -- required for testing */
-
-
- var useSymbolAsUid = nativeSymbol
- && !Symbol.sham
- && typeof Symbol.iterator == 'symbol';
-
- var WellKnownSymbolsStore$1 = shared('wks');
- var Symbol$1 = global_1.Symbol;
- var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;
-
- var wellKnownSymbol = function (name) {
- if (!has$1(WellKnownSymbolsStore$1, name) || !(nativeSymbol || typeof WellKnownSymbolsStore$1[name] == 'string')) {
- if (nativeSymbol && has$1(Symbol$1, name)) {
- WellKnownSymbolsStore$1[name] = Symbol$1[name];
- } else {
- WellKnownSymbolsStore$1[name] = createWellKnownSymbol('Symbol.' + name);
- }
- } return WellKnownSymbolsStore$1[name];
- };
-
- var SPECIES$6 = wellKnownSymbol('species');
-
- // `ArraySpeciesCreate` abstract operation
- // https://tc39.es/ecma262/#sec-arrayspeciescreate
- var arraySpeciesCreate = function (originalArray, length) {
- var C;
- if (isArray$3(originalArray)) {
- C = originalArray.constructor;
- // cross-realm fallback
- if (typeof C == 'function' && (C === Array || isArray$3(C.prototype))) C = undefined;
- else if (isObject$1(C)) {
- C = C[SPECIES$6];
- if (C === null) C = undefined;
- }
- } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
- };
-
var push = [].push;
- // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
+ // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
var createMethod$4 = function (TYPE) {
var IS_MAP = TYPE == 1;
var IS_FILTER = TYPE == 2;
var IS_SOME = TYPE == 3;
var IS_EVERY = TYPE == 4;
var IS_FIND_INDEX = TYPE == 6;
- var IS_FILTER_OUT = TYPE == 7;
+ var IS_FILTER_REJECT = TYPE == 7;
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
return function ($this, callbackfn, that, specificCreate) {
var O = toObject($this);
@@ -692,7 +843,7 @@
var length = toLength(self.length);
var index = 0;
var create = specificCreate || arraySpeciesCreate;
- var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
+ var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
var value, result;
for (;length > index; index++) if (NO_HOLES || index in self) {
value = self[index];
@@ -706,7 +857,7 @@
case 2: push.call(target, value); // filter
} else switch (TYPE) {
case 4: return false; // every
- case 7: push.call(target, value); // filterOut
+ case 7: push.call(target, value); // filterReject
}
}
}
@@ -736,103 +887,53 @@
// `Array.prototype.findIndex` method
// https://tc39.es/ecma262/#sec-array.prototype.findIndex
findIndex: createMethod$4(6),
- // `Array.prototype.filterOut` method
+ // `Array.prototype.filterReject` method
// https://github.com/tc39/proposal-array-filtering
- filterOut: createMethod$4(7)
+ filterReject: createMethod$4(7)
};
- var SPECIES$5 = wellKnownSymbol('species');
-
- var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
- // We can't use this feature detection in V8 since it causes
- // deoptimization and serious performance degradation
- // https://github.com/zloirock/core-js/issues/677
- return engineV8Version >= 51 || !fails(function () {
- var array = [];
- var constructor = array.constructor = {};
- constructor[SPECIES$5] = function () {
- return { foo: 1 };
- };
- return array[METHOD_NAME](Boolean).foo !== 1;
+ var arrayMethodIsStrict = function (METHOD_NAME, argument) {
+ var method = [][METHOD_NAME];
+ return !!method && fails(function () {
+ // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
+ method.call(null, argument || function () { throw 1; }, 1);
});
};
- var $filter$1 = arrayIteration.filter;
+ var $forEach$2 = arrayIteration.forEach;
- var HAS_SPECIES_SUPPORT$3 = arrayMethodHasSpeciesSupport('filter');
+ var STRICT_METHOD$3 = arrayMethodIsStrict('forEach');
- // `Array.prototype.filter` method
- // https://tc39.es/ecma262/#sec-array.prototype.filter
- // with adding support of @@species
- _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$3 }, {
- filter: function filter(callbackfn /* , thisArg */) {
- return $filter$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ // `Array.prototype.forEach` method implementation
+ // https://tc39.es/ecma262/#sec-array.prototype.foreach
+ var arrayForEach = !STRICT_METHOD$3 ? function forEach(callbackfn /* , thisArg */) {
+ return $forEach$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ // eslint-disable-next-line es/no-array-prototype-foreach -- safe
+ } : [].forEach;
+
+ for (var COLLECTION_NAME$1 in domIterables) {
+ var Collection$1 = global_1[COLLECTION_NAME$1];
+ var CollectionPrototype$1 = Collection$1 && Collection$1.prototype;
+ // some Chrome versions have non-configurable methods on DOMTokenList
+ if (CollectionPrototype$1 && CollectionPrototype$1.forEach !== arrayForEach) try {
+ createNonEnumerableProperty(CollectionPrototype$1, 'forEach', arrayForEach);
+ } catch (error) {
+ CollectionPrototype$1.forEach = arrayForEach;
}
- });
+ }
- var createProperty = function (object, key, value) {
- var propertyKey = toPrimitive(key);
- if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
- else object[propertyKey] = value;
- };
+ var $filter$1 = arrayIteration.filter;
- var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport('splice');
- var max$2 = Math.max;
- var min$5 = Math.min;
- var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF;
- var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
+ var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport('filter');
- // `Array.prototype.splice` method
- // https://tc39.es/ecma262/#sec-array.prototype.splice
+ // `Array.prototype.filter` method
+ // https://tc39.es/ecma262/#sec-array.prototype.filter
// with adding support of @@species
_export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, {
- splice: function splice(start, deleteCount /* , ...items */) {
- var O = toObject(this);
- var len = toLength(O.length);
- var actualStart = toAbsoluteIndex(start, len);
- var argumentsLength = arguments.length;
- var insertCount, actualDeleteCount, A, k, from, to;
- if (argumentsLength === 0) {
- insertCount = actualDeleteCount = 0;
- } else if (argumentsLength === 1) {
- insertCount = 0;
- actualDeleteCount = len - actualStart;
- } else {
- insertCount = argumentsLength - 2;
- actualDeleteCount = min$5(max$2(toInteger(deleteCount), 0), len - actualStart);
- }
- if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER$1) {
- throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);
- }
- A = arraySpeciesCreate(O, actualDeleteCount);
- for (k = 0; k < actualDeleteCount; k++) {
- from = actualStart + k;
- if (from in O) createProperty(A, k, O[from]);
- }
- A.length = actualDeleteCount;
- if (insertCount < actualDeleteCount) {
- for (k = actualStart; k < len - actualDeleteCount; k++) {
- from = k + actualDeleteCount;
- to = k + insertCount;
- if (from in O) O[to] = O[from];
- else delete O[to];
- }
- for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];
- } else if (insertCount > actualDeleteCount) {
- for (k = len - actualDeleteCount; k > actualStart; k--) {
- from = k + actualDeleteCount - 1;
- to = k + insertCount - 1;
- if (from in O) O[to] = O[from];
- else delete O[to];
- }
- }
- for (k = 0; k < insertCount; k++) {
- O[k + actualStart] = arguments[k + 2];
- }
- O.length = len - actualDeleteCount + insertCount;
- return A;
+ filter: function filter(callbackfn /* , thisArg */) {
+ return $filter$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
@@ -843,59 +944,6 @@
return objectKeysInternal(O, enumBugKeys);
};
- // eslint-disable-next-line es/no-object-assign -- safe
- var $assign = Object.assign;
- // eslint-disable-next-line es/no-object-defineproperty -- required for testing
- var defineProperty$9 = Object.defineProperty;
-
- // `Object.assign` method
- // https://tc39.es/ecma262/#sec-object.assign
- var objectAssign = !$assign || fails(function () {
- // should have correct order of operations (Edge bug)
- if (descriptors && $assign({ b: 1 }, $assign(defineProperty$9({}, 'a', {
- enumerable: true,
- get: function () {
- defineProperty$9(this, 'b', {
- value: 3,
- enumerable: false
- });
- }
- }), { b: 2 })).b !== 1) return true;
- // should work with symbols and should have deterministic property order (V8 bug)
- var A = {};
- var B = {};
- // eslint-disable-next-line es/no-symbol -- safe
- var symbol = Symbol();
- var alphabet = 'abcdefghijklmnopqrst';
- A[symbol] = 7;
- alphabet.split('').forEach(function (chr) { B[chr] = chr; });
- return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;
- }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`
- var T = toObject(target);
- var argumentsLength = arguments.length;
- var index = 1;
- var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
- var propertyIsEnumerable = objectPropertyIsEnumerable.f;
- while (argumentsLength > index) {
- var S = indexedObject(arguments[index++]);
- var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
- var length = keys.length;
- var j = 0;
- var key;
- while (length > j) {
- key = keys[j++];
- if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key];
- }
- } return T;
- } : $assign;
-
- // `Object.assign` method
- // https://tc39.es/ecma262/#sec-object.assign
- // eslint-disable-next-line es/no-object-assign -- required for testing
- _export({ target: 'Object', stat: true, forced: Object.assign !== objectAssign }, {
- assign: objectAssign
- });
-
var FAILS_ON_PRIMITIVES$4 = fails(function () { objectKeys(1); });
// `Object.keys` method
@@ -906,6 +954,11 @@
}
});
+ var toString_1 = function (argument) {
+ if (isSymbol$1(argument)) throw TypeError('Cannot convert a Symbol value to a string');
+ return String(argument);
+ };
+
// `RegExp.prototype.flags` getter implementation
// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
var regexpFlags = function () {
@@ -920,22 +973,18 @@
return result;
};
- // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
- // so we use an intermediate function.
- function RE(s, f) {
- return RegExp(s, f);
- }
+ // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
+ var $RegExp$2 = global_1.RegExp;
var UNSUPPORTED_Y$3 = fails(function () {
- // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
- var re = RE('a', 'y');
+ var re = $RegExp$2('a', 'y');
re.lastIndex = 2;
return re.exec('abcd') != null;
});
var BROKEN_CARET = fails(function () {
// https://bugzilla.mozilla.org/show_bug.cgi?id=773687
- var re = RE('^r', 'gy');
+ var re = $RegExp$2('^r', 'gy');
re.lastIndex = 2;
return re.exec('str') != null;
});
@@ -945,12 +994,132 @@
BROKEN_CARET: BROKEN_CARET
};
- /* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
+ // `Object.defineProperties` method
+ // https://tc39.es/ecma262/#sec-object.defineproperties
+ // eslint-disable-next-line es/no-object-defineproperties -- safe
+ var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
+ anObject(O);
+ var keys = objectKeys(Properties);
+ var length = keys.length;
+ var index = 0;
+ var key;
+ while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
+ return O;
+ };
+
+ var html$1 = getBuiltIn('document', 'documentElement');
+
+ /* global ActiveXObject -- old IE, WSH */
+
+
+
+
+
+
+
+
+ var GT = '>';
+ var LT = '<';
+ var PROTOTYPE$2 = 'prototype';
+ var SCRIPT = 'script';
+ var IE_PROTO$1 = sharedKey('IE_PROTO');
+
+ var EmptyConstructor = function () { /* empty */ };
+
+ var scriptTag = function (content) {
+ return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
+ };
+
+ // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
+ var NullProtoObjectViaActiveX = function (activeXDocument) {
+ activeXDocument.write(scriptTag(''));
+ activeXDocument.close();
+ var temp = activeXDocument.parentWindow.Object;
+ activeXDocument = null; // avoid memory leak
+ return temp;
+ };
+
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
+ var NullProtoObjectViaIFrame = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = documentCreateElement('iframe');
+ var JS = 'java' + SCRIPT + ':';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ html$1.appendChild(iframe);
+ // https://github.com/zloirock/core-js/issues/475
+ iframe.src = String(JS);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(scriptTag('document.F=Object'));
+ iframeDocument.close();
+ return iframeDocument.F;
+ };
+
+ // Check for document.domain and active x support
+ // No need to use active x approach when document.domain is not set
+ // see https://github.com/es-shims/es5-shim/issues/150
+ // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
+ // avoid IE GC bug
+ var activeXDocument;
+ var NullProtoObject = function () {
+ try {
+ activeXDocument = new ActiveXObject('htmlfile');
+ } catch (error) { /* ignore */ }
+ NullProtoObject = typeof document != 'undefined'
+ ? document.domain && activeXDocument
+ ? NullProtoObjectViaActiveX(activeXDocument) // old IE
+ : NullProtoObjectViaIFrame()
+ : NullProtoObjectViaActiveX(activeXDocument); // WSH
+ var length = enumBugKeys.length;
+ while (length--) delete NullProtoObject[PROTOTYPE$2][enumBugKeys[length]];
+ return NullProtoObject();
+ };
+
+ hiddenKeys$1[IE_PROTO$1] = true;
+
+ // `Object.create` method
+ // https://tc39.es/ecma262/#sec-object.create
+ var objectCreate = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ EmptyConstructor[PROTOTYPE$2] = anObject(O);
+ result = new EmptyConstructor();
+ EmptyConstructor[PROTOTYPE$2] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO$1] = O;
+ } else result = NullProtoObject();
+ return Properties === undefined ? result : objectDefineProperties(result, Properties);
+ };
+
+ // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
+ var $RegExp$1 = global_1.RegExp;
+
+ var regexpUnsupportedDotAll = fails(function () {
+ var re = $RegExp$1('.', 's');
+ return !(re.dotAll && re.exec('\n') && re.flags === 's');
+ });
+
+ // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
+ var $RegExp = global_1.RegExp;
+
+ var regexpUnsupportedNcg = fails(function () {
+ var re = $RegExp('(?<a>b)', 'g');
+ return re.exec('b').groups.a !== 'b' ||
+ 'b'.replace(re, '$<a>c') !== 'bc';
+ });
+
+ /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
/* eslint-disable regexp/no-useless-quantifier -- testing */
+
+ var getInternalState$5 = internalState.get;
+
+
+
var nativeExec = RegExp.prototype.exec;
var nativeReplace = shared('native-string-replace', String.prototype.replace);
@@ -969,12 +1138,25 @@
// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
- var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$2;
+ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$2 || regexpUnsupportedDotAll || regexpUnsupportedNcg;
if (PATCH) {
- patchedExec = function exec(str) {
+ // eslint-disable-next-line max-statements -- TODO
+ patchedExec = function exec(string) {
var re = this;
- var lastIndex, reCopy, match, i;
+ var state = getInternalState$5(re);
+ var str = toString_1(string);
+ var raw = state.raw;
+ var result, reCopy, lastIndex, match, i, object, group;
+
+ if (raw) {
+ raw.lastIndex = re.lastIndex;
+ result = patchedExec.call(raw, str);
+ re.lastIndex = raw.lastIndex;
+ return result;
+ }
+
+ var groups = state.groups;
var sticky = UNSUPPORTED_Y$2 && re.sticky;
var flags = regexpFlags.call(re);
var source = re.source;
@@ -987,9 +1169,9 @@
flags += 'g';
}
- strCopy = String(str).slice(re.lastIndex);
+ strCopy = str.slice(re.lastIndex);
// Support anchored sticky behavior.
- if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
+ if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\n')) {
source = '(?: ' + source + ')';
strCopy = ' ' + strCopy;
charsAdded++;
@@ -1026,6 +1208,14 @@
});
}
+ if (match && groups) {
+ match.groups = object = objectCreate(null);
+ for (i = 0; i < groups.length; i++) {
+ group = groups[i];
+ object[group[0]] = match[group[1]];
+ }
+ }
+
return match;
};
}
@@ -1049,47 +1239,7 @@
var SPECIES$4 = wellKnownSymbol('species');
var RegExpPrototype$2 = RegExp.prototype;
- var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
- // #replace needs built-in support for named groups.
- // #match works fine because it just return the exec results, even if it has
- // a "grops" property.
- var re = /./;
- re.exec = function () {
- var result = [];
- result.groups = { a: '7' };
- return result;
- };
- return ''.replace(re, '$<a>') !== '7';
- });
-
- // IE <= 11 replaces $0 with the whole match, as if it was $&
- // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
- var REPLACE_KEEPS_$0 = (function () {
- // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
- return 'a'.replace(/./, '$0') === '$0';
- })();
-
- var REPLACE = wellKnownSymbol('replace');
- // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
- var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
- if (/./[REPLACE]) {
- return /./[REPLACE]('a', '$0') === '';
- }
- return false;
- })();
-
- // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
- // Weex JS has frozen built-in prototypes, so use try / catch wrapper
- var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
- // eslint-disable-next-line regexp/no-empty-group -- required for testing
- var re = /(?:)/;
- var originalExec = re.exec;
- re.exec = function () { return originalExec.apply(this, arguments); };
- var result = 'ab'.split(re);
- return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
- });
-
- var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {
+ var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
var SYMBOL = wellKnownSymbol(KEY);
var DELEGATES_TO_SYMBOL = !fails(function () {
@@ -1126,12 +1276,7 @@
if (
!DELEGATES_TO_SYMBOL ||
!DELEGATES_TO_EXEC ||
- (KEY === 'replace' && !(
- REPLACE_SUPPORTS_NAMED_GROUPS &&
- REPLACE_KEEPS_$0 &&
- !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
- )) ||
- (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
+ FORCED
) {
var nativeRegExpMethod = /./[SYMBOL];
var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
@@ -1146,25 +1291,13 @@
return { done: true, value: nativeMethod.call(str, regexp, arg2) };
}
return { done: false };
- }, {
- REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
- REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
});
- var stringMethod = methods[0];
- var regexMethod = methods[1];
-
- redefine(String.prototype, KEY, stringMethod);
- redefine(RegExpPrototype$2, SYMBOL, length == 2
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
- ? function (string, arg) { return regexMethod.call(string, this, arg); }
- // 21.2.5.6 RegExp.prototype[@@match](string)
- // 21.2.5.9 RegExp.prototype[@@search](string)
- : function (string) { return regexMethod.call(string, this); }
- );
+
+ redefine(String.prototype, KEY, methods[0]);
+ redefine(RegExpPrototype$2, SYMBOL, methods[1]);
}
- if (sham) createNonEnumerableProperty(RegExpPrototype$2[SYMBOL], 'sham', true);
+ if (SHAM) createNonEnumerableProperty(RegExpPrototype$2[SYMBOL], 'sham', true);
};
// `SameValue` abstract operation
@@ -1195,23 +1328,23 @@
};
// @@search logic
- fixRegexpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {
+ fixRegexpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {
return [
// `String.prototype.search` method
// https://tc39.es/ecma262/#sec-string.prototype.search
function search(regexp) {
var O = requireObjectCoercible(this);
var searcher = regexp == undefined ? undefined : regexp[SEARCH];
- return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
+ return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](toString_1(O));
},
// `RegExp.prototype[@@search]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@search
- function (regexp) {
- var res = maybeCallNative(nativeSearch, regexp, this);
- if (res.done) return res.value;
+ function (string) {
+ var rx = anObject(this);
+ var S = toString_1(string);
+ var res = maybeCallNative(nativeSearch, rx, S);
- var rx = anObject(regexp);
- var S = String(this);
+ if (res.done) return res.value;
var previousLastIndex = rx.lastIndex;
if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
@@ -1222,72 +1355,58 @@
];
});
- // iterable DOM collections
- // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
- var domIterables = {
- CSSRuleList: 0,
- CSSStyleDeclaration: 0,
- CSSValueList: 0,
- ClientRectList: 0,
- DOMRectList: 0,
- DOMStringList: 0,
- DOMTokenList: 1,
- DataTransferItemList: 0,
- FileList: 0,
- HTMLAllCollection: 0,
- HTMLCollection: 0,
- HTMLFormElement: 0,
- HTMLSelectElement: 0,
- MediaList: 0,
- MimeTypeArray: 0,
- NamedNodeMap: 0,
- NodeList: 1,
- PaintRequestList: 0,
- Plugin: 0,
- PluginArray: 0,
- SVGLengthList: 0,
- SVGNumberList: 0,
- SVGPathSegList: 0,
- SVGPointList: 0,
- SVGStringList: 0,
- SVGTransformList: 0,
- SourceBufferList: 0,
- StyleSheetList: 0,
- TextTrackCueList: 0,
- TextTrackList: 0,
- TouchList: 0
- };
-
- var arrayMethodIsStrict = function (METHOD_NAME, argument) {
- var method = [][METHOD_NAME];
- return !!method && fails(function () {
- // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
- method.call(null, argument || function () { throw 1; }, 1);
- });
- };
-
- var $forEach$2 = arrayIteration.forEach;
-
-
- var STRICT_METHOD$3 = arrayMethodIsStrict('forEach');
+ // eslint-disable-next-line es/no-object-assign -- safe
+ var $assign = Object.assign;
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+ var defineProperty$9 = Object.defineProperty;
- // `Array.prototype.forEach` method implementation
- // https://tc39.es/ecma262/#sec-array.prototype.foreach
- var arrayForEach = !STRICT_METHOD$3 ? function forEach(callbackfn /* , thisArg */) {
- return $forEach$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
- // eslint-disable-next-line es/no-array-prototype-foreach -- safe
- } : [].forEach;
+ // `Object.assign` method
+ // https://tc39.es/ecma262/#sec-object.assign
+ var objectAssign = !$assign || fails(function () {
+ // should have correct order of operations (Edge bug)
+ if (descriptors && $assign({ b: 1 }, $assign(defineProperty$9({}, 'a', {
+ enumerable: true,
+ get: function () {
+ defineProperty$9(this, 'b', {
+ value: 3,
+ enumerable: false
+ });
+ }
+ }), { b: 2 })).b !== 1) return true;
+ // should work with symbols and should have deterministic property order (V8 bug)
+ var A = {};
+ var B = {};
+ // eslint-disable-next-line es/no-symbol -- safe
+ var symbol = Symbol();
+ var alphabet = 'abcdefghijklmnopqrst';
+ A[symbol] = 7;
+ alphabet.split('').forEach(function (chr) { B[chr] = chr; });
+ return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;
+ }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`
+ var T = toObject(target);
+ var argumentsLength = arguments.length;
+ var index = 1;
+ var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
+ var propertyIsEnumerable = objectPropertyIsEnumerable.f;
+ while (argumentsLength > index) {
+ var S = indexedObject(arguments[index++]);
+ var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
+ var length = keys.length;
+ var j = 0;
+ var key;
+ while (length > j) {
+ key = keys[j++];
+ if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key];
+ }
+ } return T;
+ } : $assign;
- for (var COLLECTION_NAME$1 in domIterables) {
- var Collection$1 = global_1[COLLECTION_NAME$1];
- var CollectionPrototype$1 = Collection$1 && Collection$1.prototype;
- // some Chrome versions have non-configurable methods on DOMTokenList
- if (CollectionPrototype$1 && CollectionPrototype$1.forEach !== arrayForEach) try {
- createNonEnumerableProperty(CollectionPrototype$1, 'forEach', arrayForEach);
- } catch (error) {
- CollectionPrototype$1.forEach = arrayForEach;
- }
- }
+ // `Object.assign` method
+ // https://tc39.es/ecma262/#sec-object.assign
+ // eslint-disable-next-line es/no-object-assign -- required for testing
+ _export({ target: 'Object', stat: true, forced: Object.assign !== objectAssign }, {
+ assign: objectAssign
+ });
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
@@ -1310,12 +1429,12 @@
return spreadable !== undefined ? !!spreadable : isArray$3(O);
};
- var FORCED$9 = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
+ var FORCED$8 = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
// `Array.prototype.concat` method
// https://tc39.es/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
- _export({ target: 'Array', proto: true, forced: FORCED$9 }, {
+ _export({ target: 'Array', proto: true, forced: FORCED$8 }, {
// eslint-disable-next-line no-unused-vars -- required for `.length`
concat: function concat(arg) {
var O = toObject(this);
@@ -1492,49 +1611,49 @@
this.fun.apply(null, this.array);
};
- var title = 'browser';
- var platform = 'browser';
- var browser$3 = true;
- var env = {};
- var argv = [];
- var version$1 = ''; // empty string to avoid regexp issues
+ var title$1 = 'browser';
+ var platform$1 = 'browser';
+ var browser$4 = true;
+ var env$1 = {};
+ var argv$1 = [];
+ var version$2 = ''; // empty string to avoid regexp issues
- var versions = {};
- var release = {};
- var config = {};
+ var versions$1 = {};
+ var release$1 = {};
+ var config$1 = {};
- function noop() {}
+ function noop$1() {}
- var on = noop;
- var addListener = noop;
- var once = noop;
- var off = noop;
- var removeListener = noop;
- var removeAllListeners = noop;
- var emit = noop;
- function binding(name) {
+ var on$1 = noop$1;
+ var addListener$1 = noop$1;
+ var once$1 = noop$1;
+ var off$1 = noop$1;
+ var removeListener$1 = noop$1;
+ var removeAllListeners$1 = noop$1;
+ var emit$1 = noop$1;
+ function binding$1(name) {
throw new Error('process.binding is not supported');
}
- function cwd() {
+ function cwd$1() {
return '/';
}
- function chdir(dir) {
+ function chdir$1(dir) {
throw new Error('process.chdir is not supported');
}
- function umask() {
+ function umask$1() {
return 0;
} // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js
var performance$1 = global$1.performance || {};
- var performanceNow = performance$1.now || performance$1.mozNow || performance$1.msNow || performance$1.oNow || performance$1.webkitNow || function () {
+ var performanceNow$1 = performance$1.now || performance$1.mozNow || performance$1.msNow || performance$1.oNow || performance$1.webkitNow || function () {
return new Date().getTime();
}; // generate timestamp or delta
// see http://nodejs.org/api/process.html#process_process_hrtime
- function hrtime(previousTimestamp) {
- var clocktime = performanceNow.call(performance$1) * 1e-3;
+ function hrtime$1(previousTimestamp) {
+ var clocktime = performanceNow$1.call(performance$1) * 1e-3;
var seconds = Math.floor(clocktime);
var nanoseconds = Math.floor(clocktime % 1 * 1e9);
@@ -1550,36 +1669,36 @@
return [seconds, nanoseconds];
}
- var startTime = new Date();
- function uptime() {
+ var startTime$1 = new Date();
+ function uptime$1() {
var currentTime = new Date();
- var dif = currentTime - startTime;
+ var dif = currentTime - startTime$1;
return dif / 1000;
}
- var process$3 = {
+ var process$4 = {
nextTick: nextTick$1,
- title: title,
- browser: browser$3,
- env: env,
- argv: argv,
- version: version$1,
- versions: versions,
- on: on,
- addListener: addListener,
- once: once,
- off: off,
- removeListener: removeListener,
- removeAllListeners: removeAllListeners,
- emit: emit,
- binding: binding,
- cwd: cwd,
- chdir: chdir,
- umask: umask,
- hrtime: hrtime,
- platform: platform,
- release: release,
- config: config,
- uptime: uptime
+ title: title$1,
+ browser: browser$4,
+ env: env$1,
+ argv: argv$1,
+ version: version$2,
+ versions: versions$1,
+ on: on$1,
+ addListener: addListener$1,
+ once: once$1,
+ off: off$1,
+ removeListener: removeListener$1,
+ removeAllListeners: removeAllListeners$1,
+ emit: emit$1,
+ binding: binding$1,
+ cwd: cwd$1,
+ chdir: chdir$1,
+ umask: umask$1,
+ hrtime: hrtime$1,
+ platform: platform$1,
+ release: release$1,
+ config: config$1,
+ uptime: uptime$1
};
var TO_STRING_TAG$4 = wellKnownSymbol('toStringTag');
@@ -1637,35 +1756,13 @@
if (NOT_GENERIC || INCORRECT_NAME) {
redefine(RegExp.prototype, TO_STRING, function toString() {
var R = anObject(this);
- var p = String(R.source);
+ var p = toString_1(R.source);
var rf = R.flags;
- var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$1) ? regexpFlags.call(R) : rf);
+ var f = toString_1(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$1) ? regexpFlags.call(R) : rf);
return '/' + p + '/' + f;
}, { unsafe: true });
}
- var defineProperty$8 = objectDefineProperty.f;
-
- var FunctionPrototype = Function.prototype;
- var FunctionPrototypeToString = FunctionPrototype.toString;
- var nameRE = /^\s*function ([^ (]*)/;
- var NAME$1 = 'name';
-
- // Function instances `.name` property
- // https://tc39.es/ecma262/#sec-function-instances-name
- if (descriptors && !(NAME$1 in FunctionPrototype)) {
- defineProperty$8(FunctionPrototype, NAME$1, {
- configurable: true,
- get: function () {
- try {
- return FunctionPrototypeToString.call(this).match(nameRE)[1];
- } catch (error) {
- return '';
- }
- }
- });
- }
-
var correctPrototypeGetter = !fails(function () {
function F() { /* empty */ }
F.prototype.constructor = null;
@@ -1673,7 +1770,7 @@
return Object.getPrototypeOf(new F()) !== F.prototype;
});
- var IE_PROTO$1 = sharedKey('IE_PROTO');
+ var IE_PROTO = sharedKey('IE_PROTO');
var ObjectPrototype$3 = Object.prototype;
// `Object.getPrototypeOf` method
@@ -1681,7 +1778,7 @@
// eslint-disable-next-line es/no-object-getprototypeof -- safe
var objectGetPrototypeOf = correctPrototypeGetter ? Object.getPrototypeOf : function (O) {
O = toObject(O);
- if (has$1(O, IE_PROTO$1)) return O[IE_PROTO$1];
+ if (has$1(O, IE_PROTO)) return O[IE_PROTO];
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
} return O instanceof Object ? ObjectPrototype$3 : null;
@@ -1697,6 +1794,28 @@
}
});
+ var defineProperty$8 = objectDefineProperty.f;
+
+ var FunctionPrototype = Function.prototype;
+ var FunctionPrototypeToString = FunctionPrototype.toString;
+ var nameRE = /^\s*function ([^ (]*)/;
+ var NAME$1 = 'name';
+
+ // Function instances `.name` property
+ // https://tc39.es/ecma262/#sec-function-instances-name
+ if (descriptors && !(NAME$1 in FunctionPrototype)) {
+ defineProperty$8(FunctionPrototype, NAME$1, {
+ configurable: true,
+ get: function () {
+ try {
+ return FunctionPrototypeToString.call(this).match(nameRE)[1];
+ } catch (error) {
+ return '';
+ }
+ }
+ });
+ }
+
// `Reflect.ownKeys` method
// https://tc39.es/ecma262/#sec-reflect.ownkeys
_export({ target: 'Reflect', stat: true }, {
@@ -2145,6 +2264,245 @@
return ret;
}
+ function ownKeys(object, enumerableOnly) {
+ var keys = Object.keys(object);
+
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+
+ if (enumerableOnly) {
+ symbols = symbols.filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ });
+ }
+
+ keys.push.apply(keys, symbols);
+ }
+
+ return keys;
+ }
+
+ function _objectSpread2(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+
+ if (i % 2) {
+ ownKeys(Object(source), true).forEach(function (key) {
+ _defineProperty(target, key, source[key]);
+ });
+ } else if (Object.getOwnPropertyDescriptors) {
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
+ } else {
+ ownKeys(Object(source)).forEach(function (key) {
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+ });
+ }
+ }
+
+ return target;
+ }
+
+ function _typeof(obj) {
+ "@babel/helpers - typeof";
+
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+ _typeof = function (obj) {
+ return typeof obj;
+ };
+ } else {
+ _typeof = function (obj) {
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ }
+
+ return _typeof(obj);
+ }
+
+ function _asyncIterator(iterable) {
+ var method;
+
+ if (typeof Symbol !== "undefined") {
+ if (Symbol.asyncIterator) method = iterable[Symbol.asyncIterator];
+ if (method == null && Symbol.iterator) method = iterable[Symbol.iterator];
+ }
+
+ if (method == null) method = iterable["@@asyncIterator"];
+ if (method == null) method = iterable["@@iterator"];
+ if (method == null) throw new TypeError("Object is not async iterable");
+ return method.call(iterable);
+ }
+
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
+ try {
+ var info = gen[key](arg);
+ var value = info.value;
+ } catch (error) {
+ reject(error);
+ return;
+ }
+
+ if (info.done) {
+ resolve(value);
+ } else {
+ Promise.resolve(value).then(_next, _throw);
+ }
+ }
+
+ function _asyncToGenerator(fn) {
+ return function () {
+ var self = this,
+ args = arguments;
+ return new Promise(function (resolve, reject) {
+ var gen = fn.apply(self, args);
+
+ function _next(value) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
+ }
+
+ function _throw(err) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
+ }
+
+ _next(undefined);
+ });
+ };
+ }
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ function _inherits(subClass, superClass) {
+ if (typeof superClass !== "function" && superClass !== null) {
+ throw new TypeError("Super expression must either be null or a function");
+ }
+
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
+ constructor: {
+ value: subClass,
+ writable: true,
+ configurable: true
+ }
+ });
+ if (superClass) _setPrototypeOf(subClass, superClass);
+ }
+
+ function _getPrototypeOf(o) {
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
+ return o.__proto__ || Object.getPrototypeOf(o);
+ };
+ return _getPrototypeOf(o);
+ }
+
+ function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+ }
+
+ function _isNativeReflectConstruct() {
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+ if (Reflect.construct.sham) return false;
+ if (typeof Proxy === "function") return true;
+
+ try {
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+
+ function _assertThisInitialized(self) {
+ if (self === void 0) {
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ }
+
+ return self;
+ }
+
+ function _possibleConstructorReturn(self, call) {
+ if (call && (typeof call === "object" || typeof call === "function")) {
+ return call;
+ } else if (call !== void 0) {
+ throw new TypeError("Derived constructors may only return object or undefined");
+ }
+
+ return _assertThisInitialized(self);
+ }
+
+ function _createSuper(Derived) {
+ var hasNativeReflectConstruct = _isNativeReflectConstruct();
+
+ return function _createSuperInternal() {
+ var Super = _getPrototypeOf(Derived),
+ result;
+
+ if (hasNativeReflectConstruct) {
+ var NewTarget = _getPrototypeOf(this).constructor;
+
+ result = Reflect.construct(Super, arguments, NewTarget);
+ } else {
+ result = Super.apply(this, arguments);
+ }
+
+ return _possibleConstructorReturn(this, result);
+ };
+ }
+
+ function _toConsumableArray(arr) {
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
+ }
+
+ function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
+ }
+
+ function _iterableToArray(iter) {
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
+ }
+
+ function _unsupportedIterableToArray(o, minLen) {
+ if (!o) return;
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor) n = o.constructor.name;
+ if (n === "Map" || n === "Set") return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
+ }
+
+ function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
+
+ return arr2;
+ }
+
+ function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+ }
+
var nativeJoin = [].join;
var ES3_STRINGS = indexedObject != Object;
@@ -2158,20 +2516,194 @@
}
});
- var $map$1 = arrayIteration.map;
+ // `String.prototype.codePointAt` methods implementation
+ var createMethod$3 = function (CONVERT_TO_STRING) {
+ return function ($this, pos) {
+ var S = toString_1(requireObjectCoercible($this));
+ var position = toInteger(pos);
+ var size = S.length;
+ var first, second;
+ if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
+ first = S.charCodeAt(position);
+ return first < 0xD800 || first > 0xDBFF || position + 1 === size
+ || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
+ ? CONVERT_TO_STRING ? S.charAt(position) : first
+ : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
+ };
+ };
+ var stringMultibyte = {
+ // `String.prototype.codePointAt` method
+ // https://tc39.es/ecma262/#sec-string.prototype.codepointat
+ codeAt: createMethod$3(false),
+ // `String.prototype.at` method
+ // https://github.com/mathiasbynens/String.prototype.at
+ charAt: createMethod$3(true)
+ };
- var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('map');
+ var charAt$1 = stringMultibyte.charAt;
- // `Array.prototype.map` method
- // https://tc39.es/ecma262/#sec-array.prototype.map
- // with adding support of @@species
- _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, {
- map: function map(callbackfn /* , thisArg */) {
- return $map$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ // `AdvanceStringIndex` abstract operation
+ // https://tc39.es/ecma262/#sec-advancestringindex
+ var advanceStringIndex = function (S, index, unicode) {
+ return index + (unicode ? charAt$1(S, index).length : 1);
+ };
+
+ var floor$5 = Math.floor;
+ var replace = ''.replace;
+ var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
+ var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
+
+ // `GetSubstitution` abstract operation
+ // https://tc39.es/ecma262/#sec-getsubstitution
+ var getSubstitution = function (matched, str, position, captures, namedCaptures, replacement) {
+ var tailPos = position + matched.length;
+ var m = captures.length;
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
+ if (namedCaptures !== undefined) {
+ namedCaptures = toObject(namedCaptures);
+ symbols = SUBSTITUTION_SYMBOLS;
}
+ return replace.call(replacement, symbols, function (match, ch) {
+ var capture;
+ switch (ch.charAt(0)) {
+ case '$': return '$';
+ case '&': return matched;
+ case '`': return str.slice(0, position);
+ case "'": return str.slice(tailPos);
+ case '<':
+ capture = namedCaptures[ch.slice(1, -1)];
+ break;
+ default: // \d\d?
+ var n = +ch;
+ if (n === 0) return match;
+ if (n > m) {
+ var f = floor$5(n / 10);
+ if (f === 0) return match;
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
+ return match;
+ }
+ capture = captures[n - 1];
+ }
+ return capture === undefined ? '' : capture;
+ });
+ };
+
+ var REPLACE = wellKnownSymbol('replace');
+ var max$1 = Math.max;
+ var min$4 = Math.min;
+
+ var maybeToString = function (it) {
+ return it === undefined ? it : String(it);
+ };
+
+ // IE <= 11 replaces $0 with the whole match, as if it was $&
+ // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
+ var REPLACE_KEEPS_$0 = (function () {
+ // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
+ return 'a'.replace(/./, '$0') === '$0';
+ })();
+
+ // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
+ var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
+ if (/./[REPLACE]) {
+ return /./[REPLACE]('a', '$0') === '';
+ }
+ return false;
+ })();
+
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
+ var re = /./;
+ re.exec = function () {
+ var result = [];
+ result.groups = { a: '7' };
+ return result;
+ };
+ // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive
+ return ''.replace(re, '$<a>') !== '7';
});
+ // @@replace logic
+ fixRegexpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {
+ var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
+
+ return [
+ // `String.prototype.replace` method
+ // https://tc39.es/ecma262/#sec-string.prototype.replace
+ function replace(searchValue, replaceValue) {
+ var O = requireObjectCoercible(this);
+ var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
+ return replacer !== undefined
+ ? replacer.call(searchValue, O, replaceValue)
+ : nativeReplace.call(toString_1(O), searchValue, replaceValue);
+ },
+ // `RegExp.prototype[@@replace]` method
+ // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
+ function (string, replaceValue) {
+ var rx = anObject(this);
+ var S = toString_1(string);
+
+ if (
+ typeof replaceValue === 'string' &&
+ replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&
+ replaceValue.indexOf('$<') === -1
+ ) {
+ var res = maybeCallNative(nativeReplace, rx, S, replaceValue);
+ if (res.done) return res.value;
+ }
+
+ var functionalReplace = typeof replaceValue === 'function';
+ if (!functionalReplace) replaceValue = toString_1(replaceValue);
+
+ var global = rx.global;
+ if (global) {
+ var fullUnicode = rx.unicode;
+ rx.lastIndex = 0;
+ }
+ var results = [];
+ while (true) {
+ var result = regexpExecAbstract(rx, S);
+ if (result === null) break;
+
+ results.push(result);
+ if (!global) break;
+
+ var matchStr = toString_1(result[0]);
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
+ }
+
+ var accumulatedResult = '';
+ var nextSourcePosition = 0;
+ for (var i = 0; i < results.length; i++) {
+ result = results[i];
+
+ var matched = toString_1(result[0]);
+ var position = max$1(min$4(toInteger(result.index), S.length), 0);
+ var captures = [];
+ // NOTE: This is equivalent to
+ // captures = result.slice(1).map(maybeToString)
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
+ var namedCaptures = result.groups;
+ if (functionalReplace) {
+ var replacerArgs = [matched].concat(captures, position, S);
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
+ var replacement = toString_1(replaceValue.apply(undefined, replacerArgs));
+ } else {
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
+ }
+ if (position >= nextSourcePosition) {
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
+ nextSourcePosition = position + matched.length;
+ }
+ }
+ return accumulatedResult + S.slice(nextSourcePosition);
+ }
+ ];
+ }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
+
var aPossiblePrototype = function (it) {
if (!isObject$1(it) && it !== null) {
throw TypeError("Can't set " + String(it) + ' as a prototype');
@@ -2220,92 +2752,6 @@
return $this;
};
- // `Object.defineProperties` method
- // https://tc39.es/ecma262/#sec-object.defineproperties
- // eslint-disable-next-line es/no-object-defineproperties -- safe
- var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
- anObject(O);
- var keys = objectKeys(Properties);
- var length = keys.length;
- var index = 0;
- var key;
- while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
- return O;
- };
-
- var html$1 = getBuiltIn('document', 'documentElement');
-
- var GT = '>';
- var LT = '<';
- var PROTOTYPE$2 = 'prototype';
- var SCRIPT = 'script';
- var IE_PROTO = sharedKey('IE_PROTO');
-
- var EmptyConstructor = function () { /* empty */ };
-
- var scriptTag = function (content) {
- return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
- };
-
- // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
- var NullProtoObjectViaActiveX = function (activeXDocument) {
- activeXDocument.write(scriptTag(''));
- activeXDocument.close();
- var temp = activeXDocument.parentWindow.Object;
- activeXDocument = null; // avoid memory leak
- return temp;
- };
-
- // Create object with fake `null` prototype: use iframe Object with cleared prototype
- var NullProtoObjectViaIFrame = function () {
- // Thrash, waste and sodomy: IE GC bug
- var iframe = documentCreateElement('iframe');
- var JS = 'java' + SCRIPT + ':';
- var iframeDocument;
- iframe.style.display = 'none';
- html$1.appendChild(iframe);
- // https://github.com/zloirock/core-js/issues/475
- iframe.src = String(JS);
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(scriptTag('document.F=Object'));
- iframeDocument.close();
- return iframeDocument.F;
- };
-
- // Check for document.domain and active x support
- // No need to use active x approach when document.domain is not set
- // see https://github.com/es-shims/es5-shim/issues/150
- // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
- // avoid IE GC bug
- var activeXDocument;
- var NullProtoObject = function () {
- try {
- /* global ActiveXObject -- old IE */
- activeXDocument = document.domain && new ActiveXObject('htmlfile');
- } catch (error) { /* ignore */ }
- NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
- var length = enumBugKeys.length;
- while (length--) delete NullProtoObject[PROTOTYPE$2][enumBugKeys[length]];
- return NullProtoObject();
- };
-
- hiddenKeys$1[IE_PROTO] = true;
-
- // `Object.create` method
- // https://tc39.es/ecma262/#sec-object.create
- var objectCreate = Object.create || function create(O, Properties) {
- var result;
- if (O !== null) {
- EmptyConstructor[PROTOTYPE$2] = anObject(O);
- result = new EmptyConstructor();
- EmptyConstructor[PROTOTYPE$2] = null;
- // add "__proto__" for Object.getPrototypeOf polyfill
- result[IE_PROTO] = O;
- } else result = NullProtoObject();
- return Properties === undefined ? result : objectDefineProperties(result, Properties);
- };
-
// a string of all valid unicode whitespaces
var whitespaces = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
'\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
@@ -2315,9 +2761,9 @@
var rtrim = RegExp(whitespace + whitespace + '*$');
// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
- var createMethod$3 = function (TYPE) {
+ var createMethod$2 = function (TYPE) {
return function ($this) {
- var string = String(requireObjectCoercible($this));
+ var string = toString_1(requireObjectCoercible($this));
if (TYPE & 1) string = string.replace(ltrim, '');
if (TYPE & 2) string = string.replace(rtrim, '');
return string;
@@ -2327,13 +2773,13 @@
var stringTrim = {
// `String.prototype.{ trimLeft, trimStart }` methods
// https://tc39.es/ecma262/#sec-string.prototype.trimstart
- start: createMethod$3(1),
+ start: createMethod$2(1),
// `String.prototype.{ trimRight, trimEnd }` methods
// https://tc39.es/ecma262/#sec-string.prototype.trimend
- end: createMethod$3(2),
+ end: createMethod$2(2),
// `String.prototype.trim` method
// https://tc39.es/ecma262/#sec-string.prototype.trim
- trim: createMethod$3(3)
+ trim: createMethod$2(3)
};
var getOwnPropertyNames$3 = objectGetOwnPropertyNames.f;
@@ -2351,7 +2797,8 @@
// `ToNumber` abstract operation
// https://tc39.es/ecma262/#sec-tonumber
var toNumber = function (argument) {
- var it = toPrimitive(argument, false);
+ if (isSymbol$1(argument)) throw TypeError('Cannot convert a Symbol value to a number');
+ var it = toPrimitive(argument, 'number');
var first, third, radix, maxCode, digits, length, index, code;
if (typeof it == 'string' && it.length > 2) {
it = trim(it);
@@ -2406,59 +2853,6 @@
redefine(global_1, NUMBER, NumberWrapper);
}
- var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
-
-
- var FAILS_ON_PRIMITIVES$2 = fails(function () { nativeGetOwnPropertyDescriptor$1(1); });
- var FORCED$8 = !descriptors || FAILS_ON_PRIMITIVES$2;
-
- // `Object.getOwnPropertyDescriptor` method
- // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
- _export({ target: 'Object', stat: true, forced: FORCED$8, sham: !descriptors }, {
- getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {
- return nativeGetOwnPropertyDescriptor$1(toIndexedObject(it), key);
- }
- });
-
- /* eslint-disable es/no-object-getownpropertynames -- safe */
-
- var $getOwnPropertyNames$1 = objectGetOwnPropertyNames.f;
-
- var toString$3 = {}.toString;
-
- var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
- ? Object.getOwnPropertyNames(window) : [];
-
- var getWindowNames = function (it) {
- try {
- return $getOwnPropertyNames$1(it);
- } catch (error) {
- return windowNames.slice();
- }
- };
-
- // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
- var f$2 = function getOwnPropertyNames(it) {
- return windowNames && toString$3.call(it) == '[object Window]'
- ? getWindowNames(it)
- : $getOwnPropertyNames$1(toIndexedObject(it));
- };
-
- var objectGetOwnPropertyNamesExternal = {
- f: f$2
- };
-
- var getOwnPropertyNames$2 = objectGetOwnPropertyNamesExternal.f;
-
- // eslint-disable-next-line es/no-object-getownpropertynames -- required for testing
- var FAILS_ON_PRIMITIVES$1 = fails(function () { return !Object.getOwnPropertyNames(1); });
-
- // `Object.getOwnPropertyNames` method
- // https://tc39.es/ecma262/#sec-object.getownpropertynames
- _export({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$1 }, {
- getOwnPropertyNames: getOwnPropertyNames$2
- });
-
var MATCH$2 = wellKnownSymbol('match');
// `IsRegExp` abstract operation
@@ -2483,7 +2877,9 @@
};
var defineProperty$6 = objectDefineProperty.f;
- var getOwnPropertyNames$1 = objectGetOwnPropertyNames.f;
+ var getOwnPropertyNames$2 = objectGetOwnPropertyNames.f;
+
+
@@ -2493,9 +2889,13 @@
+
+
var MATCH$1 = wellKnownSymbol('match');
var NativeRegExp = global_1.RegExp;
var RegExpPrototype = NativeRegExp.prototype;
+ // TODO: Use only propper RegExpIdentifierName
+ var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
var re1 = /a/g;
var re2 = /a/g;
@@ -2504,50 +2904,143 @@
var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y;
- var FORCED$7 = descriptors && isForced_1('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y$1 || fails(function () {
- re2[MATCH$1] = false;
- // RegExp constructor can alter flags and IsRegExp works correct with @@match
- return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
- })));
+ var BASE_FORCED = descriptors &&
+ (!CORRECT_NEW || UNSUPPORTED_Y$1 || regexpUnsupportedDotAll || regexpUnsupportedNcg || fails(function () {
+ re2[MATCH$1] = false;
+ // RegExp constructor can alter flags and IsRegExp works correct with @@match
+ return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
+ }));
+
+ var handleDotAll = function (string) {
+ var length = string.length;
+ var index = 0;
+ var result = '';
+ var brackets = false;
+ var chr;
+ for (; index <= length; index++) {
+ chr = string.charAt(index);
+ if (chr === '\\') {
+ result += chr + string.charAt(++index);
+ continue;
+ }
+ if (!brackets && chr === '.') {
+ result += '[\\s\\S]';
+ } else {
+ if (chr === '[') {
+ brackets = true;
+ } else if (chr === ']') {
+ brackets = false;
+ } result += chr;
+ }
+ } return result;
+ };
+
+ var handleNCG = function (string) {
+ var length = string.length;
+ var index = 0;
+ var result = '';
+ var named = [];
+ var names = {};
+ var brackets = false;
+ var ncg = false;
+ var groupid = 0;
+ var groupname = '';
+ var chr;
+ for (; index <= length; index++) {
+ chr = string.charAt(index);
+ if (chr === '\\') {
+ chr = chr + string.charAt(++index);
+ } else if (chr === ']') {
+ brackets = false;
+ } else if (!brackets) switch (true) {
+ case chr === '[':
+ brackets = true;
+ break;
+ case chr === '(':
+ if (IS_NCG.test(string.slice(index + 1))) {
+ index += 2;
+ ncg = true;
+ }
+ result += chr;
+ groupid++;
+ continue;
+ case chr === '>' && ncg:
+ if (groupname === '' || has$1(names, groupname)) {
+ throw new SyntaxError('Invalid capture group name');
+ }
+ names[groupname] = true;
+ named.push([groupname, groupid]);
+ ncg = false;
+ groupname = '';
+ continue;
+ }
+ if (ncg) groupname += chr;
+ else result += chr;
+ } return [result, named];
+ };
// `RegExp` constructor
// https://tc39.es/ecma262/#sec-regexp-constructor
- if (FORCED$7) {
+ if (isForced_1('RegExp', BASE_FORCED)) {
var RegExpWrapper = function RegExp(pattern, flags) {
var thisIsRegExp = this instanceof RegExpWrapper;
var patternIsRegExp = isRegexp(pattern);
var flagsAreUndefined = flags === undefined;
- var sticky;
+ var groups = [];
+ var rawPattern = pattern;
+ var rawFlags, dotAll, sticky, handled, result, state;
- if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {
+ if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {
return pattern;
}
- if (CORRECT_NEW) {
- if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;
- } else if (pattern instanceof RegExpWrapper) {
- if (flagsAreUndefined) flags = regexpFlags.call(pattern);
+ if (patternIsRegExp || pattern instanceof RegExpWrapper) {
pattern = pattern.source;
+ if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : regexpFlags.call(rawPattern);
}
- if (UNSUPPORTED_Y$1) {
+ pattern = pattern === undefined ? '' : toString_1(pattern);
+ flags = flags === undefined ? '' : toString_1(flags);
+ rawPattern = pattern;
+
+ if (regexpUnsupportedDotAll && 'dotAll' in re1) {
+ dotAll = !!flags && flags.indexOf('s') > -1;
+ if (dotAll) flags = flags.replace(/s/g, '');
+ }
+
+ rawFlags = flags;
+
+ if (UNSUPPORTED_Y$1 && 'sticky' in re1) {
sticky = !!flags && flags.indexOf('y') > -1;
if (sticky) flags = flags.replace(/y/g, '');
}
- var result = inheritIfRequired(
- CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),
- thisIsRegExp ? this : RegExpPrototype,
- RegExpWrapper
- );
+ if (regexpUnsupportedNcg) {
+ handled = handleNCG(pattern);
+ pattern = handled[0];
+ groups = handled[1];
+ }
+
+ result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);
- if (UNSUPPORTED_Y$1 && sticky) {
- var state = enforceInternalState(result);
- state.sticky = true;
+ if (dotAll || sticky || groups.length) {
+ state = enforceInternalState(result);
+ if (dotAll) {
+ state.dotAll = true;
+ state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);
+ }
+ if (sticky) state.sticky = true;
+ if (groups.length) state.groups = groups;
}
+ if (pattern !== rawPattern) try {
+ // fails in old engines, but we have no alternatives for unsupported regex syntax
+ createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);
+ } catch (error) { /* empty */ }
+
return result;
};
+
var proxy = function (key) {
key in RegExpWrapper || defineProperty$6(RegExpWrapper, key, {
configurable: true,
@@ -2555,9 +3048,11 @@
set: function (it) { NativeRegExp[key] = it; }
});
};
- var keys$2 = getOwnPropertyNames$1(NativeRegExp);
- var index = 0;
- while (keys$2.length > index) proxy(keys$2[index++]);
+
+ for (var keys$2 = getOwnPropertyNames$2(NativeRegExp), index = 0; keys$2.length > index;) {
+ proxy(keys$2[index++]);
+ }
+
RegExpPrototype.constructor = RegExpWrapper;
RegExpWrapper.prototype = RegExpPrototype;
redefine(global_1, 'RegExp', RegExpWrapper);
@@ -2566,57 +3061,77 @@
// https://tc39.es/ecma262/#sec-get-regexp-@@species
setSpecies('RegExp');
- // `String.prototype.{ codePointAt, at }` methods implementation
- var createMethod$2 = function (CONVERT_TO_STRING) {
- return function ($this, pos) {
- var S = String(requireObjectCoercible($this));
- var position = toInteger(pos);
- var size = S.length;
- var first, second;
- if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
- first = S.charCodeAt(position);
- return first < 0xD800 || first > 0xDBFF || position + 1 === size
- || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
- ? CONVERT_TO_STRING ? S.charAt(position) : first
- : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
- };
- };
+ /* eslint-disable es/no-object-getownpropertynames -- safe */
- var stringMultibyte = {
- // `String.prototype.codePointAt` method
- // https://tc39.es/ecma262/#sec-string.prototype.codepointat
- codeAt: createMethod$2(false),
- // `String.prototype.at` method
- // https://github.com/mathiasbynens/String.prototype.at
- charAt: createMethod$2(true)
+ var $getOwnPropertyNames$1 = objectGetOwnPropertyNames.f;
+
+ var toString$3 = {}.toString;
+
+ var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+ var getWindowNames = function (it) {
+ try {
+ return $getOwnPropertyNames$1(it);
+ } catch (error) {
+ return windowNames.slice();
+ }
};
- var charAt$1 = stringMultibyte.charAt;
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+ var f$2 = function getOwnPropertyNames(it) {
+ return windowNames && toString$3.call(it) == '[object Window]'
+ ? getWindowNames(it)
+ : $getOwnPropertyNames$1(toIndexedObject(it));
+ };
- // `AdvanceStringIndex` abstract operation
- // https://tc39.es/ecma262/#sec-advancestringindex
- var advanceStringIndex = function (S, index, unicode) {
- return index + (unicode ? charAt$1(S, index).length : 1);
+ var objectGetOwnPropertyNamesExternal = {
+ f: f$2
};
+ var getOwnPropertyNames$1 = objectGetOwnPropertyNamesExternal.f;
+
+ // eslint-disable-next-line es/no-object-getownpropertynames -- required for testing
+ var FAILS_ON_PRIMITIVES$2 = fails(function () { return !Object.getOwnPropertyNames(1); });
+
+ // `Object.getOwnPropertyNames` method
+ // https://tc39.es/ecma262/#sec-object.getownpropertynames
+ _export({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$2 }, {
+ getOwnPropertyNames: getOwnPropertyNames$1
+ });
+
+ var $map$1 = arrayIteration.map;
+
+
+ var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('map');
+
+ // `Array.prototype.map` method
+ // https://tc39.es/ecma262/#sec-array.prototype.map
+ // with adding support of @@species
+ _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, {
+ map: function map(callbackfn /* , thisArg */) {
+ return $map$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ }
+ });
+
// @@match logic
- fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
+ fixRegexpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {
return [
// `String.prototype.match` method
// https://tc39.es/ecma262/#sec-string.prototype.match
function match(regexp) {
var O = requireObjectCoercible(this);
var matcher = regexp == undefined ? undefined : regexp[MATCH];
- return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
+ return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](toString_1(O));
},
// `RegExp.prototype[@@match]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@match
- function (regexp) {
- var res = maybeCallNative(nativeMatch, regexp, this);
- if (res.done) return res.value;
+ function (string) {
+ var rx = anObject(this);
+ var S = toString_1(string);
+ var res = maybeCallNative(nativeMatch, rx, S);
- var rx = anObject(regexp);
- var S = String(this);
+ if (res.done) return res.value;
if (!rx.global) return regexpExecAbstract(rx, S);
@@ -2626,7 +3141,7 @@
var n = 0;
var result;
while ((result = regexpExecAbstract(rx, S)) !== null) {
- var matchStr = String(result[0]);
+ var matchStr = toString_1(result[0]);
A[n] = matchStr;
if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
n++;
@@ -2636,133 +3151,18 @@
];
});
- var floor$4 = Math.floor;
- var replace = ''.replace;
- var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
- var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
-
- // `GetSubstitution` abstract operation
- // https://tc39.es/ecma262/#sec-getsubstitution
- var getSubstitution = function (matched, str, position, captures, namedCaptures, replacement) {
- var tailPos = position + matched.length;
- var m = captures.length;
- var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
- if (namedCaptures !== undefined) {
- namedCaptures = toObject(namedCaptures);
- symbols = SUBSTITUTION_SYMBOLS;
- }
- return replace.call(replacement, symbols, function (match, ch) {
- var capture;
- switch (ch.charAt(0)) {
- case '$': return '$';
- case '&': return matched;
- case '`': return str.slice(0, position);
- case "'": return str.slice(tailPos);
- case '<':
- capture = namedCaptures[ch.slice(1, -1)];
- break;
- default: // \d\d?
- var n = +ch;
- if (n === 0) return match;
- if (n > m) {
- var f = floor$4(n / 10);
- if (f === 0) return match;
- if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
- return match;
- }
- capture = captures[n - 1];
- }
- return capture === undefined ? '' : capture;
- });
- };
-
- var max$1 = Math.max;
- var min$4 = Math.min;
-
- var maybeToString = function (it) {
- return it === undefined ? it : String(it);
- };
-
- // @@replace logic
- fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
- var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
- var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;
- var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
-
- return [
- // `String.prototype.replace` method
- // https://tc39.es/ecma262/#sec-string.prototype.replace
- function replace(searchValue, replaceValue) {
- var O = requireObjectCoercible(this);
- var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
- return replacer !== undefined
- ? replacer.call(searchValue, O, replaceValue)
- : nativeReplace.call(String(O), searchValue, replaceValue);
- },
- // `RegExp.prototype[@@replace]` method
- // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
- function (regexp, replaceValue) {
- if (
- (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||
- (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
- ) {
- var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
- if (res.done) return res.value;
- }
-
- var rx = anObject(regexp);
- var S = String(this);
-
- var functionalReplace = typeof replaceValue === 'function';
- if (!functionalReplace) replaceValue = String(replaceValue);
-
- var global = rx.global;
- if (global) {
- var fullUnicode = rx.unicode;
- rx.lastIndex = 0;
- }
- var results = [];
- while (true) {
- var result = regexpExecAbstract(rx, S);
- if (result === null) break;
-
- results.push(result);
- if (!global) break;
+ var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
- var matchStr = String(result[0]);
- if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
- }
- var accumulatedResult = '';
- var nextSourcePosition = 0;
- for (var i = 0; i < results.length; i++) {
- result = results[i];
+ var FAILS_ON_PRIMITIVES$1 = fails(function () { nativeGetOwnPropertyDescriptor$1(1); });
+ var FORCED$7 = !descriptors || FAILS_ON_PRIMITIVES$1;
- var matched = String(result[0]);
- var position = max$1(min$4(toInteger(result.index), S.length), 0);
- var captures = [];
- // NOTE: This is equivalent to
- // captures = result.slice(1).map(maybeToString)
- // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
- // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
- // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
- for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
- var namedCaptures = result.groups;
- if (functionalReplace) {
- var replacerArgs = [matched].concat(captures, position, S);
- if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
- var replacement = String(replaceValue.apply(undefined, replacerArgs));
- } else {
- replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
- }
- if (position >= nextSourcePosition) {
- accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
- nextSourcePosition = position + matched.length;
- }
- }
- return accumulatedResult + S.slice(nextSourcePosition);
- }
- ];
+ // `Object.getOwnPropertyDescriptor` method
+ // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
+ _export({ target: 'Object', stat: true, forced: FORCED$7, sham: !descriptors }, {
+ getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {
+ return nativeGetOwnPropertyDescriptor$1(toIndexedObject(it), key);
+ }
});
var SPECIES$2 = wellKnownSymbol('species');
@@ -2780,8 +3180,19 @@
var min$3 = Math.min;
var MAX_UINT32 = 0xFFFFFFFF;
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
+ // Weex JS has frozen built-in prototypes, so use try / catch wrapper
+ var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
+ // eslint-disable-next-line regexp/no-empty-group -- required for testing
+ var re = /(?:)/;
+ var originalExec = re.exec;
+ re.exec = function () { return originalExec.apply(this, arguments); };
+ var result = 'ab'.split(re);
+ return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
+ });
+
// @@split logic
- fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {
+ fixRegexpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {
var internalSplit;
if (
'abbc'.split(/(b)*/)[1] == 'c' ||
@@ -2789,13 +3200,13 @@
'test'.split(/(?:)/, -1).length != 4 ||
'ab'.split(/(?:ab)*/).length != 2 ||
'.'.split(/(.?)(.?)/).length != 4 ||
- // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing
+ // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing
'.'.split(/()()/).length > 1 ||
''.split(/.?/).length
) {
// based on es5-shim implementation, need to rework it
internalSplit = function (separator, limit) {
- var string = String(requireObjectCoercible(this));
+ var string = toString_1(requireObjectCoercible(this));
var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
if (lim === 0) return [];
if (separator === undefined) return [string];
@@ -2843,19 +3254,20 @@
var splitter = separator == undefined ? undefined : separator[SPLIT];
return splitter !== undefined
? splitter.call(separator, O, limit)
- : internalSplit.call(String(O), separator, limit);
+ : internalSplit.call(toString_1(O), separator, limit);
},
// `RegExp.prototype[@@split]` method
// https://tc39.es/ecma262/#sec-regexp.prototype-@@split
//
// NOTE: This cannot be properly polyfilled in engines that don't support
// the 'y' flag.
- function (regexp, limit) {
- var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);
+ function (string, limit) {
+ var rx = anObject(this);
+ var S = toString_1(string);
+ var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);
+
if (res.done) return res.value;
- var rx = anObject(regexp);
- var S = String(this);
var C = speciesConstructor(rx, RegExp);
var unicodeMatching = rx.unicode;
@@ -2896,607 +3308,7 @@
return A;
}
];
- }, UNSUPPORTED_Y);
-
- function ownKeys(object, enumerableOnly) {
- var keys = Object.keys(object);
-
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
-
- if (enumerableOnly) {
- symbols = symbols.filter(function (sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- });
- }
-
- keys.push.apply(keys, symbols);
- }
-
- return keys;
- }
-
- function _objectSpread2(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? arguments[i] : {};
-
- if (i % 2) {
- ownKeys(Object(source), true).forEach(function (key) {
- _defineProperty(target, key, source[key]);
- });
- } else if (Object.getOwnPropertyDescriptors) {
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
- } else {
- ownKeys(Object(source)).forEach(function (key) {
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
- });
- }
- }
-
- return target;
- }
-
- function _typeof(obj) {
- "@babel/helpers - typeof";
-
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
- _typeof = function (obj) {
- return typeof obj;
- };
- } else {
- _typeof = function (obj) {
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- };
- }
-
- return _typeof(obj);
- }
-
- function _asyncIterator(iterable) {
- var method;
-
- if (typeof Symbol !== "undefined") {
- if (Symbol.asyncIterator) method = iterable[Symbol.asyncIterator];
- if (method == null && Symbol.iterator) method = iterable[Symbol.iterator];
- }
-
- if (method == null) method = iterable["@@asyncIterator"];
- if (method == null) method = iterable["@@iterator"];
- if (method == null) throw new TypeError("Object is not async iterable");
- return method.call(iterable);
- }
-
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
- try {
- var info = gen[key](arg);
- var value = info.value;
- } catch (error) {
- reject(error);
- return;
- }
-
- if (info.done) {
- resolve(value);
- } else {
- Promise.resolve(value).then(_next, _throw);
- }
- }
-
- function _asyncToGenerator(fn) {
- return function () {
- var self = this,
- args = arguments;
- return new Promise(function (resolve, reject) {
- var gen = fn.apply(self, args);
-
- function _next(value) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
- }
-
- function _throw(err) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
- }
-
- _next(undefined);
- });
- };
- }
-
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
-
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
- }
-
- function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
-
- subClass.prototype = Object.create(superClass && superClass.prototype, {
- constructor: {
- value: subClass,
- writable: true,
- configurable: true
- }
- });
- if (superClass) _setPrototypeOf(subClass, superClass);
- }
-
- function _getPrototypeOf(o) {
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
- return o.__proto__ || Object.getPrototypeOf(o);
- };
- return _getPrototypeOf(o);
- }
-
- function _setPrototypeOf(o, p) {
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
- o.__proto__ = p;
- return o;
- };
-
- return _setPrototypeOf(o, p);
- }
-
- function _isNativeReflectConstruct() {
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
- if (Reflect.construct.sham) return false;
- if (typeof Proxy === "function") return true;
-
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
- return true;
- } catch (e) {
- return false;
- }
- }
-
- function _assertThisInitialized(self) {
- if (self === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
-
- return self;
- }
-
- function _possibleConstructorReturn(self, call) {
- if (call && (typeof call === "object" || typeof call === "function")) {
- return call;
- }
-
- return _assertThisInitialized(self);
- }
-
- function _createSuper(Derived) {
- var hasNativeReflectConstruct = _isNativeReflectConstruct();
-
- return function _createSuperInternal() {
- var Super = _getPrototypeOf(Derived),
- result;
-
- if (hasNativeReflectConstruct) {
- var NewTarget = _getPrototypeOf(this).constructor;
-
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
-
- return _possibleConstructorReturn(this, result);
- };
- }
-
- function _toConsumableArray(arr) {
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
- }
-
- function _arrayWithoutHoles(arr) {
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
- }
-
- function _iterableToArray(iter) {
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
- }
-
- function _unsupportedIterableToArray(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
- var n = Object.prototype.toString.call(o).slice(8, -1);
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
- }
-
- function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
-
- return arr2;
- }
-
- function _nonIterableSpread() {
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
-
- var f$1 = wellKnownSymbol;
-
- var wellKnownSymbolWrapped = {
- f: f$1
- };
-
- var defineProperty$5 = objectDefineProperty.f;
-
- var defineWellKnownSymbol = function (NAME) {
- var Symbol = path$1.Symbol || (path$1.Symbol = {});
- if (!has$1(Symbol, NAME)) defineProperty$5(Symbol, NAME, {
- value: wellKnownSymbolWrapped.f(NAME)
- });
- };
-
- var defineProperty$4 = objectDefineProperty.f;
-
-
-
- var TO_STRING_TAG$2 = wellKnownSymbol('toStringTag');
-
- var setToStringTag = function (it, TAG, STATIC) {
- if (it && !has$1(it = STATIC ? it : it.prototype, TO_STRING_TAG$2)) {
- defineProperty$4(it, TO_STRING_TAG$2, { configurable: true, value: TAG });
- }
- };
-
- var $forEach$1 = arrayIteration.forEach;
-
- var HIDDEN = sharedKey('hidden');
- var SYMBOL = 'Symbol';
- var PROTOTYPE$1 = 'prototype';
- var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
- var setInternalState$5 = internalState.set;
- var getInternalState$4 = internalState.getterFor(SYMBOL);
- var ObjectPrototype$2 = Object[PROTOTYPE$1];
- var $Symbol = global_1.Symbol;
- var $stringify = getBuiltIn('JSON', 'stringify');
- var nativeGetOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
- var nativeDefineProperty = objectDefineProperty.f;
- var nativeGetOwnPropertyNames = objectGetOwnPropertyNamesExternal.f;
- var nativePropertyIsEnumerable = objectPropertyIsEnumerable.f;
- var AllSymbols = shared('symbols');
- var ObjectPrototypeSymbols = shared('op-symbols');
- var StringToSymbolRegistry = shared('string-to-symbol-registry');
- var SymbolToStringRegistry = shared('symbol-to-string-registry');
- var WellKnownSymbolsStore = shared('wks');
- var QObject = global_1.QObject;
- // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
- var USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild;
-
- // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
- var setSymbolDescriptor = descriptors && fails(function () {
- return objectCreate(nativeDefineProperty({}, 'a', {
- get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
- })).a != 7;
- }) ? function (O, P, Attributes) {
- var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype$2, P);
- if (ObjectPrototypeDescriptor) delete ObjectPrototype$2[P];
- nativeDefineProperty(O, P, Attributes);
- if (ObjectPrototypeDescriptor && O !== ObjectPrototype$2) {
- nativeDefineProperty(ObjectPrototype$2, P, ObjectPrototypeDescriptor);
- }
- } : nativeDefineProperty;
-
- var wrap = function (tag, description) {
- var symbol = AllSymbols[tag] = objectCreate($Symbol[PROTOTYPE$1]);
- setInternalState$5(symbol, {
- type: SYMBOL,
- tag: tag,
- description: description
- });
- if (!descriptors) symbol.description = description;
- return symbol;
- };
-
- var isSymbol$1 = useSymbolAsUid ? function (it) {
- return typeof it == 'symbol';
- } : function (it) {
- return Object(it) instanceof $Symbol;
- };
-
- var $defineProperty = function defineProperty(O, P, Attributes) {
- if (O === ObjectPrototype$2) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
- anObject(O);
- var key = toPrimitive(P, true);
- anObject(Attributes);
- if (has$1(AllSymbols, key)) {
- if (!Attributes.enumerable) {
- if (!has$1(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
- O[HIDDEN][key] = true;
- } else {
- if (has$1(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
- Attributes = objectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
- } return setSymbolDescriptor(O, key, Attributes);
- } return nativeDefineProperty(O, key, Attributes);
- };
-
- var $defineProperties = function defineProperties(O, Properties) {
- anObject(O);
- var properties = toIndexedObject(Properties);
- var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
- $forEach$1(keys, function (key) {
- if (!descriptors || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
- });
- return O;
- };
-
- var $create = function create(O, Properties) {
- return Properties === undefined ? objectCreate(O) : $defineProperties(objectCreate(O), Properties);
- };
-
- var $propertyIsEnumerable = function propertyIsEnumerable(V) {
- var P = toPrimitive(V, true);
- var enumerable = nativePropertyIsEnumerable.call(this, P);
- if (this === ObjectPrototype$2 && has$1(AllSymbols, P) && !has$1(ObjectPrototypeSymbols, P)) return false;
- return enumerable || !has$1(this, P) || !has$1(AllSymbols, P) || has$1(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
- };
-
- var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
- var it = toIndexedObject(O);
- var key = toPrimitive(P, true);
- if (it === ObjectPrototype$2 && has$1(AllSymbols, key) && !has$1(ObjectPrototypeSymbols, key)) return;
- var descriptor = nativeGetOwnPropertyDescriptor(it, key);
- if (descriptor && has$1(AllSymbols, key) && !(has$1(it, HIDDEN) && it[HIDDEN][key])) {
- descriptor.enumerable = true;
- }
- return descriptor;
- };
-
- var $getOwnPropertyNames = function getOwnPropertyNames(O) {
- var names = nativeGetOwnPropertyNames(toIndexedObject(O));
- var result = [];
- $forEach$1(names, function (key) {
- if (!has$1(AllSymbols, key) && !has$1(hiddenKeys$1, key)) result.push(key);
- });
- return result;
- };
-
- var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
- var IS_OBJECT_PROTOTYPE = O === ObjectPrototype$2;
- var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
- var result = [];
- $forEach$1(names, function (key) {
- if (has$1(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has$1(ObjectPrototype$2, key))) {
- result.push(AllSymbols[key]);
- }
- });
- return result;
- };
-
- // `Symbol` constructor
- // https://tc39.es/ecma262/#sec-symbol-constructor
- if (!nativeSymbol) {
- $Symbol = function Symbol() {
- if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
- var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
- var tag = uid(description);
- var setter = function (value) {
- if (this === ObjectPrototype$2) setter.call(ObjectPrototypeSymbols, value);
- if (has$1(this, HIDDEN) && has$1(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
- setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
- };
- if (descriptors && USE_SETTER) setSymbolDescriptor(ObjectPrototype$2, tag, { configurable: true, set: setter });
- return wrap(tag, description);
- };
-
- redefine($Symbol[PROTOTYPE$1], 'toString', function toString() {
- return getInternalState$4(this).tag;
- });
-
- redefine($Symbol, 'withoutSetter', function (description) {
- return wrap(uid(description), description);
- });
-
- objectPropertyIsEnumerable.f = $propertyIsEnumerable;
- objectDefineProperty.f = $defineProperty;
- objectGetOwnPropertyDescriptor.f = $getOwnPropertyDescriptor;
- objectGetOwnPropertyNames.f = objectGetOwnPropertyNamesExternal.f = $getOwnPropertyNames;
- objectGetOwnPropertySymbols.f = $getOwnPropertySymbols;
-
- wellKnownSymbolWrapped.f = function (name) {
- return wrap(wellKnownSymbol(name), name);
- };
-
- if (descriptors) {
- // https://github.com/tc39/proposal-Symbol-description
- nativeDefineProperty($Symbol[PROTOTYPE$1], 'description', {
- configurable: true,
- get: function description() {
- return getInternalState$4(this).description;
- }
- });
- {
- redefine(ObjectPrototype$2, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
- }
- }
- }
-
- _export({ global: true, wrap: true, forced: !nativeSymbol, sham: !nativeSymbol }, {
- Symbol: $Symbol
- });
-
- $forEach$1(objectKeys(WellKnownSymbolsStore), function (name) {
- defineWellKnownSymbol(name);
- });
-
- _export({ target: SYMBOL, stat: true, forced: !nativeSymbol }, {
- // `Symbol.for` method
- // https://tc39.es/ecma262/#sec-symbol.for
- 'for': function (key) {
- var string = String(key);
- if (has$1(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
- var symbol = $Symbol(string);
- StringToSymbolRegistry[string] = symbol;
- SymbolToStringRegistry[symbol] = string;
- return symbol;
- },
- // `Symbol.keyFor` method
- // https://tc39.es/ecma262/#sec-symbol.keyfor
- keyFor: function keyFor(sym) {
- if (!isSymbol$1(sym)) throw TypeError(sym + ' is not a symbol');
- if (has$1(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
- },
- useSetter: function () { USE_SETTER = true; },
- useSimple: function () { USE_SETTER = false; }
- });
-
- _export({ target: 'Object', stat: true, forced: !nativeSymbol, sham: !descriptors }, {
- // `Object.create` method
- // https://tc39.es/ecma262/#sec-object.create
- create: $create,
- // `Object.defineProperty` method
- // https://tc39.es/ecma262/#sec-object.defineproperty
- defineProperty: $defineProperty,
- // `Object.defineProperties` method
- // https://tc39.es/ecma262/#sec-object.defineproperties
- defineProperties: $defineProperties,
- // `Object.getOwnPropertyDescriptor` method
- // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor
- });
-
- _export({ target: 'Object', stat: true, forced: !nativeSymbol }, {
- // `Object.getOwnPropertyNames` method
- // https://tc39.es/ecma262/#sec-object.getownpropertynames
- getOwnPropertyNames: $getOwnPropertyNames,
- // `Object.getOwnPropertySymbols` method
- // https://tc39.es/ecma262/#sec-object.getownpropertysymbols
- getOwnPropertySymbols: $getOwnPropertySymbols
- });
-
- // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
- // https://bugs.chromium.org/p/v8/issues/detail?id=3443
- _export({ target: 'Object', stat: true, forced: fails(function () { objectGetOwnPropertySymbols.f(1); }) }, {
- getOwnPropertySymbols: function getOwnPropertySymbols(it) {
- return objectGetOwnPropertySymbols.f(toObject(it));
- }
- });
-
- // `JSON.stringify` method behavior with symbols
- // https://tc39.es/ecma262/#sec-json.stringify
- if ($stringify) {
- var FORCED_JSON_STRINGIFY = !nativeSymbol || fails(function () {
- var symbol = $Symbol();
- // MS Edge converts symbol values to JSON as {}
- return $stringify([symbol]) != '[null]'
- // WebKit converts symbol values to JSON as null
- || $stringify({ a: symbol }) != '{}'
- // V8 throws on boxed symbols
- || $stringify(Object(symbol)) != '{}';
- });
-
- _export({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
- // eslint-disable-next-line no-unused-vars -- required for `.length`
- stringify: function stringify(it, replacer, space) {
- var args = [it];
- var index = 1;
- var $replacer;
- while (arguments.length > index) args.push(arguments[index++]);
- $replacer = replacer;
- if (!isObject$1(replacer) && it === undefined || isSymbol$1(it)) return; // IE8 returns string on undefined
- if (!isArray$3(replacer)) replacer = function (key, value) {
- if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
- if (!isSymbol$1(value)) return value;
- };
- args[1] = replacer;
- return $stringify.apply(null, args);
- }
- });
- }
-
- // `Symbol.prototype[@@toPrimitive]` method
- // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
- if (!$Symbol[PROTOTYPE$1][TO_PRIMITIVE]) {
- createNonEnumerableProperty($Symbol[PROTOTYPE$1], TO_PRIMITIVE, $Symbol[PROTOTYPE$1].valueOf);
- }
- // `Symbol.prototype[@@toStringTag]` property
- // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
- setToStringTag($Symbol, SYMBOL);
-
- hiddenKeys$1[HIDDEN] = true;
-
- var defineProperty$3 = objectDefineProperty.f;
-
-
- var NativeSymbol = global_1.Symbol;
-
- if (descriptors && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||
- // Safari 12 bug
- NativeSymbol().description !== undefined
- )) {
- var EmptyStringDescriptionStore = {};
- // wrap Symbol constructor for correct work with undefined description
- var SymbolWrapper = function Symbol() {
- var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
- var result = this instanceof SymbolWrapper
- ? new NativeSymbol(description)
- // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
- : description === undefined ? NativeSymbol() : NativeSymbol(description);
- if (description === '') EmptyStringDescriptionStore[result] = true;
- return result;
- };
- copyConstructorProperties(SymbolWrapper, NativeSymbol);
- var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
- symbolPrototype.constructor = SymbolWrapper;
-
- var symbolToString = symbolPrototype.toString;
- var native = String(NativeSymbol('test')) == 'Symbol(test)';
- var regexp = /^Symbol\((.*)\)[^)]+$/;
- defineProperty$3(symbolPrototype, 'description', {
- configurable: true,
- get: function description() {
- var symbol = isObject$1(this) ? this.valueOf() : this;
- var string = symbolToString.call(symbol);
- if (has$1(EmptyStringDescriptionStore, symbol)) return '';
- var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
- return desc === '' ? undefined : desc;
- }
- });
-
- _export({ global: true, forced: true }, {
- Symbol: SymbolWrapper
- });
- }
-
- // `Symbol.species` well-known symbol
- // https://tc39.es/ecma262/#sec-symbol.species
- defineWellKnownSymbol('species');
-
- // `Array.prototype.fill` method implementation
- // https://tc39.es/ecma262/#sec-array.prototype.fill
- var arrayFill = function fill(value /* , start = 0, end = @length */) {
- var O = toObject(this);
- var length = toLength(O.length);
- var argumentsLength = arguments.length;
- var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
- var end = argumentsLength > 2 ? arguments[2] : undefined;
- var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
- while (endPos > index) O[index++] = value;
- return O;
- };
+ }, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);
var UNSCOPABLES = wellKnownSymbol('unscopables');
var ArrayPrototype$1 = Array.prototype;
@@ -3515,29 +3327,6 @@
ArrayPrototype$1[UNSCOPABLES][key] = true;
};
- // `Array.prototype.fill` method
- // https://tc39.es/ecma262/#sec-array.prototype.fill
- _export({ target: 'Array', proto: true }, {
- fill: arrayFill
- });
-
- // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
- addToUnscopables('fill');
-
- var $includes$1 = arrayIncludes.includes;
-
-
- // `Array.prototype.includes` method
- // https://tc39.es/ecma262/#sec-array.prototype.includes
- _export({ target: 'Array', proto: true }, {
- includes: function includes(el /* , fromIndex = 0 */) {
- return $includes$1(this, el, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
- // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
- addToUnscopables('includes');
-
var iterators = {};
var ITERATOR$6 = wellKnownSymbol('iterator');
@@ -3579,6 +3368,18 @@
BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1
};
+ var defineProperty$5 = objectDefineProperty.f;
+
+
+
+ var TO_STRING_TAG$2 = wellKnownSymbol('toStringTag');
+
+ var setToStringTag = function (it, TAG, STATIC) {
+ if (it && !has$1(it = STATIC ? it : it.prototype, TO_STRING_TAG$2)) {
+ defineProperty$5(it, TO_STRING_TAG$2, { configurable: true, value: TAG });
+ }
+ };
+
var IteratorPrototype$1 = iteratorsCore.IteratorPrototype;
@@ -3673,8 +3474,8 @@
};
var ARRAY_ITERATOR = 'Array Iterator';
- var setInternalState$4 = internalState.set;
- var getInternalState$3 = internalState.getterFor(ARRAY_ITERATOR);
+ var setInternalState$5 = internalState.set;
+ var getInternalState$4 = internalState.getterFor(ARRAY_ITERATOR);
// `Array.prototype.entries` method
// https://tc39.es/ecma262/#sec-array.prototype.entries
@@ -3687,7 +3488,7 @@
// `CreateArrayIterator` internal method
// https://tc39.es/ecma262/#sec-createarrayiterator
var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) {
- setInternalState$4(this, {
+ setInternalState$5(this, {
type: ARRAY_ITERATOR,
target: toIndexedObject(iterated), // target
index: 0, // next index
@@ -3696,7 +3497,7 @@
// `%ArrayIteratorPrototype%.next` method
// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next
}, function () {
- var state = getInternalState$3(this);
+ var state = getInternalState$4(this);
var target = state.target;
var kind = state.kind;
var index = state.index++;
@@ -3719,50 +3520,234 @@
addToUnscopables('values');
addToUnscopables('entries');
- var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
-
- var SPECIES$1 = wellKnownSymbol('species');
- var nativeSlice = [].slice;
- var max = Math.max;
+ var ITERATOR$4 = wellKnownSymbol('iterator');
+ var SAFE_CLOSING = false;
- // `Array.prototype.slice` method
- // https://tc39.es/ecma262/#sec-array.prototype.slice
- // fallback for not array-like ES3 strings and DOM objects
- _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
- slice: function slice(start, end) {
- var O = toIndexedObject(this);
- var length = toLength(O.length);
- var k = toAbsoluteIndex(start, length);
- var fin = toAbsoluteIndex(end === undefined ? length : end, length);
- // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
- var Constructor, result, n;
- if (isArray$3(O)) {
- Constructor = O.constructor;
- // cross-realm fallback
- if (typeof Constructor == 'function' && (Constructor === Array || isArray$3(Constructor.prototype))) {
- Constructor = undefined;
- } else if (isObject$1(Constructor)) {
- Constructor = Constructor[SPECIES$1];
- if (Constructor === null) Constructor = undefined;
- }
- if (Constructor === Array || Constructor === undefined) {
- return nativeSlice.call(O, k, fin);
- }
+ try {
+ var called = 0;
+ var iteratorWithReturn = {
+ next: function () {
+ return { done: !!called++ };
+ },
+ 'return': function () {
+ SAFE_CLOSING = true;
}
- result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
- for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
- result.length = n;
- return result;
- }
- });
+ };
+ iteratorWithReturn[ITERATOR$4] = function () {
+ return this;
+ };
+ // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
+ Array.from(iteratorWithReturn, function () { throw 2; });
+ } catch (error) { /* empty */ }
- // `Array[@@species]` getter
- // https://tc39.es/ecma262/#sec-get-array-@@species
- setSpecies('Array');
+ var checkCorrectnessOfIteration = function (exec, SKIP_CLOSING) {
+ if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
+ var ITERATION_SUPPORT = false;
+ try {
+ var object = {};
+ object[ITERATOR$4] = function () {
+ return {
+ next: function () {
+ return { done: ITERATION_SUPPORT = true };
+ }
+ };
+ };
+ exec(object);
+ } catch (error) { /* empty */ }
+ return ITERATION_SUPPORT;
+ };
// eslint-disable-next-line es/no-typed-arrays -- safe
var arrayBufferNative = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';
+ var defineProperty$4 = objectDefineProperty.f;
+
+
+
+
+
+ var Int8Array$3 = global_1.Int8Array;
+ var Int8ArrayPrototype = Int8Array$3 && Int8Array$3.prototype;
+ var Uint8ClampedArray = global_1.Uint8ClampedArray;
+ var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;
+ var TypedArray = Int8Array$3 && objectGetPrototypeOf(Int8Array$3);
+ var TypedArrayPrototype = Int8ArrayPrototype && objectGetPrototypeOf(Int8ArrayPrototype);
+ var ObjectPrototype$2 = Object.prototype;
+ var isPrototypeOf = ObjectPrototype$2.isPrototypeOf;
+
+ var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag');
+ var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
+ var TYPED_ARRAY_CONSTRUCTOR$1 = uid('TYPED_ARRAY_CONSTRUCTOR');
+ // Fixing native typed arrays in Opera Presto crashes the browser, see #595
+ var NATIVE_ARRAY_BUFFER_VIEWS$1 = arrayBufferNative && !!objectSetPrototypeOf && classof(global_1.opera) !== 'Opera';
+ var TYPED_ARRAY_TAG_REQIRED = false;
+ var NAME, Constructor, Prototype;
+
+ var TypedArrayConstructorsList = {
+ Int8Array: 1,
+ Uint8Array: 1,
+ Uint8ClampedArray: 1,
+ Int16Array: 2,
+ Uint16Array: 2,
+ Int32Array: 4,
+ Uint32Array: 4,
+ Float32Array: 4,
+ Float64Array: 8
+ };
+
+ var BigIntArrayConstructorsList = {
+ BigInt64Array: 8,
+ BigUint64Array: 8
+ };
+
+ var isView = function isView(it) {
+ if (!isObject$1(it)) return false;
+ var klass = classof(it);
+ return klass === 'DataView'
+ || has$1(TypedArrayConstructorsList, klass)
+ || has$1(BigIntArrayConstructorsList, klass);
+ };
+
+ var isTypedArray = function (it) {
+ if (!isObject$1(it)) return false;
+ var klass = classof(it);
+ return has$1(TypedArrayConstructorsList, klass)
+ || has$1(BigIntArrayConstructorsList, klass);
+ };
+
+ var aTypedArray$m = function (it) {
+ if (isTypedArray(it)) return it;
+ throw TypeError('Target is not a typed array');
+ };
+
+ var aTypedArrayConstructor$2 = function (C) {
+ if (objectSetPrototypeOf && !isPrototypeOf.call(TypedArray, C)) {
+ throw TypeError('Target is not a typed array constructor');
+ } return C;
+ };
+
+ var exportTypedArrayMethod$n = function (KEY, property, forced) {
+ if (!descriptors) return;
+ if (forced) for (var ARRAY in TypedArrayConstructorsList) {
+ var TypedArrayConstructor = global_1[ARRAY];
+ if (TypedArrayConstructor && has$1(TypedArrayConstructor.prototype, KEY)) try {
+ delete TypedArrayConstructor.prototype[KEY];
+ } catch (error) { /* empty */ }
+ }
+ if (!TypedArrayPrototype[KEY] || forced) {
+ redefine(TypedArrayPrototype, KEY, forced ? property
+ : NATIVE_ARRAY_BUFFER_VIEWS$1 && Int8ArrayPrototype[KEY] || property);
+ }
+ };
+
+ var exportTypedArrayStaticMethod = function (KEY, property, forced) {
+ var ARRAY, TypedArrayConstructor;
+ if (!descriptors) return;
+ if (objectSetPrototypeOf) {
+ if (forced) for (ARRAY in TypedArrayConstructorsList) {
+ TypedArrayConstructor = global_1[ARRAY];
+ if (TypedArrayConstructor && has$1(TypedArrayConstructor, KEY)) try {
+ delete TypedArrayConstructor[KEY];
+ } catch (error) { /* empty */ }
+ }
+ if (!TypedArray[KEY] || forced) {
+ // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
+ try {
+ return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS$1 && TypedArray[KEY] || property);
+ } catch (error) { /* empty */ }
+ } else return;
+ }
+ for (ARRAY in TypedArrayConstructorsList) {
+ TypedArrayConstructor = global_1[ARRAY];
+ if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
+ redefine(TypedArrayConstructor, KEY, property);
+ }
+ }
+ };
+
+ for (NAME in TypedArrayConstructorsList) {
+ Constructor = global_1[NAME];
+ Prototype = Constructor && Constructor.prototype;
+ if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR$1, Constructor);
+ else NATIVE_ARRAY_BUFFER_VIEWS$1 = false;
+ }
+
+ for (NAME in BigIntArrayConstructorsList) {
+ Constructor = global_1[NAME];
+ Prototype = Constructor && Constructor.prototype;
+ if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR$1, Constructor);
+ }
+
+ // WebKit bug - typed arrays constructors prototype is Object.prototype
+ if (!NATIVE_ARRAY_BUFFER_VIEWS$1 || typeof TypedArray != 'function' || TypedArray === Function.prototype) {
+ // eslint-disable-next-line no-shadow -- safe
+ TypedArray = function TypedArray() {
+ throw TypeError('Incorrect invocation');
+ };
+ if (NATIVE_ARRAY_BUFFER_VIEWS$1) for (NAME in TypedArrayConstructorsList) {
+ if (global_1[NAME]) objectSetPrototypeOf(global_1[NAME], TypedArray);
+ }
+ }
+
+ if (!NATIVE_ARRAY_BUFFER_VIEWS$1 || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype$2) {
+ TypedArrayPrototype = TypedArray.prototype;
+ if (NATIVE_ARRAY_BUFFER_VIEWS$1) for (NAME in TypedArrayConstructorsList) {
+ if (global_1[NAME]) objectSetPrototypeOf(global_1[NAME].prototype, TypedArrayPrototype);
+ }
+ }
+
+ // WebKit bug - one more object in Uint8ClampedArray prototype chain
+ if (NATIVE_ARRAY_BUFFER_VIEWS$1 && objectGetPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {
+ objectSetPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
+ }
+
+ if (descriptors && !has$1(TypedArrayPrototype, TO_STRING_TAG$1)) {
+ TYPED_ARRAY_TAG_REQIRED = true;
+ defineProperty$4(TypedArrayPrototype, TO_STRING_TAG$1, { get: function () {
+ return isObject$1(this) ? this[TYPED_ARRAY_TAG] : undefined;
+ } });
+ for (NAME in TypedArrayConstructorsList) if (global_1[NAME]) {
+ createNonEnumerableProperty(global_1[NAME], TYPED_ARRAY_TAG, NAME);
+ }
+ }
+
+ var arrayBufferViewCore = {
+ NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS$1,
+ TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR$1,
+ TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
+ aTypedArray: aTypedArray$m,
+ aTypedArrayConstructor: aTypedArrayConstructor$2,
+ exportTypedArrayMethod: exportTypedArrayMethod$n,
+ exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
+ isView: isView,
+ isTypedArray: isTypedArray,
+ TypedArray: TypedArray,
+ TypedArrayPrototype: TypedArrayPrototype
+ };
+
+ /* eslint-disable no-new -- required for testing */
+
+
+
+ var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
+
+ var ArrayBuffer$2 = global_1.ArrayBuffer;
+ var Int8Array$2 = global_1.Int8Array;
+
+ var typedArrayConstructorsRequireWrappers = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {
+ Int8Array$2(1);
+ }) || !fails(function () {
+ new Int8Array$2(-1);
+ }) || !checkCorrectnessOfIteration(function (iterable) {
+ new Int8Array$2();
+ new Int8Array$2(null);
+ new Int8Array$2(1.5);
+ new Int8Array$2(iterable);
+ }, true) || fails(function () {
+ // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill
+ return new Int8Array$2(new ArrayBuffer$2(2), 1, undefined).length !== 1;
+ });
+
var redefineAll = function (target, src, options) {
for (var key in src) redefine(target, key, src[key], options);
return target;
@@ -3787,7 +3772,7 @@
// IEEE754 conversions based on https://github.com/feross/ieee754
var abs = Math.abs;
var pow$1 = Math.pow;
- var floor$3 = Math.floor;
+ var floor$4 = Math.floor;
var log$2 = Math.log;
var LN2 = Math.LN2;
@@ -3807,7 +3792,7 @@
mantissa = number != number ? 1 : 0;
exponent = eMax;
} else {
- exponent = floor$3(log$2(number) / LN2);
+ exponent = floor$4(log$2(number) / LN2);
if (number * (c = pow$1(2, -exponent)) < 1) {
exponent--;
c *= 2;
@@ -3871,23 +3856,36 @@
unpack: unpack
};
+ // `Array.prototype.fill` method implementation
+ // https://tc39.es/ecma262/#sec-array.prototype.fill
+ var arrayFill = function fill(value /* , start = 0, end = @length */) {
+ var O = toObject(this);
+ var length = toLength(O.length);
+ var argumentsLength = arguments.length;
+ var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
+ var end = argumentsLength > 2 ? arguments[2] : undefined;
+ var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
+ while (endPos > index) O[index++] = value;
+ return O;
+ };
+
var getOwnPropertyNames = objectGetOwnPropertyNames.f;
- var defineProperty$2 = objectDefineProperty.f;
+ var defineProperty$3 = objectDefineProperty.f;
- var getInternalState$2 = internalState.get;
- var setInternalState$3 = internalState.set;
+ var getInternalState$3 = internalState.get;
+ var setInternalState$4 = internalState.set;
var ARRAY_BUFFER$1 = 'ArrayBuffer';
var DATA_VIEW = 'DataView';
- var PROTOTYPE = 'prototype';
+ var PROTOTYPE$1 = 'prototype';
var WRONG_LENGTH = 'Wrong length';
var WRONG_INDEX = 'Wrong index';
var NativeArrayBuffer$1 = global_1[ARRAY_BUFFER$1];
var $ArrayBuffer = NativeArrayBuffer$1;
var $DataView = global_1[DATA_VIEW];
- var $DataViewPrototype = $DataView && $DataView[PROTOTYPE];
+ var $DataViewPrototype = $DataView && $DataView[PROTOTYPE$1];
var ObjectPrototype$1 = Object.prototype;
var RangeError$1 = global_1.RangeError;
@@ -3919,14 +3917,14 @@
};
var addGetter = function (Constructor, key) {
- defineProperty$2(Constructor[PROTOTYPE], key, { get: function () { return getInternalState$2(this)[key]; } });
+ defineProperty$3(Constructor[PROTOTYPE$1], key, { get: function () { return getInternalState$3(this)[key]; } });
};
var get = function (view, count, index, isLittleEndian) {
var intIndex = toIndex(index);
- var store = getInternalState$2(view);
+ var store = getInternalState$3(view);
if (intIndex + count > store.byteLength) throw RangeError$1(WRONG_INDEX);
- var bytes = getInternalState$2(store.buffer).bytes;
+ var bytes = getInternalState$3(store.buffer).bytes;
var start = intIndex + store.byteOffset;
var pack = bytes.slice(start, start + count);
return isLittleEndian ? pack : pack.reverse();
@@ -3934,9 +3932,9 @@
var set$1 = function (view, count, index, conversion, value, isLittleEndian) {
var intIndex = toIndex(index);
- var store = getInternalState$2(view);
+ var store = getInternalState$3(view);
if (intIndex + count > store.byteLength) throw RangeError$1(WRONG_INDEX);
- var bytes = getInternalState$2(store.buffer).bytes;
+ var bytes = getInternalState$3(store.buffer).bytes;
var start = intIndex + store.byteOffset;
var pack = conversion(+value);
for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];
@@ -3946,7 +3944,7 @@
$ArrayBuffer = function ArrayBuffer(length) {
anInstance(this, $ArrayBuffer, ARRAY_BUFFER$1);
var byteLength = toIndex(length);
- setInternalState$3(this, {
+ setInternalState$4(this, {
bytes: arrayFill.call(new Array(byteLength), 0),
byteLength: byteLength
});
@@ -3956,12 +3954,12 @@
$DataView = function DataView(buffer, byteOffset, byteLength) {
anInstance(this, $DataView, DATA_VIEW);
anInstance(buffer, $ArrayBuffer, DATA_VIEW);
- var bufferLength = getInternalState$2(buffer).byteLength;
+ var bufferLength = getInternalState$3(buffer).byteLength;
var offset = toInteger(byteOffset);
if (offset < 0 || offset > bufferLength) throw RangeError$1('Wrong offset');
byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
if (offset + byteLength > bufferLength) throw RangeError$1(WRONG_LENGTH);
- setInternalState$3(this, {
+ setInternalState$4(this, {
buffer: buffer,
byteLength: byteLength,
byteOffset: offset
@@ -3980,7 +3978,7 @@
addGetter($DataView, 'byteOffset');
}
- redefineAll($DataView[PROTOTYPE], {
+ redefineAll($DataView[PROTOTYPE$1], {
getInt8: function getInt8(byteOffset) {
return get(this, 1, byteOffset)[0] << 24 >> 24;
},
@@ -4049,7 +4047,7 @@
anInstance(this, $ArrayBuffer);
return new NativeArrayBuffer$1(toIndex(length));
};
- var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer$1[PROTOTYPE];
+ var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE$1] = NativeArrayBuffer$1[PROTOTYPE$1];
for (var keys$1 = getOwnPropertyNames(NativeArrayBuffer$1), j = 0, key; keys$1.length > j;) {
if (!((key = keys$1[j++]) in $ArrayBuffer)) {
createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer$1[key]);
@@ -4086,287 +4084,14 @@
DataView: $DataView
};
- var ARRAY_BUFFER = 'ArrayBuffer';
- var ArrayBuffer$2 = arrayBuffer[ARRAY_BUFFER];
- var NativeArrayBuffer = global_1[ARRAY_BUFFER];
-
- // `ArrayBuffer` constructor
- // https://tc39.es/ecma262/#sec-arraybuffer-constructor
- _export({ global: true, forced: NativeArrayBuffer !== ArrayBuffer$2 }, {
- ArrayBuffer: ArrayBuffer$2
- });
-
- setSpecies(ARRAY_BUFFER);
-
- var notARegexp = function (it) {
- if (isRegexp(it)) {
- throw TypeError("The method doesn't accept regular expressions");
- } return it;
- };
-
- var MATCH = wellKnownSymbol('match');
-
- var correctIsRegexpLogic = function (METHOD_NAME) {
- var regexp = /./;
- try {
- '/./'[METHOD_NAME](regexp);
- } catch (error1) {
- try {
- regexp[MATCH] = false;
- return '/./'[METHOD_NAME](regexp);
- } catch (error2) { /* empty */ }
- } return false;
- };
-
- // `String.prototype.includes` method
- // https://tc39.es/ecma262/#sec-string.prototype.includes
- _export({ target: 'String', proto: true, forced: !correctIsRegexpLogic('includes') }, {
- includes: function includes(searchString /* , position = 0 */) {
- return !!~String(requireObjectCoercible(this))
- .indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
- var non = '\u200B\u0085\u180E';
-
- // check that a method works with the correct list
- // of whitespaces and has a correct name
- var stringTrimForced = function (METHOD_NAME) {
- return fails(function () {
- return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
- });
- };
-
- var $trim = stringTrim.trim;
-
-
- // `String.prototype.trim` method
- // https://tc39.es/ecma262/#sec-string.prototype.trim
- _export({ target: 'String', proto: true, forced: stringTrimForced('trim') }, {
- trim: function trim() {
- return $trim(this);
- }
- });
-
- var ITERATOR$4 = wellKnownSymbol('iterator');
- var SAFE_CLOSING = false;
-
- try {
- var called = 0;
- var iteratorWithReturn = {
- next: function () {
- return { done: !!called++ };
- },
- 'return': function () {
- SAFE_CLOSING = true;
- }
- };
- iteratorWithReturn[ITERATOR$4] = function () {
- return this;
- };
- // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
- Array.from(iteratorWithReturn, function () { throw 2; });
- } catch (error) { /* empty */ }
-
- var checkCorrectnessOfIteration = function (exec, SKIP_CLOSING) {
- if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
- var ITERATION_SUPPORT = false;
- try {
- var object = {};
- object[ITERATOR$4] = function () {
- return {
- next: function () {
- return { done: ITERATION_SUPPORT = true };
- }
- };
- };
- exec(object);
- } catch (error) { /* empty */ }
- return ITERATION_SUPPORT;
- };
-
- var defineProperty$1 = objectDefineProperty.f;
-
-
-
-
-
- var Int8Array$3 = global_1.Int8Array;
- var Int8ArrayPrototype = Int8Array$3 && Int8Array$3.prototype;
- var Uint8ClampedArray = global_1.Uint8ClampedArray;
- var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;
- var TypedArray = Int8Array$3 && objectGetPrototypeOf(Int8Array$3);
- var TypedArrayPrototype = Int8ArrayPrototype && objectGetPrototypeOf(Int8ArrayPrototype);
- var ObjectPrototype = Object.prototype;
- var isPrototypeOf = ObjectPrototype.isPrototypeOf;
-
- var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag');
- var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
- // Fixing native typed arrays in Opera Presto crashes the browser, see #595
- var NATIVE_ARRAY_BUFFER_VIEWS$1 = arrayBufferNative && !!objectSetPrototypeOf && classof(global_1.opera) !== 'Opera';
- var TYPED_ARRAY_TAG_REQIRED = false;
- var NAME;
-
- var TypedArrayConstructorsList = {
- Int8Array: 1,
- Uint8Array: 1,
- Uint8ClampedArray: 1,
- Int16Array: 2,
- Uint16Array: 2,
- Int32Array: 4,
- Uint32Array: 4,
- Float32Array: 4,
- Float64Array: 8
- };
-
- var BigIntArrayConstructorsList = {
- BigInt64Array: 8,
- BigUint64Array: 8
- };
-
- var isView = function isView(it) {
- if (!isObject$1(it)) return false;
- var klass = classof(it);
- return klass === 'DataView'
- || has$1(TypedArrayConstructorsList, klass)
- || has$1(BigIntArrayConstructorsList, klass);
- };
-
- var isTypedArray = function (it) {
- if (!isObject$1(it)) return false;
- var klass = classof(it);
- return has$1(TypedArrayConstructorsList, klass)
- || has$1(BigIntArrayConstructorsList, klass);
- };
-
- var aTypedArray$m = function (it) {
- if (isTypedArray(it)) return it;
- throw TypeError('Target is not a typed array');
- };
-
- var aTypedArrayConstructor$4 = function (C) {
- if (objectSetPrototypeOf) {
- if (isPrototypeOf.call(TypedArray, C)) return C;
- } else for (var ARRAY in TypedArrayConstructorsList) if (has$1(TypedArrayConstructorsList, NAME)) {
- var TypedArrayConstructor = global_1[ARRAY];
- if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {
- return C;
- }
- } throw TypeError('Target is not a typed array constructor');
- };
-
- var exportTypedArrayMethod$n = function (KEY, property, forced) {
- if (!descriptors) return;
- if (forced) for (var ARRAY in TypedArrayConstructorsList) {
- var TypedArrayConstructor = global_1[ARRAY];
- if (TypedArrayConstructor && has$1(TypedArrayConstructor.prototype, KEY)) try {
- delete TypedArrayConstructor.prototype[KEY];
- } catch (error) { /* empty */ }
- }
- if (!TypedArrayPrototype[KEY] || forced) {
- redefine(TypedArrayPrototype, KEY, forced ? property
- : NATIVE_ARRAY_BUFFER_VIEWS$1 && Int8ArrayPrototype[KEY] || property);
- }
- };
-
- var exportTypedArrayStaticMethod = function (KEY, property, forced) {
- var ARRAY, TypedArrayConstructor;
- if (!descriptors) return;
- if (objectSetPrototypeOf) {
- if (forced) for (ARRAY in TypedArrayConstructorsList) {
- TypedArrayConstructor = global_1[ARRAY];
- if (TypedArrayConstructor && has$1(TypedArrayConstructor, KEY)) try {
- delete TypedArrayConstructor[KEY];
- } catch (error) { /* empty */ }
- }
- if (!TypedArray[KEY] || forced) {
- // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
- try {
- return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS$1 && TypedArray[KEY] || property);
- } catch (error) { /* empty */ }
- } else return;
- }
- for (ARRAY in TypedArrayConstructorsList) {
- TypedArrayConstructor = global_1[ARRAY];
- if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
- redefine(TypedArrayConstructor, KEY, property);
- }
- }
- };
-
- for (NAME in TypedArrayConstructorsList) {
- if (!global_1[NAME]) NATIVE_ARRAY_BUFFER_VIEWS$1 = false;
- }
-
- // WebKit bug - typed arrays constructors prototype is Object.prototype
- if (!NATIVE_ARRAY_BUFFER_VIEWS$1 || typeof TypedArray != 'function' || TypedArray === Function.prototype) {
- // eslint-disable-next-line no-shadow -- safe
- TypedArray = function TypedArray() {
- throw TypeError('Incorrect invocation');
- };
- if (NATIVE_ARRAY_BUFFER_VIEWS$1) for (NAME in TypedArrayConstructorsList) {
- if (global_1[NAME]) objectSetPrototypeOf(global_1[NAME], TypedArray);
- }
- }
-
- if (!NATIVE_ARRAY_BUFFER_VIEWS$1 || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {
- TypedArrayPrototype = TypedArray.prototype;
- if (NATIVE_ARRAY_BUFFER_VIEWS$1) for (NAME in TypedArrayConstructorsList) {
- if (global_1[NAME]) objectSetPrototypeOf(global_1[NAME].prototype, TypedArrayPrototype);
- }
- }
-
- // WebKit bug - one more object in Uint8ClampedArray prototype chain
- if (NATIVE_ARRAY_BUFFER_VIEWS$1 && objectGetPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {
- objectSetPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
- }
-
- if (descriptors && !has$1(TypedArrayPrototype, TO_STRING_TAG$1)) {
- TYPED_ARRAY_TAG_REQIRED = true;
- defineProperty$1(TypedArrayPrototype, TO_STRING_TAG$1, { get: function () {
- return isObject$1(this) ? this[TYPED_ARRAY_TAG] : undefined;
- } });
- for (NAME in TypedArrayConstructorsList) if (global_1[NAME]) {
- createNonEnumerableProperty(global_1[NAME], TYPED_ARRAY_TAG, NAME);
- }
- }
+ var floor$3 = Math.floor;
- var arrayBufferViewCore = {
- NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS$1,
- TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
- aTypedArray: aTypedArray$m,
- aTypedArrayConstructor: aTypedArrayConstructor$4,
- exportTypedArrayMethod: exportTypedArrayMethod$n,
- exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
- isView: isView,
- isTypedArray: isTypedArray,
- TypedArray: TypedArray,
- TypedArrayPrototype: TypedArrayPrototype
+ // `Number.isInteger` method implementation
+ // https://tc39.es/ecma262/#sec-number.isinteger
+ var isInteger = function isInteger(it) {
+ return !isObject$1(it) && isFinite(it) && floor$3(it) === it;
};
- /* eslint-disable no-new -- required for testing */
-
-
-
- var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
-
- var ArrayBuffer$1 = global_1.ArrayBuffer;
- var Int8Array$2 = global_1.Int8Array;
-
- var typedArrayConstructorsRequireWrappers = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {
- Int8Array$2(1);
- }) || !fails(function () {
- new Int8Array$2(-1);
- }) || !checkCorrectnessOfIteration(function (iterable) {
- new Int8Array$2();
- new Int8Array$2(null);
- new Int8Array$2(1.5);
- new Int8Array$2(iterable);
- }, true) || fails(function () {
- // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill
- return new Int8Array$2(new ArrayBuffer$1(2), 1, undefined).length !== 1;
- });
-
var toPositiveInteger = function (it) {
var result = toInteger(it);
if (result < 0) throw RangeError("The argument can't be less than 0");
@@ -4395,7 +4120,7 @@
return it !== undefined && (iterators.Array === it || ArrayPrototype[ITERATOR$2] === it);
};
- var aTypedArrayConstructor$3 = arrayBufferViewCore.aTypedArrayConstructor;
+ var aTypedArrayConstructor$1 = arrayBufferViewCore.aTypedArrayConstructor;
var typedArrayFrom = function from(source /* , mapfn, thisArg */) {
var O = toObject(source);
@@ -4416,7 +4141,7 @@
mapfn = functionBindContext(mapfn, arguments[2], 2);
}
length = toLength(O.length);
- result = new (aTypedArrayConstructor$3(this))(length);
+ result = new (aTypedArrayConstructor$1(this))(length);
for (i = 0; length > i; i++) {
result[i] = mapping ? mapfn(O[i], i) : O[i];
}
@@ -4442,6 +4167,8 @@
+
+
var getOwnPropertyNames = objectGetOwnPropertyNames.f;
var forEach = arrayIteration.forEach;
@@ -4460,6 +4187,7 @@
var ArrayBuffer = arrayBuffer.ArrayBuffer;
var DataView = arrayBuffer.DataView;
var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
+ var TYPED_ARRAY_CONSTRUCTOR = arrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
var TYPED_ARRAY_TAG = arrayBufferViewCore.TYPED_ARRAY_TAG;
var TypedArray = arrayBufferViewCore.TypedArray;
var TypedArrayPrototype = arrayBufferViewCore.TypedArrayPrototype;
@@ -4489,19 +4217,22 @@
var isTypedArrayIndex = function (target, key) {
return isTypedArray(target)
- && typeof key != 'symbol'
+ && !isSymbol$1(key)
&& key in target
- && String(+key) == String(key);
+ && isInteger(+key)
+ && key >= 0;
};
var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {
- return isTypedArrayIndex(target, key = toPrimitive(key, true))
+ key = toPropertyKey(key);
+ return isTypedArrayIndex(target, key)
? createPropertyDescriptor(2, target[key])
: nativeGetOwnPropertyDescriptor(target, key);
};
var wrappedDefineProperty = function defineProperty(target, key, descriptor) {
- if (isTypedArrayIndex(target, key = toPrimitive(key, true))
+ key = toPropertyKey(key);
+ if (isTypedArrayIndex(target, key)
&& isObject$1(descriptor)
&& has$1(descriptor, 'value')
&& !has$1(descriptor, 'get')
@@ -4632,6 +4363,8 @@
createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);
}
+ createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);
+
if (TYPED_ARRAY_TAG) {
createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);
}
@@ -4719,18 +4452,27 @@
return arrayFill.apply(aTypedArray$j(this), arguments);
});
- var aTypedArrayConstructor$2 = arrayBufferViewCore.aTypedArrayConstructor;
-
-
- var typedArrayFromSpeciesAndList = function (instance, list) {
- var C = speciesConstructor(instance, instance.constructor);
+ var arrayFromConstructorAndList = function (Constructor, list) {
var index = 0;
var length = list.length;
- var result = new (aTypedArrayConstructor$2(C))(length);
+ var result = new Constructor(length);
while (length > index) result[index] = list[index++];
return result;
};
+ var TYPED_ARRAY_CONSTRUCTOR = arrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
+ var aTypedArrayConstructor = arrayBufferViewCore.aTypedArrayConstructor;
+
+ // a part of `TypedArraySpeciesCreate` abstract operation
+ // https://tc39.es/ecma262/#typedarray-species-create
+ var typedArraySpeciesConstructor = function (originalArray) {
+ return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));
+ };
+
+ var typedArrayFromSpeciesAndList = function (instance, list) {
+ return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);
+ };
+
var $filter = arrayIteration.filter;
@@ -4766,7 +4508,7 @@
return $findIndex(aTypedArray$g(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
});
- var $forEach = arrayIteration.forEach;
+ var $forEach$1 = arrayIteration.forEach;
var aTypedArray$f = arrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod$g = arrayBufferViewCore.exportTypedArrayMethod;
@@ -4774,10 +4516,10 @@
// `%TypedArray%.prototype.forEach` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach
exportTypedArrayMethod$g('forEach', function forEach(callbackfn /* , thisArg */) {
- $forEach(aTypedArray$f(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
+ $forEach$1(aTypedArray$f(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
});
- var $includes = arrayIncludes.includes;
+ var $includes$1 = arrayIncludes.includes;
var aTypedArray$e = arrayBufferViewCore.aTypedArray;
var exportTypedArrayMethod$f = arrayBufferViewCore.exportTypedArrayMethod;
@@ -4785,7 +4527,7 @@
// `%TypedArray%.prototype.includes` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes
exportTypedArrayMethod$f('includes', function includes(searchElement /* , fromIndex */) {
- return $includes(aTypedArray$e(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
+ return $includes$1(aTypedArray$e(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
});
var $indexOf = arrayIncludes.indexOf;
@@ -4883,14 +4625,13 @@
var aTypedArray$9 = arrayBufferViewCore.aTypedArray;
- var aTypedArrayConstructor$1 = arrayBufferViewCore.aTypedArrayConstructor;
var exportTypedArrayMethod$a = arrayBufferViewCore.exportTypedArrayMethod;
// `%TypedArray%.prototype.map` method
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map
exportTypedArrayMethod$a('map', function map(mapfn /* , thisArg */) {
return $map(aTypedArray$9(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {
- return new (aTypedArrayConstructor$1(speciesConstructor(O, O.constructor)))(length);
+ return new (typedArraySpeciesConstructor(O))(length);
});
});
@@ -4993,7 +4734,6 @@
}, FORCED$5);
var aTypedArray$4 = arrayBufferViewCore.aTypedArray;
- var aTypedArrayConstructor = arrayBufferViewCore.aTypedArrayConstructor;
var exportTypedArrayMethod$5 = arrayBufferViewCore.exportTypedArrayMethod;
var $slice$1 = [].slice;
@@ -5006,10 +4746,10 @@
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice
exportTypedArrayMethod$5('slice', function slice(start, end) {
var list = $slice$1.call(aTypedArray$4(this), start, end);
- var C = speciesConstructor(this, this.constructor);
+ var C = typedArraySpeciesConstructor(this);
var index = 0;
var length = list.length;
- var result = new (aTypedArrayConstructor(C))(length);
+ var result = new C(length);
while (length > index) result[index] = list[index++];
return result;
}, FORCED$4);
@@ -5165,7 +4905,8 @@
var O = aTypedArray$1(this);
var length = O.length;
var beginIndex = toAbsoluteIndex(begin, length);
- return new (speciesConstructor(O, O.constructor))(
+ var C = typedArraySpeciesConstructor(O);
+ return new C(
O.buffer,
O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,
toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)
@@ -5216,6 +4957,445 @@
// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring
exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);
+ var ARRAY_BUFFER = 'ArrayBuffer';
+ var ArrayBuffer$1 = arrayBuffer[ARRAY_BUFFER];
+ var NativeArrayBuffer = global_1[ARRAY_BUFFER];
+
+ // `ArrayBuffer` constructor
+ // https://tc39.es/ecma262/#sec-arraybuffer-constructor
+ _export({ global: true, forced: NativeArrayBuffer !== ArrayBuffer$1 }, {
+ ArrayBuffer: ArrayBuffer$1
+ });
+
+ setSpecies(ARRAY_BUFFER);
+
+ var f$1 = wellKnownSymbol;
+
+ var wellKnownSymbolWrapped = {
+ f: f$1
+ };
+
+ var path$1 = global_1;
+
+ var defineProperty$2 = objectDefineProperty.f;
+
+ var defineWellKnownSymbol = function (NAME) {
+ var Symbol = path$1.Symbol || (path$1.Symbol = {});
+ if (!has$1(Symbol, NAME)) defineProperty$2(Symbol, NAME, {
+ value: wellKnownSymbolWrapped.f(NAME)
+ });
+ };
+
+ var $forEach = arrayIteration.forEach;
+
+ var HIDDEN = sharedKey('hidden');
+ var SYMBOL = 'Symbol';
+ var PROTOTYPE = 'prototype';
+ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
+ var setInternalState$3 = internalState.set;
+ var getInternalState$2 = internalState.getterFor(SYMBOL);
+ var ObjectPrototype = Object[PROTOTYPE];
+ var $Symbol = global_1.Symbol;
+ var $stringify = getBuiltIn('JSON', 'stringify');
+ var nativeGetOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
+ var nativeDefineProperty = objectDefineProperty.f;
+ var nativeGetOwnPropertyNames = objectGetOwnPropertyNamesExternal.f;
+ var nativePropertyIsEnumerable = objectPropertyIsEnumerable.f;
+ var AllSymbols = shared('symbols');
+ var ObjectPrototypeSymbols = shared('op-symbols');
+ var StringToSymbolRegistry = shared('string-to-symbol-registry');
+ var SymbolToStringRegistry = shared('symbol-to-string-registry');
+ var WellKnownSymbolsStore = shared('wks');
+ var QObject = global_1.QObject;
+ // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+ var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+ // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+ var setSymbolDescriptor = descriptors && fails(function () {
+ return objectCreate(nativeDefineProperty({}, 'a', {
+ get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
+ })).a != 7;
+ }) ? function (O, P, Attributes) {
+ var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
+ if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
+ nativeDefineProperty(O, P, Attributes);
+ if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
+ nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
+ }
+ } : nativeDefineProperty;
+
+ var wrap = function (tag, description) {
+ var symbol = AllSymbols[tag] = objectCreate($Symbol[PROTOTYPE]);
+ setInternalState$3(symbol, {
+ type: SYMBOL,
+ tag: tag,
+ description: description
+ });
+ if (!descriptors) symbol.description = description;
+ return symbol;
+ };
+
+ var $defineProperty = function defineProperty(O, P, Attributes) {
+ if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
+ anObject(O);
+ var key = toPropertyKey(P);
+ anObject(Attributes);
+ if (has$1(AllSymbols, key)) {
+ if (!Attributes.enumerable) {
+ if (!has$1(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
+ O[HIDDEN][key] = true;
+ } else {
+ if (has$1(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
+ Attributes = objectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
+ } return setSymbolDescriptor(O, key, Attributes);
+ } return nativeDefineProperty(O, key, Attributes);
+ };
+
+ var $defineProperties = function defineProperties(O, Properties) {
+ anObject(O);
+ var properties = toIndexedObject(Properties);
+ var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
+ $forEach(keys, function (key) {
+ if (!descriptors || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
+ });
+ return O;
+ };
+
+ var $create = function create(O, Properties) {
+ return Properties === undefined ? objectCreate(O) : $defineProperties(objectCreate(O), Properties);
+ };
+
+ var $propertyIsEnumerable = function propertyIsEnumerable(V) {
+ var P = toPropertyKey(V);
+ var enumerable = nativePropertyIsEnumerable.call(this, P);
+ if (this === ObjectPrototype && has$1(AllSymbols, P) && !has$1(ObjectPrototypeSymbols, P)) return false;
+ return enumerable || !has$1(this, P) || !has$1(AllSymbols, P) || has$1(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
+ };
+
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
+ var it = toIndexedObject(O);
+ var key = toPropertyKey(P);
+ if (it === ObjectPrototype && has$1(AllSymbols, key) && !has$1(ObjectPrototypeSymbols, key)) return;
+ var descriptor = nativeGetOwnPropertyDescriptor(it, key);
+ if (descriptor && has$1(AllSymbols, key) && !(has$1(it, HIDDEN) && it[HIDDEN][key])) {
+ descriptor.enumerable = true;
+ }
+ return descriptor;
+ };
+
+ var $getOwnPropertyNames = function getOwnPropertyNames(O) {
+ var names = nativeGetOwnPropertyNames(toIndexedObject(O));
+ var result = [];
+ $forEach(names, function (key) {
+ if (!has$1(AllSymbols, key) && !has$1(hiddenKeys$1, key)) result.push(key);
+ });
+ return result;
+ };
+
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
+ var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
+ var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
+ var result = [];
+ $forEach(names, function (key) {
+ if (has$1(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has$1(ObjectPrototype, key))) {
+ result.push(AllSymbols[key]);
+ }
+ });
+ return result;
+ };
+
+ // `Symbol` constructor
+ // https://tc39.es/ecma262/#sec-symbol-constructor
+ if (!nativeSymbol) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
+ var description = !arguments.length || arguments[0] === undefined ? undefined : toString_1(arguments[0]);
+ var tag = uid(description);
+ var setter = function (value) {
+ if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
+ if (has$1(this, HIDDEN) && has$1(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
+ };
+ if (descriptors && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
+ return wrap(tag, description);
+ };
+
+ redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return getInternalState$2(this).tag;
+ });
+
+ redefine($Symbol, 'withoutSetter', function (description) {
+ return wrap(uid(description), description);
+ });
+
+ objectPropertyIsEnumerable.f = $propertyIsEnumerable;
+ objectDefineProperty.f = $defineProperty;
+ objectGetOwnPropertyDescriptor.f = $getOwnPropertyDescriptor;
+ objectGetOwnPropertyNames.f = objectGetOwnPropertyNamesExternal.f = $getOwnPropertyNames;
+ objectGetOwnPropertySymbols.f = $getOwnPropertySymbols;
+
+ wellKnownSymbolWrapped.f = function (name) {
+ return wrap(wellKnownSymbol(name), name);
+ };
+
+ if (descriptors) {
+ // https://github.com/tc39/proposal-Symbol-description
+ nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
+ configurable: true,
+ get: function description() {
+ return getInternalState$2(this).description;
+ }
+ });
+ {
+ redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
+ }
+ }
+ }
+
+ _export({ global: true, wrap: true, forced: !nativeSymbol, sham: !nativeSymbol }, {
+ Symbol: $Symbol
+ });
+
+ $forEach(objectKeys(WellKnownSymbolsStore), function (name) {
+ defineWellKnownSymbol(name);
+ });
+
+ _export({ target: SYMBOL, stat: true, forced: !nativeSymbol }, {
+ // `Symbol.for` method
+ // https://tc39.es/ecma262/#sec-symbol.for
+ 'for': function (key) {
+ var string = toString_1(key);
+ if (has$1(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
+ var symbol = $Symbol(string);
+ StringToSymbolRegistry[string] = symbol;
+ SymbolToStringRegistry[symbol] = string;
+ return symbol;
+ },
+ // `Symbol.keyFor` method
+ // https://tc39.es/ecma262/#sec-symbol.keyfor
+ keyFor: function keyFor(sym) {
+ if (!isSymbol$1(sym)) throw TypeError(sym + ' is not a symbol');
+ if (has$1(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
+ },
+ useSetter: function () { USE_SETTER = true; },
+ useSimple: function () { USE_SETTER = false; }
+ });
+
+ _export({ target: 'Object', stat: true, forced: !nativeSymbol, sham: !descriptors }, {
+ // `Object.create` method
+ // https://tc39.es/ecma262/#sec-object.create
+ create: $create,
+ // `Object.defineProperty` method
+ // https://tc39.es/ecma262/#sec-object.defineproperty
+ defineProperty: $defineProperty,
+ // `Object.defineProperties` method
+ // https://tc39.es/ecma262/#sec-object.defineproperties
+ defineProperties: $defineProperties,
+ // `Object.getOwnPropertyDescriptor` method
+ // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor
+ });
+
+ _export({ target: 'Object', stat: true, forced: !nativeSymbol }, {
+ // `Object.getOwnPropertyNames` method
+ // https://tc39.es/ecma262/#sec-object.getownpropertynames
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // `Object.getOwnPropertySymbols` method
+ // https://tc39.es/ecma262/#sec-object.getownpropertysymbols
+ getOwnPropertySymbols: $getOwnPropertySymbols
+ });
+
+ // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3443
+ _export({ target: 'Object', stat: true, forced: fails(function () { objectGetOwnPropertySymbols.f(1); }) }, {
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+ return objectGetOwnPropertySymbols.f(toObject(it));
+ }
+ });
+
+ // `JSON.stringify` method behavior with symbols
+ // https://tc39.es/ecma262/#sec-json.stringify
+ if ($stringify) {
+ var FORCED_JSON_STRINGIFY = !nativeSymbol || fails(function () {
+ var symbol = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ return $stringify([symbol]) != '[null]'
+ // WebKit converts symbol values to JSON as null
+ || $stringify({ a: symbol }) != '{}'
+ // V8 throws on boxed symbols
+ || $stringify(Object(symbol)) != '{}';
+ });
+
+ _export({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
+ stringify: function stringify(it, replacer, space) {
+ var args = [it];
+ var index = 1;
+ var $replacer;
+ while (arguments.length > index) args.push(arguments[index++]);
+ $replacer = replacer;
+ if (!isObject$1(replacer) && it === undefined || isSymbol$1(it)) return; // IE8 returns string on undefined
+ if (!isArray$3(replacer)) replacer = function (key, value) {
+ if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
+ if (!isSymbol$1(value)) return value;
+ };
+ args[1] = replacer;
+ return $stringify.apply(null, args);
+ }
+ });
+ }
+
+ // `Symbol.prototype[@@toPrimitive]` method
+ // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
+ if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
+ createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+ }
+ // `Symbol.prototype[@@toStringTag]` property
+ // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
+ setToStringTag($Symbol, SYMBOL);
+
+ hiddenKeys$1[HIDDEN] = true;
+
+ var defineProperty$1 = objectDefineProperty.f;
+
+
+ var NativeSymbol = global_1.Symbol;
+
+ if (descriptors && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||
+ // Safari 12 bug
+ NativeSymbol().description !== undefined
+ )) {
+ var EmptyStringDescriptionStore = {};
+ // wrap Symbol constructor for correct work with undefined description
+ var SymbolWrapper = function Symbol() {
+ var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
+ var result = this instanceof SymbolWrapper
+ ? new NativeSymbol(description)
+ // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
+ : description === undefined ? NativeSymbol() : NativeSymbol(description);
+ if (description === '') EmptyStringDescriptionStore[result] = true;
+ return result;
+ };
+ copyConstructorProperties(SymbolWrapper, NativeSymbol);
+ var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
+ symbolPrototype.constructor = SymbolWrapper;
+
+ var symbolToString = symbolPrototype.toString;
+ var native = String(NativeSymbol('test')) == 'Symbol(test)';
+ var regexp = /^Symbol\((.*)\)[^)]+$/;
+ defineProperty$1(symbolPrototype, 'description', {
+ configurable: true,
+ get: function description() {
+ var symbol = isObject$1(this) ? this.valueOf() : this;
+ var string = symbolToString.call(symbol);
+ if (has$1(EmptyStringDescriptionStore, symbol)) return '';
+ var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
+ return desc === '' ? undefined : desc;
+ }
+ });
+
+ _export({ global: true, forced: true }, {
+ Symbol: SymbolWrapper
+ });
+ }
+
+ // `Symbol.species` well-known symbol
+ // https://tc39.es/ecma262/#sec-symbol.species
+ defineWellKnownSymbol('species');
+
+ // `Array[@@species]` getter
+ // https://tc39.es/ecma262/#sec-get-array-@@species
+ setSpecies('Array');
+
+ // `Array.prototype.fill` method
+ // https://tc39.es/ecma262/#sec-array.prototype.fill
+ _export({ target: 'Array', proto: true }, {
+ fill: arrayFill
+ });
+
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+ addToUnscopables('fill');
+
+ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
+
+ var SPECIES$1 = wellKnownSymbol('species');
+ var nativeSlice = [].slice;
+ var max = Math.max;
+
+ // `Array.prototype.slice` method
+ // https://tc39.es/ecma262/#sec-array.prototype.slice
+ // fallback for not array-like ES3 strings and DOM objects
+ _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
+ slice: function slice(start, end) {
+ var O = toIndexedObject(this);
+ var length = toLength(O.length);
+ var k = toAbsoluteIndex(start, length);
+ var fin = toAbsoluteIndex(end === undefined ? length : end, length);
+ // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
+ var Constructor, result, n;
+ if (isArray$3(O)) {
+ Constructor = O.constructor;
+ // cross-realm fallback
+ if (typeof Constructor == 'function' && (Constructor === Array || isArray$3(Constructor.prototype))) {
+ Constructor = undefined;
+ } else if (isObject$1(Constructor)) {
+ Constructor = Constructor[SPECIES$1];
+ if (Constructor === null) Constructor = undefined;
+ }
+ if (Constructor === Array || Constructor === undefined) {
+ return nativeSlice.call(O, k, fin);
+ }
+ }
+ result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
+ for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
+ result.length = n;
+ return result;
+ }
+ });
+
+ var $includes = arrayIncludes.includes;
+
+
+ // `Array.prototype.includes` method
+ // https://tc39.es/ecma262/#sec-array.prototype.includes
+ _export({ target: 'Array', proto: true }, {
+ includes: function includes(el /* , fromIndex = 0 */) {
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
+ }
+ });
+
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+ addToUnscopables('includes');
+
+ var notARegexp = function (it) {
+ if (isRegexp(it)) {
+ throw TypeError("The method doesn't accept regular expressions");
+ } return it;
+ };
+
+ var MATCH = wellKnownSymbol('match');
+
+ var correctIsRegexpLogic = function (METHOD_NAME) {
+ var regexp = /./;
+ try {
+ '/./'[METHOD_NAME](regexp);
+ } catch (error1) {
+ try {
+ regexp[MATCH] = false;
+ return '/./'[METHOD_NAME](regexp);
+ } catch (error2) { /* empty */ }
+ } return false;
+ };
+
+ // `String.prototype.includes` method
+ // https://tc39.es/ecma262/#sec-string.prototype.includes
+ _export({ target: 'String', proto: true, forced: !correctIsRegexpLogic('includes') }, {
+ includes: function includes(searchString /* , position = 0 */) {
+ return !!~toString_1(requireObjectCoercible(this))
+ .indexOf(toString_1(notARegexp(searchString)), arguments.length > 1 ? arguments[1] : undefined);
+ }
+ });
+
// `URL.prototype.toJSON` method
// https://url.spec.whatwg.org/#dom-url-tojson
_export({ target: 'URL', proto: true, enumerable: true }, {
@@ -5224,6 +5404,27 @@
}
});
+ var non = '\u200B\u0085\u180E';
+
+ // check that a method works with the correct list
+ // of whitespaces and has a correct name
+ var stringTrimForced = function (METHOD_NAME) {
+ return fails(function () {
+ return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
+ });
+ };
+
+ var $trim = stringTrim.trim;
+
+
+ // `String.prototype.trim` method
+ // https://tc39.es/ecma262/#sec-string.prototype.trim
+ _export({ target: 'String', proto: true, forced: stringTrimForced('trim') }, {
+ trim: function trim() {
+ return $trim(this);
+ }
+ });
+
var lookup$1 = [];
var revLookup$1 = [];
var Arr$1 = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;
@@ -7394,12 +7595,104 @@
this.fun.apply(null, this.array);
};
+ var title = 'browser';
+ var platform = 'browser';
+ var browser$3 = true;
+ var env = {};
+ var argv = [];
+ var version$1 = ''; // empty string to avoid regexp issues
+
+ var versions = {};
+ var release = {};
+ var config = {};
+
+ function noop() {}
+
+ var on = noop;
+ var addListener = noop;
+ var once = noop;
+ var off = noop;
+ var removeListener = noop;
+ var removeAllListeners = noop;
+ var emit = noop;
+
+ function binding(name) {
+ throw new Error('process.binding is not supported');
+ }
+
+ function cwd() {
+ return '/';
+ }
+
+ function chdir(dir) {
+ throw new Error('process.chdir is not supported');
+ }
+
+ function umask() {
+ return 0;
+ } // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js
+
var performance = global$1.performance || {};
- performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow || function () {
+ var performanceNow = performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow || function () {
return new Date().getTime();
}; // generate timestamp or delta
+ // see http://nodejs.org/api/process.html#process_process_hrtime
+
+
+ function hrtime(previousTimestamp) {
+ var clocktime = performanceNow.call(performance) * 1e-3;
+ var seconds = Math.floor(clocktime);
+ var nanoseconds = Math.floor(clocktime % 1 * 1e9);
+
+ if (previousTimestamp) {
+ seconds = seconds - previousTimestamp[0];
+ nanoseconds = nanoseconds - previousTimestamp[1];
+
+ if (nanoseconds < 0) {
+ seconds--;
+ nanoseconds += 1e9;
+ }
+ }
+
+ return [seconds, nanoseconds];
+ }
+
+ var startTime = new Date();
+
+ function uptime() {
+ var currentTime = new Date();
+ var dif = currentTime - startTime;
+ return dif / 1000;
+ }
+
+ var browser$1$1 = {
+ nextTick: nextTick,
+ title: title,
+ browser: browser$3,
+ env: env,
+ argv: argv,
+ version: version$1,
+ versions: versions,
+ on: on,
+ addListener: addListener,
+ once: once,
+ off: off,
+ removeListener: removeListener,
+ removeAllListeners: removeAllListeners,
+ emit: emit,
+ binding: binding,
+ cwd: cwd,
+ chdir: chdir,
+ umask: umask,
+ hrtime: hrtime,
+ platform: platform,
+ release: release,
+ config: config,
+ uptime: uptime
+ };
+ var process$3 = browser$1$1;
var inherits$2;
@@ -7489,11 +7782,19 @@
};
}
+ if (process$3.noDeprecation === true) {
+ return fn;
+ }
+
var warned = false;
function deprecated() {
if (!warned) {
- {
+ if (process$3.throwDeprecation) {
+ throw new Error(msg);
+ } else if (process$3.traceDeprecation) {
+ console.trace(msg);
+ } else {
console.error(msg);
}
@@ -7508,7 +7809,7 @@
var debugs = {};
var debugEnviron;
function debuglog(set) {
- if (isUndefined(debugEnviron)) debugEnviron = '';
+ if (isUndefined(debugEnviron)) debugEnviron = process$3.env.NODE_DEBUG || '';
set = set.toUpperCase();
if (!debugs[set]) {
@@ -11884,6 +12185,84 @@
}
};
+ // `Symbol.iterator` well-known symbol
+ // https://tc39.es/ecma262/#sec-symbol.iterator
+ defineWellKnownSymbol('iterator');
+
+ var charAt = stringMultibyte.charAt;
+
+
+
+
+ var STRING_ITERATOR = 'String Iterator';
+ var setInternalState$2 = internalState.set;
+ var getInternalState$1 = internalState.getterFor(STRING_ITERATOR);
+
+ // `String.prototype[@@iterator]` method
+ // https://tc39.es/ecma262/#sec-string.prototype-@@iterator
+ defineIterator(String, 'String', function (iterated) {
+ setInternalState$2(this, {
+ type: STRING_ITERATOR,
+ string: toString_1(iterated),
+ index: 0
+ });
+ // `%StringIteratorPrototype%.next` method
+ // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
+ }, function next() {
+ var state = getInternalState$1(this);
+ var string = state.string;
+ var index = state.index;
+ var point;
+ if (index >= string.length) return { value: undefined, done: true };
+ point = charAt(string, index);
+ state.index += point.length;
+ return { value: point, done: false };
+ });
+
+ var ITERATOR = wellKnownSymbol('iterator');
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+ var ArrayValues = es_array_iterator.values;
+
+ for (var COLLECTION_NAME in domIterables) {
+ var Collection = global_1[COLLECTION_NAME];
+ var CollectionPrototype = Collection && Collection.prototype;
+ if (CollectionPrototype) {
+ // some Chrome versions have non-configurable methods on DOMTokenList
+ if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
+ createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
+ } catch (error) {
+ CollectionPrototype[ITERATOR] = ArrayValues;
+ }
+ if (!CollectionPrototype[TO_STRING_TAG]) {
+ createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
+ }
+ if (domIterables[COLLECTION_NAME]) for (var METHOD_NAME in es_array_iterator) {
+ // some Chrome versions have non-configurable methods on DOMTokenList
+ if (CollectionPrototype[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) try {
+ createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, es_array_iterator[METHOD_NAME]);
+ } catch (error) {
+ CollectionPrototype[METHOD_NAME] = es_array_iterator[METHOD_NAME];
+ }
+ }
+ }
+ }
+
+ // `Symbol.asyncIterator` well-known symbol
+ // https://tc39.es/ecma262/#sec-symbol.asynciterator
+ defineWellKnownSymbol('asyncIterator');
+
+ // `Symbol.toStringTag` well-known symbol
+ // https://tc39.es/ecma262/#sec-symbol.tostringtag
+ defineWellKnownSymbol('toStringTag');
+
+ // JSON[@@toStringTag] property
+ // https://tc39.es/ecma262/#sec-json-@@tostringtag
+ setToStringTag(global_1.JSON, 'JSON', true);
+
+ // Math[@@toStringTag] property
+ // https://tc39.es/ecma262/#sec-math-@@tostringtag
+ setToStringTag(Math, 'Math', true);
+
var nativePromiseConstructor = global_1.Promise;
var iteratorClose = function (iterator) {
@@ -11945,11 +12324,10 @@
} return new Result(false);
};
- var engineIsIos = /(?:iphone|ipod|ipad).*applewebkit/i.test(engineUserAgent);
+ var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(engineUserAgent);
var engineIsNode = classofRaw(global_1.process) == 'process';
- var location$1 = global_1.location;
var set = global_1.setImmediate;
var clear = global_1.clearImmediate;
var process$2 = global_1.process;
@@ -11958,7 +12336,12 @@
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
- var defer, channel, port;
+ var location$1, defer, channel, port;
+
+ try {
+ // Deno throws a ReferenceError on `location` access without `--location` flag
+ location$1 = global_1.location;
+ } catch (error) { /* empty */ }
var run = function (id) {
// eslint-disable-next-line no-prototype-builtins -- safe
@@ -11981,15 +12364,16 @@
var post = function (id) {
// old engines have not location.origin
- global_1.postMessage(id + '', location$1.protocol + '//' + location$1.host);
+ global_1.postMessage(String(id), location$1.protocol + '//' + location$1.host);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!set || !clear) {
set = function setImmediate(fn) {
var args = [];
+ var argumentsLength = arguments.length;
var i = 1;
- while (arguments.length > i) args.push(arguments[i++]);
+ while (argumentsLength > i) args.push(arguments[i++]);
queue[++counter] = function () {
// eslint-disable-next-line no-new-func -- spec requirement
(typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
@@ -12049,6 +12433,8 @@
clear: clear
};
+ var engineIsIosPebble = /ipad|iphone|ipod/i.test(engineUserAgent) && global_1.Pebble !== undefined;
+
var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(engineUserAgent);
var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
@@ -12057,6 +12443,7 @@
+
var MutationObserver = global_1.MutationObserver || global_1.WebKitMutationObserver;
var document$2 = global_1.document;
var process$1 = global_1.process;
@@ -12096,7 +12483,7 @@
node.data = toggle = !toggle;
};
// environments with maybe non-completely correct, but existent Promise
- } else if (Promise$1 && Promise$1.resolve) {
+ } else if (!engineIsIosPebble && Promise$1 && Promise$1.resolve) {
// Promise.resolve without an argument throws an error in LG WebOS 2
promise = Promise$1.resolve(undefined);
// workaround of WebKit ~ iOS Safari 10.1 bug
@@ -12195,8 +12582,8 @@
var SPECIES = wellKnownSymbol('species');
var PROMISE = 'Promise';
- var getInternalState$1 = internalState.get;
- var setInternalState$2 = internalState.set;
+ var getInternalState = internalState.get;
+ var setInternalState$1 = internalState.set;
var getInternalPromiseState = internalState.getterFor(PROMISE);
var NativePromisePrototype = nativePromiseConstructor && nativePromiseConstructor.prototype;
var PromiseConstructor = nativePromiseConstructor;
@@ -12219,7 +12606,8 @@
var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
var FORCED$2 = isForced_1(PROMISE, function () {
- var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);
+ var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);
+ var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);
// V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
// https://bugs.chromium.org/p/chromium/issues/detail?id=830565
// We can't detect it synchronously, so just check versions
@@ -12227,7 +12615,7 @@
// We can't use @@species feature detection in V8 since it causes
// deoptimization and performance degradation
// https://github.com/zloirock/core-js/issues/679
- if (engineV8Version >= 51 && /native code/.test(PromiseConstructor)) return false;
+ if (engineV8Version >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;
// Detect correctness of subclassing with @@species support
var promise = new PromiseConstructor(function (resolve) { resolve(1); });
var FakePromise = function (exec) {
@@ -12395,7 +12783,7 @@
anInstance(this, PromiseConstructor, PROMISE);
aFunction(executor);
Internal.call(this);
- var state = getInternalState$1(this);
+ var state = getInternalState(this);
try {
executor(bind(internalResolve, state), bind(internalReject, state));
} catch (error) {
@@ -12405,7 +12793,7 @@
PromiseConstructorPrototype = PromiseConstructor.prototype;
// eslint-disable-next-line no-unused-vars -- required for `.length`
Internal = function Promise(executor) {
- setInternalState$2(this, {
+ setInternalState$1(this, {
type: PROMISE,
done: false,
notified: false,
@@ -12438,7 +12826,7 @@
});
OwnPromiseCapability = function () {
var promise = new Internal();
- var state = getInternalState$1(promise);
+ var state = getInternalState(promise);
this.promise = promise;
this.resolve = bind(internalResolve, state);
this.reject = bind(internalReject, state);
@@ -12553,83 +12941,6 @@
}
});
- // `Symbol.asyncIterator` well-known symbol
- // https://tc39.es/ecma262/#sec-symbol.asynciterator
- defineWellKnownSymbol('asyncIterator');
-
- // `Symbol.iterator` well-known symbol
- // https://tc39.es/ecma262/#sec-symbol.iterator
- defineWellKnownSymbol('iterator');
-
- // `Symbol.toStringTag` well-known symbol
- // https://tc39.es/ecma262/#sec-symbol.tostringtag
- defineWellKnownSymbol('toStringTag');
-
- // JSON[@@toStringTag] property
- // https://tc39.es/ecma262/#sec-json-@@tostringtag
- setToStringTag(global_1.JSON, 'JSON', true);
-
- // Math[@@toStringTag] property
- // https://tc39.es/ecma262/#sec-math-@@tostringtag
- setToStringTag(Math, 'Math', true);
-
- var charAt = stringMultibyte.charAt;
-
-
-
- var STRING_ITERATOR = 'String Iterator';
- var setInternalState$1 = internalState.set;
- var getInternalState = internalState.getterFor(STRING_ITERATOR);
-
- // `String.prototype[@@iterator]` method
- // https://tc39.es/ecma262/#sec-string.prototype-@@iterator
- defineIterator(String, 'String', function (iterated) {
- setInternalState$1(this, {
- type: STRING_ITERATOR,
- string: String(iterated),
- index: 0
- });
- // `%StringIteratorPrototype%.next` method
- // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
- }, function next() {
- var state = getInternalState(this);
- var string = state.string;
- var index = state.index;
- var point;
- if (index >= string.length) return { value: undefined, done: true };
- point = charAt(string, index);
- state.index += point.length;
- return { value: point, done: false };
- });
-
- var ITERATOR = wellKnownSymbol('iterator');
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
- var ArrayValues = es_array_iterator.values;
-
- for (var COLLECTION_NAME in domIterables) {
- var Collection = global_1[COLLECTION_NAME];
- var CollectionPrototype = Collection && Collection.prototype;
- if (CollectionPrototype) {
- // some Chrome versions have non-configurable methods on DOMTokenList
- if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
- createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
- } catch (error) {
- CollectionPrototype[ITERATOR] = ArrayValues;
- }
- if (!CollectionPrototype[TO_STRING_TAG]) {
- createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
- }
- if (domIterables[COLLECTION_NAME]) for (var METHOD_NAME in es_array_iterator) {
- // some Chrome versions have non-configurable methods on DOMTokenList
- if (CollectionPrototype[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) try {
- createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, es_array_iterator[METHOD_NAME]);
- } catch (error) {
- CollectionPrototype[METHOD_NAME] = es_array_iterator[METHOD_NAME];
- }
- }
- }
- }
-
createCommonjsModule(function (module) {
/**
* Copyright (c) 2014-present, Facebook, Inc.
@@ -13703,7 +14014,7 @@
if (y === undefined) return -1;
if (x === undefined) return 1;
if (comparefn !== undefined) return +comparefn(x, y) || 0;
- return String(x) > String(y) ? 1 : -1;
+ return toString_1(x) > toString_1(y) ? 1 : -1;
};
};
@@ -15522,6 +15833,9 @@
+
+
+ var REQUIRED = false;
var METADATA = uid('meta');
var id = 0;
@@ -15532,7 +15846,7 @@
var setMetadata = function (it) {
defineProperty(it, METADATA, { value: {
- objectID: 'O' + ++id, // object ID
+ objectID: 'O' + id++, // object ID
weakData: {} // weak collections IDs
} });
};
@@ -15565,12 +15879,38 @@
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
- if (freezing && meta.REQUIRED && isExtensible(it) && !has$1(it, METADATA)) setMetadata(it);
+ if (freezing && REQUIRED && isExtensible(it) && !has$1(it, METADATA)) setMetadata(it);
return it;
};
+ var enable = function () {
+ meta.enable = function () { /* empty */ };
+ REQUIRED = true;
+ var getOwnPropertyNames = objectGetOwnPropertyNames.f;
+ var splice = [].splice;
+ var test = {};
+ test[METADATA] = 1;
+
+ // prevent exposing of metadata key
+ if (getOwnPropertyNames(test).length) {
+ objectGetOwnPropertyNames.f = function (it) {
+ var result = getOwnPropertyNames(it);
+ for (var i = 0, length = result.length; i < length; i++) {
+ if (result[i] === METADATA) {
+ splice.call(result, i, 1);
+ break;
+ }
+ } return result;
+ };
+
+ _export({ target: 'Object', stat: true, forced: true }, {
+ getOwnPropertyNames: objectGetOwnPropertyNamesExternal.f
+ });
+ }
+ };
+
var meta = module.exports = {
- REQUIRED: false,
+ enable: enable,
fastKey: fastKey,
getWeakData: getWeakData,
onFreeze: onFreeze
@@ -15579,20 +15919,6 @@
hiddenKeys$1[METADATA] = true;
});
- var onFreeze = internalMetadata.onFreeze;
-
- // eslint-disable-next-line es/no-object-freeze -- safe
- var $freeze = Object.freeze;
- var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });
-
- // `Object.freeze` method
- // https://tc39.es/ecma262/#sec-object.freeze
- _export({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !freezing }, {
- freeze: function freeze(it) {
- return $freeze && isObject$1(it) ? $freeze(onFreeze(it)) : it;
- }
- });
-
var collection = function (CONSTRUCTOR_NAME, wrapper, common) {
var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;
var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;
@@ -15631,7 +15957,7 @@
if (REPLACE) {
// create collection constructor
Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
- internalMetadata.REQUIRED = true;
+ internalMetadata.enable();
} else if (isForced_1(CONSTRUCTOR_NAME, true)) {
var instance = new Constructor();
// early implementations not supports chaining
@@ -15891,6 +16217,20 @@
return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };
}, collectionStrong);
+ var onFreeze = internalMetadata.onFreeze;
+
+ // eslint-disable-next-line es/no-object-freeze -- safe
+ var $freeze = Object.freeze;
+ var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });
+
+ // `Object.freeze` method
+ // https://tc39.es/ecma262/#sec-object.freeze
+ _export({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !freezing }, {
+ freeze: function freeze(it) {
+ return $freeze && isObject$1(it) ? $freeze(onFreeze(it)) : it;
+ }
+ });
+
var browser$2 = true;
// This alphabet uses `A-Za-z0-9_-` symbols. The genetic algorithm helped
@@ -20365,12 +20705,10 @@
--length;
str += '\n ' + repeat(' ', space) + (Array.isArray(object) ? '' : '"' + i + '": ') + // key
- _stringify(object[i]) + ( // value
- length ? ',' : ''); // comma
+ _stringify(object[i]) + (length ? ',' : ''); // comma
}
- return str + ( // [], {}
- str.length !== 1 ? '\n' + repeat(' ', --space) + end : end);
+ return str + (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end);
}
/**
* Return a new Thing that has the keys in sorted order. Recursive.
@@ -20612,8 +20950,8 @@
exports.supportsEsModules = function (partialSupport) {
- if (!exports.isBrowser() && process$3.versions && process$3.versions.node) {
- var versionFields = process$3.versions.node.split('.');
+ if (!exports.isBrowser() && process$4.versions && process$4.versions.node) {
+ var versionFields = process$4.versions.node.split('.');
var major = +versionFields[0];
var minor = +versionFields[1];
@@ -20633,7 +20971,7 @@
exports.cwd = function cwd() {
- return process$3.cwd();
+ return process$4.cwd();
};
/**
* Returns `true` if Mocha is running in a browser.
@@ -21239,11 +21577,7 @@
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
- typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
- typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
+ return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
}
/**
* Colorize log arguments if enabled.
@@ -21329,8 +21663,8 @@
} // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process$3 !== 'undefined' && 'env' in process$3) {
- r = process$3.env.DEBUG;
+ if (!r && typeof process$4 !== 'undefined' && 'env' in process$4) {
+ r = process$4.env.DEBUG;
}
return r;
@@ -21426,8 +21760,8 @@
*/
var emitWarning = function emitWarning(msg, type) {
- if (process$3.emitWarning) {
- process$3.emitWarning(msg, type);
+ if (process$4.emitWarning) {
+ process$4.emitWarning(msg, type);
} else {
/* istanbul ignore next */
nextTick$1(function () {
@@ -21751,7 +22085,7 @@
/**
* Dynamically creates a plugin-type-specific error based on plugin type
* @param {string} message - Error message
- * @param {"reporter"|"interface"} pluginType - Plugin type. Future: expand as needed
+ * @param {"reporter"|"ui"} pluginType - Plugin type. Future: expand as needed
* @param {string} [pluginId] - Name/path of plugin, if any
* @throws When `pluginType` is not known
* @public
@@ -21765,7 +22099,7 @@
case 'reporter':
return createInvalidReporterError(message, pluginId);
- case 'interface':
+ case 'ui':
return createInvalidInterfaceError(message, pluginId);
default:
@@ -22534,14 +22868,21 @@
Hook.prototype.serialize = function serialize() {
return _defineProperty({
- $$isPending: this.isPending(),
+ $$currentRetry: this.currentRetry(),
+ $$fullTitle: this.fullTitle(),
+ $$isPending: Boolean(this.isPending()),
$$titlePath: this.titlePath(),
ctx: this.ctx && this.ctx.currentTest ? {
currentTest: _defineProperty({
title: this.ctx.currentTest.title
}, MOCHA_ID_PROP_NAME$1, this.ctx.currentTest.id)
} : {},
- parent: _defineProperty({}, MOCHA_ID_PROP_NAME$1, this.parent.id),
+ duration: this.duration,
+ file: this.file,
+ parent: _defineProperty({
+ $$fullTitle: this.parent.fullTitle()
+ }, MOCHA_ID_PROP_NAME$1, this.parent.id),
+ state: this.state,
title: this.title,
type: this.type
}, MOCHA_ID_PROP_NAME$1, this.id);
@@ -23178,15 +23519,15 @@
Suite.prototype.serialize = function serialize() {
- return {
+ var _ref2;
+
+ return _ref2 = {
_bail: this._bail,
$$fullTitle: this.fullTitle(),
- $$isPending: this.isPending(),
+ $$isPending: Boolean(this.isPending()),
root: this.root,
- title: this.title,
- id: this.id,
- parent: this.parent ? _defineProperty({}, MOCHA_ID_PROP_NAME, this.parent.id) : null
- };
+ title: this.title
+ }, _defineProperty(_ref2, MOCHA_ID_PROP_NAME, this.id), _defineProperty(_ref2, "parent", this.parent ? _defineProperty({}, MOCHA_ID_PROP_NAME, this.parent.id) : null), _ref2;
};
var constants = defineConstants(
@@ -23427,10 +23768,11 @@
* @public
* @class
* @param {Suite} suite - Root suite
- * @param {Object|boolean} [opts] - Options. If `boolean` (deprecated), whether or not to delay execution of root suite until ready.
+ * @param {Object|boolean} [opts] - Options. If `boolean` (deprecated), whether to delay execution of root suite until ready.
+ * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.
* @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.
* @param {boolean} [opts.dryRun] - Whether to report tests without running them.
- * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.
+ * @param {boolean} [options.failZero] - Whether to fail test run if zero tests encountered.
*/
function Runner(suite, opts) {
var _this;
@@ -23496,12 +23838,12 @@
} else {
debug('trapped unhandled rejection from (probably) user code; re-emitting on process');
- _this._removeEventListener(process$3, 'unhandledRejection', _this.unhandled);
+ _this._removeEventListener(process$4, 'unhandledRejection', _this.unhandled);
try {
- process$3.emit('unhandledRejection', reason, promise);
+ process$4.emit('unhandledRejection', reason, promise);
} finally {
- _this._addEventListener(process$3, 'unhandledRejection', _this.unhandled);
+ _this._addEventListener(process$4, 'unhandledRejection', _this.unhandled);
}
}
};
@@ -24372,6 +24714,7 @@
fn = fn || function () {};
var end = function end() {
+ if (!_this2.total && _this2._opts.failZero) _this2.failures = 1;
debug('run(): root suite completed; emitting %s', constants$1.EVENT_RUN_END);
_this2.emit(constants$1.EVENT_RUN_END);
@@ -24420,13 +24763,13 @@
fn(this.failures);
});
- this._removeEventListener(process$3, 'uncaughtException', this.uncaught);
+ this._removeEventListener(process$4, 'uncaughtException', this.uncaught);
- this._removeEventListener(process$3, 'unhandledRejection', this.unhandled);
+ this._removeEventListener(process$4, 'unhandledRejection', this.unhandled);
- this._addEventListener(process$3, 'uncaughtException', this.uncaught);
+ this._addEventListener(process$4, 'uncaughtException', this.uncaught);
- this._addEventListener(process$3, 'unhandledRejection', this.unhandled);
+ this._addEventListener(process$4, 'unhandledRejection', this.unhandled);
if (this._delay) {
// for reporters, I guess.
@@ -24663,7 +25006,7 @@
* Check if both stdio streams are associated with a tty.
*/
- var isatty = isBrowser || process$3.stdout.isTTY && process$3.stderr.isTTY;
+ var isatty = isBrowser || process$4.stdout.isTTY && process$4.stderr.isTTY;
/**
* Save log references to avoid tests interfering (see GH-3604).
*/
@@ -24673,7 +25016,7 @@
* Enable coloring by default, except in the browser interface.
*/
- exports.useColors = !isBrowser && (require$$11.stdout || process$3.env.MOCHA_COLORS !== undefined);
+ exports.useColors = !isBrowser && (require$$11.stdout || process$4.env.MOCHA_COLORS !== undefined);
/**
* Inline diffs instead of +/-
*/
@@ -24712,7 +25055,7 @@
exports.symbols = {
ok: browser$1.success,
- err: browser$1.err,
+ err: browser$1.error,
dot: '.',
comma: ',',
bang: '!'
@@ -24749,7 +25092,7 @@
if (isBrowser) {
exports.window.width = getBrowserWindowSize()[1];
} else {
- exports.window.width = process$3.stdout.getWindowSize(1)[0];
+ exports.window.width = process$4.stdout.getWindowSize(1)[0];
}
}
/**
@@ -24759,23 +25102,23 @@
exports.cursor = {
hide: function hide() {
- isatty && process$3.stdout.write("\x1B[?25l");
+ isatty && process$4.stdout.write("\x1B[?25l");
},
show: function show() {
- isatty && process$3.stdout.write("\x1B[?25h");
+ isatty && process$4.stdout.write("\x1B[?25h");
},
deleteLine: function deleteLine() {
- isatty && process$3.stdout.write("\x1B[2K");
+ isatty && process$4.stdout.write("\x1B[2K");
},
beginningOfLine: function beginningOfLine() {
- isatty && process$3.stdout.write("\x1B[0G");
+ isatty && process$4.stdout.write("\x1B[0G");
},
CR: function CR() {
if (isatty) {
exports.cursor.deleteLine();
exports.cursor.beginningOfLine();
} else {
- process$3.stdout.write('\r');
+ process$4.stdout.write('\r');
}
}
};
@@ -25169,35 +25512,35 @@
var width = base.window.width * 0.75 | 0;
var n = -1;
runner.on(EVENT_RUN_BEGIN, function () {
- process$3.stdout.write('\n');
+ process$4.stdout.write('\n');
});
runner.on(EVENT_TEST_PENDING, function () {
if (++n % width === 0) {
- process$3.stdout.write('\n ');
+ process$4.stdout.write('\n ');
}
- process$3.stdout.write(base.color('pending', base.symbols.comma));
+ process$4.stdout.write(base.color('pending', base.symbols.comma));
});
runner.on(EVENT_TEST_PASS, function (test) {
if (++n % width === 0) {
- process$3.stdout.write('\n ');
+ process$4.stdout.write('\n ');
}
if (test.speed === 'slow') {
- process$3.stdout.write(base.color('bright yellow', base.symbols.dot));
+ process$4.stdout.write(base.color('bright yellow', base.symbols.dot));
} else {
- process$3.stdout.write(base.color(test.speed, base.symbols.dot));
+ process$4.stdout.write(base.color(test.speed, base.symbols.dot));
}
});
runner.on(EVENT_TEST_FAIL, function () {
if (++n % width === 0) {
- process$3.stdout.write('\n ');
+ process$4.stdout.write('\n ');
}
- process$3.stdout.write(base.color('fail', base.symbols.bang));
+ process$4.stdout.write(base.color('fail', base.symbols.bang));
});
runner.once(EVENT_RUN_END, function () {
- process$3.stdout.write('\n');
+ process$4.stdout.write('\n');
self.epilogue();
});
}
@@ -25382,7 +25725,7 @@
function println(format, varArgs) {
var vargs = Array.from(arguments);
vargs[0] += '\n';
- process$3.stdout.write(sprintf.apply(null, vargs));
+ process$4.stdout.write(sprintf.apply(null, vargs));
}
/**
* Returns a `tapVersion`-appropriate TAP producer instance, if possible.
@@ -25590,6 +25933,8 @@
TAP.description = 'TAP-compatible output';
});
+ var fs = {};
+
var json = createCommonjsModule(function (module, exports) {
/**
* @module JSON
@@ -25599,12 +25944,13 @@
* Module dependencies.
*/
+ var createUnsupportedError = errors.createUnsupportedError;
var constants = runner.constants;
var EVENT_TEST_PASS = constants.EVENT_TEST_PASS;
+ var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
var EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;
var EVENT_TEST_END = constants.EVENT_TEST_END;
var EVENT_RUN_END = constants.EVENT_RUN_END;
- var EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;
/**
* Expose `JSON`.
*/
@@ -25621,13 +25967,24 @@
* @param {Object} [options] - runner options
*/
- function JSONReporter(runner, options) {
+ function JSONReporter(runner) {
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
base.call(this, runner, options);
var self = this;
var tests = [];
var pending = [];
var failures = [];
var passes = [];
+ var output;
+
+ if (options.reporterOption && options.reporterOption.output) {
+ if (utils.isBrowser()) {
+ throw createUnsupportedError('file output not supported in browser');
+ }
+
+ output = options.reporterOption.output;
+ }
+
runner.on(EVENT_TEST_END, function (test) {
tests.push(test);
});
@@ -25649,7 +26006,21 @@
passes: passes.map(clean)
};
runner.testResults = obj;
- process$3.stdout.write(JSON.stringify(obj, null, 2));
+ var json = JSON.stringify(obj, null, 2);
+
+ if (output) {
+ try {
+ fs.mkdirSync(path.dirname(output), {
+ recursive: true
+ });
+ fs.writeFileSync(output, json);
+ } catch (err) {
+ console.error("".concat(base.symbols.err, " [mocha] writing output to \"").concat(output, "\" failed: ").concat(err.message, "\n"));
+ process$4.stdout.write(json);
+ }
+ } else {
+ process$4.stdout.write(json);
+ }
});
}
/**
@@ -25735,7 +26106,7 @@
// `String.prototype.repeat` method implementation
// https://tc39.es/ecma262/#sec-string.prototype.repeat
var stringRepeat = function repeat(count) {
- var str = String(requireObjectCoercible(this));
+ var str = toString_1(requireObjectCoercible(this));
var result = '';
var n = toInteger(count);
if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
@@ -26378,7 +26749,7 @@
base.consoleLog();
});
runner.on(EVENT_TEST_BEGIN, function (test) {
- process$3.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));
+ process$4.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));
});
runner.on(EVENT_TEST_PENDING, function (test) {
var fmt = color('checkmark', ' -') + color('pending', ' %s');
@@ -26440,9 +26811,9 @@
base.call(this, runner, options);
runner.on(EVENT_RUN_BEGIN, function () {
// clear screen
- process$3.stdout.write("\x1B[2J"); // set cursor position
+ process$4.stdout.write("\x1B[2J"); // set cursor position
- process$3.stdout.write("\x1B[1;3H");
+ process$4.stdout.write("\x1B[1;3H");
});
runner.once(EVENT_RUN_END, this.epilogue.bind(this));
}
@@ -26810,7 +27181,7 @@
function write(string) {
- process$3.stdout.write(string);
+ process$4.stdout.write(string);
}
NyanCat.description = '"nyan cat"';
@@ -26935,8 +27306,8 @@
XUnit.prototype.write = function (line) {
if (this.fileStream) {
this.fileStream.write(line + '\n');
- } else if (_typeof(process$3) === 'object' && process$3.stdout) {
- process$3.stdout.write(line + '\n');
+ } else if (_typeof(process$4) === 'object' && process$4.stdout) {
+ process$4.stdout.write(line + '\n');
} else {
base.consoleLog(line);
}
@@ -27101,9 +27472,9 @@
buf += '```\n\n';
});
runner.once(EVENT_RUN_END, function () {
- process$3.stdout.write('# TOC\n');
- process$3.stdout.write(generateTOC(runner.suite));
- process$3.stdout.write(buf);
+ process$4.stdout.write('# TOC\n');
+ process$4.stdout.write(generateTOC(runner.suite));
+ process$4.stdout.write(buf);
});
}
@@ -27164,7 +27535,7 @@
options.verbose = reporterOptions.verbose || false; // tests started
runner.on(EVENT_RUN_BEGIN, function () {
- process$3.stdout.write('\n');
+ process$4.stdout.write('\n');
cursor.hide();
}); // tests complete
@@ -27181,21 +27552,21 @@
lastN = n;
cursor.CR();
- process$3.stdout.write("\x1B[J");
- process$3.stdout.write(color('progress', ' ' + options.open));
- process$3.stdout.write(Array(n).join(options.complete));
- process$3.stdout.write(Array(i).join(options.incomplete));
- process$3.stdout.write(color('progress', options.close));
+ process$4.stdout.write("\x1B[J");
+ process$4.stdout.write(color('progress', ' ' + options.open));
+ process$4.stdout.write(Array(n).join(options.complete));
+ process$4.stdout.write(Array(i).join(options.incomplete));
+ process$4.stdout.write(color('progress', options.close));
if (options.verbose) {
- process$3.stdout.write(color('progress', ' ' + complete + ' of ' + total));
+ process$4.stdout.write(color('progress', ' ' + complete + ' of ' + total));
}
}); // tests are complete, output some stats
// and the failures if any
runner.once(EVENT_RUN_END, function () {
cursor.show();
- process$3.stdout.write('\n');
+ process$4.stdout.write('\n');
self.epilogue();
});
}
@@ -27260,7 +27631,7 @@
base.call(this, runner, options);
var self = this;
var width = base.window.width * 0.75 | 0;
- var stream = process$3.stdout;
+ var stream = process$4.stdout;
var plane = color('plane', '✈');
var crashed = -1;
var n = 0;
@@ -27296,14 +27667,14 @@
});
runner.once(EVENT_RUN_END, function () {
cursor.show();
- process$3.stdout.write('\n');
+ process$4.stdout.write('\n');
self.epilogue();
}); // if cursor is hidden when we ctrl-C, then it will remain hidden unless...
- process$3.once('SIGINT', function () {
+ process$4.once('SIGINT', function () {
cursor.show();
nextTick$1(function () {
- process$3.kill(process$3.pid, 'SIGINT');
+ process$4.kill(process$4.pid, 'SIGINT');
});
});
}
@@ -27382,7 +27753,7 @@
function writeEvent(event) {
- process$3.stdout.write(JSON.stringify(event) + '\n');
+ process$4.stdout.write(JSON.stringify(event) + '\n');
}
/**
* Returns an object literal representation of `test`
@@ -27429,7 +27800,7 @@
});
var name = "mocha";
- var version = "9.0.0";
+ var version = "9.1.1";
var homepage = "https://mochajs.org/";
var notifyLogo = "https://ibin.co/4QuRuGjXvl36.png";
var _package = {
@@ -27832,7 +28203,7 @@
return _defineProperty({
$$currentRetry: this._currentRetry,
$$fullTitle: this.fullTitle(),
- $$isPending: this.pending,
+ $$isPending: Boolean(this.pending),
$$retriedTest: this._retriedTest || null,
$$slow: this._slow,
$$titlePath: this.titlePath(),
@@ -28707,6 +29078,7 @@
* @param {boolean} [options.delay] - Delay root suite execution?
* @param {boolean} [options.diff] - Show diff on failure?
* @param {boolean} [options.dryRun] - Report tests without running them?
+ * @param {boolean} [options.failZero] - Fail test run if zero tests?
* @param {string} [options.fgrep] - Test filter given string.
* @param {boolean} [options.forbidOnly] - Tests marked `only` fail the suite?
* @param {boolean} [options.forbidPending] - Pending tests fail the suite?
@@ -28751,7 +29123,7 @@
this.retries(options.retries);
}
- ['allowUncaught', 'asyncOnly', 'bail', 'checkLeaks', 'color', 'delay', 'diff', 'dryRun', 'forbidOnly', 'forbidPending', 'fullTrace', 'growl', 'inlineDiffs', 'invert'].forEach(function (opt) {
+ ['allowUncaught', 'asyncOnly', 'bail', 'checkLeaks', 'color', 'delay', 'diff', 'dryRun', 'failZero', 'forbidOnly', 'forbidPending', 'fullTrace', 'growl', 'inlineDiffs', 'invert'].forEach(function (opt) {
if (options[opt]) {
this[opt]();
}
@@ -29097,7 +29469,7 @@
Mocha.prototype.grep = function (re) {
if (utils.isString(re)) {
// extract args if it's regex-like, i.e: [string, pattern, flag]
- var arg = re.match(/^\/(.*)\/(g|i|)$|.*/);
+ var arg = re.match(/^\/(.*)\/([gimy]{0,4})$|.*/);
this.options.grep = new RegExp(arg[1] || arg[0], arg[2]);
} else {
this.options.grep = re;
@@ -29301,21 +29673,6 @@
return this;
};
/**
- * Enables or disables running tests in dry-run mode.
- *
- * @public
- * @see [CLI option](../#-dry-run)
- * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.
- * @return {Mocha} this
- * @chainable
- */
-
-
- Mocha.prototype.dryRun = function (dryRun) {
- this.options.dryRun = dryRun !== false;
- return this;
- };
- /**
* @summary
* Sets timeout threshold value.
*
@@ -29449,6 +29806,36 @@
return this;
};
/**
+ * Enables or disables running tests in dry-run mode.
+ *
+ * @public
+ * @see [CLI option](../#-dry-run)
+ * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.
+ * @return {Mocha} this
+ * @chainable
+ */
+
+
+ Mocha.prototype.dryRun = function (dryRun) {
+ this.options.dryRun = dryRun !== false;
+ return this;
+ };
+ /**
+ * Fails test run if no tests encountered with exit-code 1.
+ *
+ * @public
+ * @see [CLI option](../#-fail-zero)
+ * @param {boolean} [failZero=true] - Whether to fail test run.
+ * @return {Mocha} this
+ * @chainable
+ */
+
+
+ Mocha.prototype.failZero = function (failZero) {
+ this.options.failZero = failZero !== false;
+ return this;
+ };
+ /**
* Causes tests marked `only` to fail the suite.
*
* @public
@@ -29556,9 +29943,10 @@
var options = this.options;
options.files = this.files;
var runner = new this._runnerClass(suite, {
+ cleanReferencesAfterRun: this._cleanReferencesAfterRun,
delay: options.delay,
dryRun: options.dryRun,
- cleanReferencesAfterRun: this._cleanReferencesAfterRun
+ failZero: options.failZero
});
statsCollector(runner);
var reporter = new this._reporter(runner, options);
@@ -29917,12 +30305,11 @@
var _runGlobalFixtures2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
var fixtureFns,
context,
- _iteratorNormalCompletion,
+ _iteratorAbruptCompletion,
_didIteratorError,
_iteratorError,
_iterator,
_step,
- _value,
fixtureFn,
_args4 = arguments;
@@ -29932,7 +30319,7 @@
case 0:
fixtureFns = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : [];
context = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {};
- _iteratorNormalCompletion = true;
+ _iteratorAbruptCompletion = false;
_didIteratorError = false;
_context4.prev = 4;
_iterator = _asyncIterator(fixtureFns);
@@ -29942,75 +30329,67 @@
return _iterator.next();
case 8:
- _step = _context4.sent;
- _iteratorNormalCompletion = _step.done;
- _context4.next = 12;
- return _step.value;
-
- case 12:
- _value = _context4.sent;
-
- if (_iteratorNormalCompletion) {
- _context4.next = 20;
+ if (!(_iteratorAbruptCompletion = !(_step = _context4.sent).done)) {
+ _context4.next = 15;
break;
}
- fixtureFn = _value;
- _context4.next = 17;
+ fixtureFn = _step.value;
+ _context4.next = 12;
return fixtureFn.call(context);
- case 17:
- _iteratorNormalCompletion = true;
+ case 12:
+ _iteratorAbruptCompletion = false;
_context4.next = 6;
break;
- case 20:
- _context4.next = 26;
+ case 15:
+ _context4.next = 21;
break;
- case 22:
- _context4.prev = 22;
+ case 17:
+ _context4.prev = 17;
_context4.t0 = _context4["catch"](4);
_didIteratorError = true;
_iteratorError = _context4.t0;
- case 26:
- _context4.prev = 26;
- _context4.prev = 27;
+ case 21:
+ _context4.prev = 21;
+ _context4.prev = 22;
- if (!(!_iteratorNormalCompletion && _iterator["return"] != null)) {
- _context4.next = 31;
+ if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) {
+ _context4.next = 26;
break;
}
- _context4.next = 31;
+ _context4.next = 26;
return _iterator["return"]();
- case 31:
- _context4.prev = 31;
+ case 26:
+ _context4.prev = 26;
if (!_didIteratorError) {
- _context4.next = 34;
+ _context4.next = 29;
break;
}
throw _iteratorError;
- case 34:
- return _context4.finish(31);
-
- case 35:
+ case 29:
return _context4.finish(26);
- case 36:
+ case 30:
+ return _context4.finish(21);
+
+ case 31:
return _context4.abrupt("return", context);
- case 37:
+ case 32:
case "end":
return _context4.stop();
}
}
- }, _callee4, null, [[4, 22, 26, 36], [27,, 31, 35]]);
+ }, _callee4, null, [[4, 17, 21, 31], [22,, 26, 30]]);
}));
function _runGlobalFixtures() {
@@ -30129,7 +30508,7 @@
*/
- process$3.stdout = browserStdout({
+ process$4.stdout = browserStdout({
label: false
});
/**
@@ -30157,7 +30536,7 @@
* Revert to original onerror handler if previously defined.
*/
- process$3.removeListener = function (e, fn) {
+ process$4.removeListener = function (e, fn) {
if (e === 'uncaughtException') {
if (originalOnerrorHandler) {
commonjsGlobal.onerror = originalOnerrorHandler;
@@ -30177,7 +30556,7 @@
*/
- process$3.listenerCount = function (name) {
+ process$4.listenerCount = function (name) {
if (name === 'uncaughtException') {
return uncaughtExceptionHandlers.length;
}
@@ -30189,7 +30568,7 @@
*/
- process$3.on = function (e, fn) {
+ process$4.on = function (e, fn) {
if (e === 'uncaughtException') {
commonjsGlobal.onerror = function (err, url, line) {
fn(new Error(err + ' (' + url + ':' + line + ')'));
@@ -30200,7 +30579,7 @@
}
};
- process$3.listeners = function (e) {
+ process$4.listeners = function (e) {
if (e === 'uncaughtException') {
return uncaughtExceptionHandlers;
}
@@ -30331,7 +30710,7 @@
*/
- mocha$1.process = process$3;
+ mocha$1.process = process$4;
/**
* Expose mocha.
*/
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js.map b/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js.map
index ec76cb3bdda..3f390eeb4cb 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js.map
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/mocha.js.map
@@ -1 +1 @@
-{"version":3,"file":"mocha.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has.js","node_modules/core-js/internals/document-create-element.js","node_modules/core-js/internals/ie8-dom-define.js","node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/core-js/internals/an-object.js","node_modules/core-js/internals/object-define-property.js","node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/inspect-source.js","node_modules/core-js/internals/native-weak-map.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/shared-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/internal-state.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/path.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/to-integer.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/a-function.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/engine-v8-version.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/internals/array-method-has-species-support.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/internals/create-property.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/modules/es.object.assign.js","node_modules/core-js/modules/es.object.keys.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/core-js/internals/same-value.js","node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/core-js/modules/es.string.search.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/array-method-is-strict.js","node_modules/core-js/internals/array-for-each.js","node_modules/core-js/modules/web.dom-collections.for-each.js","node_modules/core-js/modules/es.array.concat.js","node_modules/rollup-plugin-node-polyfills/polyfills/global.js","node_modules/rollup-plugin-node-globals/src/global.js","node_modules/process-es6/browser.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/modules/es.regexp.to-string.js","node_modules/core-js/modules/es.function.name.js","node_modules/core-js/internals/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/modules/es.object.get-prototype-of.js","node_modules/core-js/modules/es.reflect.own-keys.js","node_modules/rollup-plugin-node-polyfills/polyfills/events.js","node_modules/core-js/modules/es.array.join.js","node_modules/core-js/modules/es.array.map.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/inherit-if-required.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/modules/es.number.constructor.js","node_modules/core-js/modules/es.object.get-own-property-descriptor.js","node_modules/core-js/internals/object-get-own-property-names-external.js","node_modules/core-js/modules/es.object.get-own-property-names.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/internals/set-species.js","node_modules/core-js/modules/es.regexp.constructor.js","node_modules/core-js/internals/string-multibyte.js","node_modules/core-js/internals/advance-string-index.js","node_modules/core-js/modules/es.string.match.js","node_modules/core-js/internals/get-substitution.js","node_modules/core-js/modules/es.string.replace.js","node_modules/core-js/internals/species-constructor.js","node_modules/core-js/modules/es.string.split.js","node_modules/core-js/internals/well-known-symbol-wrapped.js","node_modules/core-js/internals/define-well-known-symbol.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/modules/es.symbol.js","node_modules/core-js/modules/es.symbol.description.js","node_modules/core-js/modules/es.symbol.species.js","node_modules/core-js/internals/array-fill.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/modules/es.array.fill.js","node_modules/core-js/modules/es.array.includes.js","node_modules/core-js/internals/iterators.js","node_modules/core-js/internals/iterators-core.js","node_modules/core-js/internals/create-iterator-constructor.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/modules/es.array.species.js","node_modules/core-js/internals/array-buffer-native.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/to-index.js","node_modules/core-js/internals/ieee754.js","node_modules/core-js/internals/array-buffer.js","node_modules/core-js/modules/es.array-buffer.constructor.js","node_modules/core-js/internals/not-a-regexp.js","node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/core-js/modules/es.string.includes.js","node_modules/core-js/internals/string-trim-forced.js","node_modules/core-js/modules/es.string.trim.js","node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/core-js/internals/array-buffer-view-core.js","node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","node_modules/core-js/internals/to-positive-integer.js","node_modules/core-js/internals/to-offset.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/typed-array-from.js","node_modules/core-js/internals/typed-array-constructor.js","node_modules/core-js/modules/es.typed-array.uint8-array.js","node_modules/core-js/internals/array-copy-within.js","node_modules/core-js/modules/es.typed-array.copy-within.js","node_modules/core-js/modules/es.typed-array.every.js","node_modules/core-js/modules/es.typed-array.fill.js","node_modules/core-js/internals/typed-array-from-species-and-list.js","node_modules/core-js/modules/es.typed-array.filter.js","node_modules/core-js/modules/es.typed-array.find.js","node_modules/core-js/modules/es.typed-array.find-index.js","node_modules/core-js/modules/es.typed-array.for-each.js","node_modules/core-js/modules/es.typed-array.includes.js","node_modules/core-js/modules/es.typed-array.index-of.js","node_modules/core-js/modules/es.typed-array.iterator.js","node_modules/core-js/modules/es.typed-array.join.js","node_modules/core-js/internals/array-last-index-of.js","node_modules/core-js/modules/es.typed-array.last-index-of.js","node_modules/core-js/modules/es.typed-array.map.js","node_modules/core-js/internals/array-reduce.js","node_modules/core-js/modules/es.typed-array.reduce.js","node_modules/core-js/modules/es.typed-array.reduce-right.js","node_modules/core-js/modules/es.typed-array.reverse.js","node_modules/core-js/modules/es.typed-array.set.js","node_modules/core-js/modules/es.typed-array.slice.js","node_modules/core-js/modules/es.typed-array.some.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.typed-array.sort.js","node_modules/core-js/modules/es.typed-array.subarray.js","node_modules/core-js/modules/es.typed-array.to-locale-string.js","node_modules/core-js/modules/es.typed-array.to-string.js","node_modules/core-js/modules/web.url.to-json.js","node_modules/buffer-es6/base64.js","node_modules/buffer-es6/ieee754.js","node_modules/buffer-es6/isArray.js","node_modules/buffer-es6/index.js","node_modules/rollup-plugin-node-polyfills/polyfills/process-es6.js","node_modules/rollup-plugin-node-polyfills/polyfills/inherits.js","node_modules/rollup-plugin-node-polyfills/polyfills/util.js","node_modules/rollup-plugin-node-polyfills/polyfills/buffer-es6.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/buffer-list.js","node_modules/rollup-plugin-node-polyfills/polyfills/string-decoder.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/readable.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/writable.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/duplex.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/transform.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/passthrough.js","node_modules/rollup-plugin-node-polyfills/polyfills/stream.js","node_modules/browser-stdout/index.js","lib/browser/parse-query.js","lib/browser/highlight-tags.js","node_modules/core-js/internals/native-promise-constructor.js","node_modules/core-js/internals/iterator-close.js","node_modules/core-js/internals/iterate.js","node_modules/core-js/internals/engine-is-ios.js","node_modules/core-js/internals/engine-is-node.js","node_modules/core-js/internals/task.js","node_modules/core-js/internals/engine-is-webos-webkit.js","node_modules/core-js/internals/microtask.js","node_modules/core-js/internals/new-promise-capability.js","node_modules/core-js/internals/promise-resolve.js","node_modules/core-js/internals/host-report-errors.js","node_modules/core-js/internals/perform.js","node_modules/core-js/internals/engine-is-browser.js","node_modules/core-js/modules/es.promise.js","node_modules/core-js/modules/es.symbol.async-iterator.js","node_modules/core-js/modules/es.symbol.iterator.js","node_modules/core-js/modules/es.symbol.to-string-tag.js","node_modules/core-js/modules/es.json.to-string-tag.js","node_modules/core-js/modules/es.math.to-string-tag.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/regenerator-runtime/runtime.js","node_modules/escape-string-regexp/index.js","node_modules/rollup-plugin-node-polyfills/polyfills/path.js","node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/modules/es.array.from.js","node_modules/core-js/modules/es.array.sort.js","node_modules/diff/dist/diff.js","node_modules/ms/index.js","node_modules/core-js/internals/freezing.js","node_modules/core-js/internals/internal-metadata.js","node_modules/core-js/modules/es.object.freeze.js","node_modules/core-js/internals/collection.js","node_modules/core-js/internals/collection-strong.js","node_modules/core-js/modules/es.set.js","node_modules/rollup-plugin-node-globals/src/browser.js","node_modules/nanoid/non-secure/index.js","node_modules/he/he.js","lib/utils.js","node_modules/log-symbols/browser.js","node_modules/core-js/modules/es.map.js","lib/pending.js","node_modules/debug/node_modules/ms/index.js","node_modules/debug/src/common.js","node_modules/debug/src/browser.js","node_modules/core-js/internals/object-to-array.js","node_modules/core-js/modules/es.object.values.js","lib/errors.js","lib/runnable.js","lib/hook.js","lib/suite.js","lib/runner.js","lib/reporters/base.js","lib/reporters/dot.js","lib/reporters/doc.js","lib/reporters/tap.js","lib/reporters/json.js","node_modules/core-js/internals/this-number-value.js","node_modules/core-js/internals/string-repeat.js","node_modules/core-js/modules/es.number.to-fixed.js","lib/browser/progress.js","lib/reporters/html.js","lib/reporters/list.js","lib/reporters/min.js","lib/reporters/spec.js","lib/reporters/nyan.js","lib/reporters/xunit.js","lib/reporters/markdown.js","lib/reporters/progress.js","lib/reporters/landing.js","lib/reporters/json-stream.js","lib/reporters/index.js","lib/browser/growl.js","lib/stats-collector.js","lib/test.js","lib/interfaces/common.js","lib/interfaces/bdd.js","lib/interfaces/tdd.js","lib/interfaces/qunit.js","lib/interfaces/exports.js","lib/interfaces/index.js","lib/context.js","lib/mocha.js","browser-entry.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.14.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\nvar shared = require('./shared');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExpPrototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) {\n var state = enforceInternalState(result);\n state.sticky = true;\n }\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, UNSUPPORTED_Y);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","module.exports = {};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","var aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar speciesConstructor = require('../internals/species-constructor');\n\nmodule.exports = function (instance, list) {\n var C = speciesConstructor(instance, instance.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $lastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// TODO: use something more complex like timsort?\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar aFunction = require('../internals/a-function');\nvar toLength = require('../internals/to-length');\nvar internalSort = require('../internals/array-sort');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && Uint16Array.prototype.sort;\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !fails(function () {\n var array = new Uint16Array(2);\n array.sort(null);\n array.sort({});\n});\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n array.sort(function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n var array = this;\n if (comparefn !== undefined) aFunction(comparefn);\n if (STABLE_SORT) return nativeSort.call(array, comparefn);\n\n aTypedArray(array);\n var arrayLength = toLength(array.length);\n var items = Array(arrayLength);\n var index;\n\n for (index = 0; index < arrayLength; index++) {\n items[index] = array[index];\n }\n\n items = internalSort(array, getSortCompare(comparefn));\n\n for (index = 0; index < arrayLength; index++) {\n array[index] = items[index];\n }\n\n return array;\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nexport default browser$1;\nexport { addListener, argv, binding, browser, chdir, config, cwd, emit, env, hrtime, nextTick, off, on, once, platform, release, removeAllListeners, removeListener, title, umask, uptime, version, versions };\n","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","var lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n};\n\nBuffer.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>'\n};\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nexport { Buffer, INSPECT_MAX_BYTES, SlowBuffer, isBuffer, _kMaxLength as kMaxLength };\n","import {Buffer} from 'buffer';\n\nexport default BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport {Buffer} from 'buffer';\nvar isBufferEncoding = Buffer.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nexport function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","'use strict';\n\n\nReadable.ReadableState = ReadableState;\nimport EventEmitter from 'events';\nimport {inherits, debuglog} from 'util';\nimport BufferList from './buffer-list';\nimport {StringDecoder} from 'string_decoder';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\n\nvar debug = debuglog('stream');\ninherits(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nexport default Readable;\nexport function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nimport {inherits, deprecate} from 'util';\nimport {Buffer} from 'buffer';\nWritable.WritableState = WritableState;\nimport {EventEmitter} from 'events';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\ninherits(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\nexport default Writable;\nexport function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n nextTick(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n","\nimport {inherits} from 'util';\nimport {nextTick} from 'process';\nimport {Readable} from './readable';\nimport {Writable} from './writable';\n\n\ninherits(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nexport default Duplex;\nexport function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nimport {Duplex} from './duplex';\n\n\nimport {inherits} from 'util';\ninherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nexport default Transform;\nexport function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n","\nimport {Transform} from './transform';\n\nimport {inherits} from 'util';\ninherits(PassThrough, Transform);\nexport default PassThrough;\nexport function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n","import EE from 'events';\nimport {inherits} from 'util';\n\nimport {Duplex} from './readable-stream/duplex.js';\nimport {Readable} from './readable-stream/readable.js';\nimport {Writable} from './readable-stream/writable.js';\nimport {Transform} from './readable-stream/transform.js';\nimport {PassThrough} from './readable-stream/passthrough.js';\ninherits(Stream, EE);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nexport default Stream;\nexport {Readable,Writable,Duplex,Transform,PassThrough,Stream}\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var WritableStream = require('stream').Writable\nvar inherits = require('util').inherits\n\nmodule.exports = BrowserStdout\n\n\ninherits(BrowserStdout, WritableStream)\n\nfunction BrowserStdout(opts) {\n if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts)\n\n opts = opts || {}\n WritableStream.call(this, opts)\n this.label = (opts.label !== undefined) ? opts.label : 'stdout'\n}\n\nBrowserStdout.prototype._write = function(chunks, encoding, cb) {\n var output = chunks.toString ? chunks.toString() : chunks\n if (this.label === false) {\n console.log(output)\n } else {\n console.log(this.label+':', output)\n }\n process.nextTick(cb)\n}\n","'use strict';\n\n/**\n * Parse the given `qs`.\n *\n * @private\n * @param {string} qs\n * @return {Object<string, string>}\n */\nmodule.exports = function parseQuery(qs) {\n return qs\n .replace('?', '')\n .split('&')\n .reduce(function(obj, pair) {\n var i = pair.indexOf('=');\n var key = pair.slice(0, i);\n var val = pair.slice(++i);\n\n // Due to how the URLSearchParams API treats spaces\n obj[key] = decodeURIComponent(val.replace(/\\+/g, '%20'));\n\n return obj;\n }, {});\n};\n","'use strict';\n\n/**\n * Highlight the given string of `js`.\n *\n * @private\n * @param {string} js\n * @return {string}\n */\nfunction highlight(js) {\n return js\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\\/\\/(.*)/gm, '<span class=\"comment\">//$1</span>')\n .replace(/('.*?')/gm, '<span class=\"string\">$1</span>')\n .replace(/(\\d+\\.\\d+)/gm, '<span class=\"number\">$1</span>')\n .replace(/(\\d+)/gm, '<span class=\"number\">$1</span>')\n .replace(\n /\\bnew[ \\t]+(\\w+)/gm,\n '<span class=\"keyword\">new</span> <span class=\"init\">$1</span>'\n )\n .replace(\n /\\b(function|new|throw|return|var|if|else)\\b/gm,\n '<span class=\"keyword\">$1</span>'\n );\n}\n\n/**\n * Highlight the contents of tag `name`.\n *\n * @private\n * @param {string} name\n */\nmodule.exports = function highlightTags(name) {\n var code = document.getElementById('mocha').getElementsByTagName(name);\n for (var i = 0, len = code.length; i < len; ++i) {\n code[i].innerHTML = highlight(code[i].innerHTML);\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","module.exports = typeof window == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromiseConstructorPrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexport function resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexport function normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexport function isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\nexport function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n}\n\n\n// path.relative(from, to)\n// posix version\nexport function relative(from, to) {\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\nexport var sep = '/';\nexport var delimiter = ':';\n\nexport function dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\nexport function basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n}\n\n\nexport function extname(path) {\n return splitPath(path)[3];\n}\nexport default {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve\n};\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return String(x) > String(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.Diff = {}));\n}(this, (function (exports) { 'use strict';\n\n function Diff() {}\n Diff.prototype = {\n diff: function diff(oldString, newString) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath = void 0;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n // This should not happen, but we want to be safe.\n\n /* istanbul ignore next */\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n castInput: function castInput(value) {\n return value;\n },\n tokenize: function tokenize(value) {\n return value.split('');\n },\n join: function join(chars) {\n return chars.join('');\n }\n };\n\n function buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n }\n\n function clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n }\n\n var characterDiff = new Diff();\n function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n }\n\n function generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n }\n\n //\n // Ranges and exceptions:\n // Latin-1 Supplement, 0080–00FF\n // - U+00D7 × Multiplication sign\n // - U+00F7 ÷ Division sign\n // Latin Extended-A, 0100–017F\n // Latin Extended-B, 0180–024F\n // IPA Extensions, 0250–02AF\n // Spacing Modifier Letters, 02B0–02FF\n // - U+02C7 ˇ &#711; Caron\n // - U+02D8 ˘ &#728; Breve\n // - U+02D9 ˙ &#729; Dot Above\n // - U+02DA ˚ &#730; Ring Above\n // - U+02DB ˛ &#731; Ogonek\n // - U+02DC ˜ &#732; Small Tilde\n // - U+02DD ˝ &#733; Double Acute Accent\n // Latin Extended Additional, 1E00–1EFF\n\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\n var reWhitespace = /\\S/;\n var wordDiff = new Diff();\n\n wordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n };\n\n wordDiff.tokenize = function (value) {\n // All whitespace symbols except newline group into one token, each newline - in separate token\n var tokens = value.split(/([^\\S\\r\\n]+|[()[\\]{}'\"\\r\\n]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n };\n\n function diffWords(oldStr, newStr, options) {\n options = generateOptions(options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n }\n function diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n }\n\n var lineDiff = new Diff();\n\n lineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n };\n\n function diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n }\n function diffTrimmedLines(oldStr, newStr, callback) {\n var options = generateOptions(callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n }\n\n var sentenceDiff = new Diff();\n\n sentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n };\n\n function diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n }\n\n var cssDiff = new Diff();\n\n cssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n };\n\n function diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var objectPrototypeToString = Object.prototype.toString;\n var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\n jsonDiff.useLongestToken = true;\n jsonDiff.tokenize = lineDiff.tokenize;\n\n jsonDiff.castInput = function (value) {\n var _this$options = this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {\n return typeof v === 'undefined' ? undefinedReplacement : v;\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n };\n\n jsonDiff.equals = function (left, right) {\n return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\n };\n\n function diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n } // This function handles the presence of circular references by bailing out when encountering an\n // object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\n function canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (_typeof(obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n }\n\n var arrayDiff = new Diff();\n\n arrayDiff.tokenize = function (value) {\n return value.slice();\n };\n\n arrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n };\n\n function diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n }\n\n function parsePatch(uniDiff) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n newStart: +chunkHeader[3],\n newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n lines: [],\n linedelimiters: []\n }; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart += 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart += 1;\n }\n\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n }\n\n // Iterator that traverses in the range of [min, max], stepping\n // by distance from a given start position. I.e. for [0, 4], with\n // start of 2, this will iterate 2, 3, 1, 4, 0.\n function distanceIterator (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n }\n\n function applyPatch(source, uniDiff) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {\n return line === patchContent;\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator = distanceIterator(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n } // Wrapper that supports multiple file patches via callbacks.\n\n function applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n }\n\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff = diffLines(oldStr, newStr, options);\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n var _loop = function _loop(i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n var _curRange;\n\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n var _curRange2;\n\n // Overlapping\n (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));\n } else {\n var _curRange3;\n\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n // however, if the old file is empty, do not output the no-nl line\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n _loop(i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n }\n function formatPatch(diff) {\n var ret = [];\n\n if (diff.oldFileName == diff.newFileName) {\n ret.push('Index: ' + diff.oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n }\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));\n }\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n }\n\n function arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n }\n function arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function calcLineCount(hunk) {\n var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n }\n function merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n }\n\n function loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return parsePatch(param)[0];\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return structuredPatch(undefined, undefined, base, param);\n }\n\n return param;\n }\n\n function fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n }\n\n function selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n }\n\n function hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n }\n\n function cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n }\n\n function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n var _hunk$lines;\n\n // Mine inserted\n (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n var _hunk$lines2;\n\n // Theirs inserted\n (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n }\n\n function mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n var _hunk$lines3;\n\n (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));\n\n return;\n } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n var _hunk$lines4;\n\n (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));\n\n return;\n }\n } else if (arrayEqual(myChanges, theirChanges)) {\n var _hunk$lines5;\n\n (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n }\n\n function removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n var _hunk$lines6;\n\n (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n }\n\n function conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n }\n\n function insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n }\n\n function insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n }\n\n function collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n }\n\n function collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n }\n\n function allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n }\n\n function skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n }\n\n function calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n }\n\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\n function convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n }\n\n function convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('<ins>');\n } else if (change.removed) {\n ret.push('<del>');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('</ins>');\n } else if (change.removed) {\n ret.push('</del>');\n }\n }\n\n return ret.join('');\n }\n\n function escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&amp;');\n n = n.replace(/</g, '&lt;');\n n = n.replace(/>/g, '&gt;');\n n = n.replace(/\"/g, '&quot;');\n return n;\n }\n\n exports.Diff = Diff;\n exports.applyPatch = applyPatch;\n exports.applyPatches = applyPatches;\n exports.canonicalize = canonicalize;\n exports.convertChangesToDMP = convertChangesToDMP;\n exports.convertChangesToXML = convertChangesToXML;\n exports.createPatch = createPatch;\n exports.createTwoFilesPatch = createTwoFilesPatch;\n exports.diffArrays = diffArrays;\n exports.diffChars = diffChars;\n exports.diffCss = diffCss;\n exports.diffJson = diffJson;\n exports.diffLines = diffLines;\n exports.diffSentences = diffSentences;\n exports.diffTrimmedLines = diffTrimmedLines;\n exports.diffWords = diffWords;\n exports.diffWordsWithSpace = diffWordsWithSpace;\n exports.merge = merge;\n exports.parsePatch = parsePatch;\n exports.structuredPatch = structuredPatch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","export var browser = true;\n","// This alphabet uses `A-Za-z0-9_-` symbols. The genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet =\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\n\nlet customAlphabet = (alphabet, size) => {\n return () => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nexport { nanoid, customAlphabet }\n","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '&quot;',\n\t\t'&': '&amp;',\n\t\t'\\'': '&#x27;',\n\t\t'<': '&lt;',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '&gt;',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '&#x60;'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;')\n\t\t\t\t\t.replace(/&#x66;&#x6A;/g, '&fjlig;');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&amp`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `&#119558;`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `&#x1D306;`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","'use strict';\n\n/**\n * Various utility functions used throughout Mocha's codebase.\n * @module utils\n */\n\n/**\n * Module dependencies.\n */\n\nconst {nanoid} = require('nanoid/non-secure');\nvar path = require('path');\nvar util = require('util');\nvar he = require('he');\n\nconst MOCHA_ID_PROP_NAME = '__mocha_id__';\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * @param {function} ctor - Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor - Constructor function to inherit prototype from.\n * @throws {TypeError} if either constructor is null, or if super constructor\n * lacks a prototype.\n */\nexports.inherits = util.inherits;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @private\n * @param {string} html\n * @return {string}\n */\nexports.escape = function(html) {\n return he.encode(String(html), {useNamedReferences: false});\n};\n\n/**\n * Test if the given obj is type of string.\n *\n * @private\n * @param {Object} obj\n * @return {boolean}\n */\nexports.isString = function(obj) {\n return typeof obj === 'string';\n};\n\n/**\n * Compute a slug from the given `str`.\n *\n * @private\n * @param {string} str\n * @return {string}\n */\nexports.slug = function(str) {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^-\\w]/g, '')\n .replace(/-{2,}/g, '-');\n};\n\n/**\n * Strip the function definition from `str`, and re-indent for pre whitespace.\n *\n * @param {string} str\n * @return {string}\n */\nexports.clean = function(str) {\n str = str\n .replace(/\\r\\n?|[\\n\\u2028\\u2029]/g, '\\n')\n .replace(/^\\uFEFF/, '')\n // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content\n .replace(\n /^function(?:\\s*|\\s+[^(]*)\\([^)]*\\)\\s*\\{((?:.|\\n)*?)\\s*\\}$|^\\([^)]*\\)\\s*=>\\s*(?:\\{((?:.|\\n)*?)\\s*\\}|((?:.|\\n)*))$/,\n '$1$2$3'\n );\n\n var spaces = str.match(/^\\n?( *)/)[1].length;\n var tabs = str.match(/^\\n?(\\t*)/)[1].length;\n var re = new RegExp(\n '^\\n?' + (tabs ? '\\t' : ' ') + '{' + (tabs || spaces) + '}',\n 'gm'\n );\n\n str = str.replace(re, '');\n\n return str.trim();\n};\n\n/**\n * If a value could have properties, and has none, this function is called,\n * which returns a string representation of the empty value.\n *\n * Functions w/ no properties return `'[Function]'`\n * Arrays w/ length === 0 return `'[]'`\n * Objects w/ no properties return `'{}'`\n * All else: return result of `value.toString()`\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} typeHint The type of the value\n * @returns {string}\n */\nfunction emptyRepresentation(value, typeHint) {\n switch (typeHint) {\n case 'function':\n return '[Function]';\n case 'object':\n return '{}';\n case 'array':\n return '[]';\n default:\n return value.toString();\n }\n}\n\n/**\n * Takes some variable and asks `Object.prototype.toString()` what it thinks it\n * is.\n *\n * @private\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString\n * @param {*} value The value to test.\n * @returns {string} Computed type\n * @example\n * canonicalType({}) // 'object'\n * canonicalType([]) // 'array'\n * canonicalType(1) // 'number'\n * canonicalType(false) // 'boolean'\n * canonicalType(Infinity) // 'number'\n * canonicalType(null) // 'null'\n * canonicalType(new Date()) // 'date'\n * canonicalType(/foo/) // 'regexp'\n * canonicalType('type') // 'string'\n * canonicalType(global) // 'global'\n * canonicalType(new String('foo') // 'object'\n * canonicalType(async function() {}) // 'asyncfunction'\n * canonicalType(await import(name)) // 'module'\n */\nvar canonicalType = (exports.canonicalType = function canonicalType(value) {\n if (value === undefined) {\n return 'undefined';\n } else if (value === null) {\n return 'null';\n } else if (Buffer.isBuffer(value)) {\n return 'buffer';\n }\n return Object.prototype.toString\n .call(value)\n .replace(/^\\[.+\\s(.+?)]$/, '$1')\n .toLowerCase();\n});\n\n/**\n *\n * Returns a general type or data structure of a variable\n * @private\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures\n * @param {*} value The value to test.\n * @returns {string} One of undefined, boolean, number, string, bigint, symbol, object\n * @example\n * type({}) // 'object'\n * type([]) // 'array'\n * type(1) // 'number'\n * type(false) // 'boolean'\n * type(Infinity) // 'number'\n * type(null) // 'null'\n * type(new Date()) // 'object'\n * type(/foo/) // 'object'\n * type('type') // 'string'\n * type(global) // 'object'\n * type(new String('foo') // 'string'\n */\nexports.type = function type(value) {\n // Null is special\n if (value === null) return 'null';\n const primitives = new Set([\n 'undefined',\n 'boolean',\n 'number',\n 'string',\n 'bigint',\n 'symbol'\n ]);\n const _type = typeof value;\n if (_type === 'function') return _type;\n if (primitives.has(_type)) return _type;\n if (value instanceof String) return 'string';\n if (value instanceof Error) return 'error';\n if (Array.isArray(value)) return 'array';\n\n return _type;\n};\n\n/**\n * Stringify `value`. Different behavior depending on type of value:\n *\n * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.\n * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.\n * - If `value` is an *empty* object, function, or array, return result of function\n * {@link emptyRepresentation}.\n * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of\n * JSON.stringify().\n *\n * @private\n * @see exports.type\n * @param {*} value\n * @return {string}\n */\nexports.stringify = function(value) {\n var typeHint = canonicalType(value);\n\n if (!~['object', 'array', 'function'].indexOf(typeHint)) {\n if (typeHint === 'buffer') {\n var json = Buffer.prototype.toJSON.call(value);\n // Based on the toJSON result\n return jsonStringify(\n json.data && json.type ? json.data : json,\n 2\n ).replace(/,(\\n|$)/g, '$1');\n }\n\n // IE7/IE8 has a bizarre String constructor; needs to be coerced\n // into an array and back to obj.\n if (typeHint === 'string' && typeof value === 'object') {\n value = value.split('').reduce(function(acc, char, idx) {\n acc[idx] = char;\n return acc;\n }, {});\n typeHint = 'object';\n } else {\n return jsonStringify(value);\n }\n }\n\n for (var prop in value) {\n if (Object.prototype.hasOwnProperty.call(value, prop)) {\n return jsonStringify(\n exports.canonicalize(value, null, typeHint),\n 2\n ).replace(/,(\\n|$)/g, '$1');\n }\n }\n\n return emptyRepresentation(value, typeHint);\n};\n\n/**\n * like JSON.stringify but more sense.\n *\n * @private\n * @param {Object} object\n * @param {number=} spaces\n * @param {number=} depth\n * @returns {*}\n */\nfunction jsonStringify(object, spaces, depth) {\n if (typeof spaces === 'undefined') {\n // primitive types\n return _stringify(object);\n }\n\n depth = depth || 1;\n var space = spaces * depth;\n var str = Array.isArray(object) ? '[' : '{';\n var end = Array.isArray(object) ? ']' : '}';\n var length =\n typeof object.length === 'number'\n ? object.length\n : Object.keys(object).length;\n // `.repeat()` polyfill\n function repeat(s, n) {\n return new Array(n).join(s);\n }\n\n function _stringify(val) {\n switch (canonicalType(val)) {\n case 'null':\n case 'undefined':\n val = '[' + val + ']';\n break;\n case 'array':\n case 'object':\n val = jsonStringify(val, spaces, depth + 1);\n break;\n case 'boolean':\n case 'regexp':\n case 'symbol':\n case 'number':\n val =\n val === 0 && 1 / val === -Infinity // `-0`\n ? '-0'\n : val.toString();\n break;\n case 'bigint':\n val = val.toString() + 'n';\n break;\n case 'date':\n var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString();\n val = '[Date: ' + sDate + ']';\n break;\n case 'buffer':\n var json = val.toJSON();\n // Based on the toJSON result\n json = json.data && json.type ? json.data : json;\n val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']';\n break;\n default:\n val =\n val === '[Function]' || val === '[Circular]'\n ? val\n : JSON.stringify(val); // string\n }\n return val;\n }\n\n for (var i in object) {\n if (!Object.prototype.hasOwnProperty.call(object, i)) {\n continue; // not my business\n }\n --length;\n str +=\n '\\n ' +\n repeat(' ', space) +\n (Array.isArray(object) ? '' : '\"' + i + '\": ') + // key\n _stringify(object[i]) + // value\n (length ? ',' : ''); // comma\n }\n\n return (\n str +\n // [], {}\n (str.length !== 1 ? '\\n' + repeat(' ', --space) + end : end)\n );\n}\n\n/**\n * Return a new Thing that has the keys in sorted order. Recursive.\n *\n * If the Thing...\n * - has already been seen, return string `'[Circular]'`\n * - is `undefined`, return string `'[undefined]'`\n * - is `null`, return value `null`\n * - is some other primitive, return the value\n * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method\n * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.\n * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()`\n *\n * @private\n * @see {@link exports.stringify}\n * @param {*} value Thing to inspect. May or may not have properties.\n * @param {Array} [stack=[]] Stack of seen values\n * @param {string} [typeHint] Type hint\n * @return {(Object|Array|Function|string|undefined)}\n */\nexports.canonicalize = function canonicalize(value, stack, typeHint) {\n var canonicalizedObj;\n /* eslint-disable no-unused-vars */\n var prop;\n /* eslint-enable no-unused-vars */\n typeHint = typeHint || canonicalType(value);\n function withStack(value, fn) {\n stack.push(value);\n fn();\n stack.pop();\n }\n\n stack = stack || [];\n\n if (stack.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n switch (typeHint) {\n case 'undefined':\n case 'buffer':\n case 'null':\n canonicalizedObj = value;\n break;\n case 'array':\n withStack(value, function() {\n canonicalizedObj = value.map(function(item) {\n return exports.canonicalize(item, stack);\n });\n });\n break;\n case 'function':\n /* eslint-disable-next-line no-unused-vars */\n for (prop in value) {\n canonicalizedObj = {};\n break;\n }\n /* eslint-enable guard-for-in */\n if (!canonicalizedObj) {\n canonicalizedObj = emptyRepresentation(value, typeHint);\n break;\n }\n /* falls through */\n case 'object':\n canonicalizedObj = canonicalizedObj || {};\n withStack(value, function() {\n Object.keys(value)\n .sort()\n .forEach(function(key) {\n canonicalizedObj[key] = exports.canonicalize(value[key], stack);\n });\n });\n break;\n case 'date':\n case 'number':\n case 'regexp':\n case 'boolean':\n case 'symbol':\n canonicalizedObj = value;\n break;\n default:\n canonicalizedObj = value + '';\n }\n\n return canonicalizedObj;\n};\n\n/**\n * @summary\n * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`)\n * @description\n * When invoking this function you get a filter function that get the Error.stack as an input,\n * and return a prettify output.\n * (i.e: strip Mocha and internal node functions from stack trace).\n * @returns {Function}\n */\nexports.stackTraceFilter = function() {\n // TODO: Replace with `process.browser`\n var is = typeof document === 'undefined' ? {node: true} : {browser: true};\n var slash = path.sep;\n var cwd;\n if (is.node) {\n cwd = exports.cwd() + slash;\n } else {\n cwd = (typeof location === 'undefined'\n ? window.location\n : location\n ).href.replace(/\\/[^/]*$/, '/');\n slash = '/';\n }\n\n function isMochaInternal(line) {\n return (\n ~line.indexOf('node_modules' + slash + 'mocha' + slash) ||\n ~line.indexOf(slash + 'mocha.js') ||\n ~line.indexOf(slash + 'mocha.min.js')\n );\n }\n\n function isNodeInternal(line) {\n return (\n ~line.indexOf('(timers.js:') ||\n ~line.indexOf('(events.js:') ||\n ~line.indexOf('(node.js:') ||\n ~line.indexOf('(module.js:') ||\n ~line.indexOf('GeneratorFunctionPrototype.next (native)') ||\n false\n );\n }\n\n return function(stack) {\n stack = stack.split('\\n');\n\n stack = stack.reduce(function(list, line) {\n if (isMochaInternal(line)) {\n return list;\n }\n\n if (is.node && isNodeInternal(line)) {\n return list;\n }\n\n // Clean up cwd(absolute)\n if (/:\\d+:\\d+\\)?$/.test(line)) {\n line = line.replace('(' + cwd, '(');\n }\n\n list.push(line);\n return list;\n }, []);\n\n return stack.join('\\n');\n };\n};\n\n/**\n * Crude, but effective.\n * @public\n * @param {*} value\n * @returns {boolean} Whether or not `value` is a Promise\n */\nexports.isPromise = function isPromise(value) {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof value.then === 'function'\n );\n};\n\n/**\n * Clamps a numeric value to an inclusive range.\n *\n * @param {number} value - Value to be clamped.\n * @param {number[]} range - Two element array specifying [min, max] range.\n * @returns {number} clamped value\n */\nexports.clamp = function clamp(value, range) {\n return Math.min(Math.max(value, range[0]), range[1]);\n};\n\n/**\n * It's a noop.\n * @public\n */\nexports.noop = function() {};\n\n/**\n * Creates a map-like object.\n *\n * @description\n * A \"map\" is an object with no prototype, for our purposes. In some cases\n * this would be more appropriate than a `Map`, especially if your environment\n * doesn't support it. Recommended for use in Mocha's public APIs.\n *\n * @public\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Custom_and_Null_objects|MDN:Map}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Custom_and_Null_objects|MDN:Object.create - Custom objects}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Custom_and_Null_objects|MDN:Object.assign}\n * @param {...*} [obj] - Arguments to `Object.assign()`.\n * @returns {Object} An object with no prototype, having `...obj` properties\n */\nexports.createMap = function(obj) {\n return Object.assign.apply(\n null,\n [Object.create(null)].concat(Array.prototype.slice.call(arguments))\n );\n};\n\n/**\n * Creates a read-only map-like object.\n *\n * @description\n * This differs from {@link module:utils.createMap createMap} only in that\n * the argument must be non-empty, because the result is frozen.\n *\n * @see {@link module:utils.createMap createMap}\n * @param {...*} [obj] - Arguments to `Object.assign()`.\n * @returns {Object} A frozen object with no prototype, having `...obj` properties\n * @throws {TypeError} if argument is not a non-empty object.\n */\nexports.defineConstants = function(obj) {\n if (canonicalType(obj) !== 'object' || !Object.keys(obj).length) {\n throw new TypeError('Invalid argument; expected a non-empty object');\n }\n return Object.freeze(exports.createMap(obj));\n};\n\n/**\n * Whether current version of Node support ES modules\n *\n * @description\n * Versions prior to 10 did not support ES Modules, and version 10 has an old incompatible version of ESM.\n * This function returns whether Node.JS has ES Module supports that is compatible with Mocha's needs,\n * which is version >=12.11.\n *\n * @param {partialSupport} whether the full Node.js ESM support is available (>= 12) or just something that supports the runtime (>= 10)\n *\n * @returns {Boolean} whether the current version of Node.JS supports ES Modules in a way that is compatible with Mocha\n */\nexports.supportsEsModules = function(partialSupport) {\n if (!exports.isBrowser() && process.versions && process.versions.node) {\n var versionFields = process.versions.node.split('.');\n var major = +versionFields[0];\n var minor = +versionFields[1];\n\n if (!partialSupport) {\n return major >= 13 || (major === 12 && minor >= 11);\n } else {\n return major >= 10;\n }\n }\n};\n\n/**\n * Returns current working directory\n *\n * Wrapper around `process.cwd()` for isolation\n * @private\n */\nexports.cwd = function cwd() {\n return process.cwd();\n};\n\n/**\n * Returns `true` if Mocha is running in a browser.\n * Checks for `process.browser`.\n * @returns {boolean}\n * @private\n */\nexports.isBrowser = function isBrowser() {\n return Boolean(process.browser);\n};\n\n/*\n * Casts `value` to an array; useful for optionally accepting array parameters\n *\n * It follows these rules, depending on `value`. If `value` is...\n * 1. `undefined`: return an empty Array\n * 2. `null`: return an array with a single `null` element\n * 3. Any other object: return the value of `Array.from()` _if_ the object is iterable\n * 4. otherwise: return an array with a single element, `value`\n * @param {*} value - Something to cast to an Array\n * @returns {Array<*>}\n */\nexports.castArray = function castArray(value) {\n if (value === undefined) {\n return [];\n }\n if (value === null) {\n return [null];\n }\n if (\n typeof value === 'object' &&\n (typeof value[Symbol.iterator] === 'function' || value.length !== undefined)\n ) {\n return Array.from(value);\n }\n return [value];\n};\n\nexports.constants = exports.defineConstants({\n MOCHA_ID_PROP_NAME\n});\n\n/**\n * Creates a new unique identifier\n * @returns {string} Unique identifier\n */\nexports.uniqueID = () => nanoid();\n\nexports.assignNewMochaID = obj => {\n const id = exports.uniqueID();\n Object.defineProperty(obj, MOCHA_ID_PROP_NAME, {\n get() {\n return id;\n }\n });\n return obj;\n};\n\n/**\n * Retrieves a Mocha ID from an object, if present.\n * @param {*} [obj] - Object\n * @returns {string|void}\n */\nexports.getMochaID = obj =>\n obj && typeof obj === 'object' ? obj[MOCHA_ID_PROP_NAME] : undefined;\n","'use strict';\n\nmodule.exports = {\n\tinfo: 'ℹ️',\n\tsuccess: '✅',\n\twarning: '⚠️',\n\terror: '❌️'\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n\n/**\n @module Pending\n*/\n\nmodule.exports = Pending;\n\n/**\n * Initialize a new `Pending` error with the given message.\n *\n * @param {string} message\n */\nfunction Pending(message) {\n this.message = message;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride,\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\n\nconst {format} = require('util');\n\n/**\n * Contains error codes, factory functions to create throwable error objects,\n * and warning/deprecation functions.\n * @module\n */\n\n/**\n * process.emitWarning or a polyfill\n * @see https://nodejs.org/api/process.html#process_process_emitwarning_warning_options\n * @ignore\n */\nconst emitWarning = (msg, type) => {\n if (process.emitWarning) {\n process.emitWarning(msg, type);\n } else {\n /* istanbul ignore next */\n process.nextTick(function() {\n console.warn(type + ': ' + msg);\n });\n }\n};\n\n/**\n * Show a deprecation warning. Each distinct message is only displayed once.\n * Ignores empty messages.\n *\n * @param {string} [msg] - Warning to print\n * @private\n */\nconst deprecate = msg => {\n msg = String(msg);\n if (msg && !deprecate.cache[msg]) {\n deprecate.cache[msg] = true;\n emitWarning(msg, 'DeprecationWarning');\n }\n};\ndeprecate.cache = {};\n\n/**\n * Show a generic warning.\n * Ignores empty messages.\n *\n * @param {string} [msg] - Warning to print\n * @private\n */\nconst warn = msg => {\n if (msg) {\n emitWarning(msg);\n }\n};\n\n/**\n * When Mocha throws exceptions (or rejects `Promise`s), it attempts to assign a `code` property to the `Error` object, for easier handling. These are the potential values of `code`.\n * @public\n * @namespace\n * @memberof module:lib/errors\n */\nvar constants = {\n /**\n * An unrecoverable error.\n * @constant\n * @default\n */\n FATAL: 'ERR_MOCHA_FATAL',\n\n /**\n * The type of an argument to a function call is invalid\n * @constant\n * @default\n */\n INVALID_ARG_TYPE: 'ERR_MOCHA_INVALID_ARG_TYPE',\n\n /**\n * The value of an argument to a function call is invalid\n * @constant\n * @default\n */\n INVALID_ARG_VALUE: 'ERR_MOCHA_INVALID_ARG_VALUE',\n\n /**\n * Something was thrown, but it wasn't an `Error`\n * @constant\n * @default\n */\n INVALID_EXCEPTION: 'ERR_MOCHA_INVALID_EXCEPTION',\n\n /**\n * An interface (e.g., `Mocha.interfaces`) is unknown or invalid\n * @constant\n * @default\n */\n INVALID_INTERFACE: 'ERR_MOCHA_INVALID_INTERFACE',\n\n /**\n * A reporter (.e.g, `Mocha.reporters`) is unknown or invalid\n * @constant\n * @default\n */\n INVALID_REPORTER: 'ERR_MOCHA_INVALID_REPORTER',\n\n /**\n * `done()` was called twice in a `Test` or `Hook` callback\n * @constant\n * @default\n */\n MULTIPLE_DONE: 'ERR_MOCHA_MULTIPLE_DONE',\n\n /**\n * No files matched the pattern provided by the user\n * @constant\n * @default\n */\n NO_FILES_MATCH_PATTERN: 'ERR_MOCHA_NO_FILES_MATCH_PATTERN',\n\n /**\n * Known, but unsupported behavior of some kind\n * @constant\n * @default\n */\n UNSUPPORTED: 'ERR_MOCHA_UNSUPPORTED',\n\n /**\n * Invalid state transition occurring in `Mocha` instance\n * @constant\n * @default\n */\n INSTANCE_ALREADY_RUNNING: 'ERR_MOCHA_INSTANCE_ALREADY_RUNNING',\n\n /**\n * Invalid state transition occurring in `Mocha` instance\n * @constant\n * @default\n */\n INSTANCE_ALREADY_DISPOSED: 'ERR_MOCHA_INSTANCE_ALREADY_DISPOSED',\n\n /**\n * Use of `only()` w/ `--forbid-only` results in this error.\n * @constant\n * @default\n */\n FORBIDDEN_EXCLUSIVITY: 'ERR_MOCHA_FORBIDDEN_EXCLUSIVITY',\n\n /**\n * To be thrown when a user-defined plugin implementation (e.g., `mochaHooks`) is invalid\n * @constant\n * @default\n */\n INVALID_PLUGIN_IMPLEMENTATION: 'ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION',\n\n /**\n * To be thrown when a builtin or third-party plugin definition (the _definition_ of `mochaHooks`) is invalid\n * @constant\n * @default\n */\n INVALID_PLUGIN_DEFINITION: 'ERR_MOCHA_INVALID_PLUGIN_DEFINITION',\n\n /**\n * When a runnable exceeds its allowed run time.\n * @constant\n * @default\n */\n TIMEOUT: 'ERR_MOCHA_TIMEOUT',\n\n /**\n * Input file is not able to be parsed\n * @constant\n * @default\n */\n UNPARSABLE_FILE: 'ERR_MOCHA_UNPARSABLE_FILE'\n};\n\n/**\n * A set containing all string values of all Mocha error constants, for use by {@link isMochaError}.\n * @private\n */\nconst MOCHA_ERRORS = new Set(Object.values(constants));\n\n/**\n * Creates an error object to be thrown when no files to be tested could be found using specified pattern.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} pattern - User-specified argument value.\n * @returns {Error} instance detailing the error condition\n */\nfunction createNoFilesMatchPatternError(message, pattern) {\n var err = new Error(message);\n err.code = constants.NO_FILES_MATCH_PATTERN;\n err.pattern = pattern;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when the reporter specified in the options was not found.\n *\n * @public\n * @param {string} message - Error message to be displayed.\n * @param {string} reporter - User-specified reporter value.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidReporterError(message, reporter) {\n var err = new TypeError(message);\n err.code = constants.INVALID_REPORTER;\n err.reporter = reporter;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when the interface specified in the options was not found.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} ui - User-specified interface value.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidInterfaceError(message, ui) {\n var err = new Error(message);\n err.code = constants.INVALID_INTERFACE;\n err.interface = ui;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a behavior, option, or parameter is unsupported.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\nfunction createUnsupportedError(message) {\n var err = new Error(message);\n err.code = constants.UNSUPPORTED;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an argument is missing.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} expected - Expected argument datatype.\n * @returns {Error} instance detailing the error condition\n */\nfunction createMissingArgumentError(message, argument, expected) {\n return createInvalidArgumentTypeError(message, argument, expected);\n}\n\n/**\n * Creates an error object to be thrown when an argument did not use the supported type\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} expected - Expected argument datatype.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidArgumentTypeError(message, argument, expected) {\n var err = new TypeError(message);\n err.code = constants.INVALID_ARG_TYPE;\n err.argument = argument;\n err.expected = expected;\n err.actual = typeof argument;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an argument did not use the supported value\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} value - Argument value.\n * @param {string} [reason] - Why value is invalid.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidArgumentValueError(message, argument, value, reason) {\n var err = new TypeError(message);\n err.code = constants.INVALID_ARG_VALUE;\n err.argument = argument;\n err.value = value;\n err.reason = typeof reason !== 'undefined' ? reason : 'is invalid';\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an exception was caught, but the `Error` is falsy or undefined.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidExceptionError(message, value) {\n var err = new Error(message);\n err.code = constants.INVALID_EXCEPTION;\n err.valueType = typeof value;\n err.value = value;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an unrecoverable error occurs.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\nfunction createFatalError(message, value) {\n var err = new Error(message);\n err.code = constants.FATAL;\n err.valueType = typeof value;\n err.value = value;\n return err;\n}\n\n/**\n * Dynamically creates a plugin-type-specific error based on plugin type\n * @param {string} message - Error message\n * @param {\"reporter\"|\"interface\"} pluginType - Plugin type. Future: expand as needed\n * @param {string} [pluginId] - Name/path of plugin, if any\n * @throws When `pluginType` is not known\n * @public\n * @static\n * @returns {Error}\n */\nfunction createInvalidLegacyPluginError(message, pluginType, pluginId) {\n switch (pluginType) {\n case 'reporter':\n return createInvalidReporterError(message, pluginId);\n case 'interface':\n return createInvalidInterfaceError(message, pluginId);\n default:\n throw new Error('unknown pluginType \"' + pluginType + '\"');\n }\n}\n\n/**\n * **DEPRECATED**. Use {@link createInvalidLegacyPluginError} instead Dynamically creates a plugin-type-specific error based on plugin type\n * @deprecated\n * @param {string} message - Error message\n * @param {\"reporter\"|\"interface\"} pluginType - Plugin type. Future: expand as needed\n * @param {string} [pluginId] - Name/path of plugin, if any\n * @throws When `pluginType` is not known\n * @public\n * @static\n * @returns {Error}\n */\nfunction createInvalidPluginError(...args) {\n deprecate('Use createInvalidLegacyPluginError() instead');\n return createInvalidLegacyPluginError(...args);\n}\n\n/**\n * Creates an error object to be thrown when a mocha object's `run` method is executed while it is already disposed.\n * @param {string} message The error message to be displayed.\n * @param {boolean} cleanReferencesAfterRun the value of `cleanReferencesAfterRun`\n * @param {Mocha} instance the mocha instance that throw this error\n * @static\n */\nfunction createMochaInstanceAlreadyDisposedError(\n message,\n cleanReferencesAfterRun,\n instance\n) {\n var err = new Error(message);\n err.code = constants.INSTANCE_ALREADY_DISPOSED;\n err.cleanReferencesAfterRun = cleanReferencesAfterRun;\n err.instance = instance;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a mocha object's `run` method is called while a test run is in progress.\n * @param {string} message The error message to be displayed.\n * @static\n * @public\n */\nfunction createMochaInstanceAlreadyRunningError(message, instance) {\n var err = new Error(message);\n err.code = constants.INSTANCE_ALREADY_RUNNING;\n err.instance = instance;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when done() is called multiple times in a test\n *\n * @public\n * @param {Runnable} runnable - Original runnable\n * @param {Error} [originalErr] - Original error, if any\n * @returns {Error} instance detailing the error condition\n * @static\n */\nfunction createMultipleDoneError(runnable, originalErr) {\n var title;\n try {\n title = format('<%s>', runnable.fullTitle());\n if (runnable.parent.root) {\n title += ' (of root suite)';\n }\n } catch (ignored) {\n title = format('<%s> (of unknown suite)', runnable.title);\n }\n var message = format(\n 'done() called multiple times in %s %s',\n runnable.type ? runnable.type : 'unknown runnable',\n title\n );\n if (runnable.file) {\n message += format(' of file %s', runnable.file);\n }\n if (originalErr) {\n message += format('; in addition, done() received error: %s', originalErr);\n }\n\n var err = new Error(message);\n err.code = constants.MULTIPLE_DONE;\n err.valueType = typeof originalErr;\n err.value = originalErr;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when `.only()` is used with\n * `--forbid-only`.\n * @static\n * @public\n * @param {Mocha} mocha - Mocha instance\n * @returns {Error} Error with code {@link constants.FORBIDDEN_EXCLUSIVITY}\n */\nfunction createForbiddenExclusivityError(mocha) {\n var err = new Error(\n mocha.isWorker\n ? '`.only` is not supported in parallel mode'\n : '`.only` forbidden by --forbid-only'\n );\n err.code = constants.FORBIDDEN_EXCLUSIVITY;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a plugin definition is invalid\n * @static\n * @param {string} msg - Error message\n * @param {PluginDefinition} [pluginDef] - Problematic plugin definition\n * @public\n * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}\n */\nfunction createInvalidPluginDefinitionError(msg, pluginDef) {\n const err = new Error(msg);\n err.code = constants.INVALID_PLUGIN_DEFINITION;\n err.pluginDef = pluginDef;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a plugin implementation (user code) is invalid\n * @static\n * @param {string} msg - Error message\n * @param {Object} [opts] - Plugin definition and user-supplied implementation\n * @param {PluginDefinition} [opts.pluginDef] - Plugin Definition\n * @param {*} [opts.pluginImpl] - Plugin Implementation (user-supplied)\n * @public\n * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}\n */\nfunction createInvalidPluginImplementationError(\n msg,\n {pluginDef, pluginImpl} = {}\n) {\n const err = new Error(msg);\n err.code = constants.INVALID_PLUGIN_IMPLEMENTATION;\n err.pluginDef = pluginDef;\n err.pluginImpl = pluginImpl;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a runnable exceeds its allowed run time.\n * @static\n * @param {string} msg - Error message\n * @param {number} [timeout] - Timeout in ms\n * @param {string} [file] - File, if given\n * @returns {MochaTimeoutError}\n */\nfunction createTimeoutError(msg, timeout, file) {\n const err = new Error(msg);\n err.code = constants.TIMEOUT;\n err.timeout = timeout;\n err.file = file;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when file is unparsable\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} filename - File name\n * @returns {Error} Error with code {@link constants.UNPARSABLE_FILE}\n */\nfunction createUnparsableFileError(message, filename) {\n var err = new Error(message);\n err.code = constants.UNPARSABLE_FILE;\n return err;\n}\n\n/**\n * Returns `true` if an error came out of Mocha.\n * _Can suffer from false negatives, but not false positives._\n * @static\n * @public\n * @param {*} err - Error, or anything\n * @returns {boolean}\n */\nconst isMochaError = err =>\n Boolean(err && typeof err === 'object' && MOCHA_ERRORS.has(err.code));\n\nmodule.exports = {\n constants,\n createFatalError,\n createForbiddenExclusivityError,\n createInvalidArgumentTypeError,\n createInvalidArgumentValueError,\n createInvalidExceptionError,\n createInvalidInterfaceError,\n createInvalidLegacyPluginError,\n createInvalidPluginDefinitionError,\n createInvalidPluginError,\n createInvalidPluginImplementationError,\n createInvalidReporterError,\n createMissingArgumentError,\n createMochaInstanceAlreadyDisposedError,\n createMochaInstanceAlreadyRunningError,\n createMultipleDoneError,\n createNoFilesMatchPatternError,\n createTimeoutError,\n createUnparsableFileError,\n createUnsupportedError,\n deprecate,\n isMochaError,\n warn\n};\n\n/**\n * The error thrown when a Runnable times out\n * @memberof module:lib/errors\n * @typedef {Error} MochaTimeoutError\n * @property {constants.TIMEOUT} code - Error code\n * @property {number?} timeout Timeout in ms\n * @property {string?} file Filepath, if given\n */\n","'use strict';\n\nvar EventEmitter = require('events').EventEmitter;\nvar Pending = require('./pending');\nvar debug = require('debug')('mocha:runnable');\nvar milliseconds = require('ms');\nvar utils = require('./utils');\nconst {\n createInvalidExceptionError,\n createMultipleDoneError,\n createTimeoutError\n} = require('./errors');\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n * @private\n */\nvar Date = global.Date;\nvar setTimeout = global.setTimeout;\nvar clearTimeout = global.clearTimeout;\nvar toString = Object.prototype.toString;\n\nmodule.exports = Runnable;\n\n/**\n * Initialize a new `Runnable` with the given `title` and callback `fn`.\n *\n * @class\n * @extends external:EventEmitter\n * @public\n * @param {String} title\n * @param {Function} fn\n */\nfunction Runnable(title, fn) {\n this.title = title;\n this.fn = fn;\n this.body = (fn || '').toString();\n this.async = fn && fn.length;\n this.sync = !this.async;\n this._timeout = 2000;\n this._slow = 75;\n this._retries = -1;\n utils.assignNewMochaID(this);\n Object.defineProperty(this, 'id', {\n get() {\n return utils.getMochaID(this);\n }\n });\n this.reset();\n}\n\n/**\n * Inherit from `EventEmitter.prototype`.\n */\nutils.inherits(Runnable, EventEmitter);\n\n/**\n * Resets the state initially or for a next run.\n */\nRunnable.prototype.reset = function() {\n this.timedOut = false;\n this._currentRetry = 0;\n this.pending = false;\n delete this.state;\n delete this.err;\n};\n\n/**\n * Get current timeout value in msecs.\n *\n * @private\n * @returns {number} current timeout threshold value\n */\n/**\n * @summary\n * Set timeout threshold value (msecs).\n *\n * @description\n * A string argument can use shorthand (e.g., \"2s\") and will be converted.\n * The value will be clamped to range [<code>0</code>, <code>2^<sup>31</sup>-1</code>].\n * If clamped value matches either range endpoint, timeouts will be disabled.\n *\n * @private\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Maximum_delay_value}\n * @param {number|string} ms - Timeout threshold value.\n * @returns {Runnable} this\n * @chainable\n */\nRunnable.prototype.timeout = function(ms) {\n if (!arguments.length) {\n return this._timeout;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n\n // Clamp to range\n var INT_MAX = Math.pow(2, 31) - 1;\n var range = [0, INT_MAX];\n ms = utils.clamp(ms, range);\n\n // see #1652 for reasoning\n if (ms === range[0] || ms === range[1]) {\n this._timeout = 0;\n } else {\n this._timeout = ms;\n }\n debug('timeout %d', this._timeout);\n\n if (this.timer) {\n this.resetTimeout();\n }\n return this;\n};\n\n/**\n * Set or get slow `ms`.\n *\n * @private\n * @param {number|string} ms\n * @return {Runnable|number} ms or Runnable instance.\n */\nRunnable.prototype.slow = function(ms) {\n if (!arguments.length || typeof ms === 'undefined') {\n return this._slow;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n debug('slow %d', ms);\n this._slow = ms;\n return this;\n};\n\n/**\n * Halt and mark as pending.\n *\n * @memberof Mocha.Runnable\n * @public\n */\nRunnable.prototype.skip = function() {\n this.pending = true;\n throw new Pending('sync skip; aborting execution');\n};\n\n/**\n * Check if this runnable or its parent suite is marked as pending.\n *\n * @private\n */\nRunnable.prototype.isPending = function() {\n return this.pending || (this.parent && this.parent.isPending());\n};\n\n/**\n * Return `true` if this Runnable has failed.\n * @return {boolean}\n * @private\n */\nRunnable.prototype.isFailed = function() {\n return !this.isPending() && this.state === constants.STATE_FAILED;\n};\n\n/**\n * Return `true` if this Runnable has passed.\n * @return {boolean}\n * @private\n */\nRunnable.prototype.isPassed = function() {\n return !this.isPending() && this.state === constants.STATE_PASSED;\n};\n\n/**\n * Set or get number of retries.\n *\n * @private\n */\nRunnable.prototype.retries = function(n) {\n if (!arguments.length) {\n return this._retries;\n }\n this._retries = n;\n};\n\n/**\n * Set or get current retry\n *\n * @private\n */\nRunnable.prototype.currentRetry = function(n) {\n if (!arguments.length) {\n return this._currentRetry;\n }\n this._currentRetry = n;\n};\n\n/**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @memberof Mocha.Runnable\n * @public\n * @return {string}\n */\nRunnable.prototype.fullTitle = function() {\n return this.titlePath().join(' ');\n};\n\n/**\n * Return the title path generated by concatenating the parent's title path with the title.\n *\n * @memberof Mocha.Runnable\n * @public\n * @return {string}\n */\nRunnable.prototype.titlePath = function() {\n return this.parent.titlePath().concat([this.title]);\n};\n\n/**\n * Clear the timeout.\n *\n * @private\n */\nRunnable.prototype.clearTimeout = function() {\n clearTimeout(this.timer);\n};\n\n/**\n * Reset the timeout.\n *\n * @private\n */\nRunnable.prototype.resetTimeout = function() {\n var self = this;\n var ms = this.timeout();\n\n if (ms === 0) {\n return;\n }\n this.clearTimeout();\n this.timer = setTimeout(function() {\n if (self.timeout() === 0) {\n return;\n }\n self.callback(self._timeoutError(ms));\n self.timedOut = true;\n }, ms);\n};\n\n/**\n * Set or get a list of whitelisted globals for this test run.\n *\n * @private\n * @param {string[]} globals\n */\nRunnable.prototype.globals = function(globals) {\n if (!arguments.length) {\n return this._allowedGlobals;\n }\n this._allowedGlobals = globals;\n};\n\n/**\n * Run the test and invoke `fn(err)`.\n *\n * @param {Function} fn\n * @private\n */\nRunnable.prototype.run = function(fn) {\n var self = this;\n var start = new Date();\n var ctx = this.ctx;\n var finished;\n var errorWasHandled = false;\n\n if (this.isPending()) return fn();\n\n // Sometimes the ctx exists, but it is not runnable\n if (ctx && ctx.runnable) {\n ctx.runnable(this);\n }\n\n // called multiple times\n function multiple(err) {\n if (errorWasHandled) {\n return;\n }\n errorWasHandled = true;\n self.emit('error', createMultipleDoneError(self, err));\n }\n\n // finished\n function done(err) {\n var ms = self.timeout();\n if (self.timedOut) {\n return;\n }\n\n if (finished) {\n return multiple(err);\n }\n\n self.clearTimeout();\n self.duration = new Date() - start;\n finished = true;\n if (!err && self.duration > ms && ms > 0) {\n err = self._timeoutError(ms);\n }\n fn(err);\n }\n\n // for .resetTimeout() and Runner#uncaught()\n this.callback = done;\n\n if (this.fn && typeof this.fn.call !== 'function') {\n done(\n new TypeError(\n 'A runnable must be passed a function as its second argument.'\n )\n );\n return;\n }\n\n // explicit async with `done` argument\n if (this.async) {\n this.resetTimeout();\n\n // allows skip() to be used in an explicit async context\n this.skip = function asyncSkip() {\n this.pending = true;\n done();\n // halt execution, the uncaught handler will ignore the failure.\n throw new Pending('async skip; aborting execution');\n };\n\n try {\n callFnAsync(this.fn);\n } catch (err) {\n // handles async runnables which actually run synchronously\n errorWasHandled = true;\n if (err instanceof Pending) {\n return; // done() is already called in this.skip()\n } else if (this.allowUncaught) {\n throw err;\n }\n done(Runnable.toValueOrError(err));\n }\n return;\n }\n\n // sync or promise-returning\n try {\n callFn(this.fn);\n } catch (err) {\n errorWasHandled = true;\n if (err instanceof Pending) {\n return done();\n } else if (this.allowUncaught) {\n throw err;\n }\n done(Runnable.toValueOrError(err));\n }\n\n function callFn(fn) {\n var result = fn.call(ctx);\n if (result && typeof result.then === 'function') {\n self.resetTimeout();\n result.then(\n function() {\n done();\n // Return null so libraries like bluebird do not warn about\n // subsequently constructed Promises.\n return null;\n },\n function(reason) {\n done(reason || new Error('Promise rejected with no or falsy reason'));\n }\n );\n } else {\n if (self.asyncOnly) {\n return done(\n new Error(\n '--async-only option in use without declaring `done()` or returning a promise'\n )\n );\n }\n\n done();\n }\n }\n\n function callFnAsync(fn) {\n var result = fn.call(ctx, function(err) {\n if (err instanceof Error || toString.call(err) === '[object Error]') {\n return done(err);\n }\n if (err) {\n if (Object.prototype.toString.call(err) === '[object Object]') {\n return done(\n new Error('done() invoked with non-Error: ' + JSON.stringify(err))\n );\n }\n return done(new Error('done() invoked with non-Error: ' + err));\n }\n if (result && utils.isPromise(result)) {\n return done(\n new Error(\n 'Resolution method is overspecified. Specify a callback *or* return a Promise; not both.'\n )\n );\n }\n\n done();\n });\n }\n};\n\n/**\n * Instantiates a \"timeout\" error\n *\n * @param {number} ms - Timeout (in milliseconds)\n * @returns {Error} a \"timeout\" error\n * @private\n */\nRunnable.prototype._timeoutError = function(ms) {\n let msg = `Timeout of ${ms}ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves.`;\n if (this.file) {\n msg += ' (' + this.file + ')';\n }\n return createTimeoutError(msg, ms, this.file);\n};\n\nvar constants = utils.defineConstants(\n /**\n * {@link Runnable}-related constants.\n * @public\n * @memberof Runnable\n * @readonly\n * @static\n * @alias constants\n * @enum {string}\n */\n {\n /**\n * Value of `state` prop when a `Runnable` has failed\n */\n STATE_FAILED: 'failed',\n /**\n * Value of `state` prop when a `Runnable` has passed\n */\n STATE_PASSED: 'passed',\n /**\n * Value of `state` prop when a `Runnable` has been skipped by user\n */\n STATE_PENDING: 'pending'\n }\n);\n\n/**\n * Given `value`, return identity if truthy, otherwise create an \"invalid exception\" error and return that.\n * @param {*} [value] - Value to return, if present\n * @returns {*|Error} `value`, otherwise an `Error`\n * @private\n */\nRunnable.toValueOrError = function(value) {\n return (\n value ||\n createInvalidExceptionError(\n 'Runnable failed with falsy or undefined exception. Please throw an Error instead.',\n value\n )\n );\n};\n\nRunnable.constants = constants;\n","'use strict';\n\nvar Runnable = require('./runnable');\nconst {inherits, constants} = require('./utils');\nconst {MOCHA_ID_PROP_NAME} = constants;\n\n/**\n * Expose `Hook`.\n */\n\nmodule.exports = Hook;\n\n/**\n * Initialize a new `Hook` with the given `title` and callback `fn`\n *\n * @class\n * @extends Runnable\n * @param {String} title\n * @param {Function} fn\n */\nfunction Hook(title, fn) {\n Runnable.call(this, title, fn);\n this.type = 'hook';\n}\n\n/**\n * Inherit from `Runnable.prototype`.\n */\ninherits(Hook, Runnable);\n\n/**\n * Resets the state for a next run.\n */\nHook.prototype.reset = function() {\n Runnable.prototype.reset.call(this);\n delete this._error;\n};\n\n/**\n * Get or set the test `err`.\n *\n * @memberof Hook\n * @public\n * @param {Error} err\n * @return {Error}\n */\nHook.prototype.error = function(err) {\n if (!arguments.length) {\n err = this._error;\n this._error = null;\n return err;\n }\n\n this._error = err;\n};\n\n/**\n * Returns an object suitable for IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\nHook.prototype.serialize = function serialize() {\n return {\n $$isPending: this.isPending(),\n $$titlePath: this.titlePath(),\n ctx:\n this.ctx && this.ctx.currentTest\n ? {\n currentTest: {\n title: this.ctx.currentTest.title,\n [MOCHA_ID_PROP_NAME]: this.ctx.currentTest.id\n }\n }\n : {},\n parent: {\n [MOCHA_ID_PROP_NAME]: this.parent.id\n },\n title: this.title,\n type: this.type,\n [MOCHA_ID_PROP_NAME]: this.id\n };\n};\n","'use strict';\n\n/**\n * Module dependencies.\n * @private\n */\nconst {EventEmitter} = require('events');\nconst Hook = require('./hook');\nvar {\n assignNewMochaID,\n clamp,\n constants: utilsConstants,\n createMap,\n defineConstants,\n getMochaID,\n inherits,\n isString\n} = require('./utils');\nconst debug = require('debug')('mocha:suite');\nconst milliseconds = require('ms');\nconst errors = require('./errors');\n\nconst {MOCHA_ID_PROP_NAME} = utilsConstants;\n\n/**\n * Expose `Suite`.\n */\n\nexports = module.exports = Suite;\n\n/**\n * Create a new `Suite` with the given `title` and parent `Suite`.\n *\n * @public\n * @param {Suite} parent - Parent suite (required!)\n * @param {string} title - Title\n * @return {Suite}\n */\nSuite.create = function(parent, title) {\n var suite = new Suite(title, parent.ctx);\n suite.parent = parent;\n title = suite.fullTitle();\n parent.addSuite(suite);\n return suite;\n};\n\n/**\n * Constructs a new `Suite` instance with the given `title`, `ctx`, and `isRoot`.\n *\n * @public\n * @class\n * @extends EventEmitter\n * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter|EventEmitter}\n * @param {string} title - Suite title.\n * @param {Context} parentContext - Parent context instance.\n * @param {boolean} [isRoot=false] - Whether this is the root suite.\n */\nfunction Suite(title, parentContext, isRoot) {\n if (!isString(title)) {\n throw errors.createInvalidArgumentTypeError(\n 'Suite argument \"title\" must be a string. Received type \"' +\n typeof title +\n '\"',\n 'title',\n 'string'\n );\n }\n this.title = title;\n function Context() {}\n Context.prototype = parentContext;\n this.ctx = new Context();\n this.suites = [];\n this.tests = [];\n this.root = isRoot === true;\n this.pending = false;\n this._retries = -1;\n this._beforeEach = [];\n this._beforeAll = [];\n this._afterEach = [];\n this._afterAll = [];\n this._timeout = 2000;\n this._slow = 75;\n this._bail = false;\n this._onlyTests = [];\n this._onlySuites = [];\n assignNewMochaID(this);\n\n Object.defineProperty(this, 'id', {\n get() {\n return getMochaID(this);\n }\n });\n\n this.reset();\n\n this.on('newListener', function(event) {\n if (deprecatedEvents[event]) {\n errors.deprecate(\n 'Event \"' +\n event +\n '\" is deprecated. Please let the Mocha team know about your use case: https://git.io/v6Lwm'\n );\n }\n });\n}\n\n/**\n * Inherit from `EventEmitter.prototype`.\n */\ninherits(Suite, EventEmitter);\n\n/**\n * Resets the state initially or for a next run.\n */\nSuite.prototype.reset = function() {\n this.delayed = false;\n function doReset(thingToReset) {\n thingToReset.reset();\n }\n this.suites.forEach(doReset);\n this.tests.forEach(doReset);\n this._beforeEach.forEach(doReset);\n this._afterEach.forEach(doReset);\n this._beforeAll.forEach(doReset);\n this._afterAll.forEach(doReset);\n};\n\n/**\n * Return a clone of this `Suite`.\n *\n * @private\n * @return {Suite}\n */\nSuite.prototype.clone = function() {\n var suite = new Suite(this.title);\n debug('clone');\n suite.ctx = this.ctx;\n suite.root = this.root;\n suite.timeout(this.timeout());\n suite.retries(this.retries());\n suite.slow(this.slow());\n suite.bail(this.bail());\n return suite;\n};\n\n/**\n * Set or get timeout `ms` or short-hand such as \"2s\".\n *\n * @private\n * @todo Do not attempt to set value if `ms` is undefined\n * @param {number|string} ms\n * @return {Suite|number} for chaining\n */\nSuite.prototype.timeout = function(ms) {\n if (!arguments.length) {\n return this._timeout;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n\n // Clamp to range\n var INT_MAX = Math.pow(2, 31) - 1;\n var range = [0, INT_MAX];\n ms = clamp(ms, range);\n\n debug('timeout %d', ms);\n this._timeout = parseInt(ms, 10);\n return this;\n};\n\n/**\n * Set or get number of times to retry a failed test.\n *\n * @private\n * @param {number|string} n\n * @return {Suite|number} for chaining\n */\nSuite.prototype.retries = function(n) {\n if (!arguments.length) {\n return this._retries;\n }\n debug('retries %d', n);\n this._retries = parseInt(n, 10) || 0;\n return this;\n};\n\n/**\n * Set or get slow `ms` or short-hand such as \"2s\".\n *\n * @private\n * @param {number|string} ms\n * @return {Suite|number} for chaining\n */\nSuite.prototype.slow = function(ms) {\n if (!arguments.length) {\n return this._slow;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n debug('slow %d', ms);\n this._slow = ms;\n return this;\n};\n\n/**\n * Set or get whether to bail after first error.\n *\n * @private\n * @param {boolean} bail\n * @return {Suite|number} for chaining\n */\nSuite.prototype.bail = function(bail) {\n if (!arguments.length) {\n return this._bail;\n }\n debug('bail %s', bail);\n this._bail = bail;\n return this;\n};\n\n/**\n * Check if this suite or its parent suite is marked as pending.\n *\n * @private\n */\nSuite.prototype.isPending = function() {\n return this.pending || (this.parent && this.parent.isPending());\n};\n\n/**\n * Generic hook-creator.\n * @private\n * @param {string} title - Title of hook\n * @param {Function} fn - Hook callback\n * @returns {Hook} A new hook\n */\nSuite.prototype._createHook = function(title, fn) {\n var hook = new Hook(title, fn);\n hook.parent = this;\n hook.timeout(this.timeout());\n hook.retries(this.retries());\n hook.slow(this.slow());\n hook.ctx = this.ctx;\n hook.file = this.file;\n return hook;\n};\n\n/**\n * Run `fn(test[, done])` before running tests.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.beforeAll = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"before all\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._beforeAll.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_ALL, hook);\n return this;\n};\n\n/**\n * Run `fn(test[, done])` after running tests.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.afterAll = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"after all\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._afterAll.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_ALL, hook);\n return this;\n};\n\n/**\n * Run `fn(test[, done])` before each test case.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.beforeEach = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"before each\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._beforeEach.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_EACH, hook);\n return this;\n};\n\n/**\n * Run `fn(test[, done])` after each test case.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.afterEach = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"after each\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._afterEach.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_EACH, hook);\n return this;\n};\n\n/**\n * Add a test `suite`.\n *\n * @private\n * @param {Suite} suite\n * @return {Suite} for chaining\n */\nSuite.prototype.addSuite = function(suite) {\n suite.parent = this;\n suite.root = false;\n suite.timeout(this.timeout());\n suite.retries(this.retries());\n suite.slow(this.slow());\n suite.bail(this.bail());\n this.suites.push(suite);\n this.emit(constants.EVENT_SUITE_ADD_SUITE, suite);\n return this;\n};\n\n/**\n * Add a `test` to this suite.\n *\n * @private\n * @param {Test} test\n * @return {Suite} for chaining\n */\nSuite.prototype.addTest = function(test) {\n test.parent = this;\n test.timeout(this.timeout());\n test.retries(this.retries());\n test.slow(this.slow());\n test.ctx = this.ctx;\n this.tests.push(test);\n this.emit(constants.EVENT_SUITE_ADD_TEST, test);\n return this;\n};\n\n/**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @memberof Suite\n * @public\n * @return {string}\n */\nSuite.prototype.fullTitle = function() {\n return this.titlePath().join(' ');\n};\n\n/**\n * Return the title path generated by recursively concatenating the parent's\n * title path.\n *\n * @memberof Suite\n * @public\n * @return {string}\n */\nSuite.prototype.titlePath = function() {\n var result = [];\n if (this.parent) {\n result = result.concat(this.parent.titlePath());\n }\n if (!this.root) {\n result.push(this.title);\n }\n return result;\n};\n\n/**\n * Return the total number of tests.\n *\n * @memberof Suite\n * @public\n * @return {number}\n */\nSuite.prototype.total = function() {\n return (\n this.suites.reduce(function(sum, suite) {\n return sum + suite.total();\n }, 0) + this.tests.length\n );\n};\n\n/**\n * Iterates through each suite recursively to find all tests. Applies a\n * function in the format `fn(test)`.\n *\n * @private\n * @param {Function} fn\n * @return {Suite}\n */\nSuite.prototype.eachTest = function(fn) {\n this.tests.forEach(fn);\n this.suites.forEach(function(suite) {\n suite.eachTest(fn);\n });\n return this;\n};\n\n/**\n * This will run the root suite if we happen to be running in delayed mode.\n * @private\n */\nSuite.prototype.run = function run() {\n if (this.root) {\n this.emit(constants.EVENT_ROOT_SUITE_RUN);\n }\n};\n\n/**\n * Determines whether a suite has an `only` test or suite as a descendant.\n *\n * @private\n * @returns {Boolean}\n */\nSuite.prototype.hasOnly = function hasOnly() {\n return (\n this._onlyTests.length > 0 ||\n this._onlySuites.length > 0 ||\n this.suites.some(function(suite) {\n return suite.hasOnly();\n })\n );\n};\n\n/**\n * Filter suites based on `isOnly` logic.\n *\n * @private\n * @returns {Boolean}\n */\nSuite.prototype.filterOnly = function filterOnly() {\n if (this._onlyTests.length) {\n // If the suite contains `only` tests, run those and ignore any nested suites.\n this.tests = this._onlyTests;\n this.suites = [];\n } else {\n // Otherwise, do not run any of the tests in this suite.\n this.tests = [];\n this._onlySuites.forEach(function(onlySuite) {\n // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite.\n // Otherwise, all of the tests on this `only` suite should be run, so don't filter it.\n if (onlySuite.hasOnly()) {\n onlySuite.filterOnly();\n }\n });\n // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants.\n var onlySuites = this._onlySuites;\n this.suites = this.suites.filter(function(childSuite) {\n return onlySuites.indexOf(childSuite) !== -1 || childSuite.filterOnly();\n });\n }\n // Keep the suite only if there is something to run\n return this.tests.length > 0 || this.suites.length > 0;\n};\n\n/**\n * Adds a suite to the list of subsuites marked `only`.\n *\n * @private\n * @param {Suite} suite\n */\nSuite.prototype.appendOnlySuite = function(suite) {\n this._onlySuites.push(suite);\n};\n\n/**\n * Marks a suite to be `only`.\n *\n * @private\n */\nSuite.prototype.markOnly = function() {\n this.parent && this.parent.appendOnlySuite(this);\n};\n\n/**\n * Adds a test to the list of tests marked `only`.\n *\n * @private\n * @param {Test} test\n */\nSuite.prototype.appendOnlyTest = function(test) {\n this._onlyTests.push(test);\n};\n\n/**\n * Returns the array of hooks by hook name; see `HOOK_TYPE_*` constants.\n * @private\n */\nSuite.prototype.getHooks = function getHooks(name) {\n return this['_' + name];\n};\n\n/**\n * cleans all references from this suite and all child suites.\n */\nSuite.prototype.dispose = function() {\n this.suites.forEach(function(suite) {\n suite.dispose();\n });\n this.cleanReferences();\n};\n\n/**\n * Cleans up the references to all the deferred functions\n * (before/after/beforeEach/afterEach) and tests of a Suite.\n * These must be deleted otherwise a memory leak can happen,\n * as those functions may reference variables from closures,\n * thus those variables can never be garbage collected as long\n * as the deferred functions exist.\n *\n * @private\n */\nSuite.prototype.cleanReferences = function cleanReferences() {\n function cleanArrReferences(arr) {\n for (var i = 0; i < arr.length; i++) {\n delete arr[i].fn;\n }\n }\n\n if (Array.isArray(this._beforeAll)) {\n cleanArrReferences(this._beforeAll);\n }\n\n if (Array.isArray(this._beforeEach)) {\n cleanArrReferences(this._beforeEach);\n }\n\n if (Array.isArray(this._afterAll)) {\n cleanArrReferences(this._afterAll);\n }\n\n if (Array.isArray(this._afterEach)) {\n cleanArrReferences(this._afterEach);\n }\n\n for (var i = 0; i < this.tests.length; i++) {\n delete this.tests[i].fn;\n }\n};\n\n/**\n * Returns an object suitable for IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\nSuite.prototype.serialize = function serialize() {\n return {\n _bail: this._bail,\n $$fullTitle: this.fullTitle(),\n $$isPending: this.isPending(),\n root: this.root,\n title: this.title,\n id: this.id,\n parent: this.parent ? {[MOCHA_ID_PROP_NAME]: this.parent.id} : null\n };\n};\n\nvar constants = defineConstants(\n /**\n * {@link Suite}-related constants.\n * @public\n * @memberof Suite\n * @alias constants\n * @readonly\n * @static\n * @enum {string}\n */\n {\n /**\n * Event emitted after a test file has been loaded Not emitted in browser.\n */\n EVENT_FILE_POST_REQUIRE: 'post-require',\n /**\n * Event emitted before a test file has been loaded. In browser, this is emitted once an interface has been selected.\n */\n EVENT_FILE_PRE_REQUIRE: 'pre-require',\n /**\n * Event emitted immediately after a test file has been loaded. Not emitted in browser.\n */\n EVENT_FILE_REQUIRE: 'require',\n /**\n * Event emitted when `global.run()` is called (use with `delay` option)\n */\n EVENT_ROOT_SUITE_RUN: 'run',\n\n /**\n * Namespace for collection of a `Suite`'s \"after all\" hooks\n */\n HOOK_TYPE_AFTER_ALL: 'afterAll',\n /**\n * Namespace for collection of a `Suite`'s \"after each\" hooks\n */\n HOOK_TYPE_AFTER_EACH: 'afterEach',\n /**\n * Namespace for collection of a `Suite`'s \"before all\" hooks\n */\n HOOK_TYPE_BEFORE_ALL: 'beforeAll',\n /**\n * Namespace for collection of a `Suite`'s \"before all\" hooks\n */\n HOOK_TYPE_BEFORE_EACH: 'beforeEach',\n\n // the following events are all deprecated\n\n /**\n * Emitted after an \"after all\" `Hook` has been added to a `Suite`. Deprecated\n */\n EVENT_SUITE_ADD_HOOK_AFTER_ALL: 'afterAll',\n /**\n * Emitted after an \"after each\" `Hook` has been added to a `Suite` Deprecated\n */\n EVENT_SUITE_ADD_HOOK_AFTER_EACH: 'afterEach',\n /**\n * Emitted after an \"before all\" `Hook` has been added to a `Suite` Deprecated\n */\n EVENT_SUITE_ADD_HOOK_BEFORE_ALL: 'beforeAll',\n /**\n * Emitted after an \"before each\" `Hook` has been added to a `Suite` Deprecated\n */\n EVENT_SUITE_ADD_HOOK_BEFORE_EACH: 'beforeEach',\n /**\n * Emitted after a child `Suite` has been added to a `Suite`. Deprecated\n */\n EVENT_SUITE_ADD_SUITE: 'suite',\n /**\n * Emitted after a `Test` has been added to a `Suite`. Deprecated\n */\n EVENT_SUITE_ADD_TEST: 'test'\n }\n);\n\n/**\n * @summary There are no known use cases for these events.\n * @desc This is a `Set`-like object having all keys being the constant's string value and the value being `true`.\n * @todo Remove eventually\n * @type {Object<string,boolean>}\n * @ignore\n */\nvar deprecatedEvents = Object.keys(constants)\n .filter(function(constant) {\n return constant.substring(0, 15) === 'EVENT_SUITE_ADD';\n })\n .reduce(function(acc, constant) {\n acc[constants[constant]] = true;\n return acc;\n }, createMap());\n\nSuite.constants = constants;\n","'use strict';\n\n/**\n * Module dependencies.\n * @private\n */\nvar EventEmitter = require('events').EventEmitter;\nvar Pending = require('./pending');\nvar utils = require('./utils');\nvar debug = require('debug')('mocha:runner');\nvar Runnable = require('./runnable');\nvar Suite = require('./suite');\nvar HOOK_TYPE_BEFORE_EACH = Suite.constants.HOOK_TYPE_BEFORE_EACH;\nvar HOOK_TYPE_AFTER_EACH = Suite.constants.HOOK_TYPE_AFTER_EACH;\nvar HOOK_TYPE_AFTER_ALL = Suite.constants.HOOK_TYPE_AFTER_ALL;\nvar HOOK_TYPE_BEFORE_ALL = Suite.constants.HOOK_TYPE_BEFORE_ALL;\nvar EVENT_ROOT_SUITE_RUN = Suite.constants.EVENT_ROOT_SUITE_RUN;\nvar STATE_FAILED = Runnable.constants.STATE_FAILED;\nvar STATE_PASSED = Runnable.constants.STATE_PASSED;\nvar STATE_PENDING = Runnable.constants.STATE_PENDING;\nvar stackFilter = utils.stackTraceFilter();\nvar stringify = utils.stringify;\n\nconst {\n createInvalidExceptionError,\n createUnsupportedError,\n createFatalError,\n isMochaError,\n constants: errorConstants\n} = require('./errors');\n\n/**\n * Non-enumerable globals.\n * @private\n * @readonly\n */\nvar globals = [\n 'setTimeout',\n 'clearTimeout',\n 'setInterval',\n 'clearInterval',\n 'XMLHttpRequest',\n 'Date',\n 'setImmediate',\n 'clearImmediate'\n];\n\nvar constants = utils.defineConstants(\n /**\n * {@link Runner}-related constants.\n * @public\n * @memberof Runner\n * @readonly\n * @alias constants\n * @static\n * @enum {string}\n */\n {\n /**\n * Emitted when {@link Hook} execution begins\n */\n EVENT_HOOK_BEGIN: 'hook',\n /**\n * Emitted when {@link Hook} execution ends\n */\n EVENT_HOOK_END: 'hook end',\n /**\n * Emitted when Root {@link Suite} execution begins (all files have been parsed and hooks/tests are ready for execution)\n */\n EVENT_RUN_BEGIN: 'start',\n /**\n * Emitted when Root {@link Suite} execution has been delayed via `delay` option\n */\n EVENT_DELAY_BEGIN: 'waiting',\n /**\n * Emitted when delayed Root {@link Suite} execution is triggered by user via `global.run()`\n */\n EVENT_DELAY_END: 'ready',\n /**\n * Emitted when Root {@link Suite} execution ends\n */\n EVENT_RUN_END: 'end',\n /**\n * Emitted when {@link Suite} execution begins\n */\n EVENT_SUITE_BEGIN: 'suite',\n /**\n * Emitted when {@link Suite} execution ends\n */\n EVENT_SUITE_END: 'suite end',\n /**\n * Emitted when {@link Test} execution begins\n */\n EVENT_TEST_BEGIN: 'test',\n /**\n * Emitted when {@link Test} execution ends\n */\n EVENT_TEST_END: 'test end',\n /**\n * Emitted when {@link Test} execution fails\n */\n EVENT_TEST_FAIL: 'fail',\n /**\n * Emitted when {@link Test} execution succeeds\n */\n EVENT_TEST_PASS: 'pass',\n /**\n * Emitted when {@link Test} becomes pending\n */\n EVENT_TEST_PENDING: 'pending',\n /**\n * Emitted when {@link Test} execution has failed, but will retry\n */\n EVENT_TEST_RETRY: 'retry',\n /**\n * Initial state of Runner\n */\n STATE_IDLE: 'idle',\n /**\n * State set to this value when the Runner has started running\n */\n STATE_RUNNING: 'running',\n /**\n * State set to this value when the Runner has stopped\n */\n STATE_STOPPED: 'stopped'\n }\n);\n\nclass Runner extends EventEmitter {\n /**\n * Initialize a `Runner` at the Root {@link Suite}, which represents a hierarchy of {@link Suite|Suites} and {@link Test|Tests}.\n *\n * @extends external:EventEmitter\n * @public\n * @class\n * @param {Suite} suite - Root suite\n * @param {Object|boolean} [opts] - Options. If `boolean` (deprecated), whether or not to delay execution of root suite until ready.\n * @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.\n * @param {boolean} [opts.dryRun] - Whether to report tests without running them.\n * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.\n */\n constructor(suite, opts) {\n super();\n if (opts === undefined) {\n opts = {};\n }\n if (typeof opts === 'boolean') {\n // TODO: remove this\n require('./errors').deprecate(\n '\"Runner(suite: Suite, delay: boolean)\" is deprecated. Use \"Runner(suite: Suite, {delay: boolean})\" instead.'\n );\n this._delay = opts;\n opts = {};\n } else {\n this._delay = opts.delay;\n }\n var self = this;\n this._globals = [];\n this._abort = false;\n this.suite = suite;\n this._opts = opts;\n this.state = constants.STATE_IDLE;\n this.total = suite.total();\n this.failures = 0;\n /**\n * @type {Map<EventEmitter,Map<string,Set<EventListener>>>}\n */\n this._eventListeners = new Map();\n this.on(constants.EVENT_TEST_END, function(test) {\n if (test.type === 'test' && test.retriedTest() && test.parent) {\n var idx =\n test.parent.tests && test.parent.tests.indexOf(test.retriedTest());\n if (idx > -1) test.parent.tests[idx] = test;\n }\n self.checkGlobals(test);\n });\n this.on(constants.EVENT_HOOK_END, function(hook) {\n self.checkGlobals(hook);\n });\n this._defaultGrep = /.*/;\n this.grep(this._defaultGrep);\n this.globals(this.globalProps());\n\n this.uncaught = this._uncaught.bind(this);\n this.unhandled = (reason, promise) => {\n if (isMochaError(reason)) {\n debug(\n 'trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:',\n reason\n );\n this.uncaught(reason);\n } else {\n debug(\n 'trapped unhandled rejection from (probably) user code; re-emitting on process'\n );\n this._removeEventListener(\n process,\n 'unhandledRejection',\n this.unhandled\n );\n try {\n process.emit('unhandledRejection', reason, promise);\n } finally {\n this._addEventListener(process, 'unhandledRejection', this.unhandled);\n }\n }\n };\n }\n}\n\n/**\n * Wrapper for setImmediate, process.nextTick, or browser polyfill.\n *\n * @param {Function} fn\n * @private\n */\nRunner.immediately = global.setImmediate || process.nextTick;\n\n/**\n * Replacement for `target.on(eventName, listener)` that does bookkeeping to remove them when this runner instance is disposed.\n * @param {EventEmitter} target - The `EventEmitter`\n * @param {string} eventName - The event name\n * @param {string} fn - Listener function\n * @private\n */\nRunner.prototype._addEventListener = function(target, eventName, listener) {\n debug(\n '_addEventListener(): adding for event %s; %d current listeners',\n eventName,\n target.listenerCount(eventName)\n );\n /* istanbul ignore next */\n if (\n this._eventListeners.has(target) &&\n this._eventListeners.get(target).has(eventName) &&\n this._eventListeners\n .get(target)\n .get(eventName)\n .has(listener)\n ) {\n debug(\n 'warning: tried to attach duplicate event listener for %s',\n eventName\n );\n return;\n }\n target.on(eventName, listener);\n const targetListeners = this._eventListeners.has(target)\n ? this._eventListeners.get(target)\n : new Map();\n const targetEventListeners = targetListeners.has(eventName)\n ? targetListeners.get(eventName)\n : new Set();\n targetEventListeners.add(listener);\n targetListeners.set(eventName, targetEventListeners);\n this._eventListeners.set(target, targetListeners);\n};\n\n/**\n * Replacement for `target.removeListener(eventName, listener)` that also updates the bookkeeping.\n * @param {EventEmitter} target - The `EventEmitter`\n * @param {string} eventName - The event name\n * @param {function} listener - Listener function\n * @private\n */\nRunner.prototype._removeEventListener = function(target, eventName, listener) {\n target.removeListener(eventName, listener);\n\n if (this._eventListeners.has(target)) {\n const targetListeners = this._eventListeners.get(target);\n if (targetListeners.has(eventName)) {\n const targetEventListeners = targetListeners.get(eventName);\n targetEventListeners.delete(listener);\n if (!targetEventListeners.size) {\n targetListeners.delete(eventName);\n }\n }\n if (!targetListeners.size) {\n this._eventListeners.delete(target);\n }\n } else {\n debug('trying to remove listener for untracked object %s', target);\n }\n};\n\n/**\n * Removes all event handlers set during a run on this instance.\n * Remark: this does _not_ clean/dispose the tests or suites themselves.\n */\nRunner.prototype.dispose = function() {\n this.removeAllListeners();\n this._eventListeners.forEach((targetListeners, target) => {\n targetListeners.forEach((targetEventListeners, eventName) => {\n targetEventListeners.forEach(listener => {\n target.removeListener(eventName, listener);\n });\n });\n });\n this._eventListeners.clear();\n};\n\n/**\n * Run tests with full titles matching `re`. Updates runner.total\n * with number of tests matched.\n *\n * @public\n * @memberof Runner\n * @param {RegExp} re\n * @param {boolean} invert\n * @return {Runner} Runner instance.\n */\nRunner.prototype.grep = function(re, invert) {\n debug('grep(): setting to %s', re);\n this._grep = re;\n this._invert = invert;\n this.total = this.grepTotal(this.suite);\n return this;\n};\n\n/**\n * Returns the number of tests matching the grep search for the\n * given suite.\n *\n * @memberof Runner\n * @public\n * @param {Suite} suite\n * @return {number}\n */\nRunner.prototype.grepTotal = function(suite) {\n var self = this;\n var total = 0;\n\n suite.eachTest(function(test) {\n var match = self._grep.test(test.fullTitle());\n if (self._invert) {\n match = !match;\n }\n if (match) {\n total++;\n }\n });\n\n return total;\n};\n\n/**\n * Return a list of global properties.\n *\n * @return {Array}\n * @private\n */\nRunner.prototype.globalProps = function() {\n var props = Object.keys(global);\n\n // non-enumerables\n for (var i = 0; i < globals.length; ++i) {\n if (~props.indexOf(globals[i])) {\n continue;\n }\n props.push(globals[i]);\n }\n\n return props;\n};\n\n/**\n * Allow the given `arr` of globals.\n *\n * @public\n * @memberof Runner\n * @param {Array} arr\n * @return {Runner} Runner instance.\n */\nRunner.prototype.globals = function(arr) {\n if (!arguments.length) {\n return this._globals;\n }\n debug('globals(): setting to %O', arr);\n this._globals = this._globals.concat(arr);\n return this;\n};\n\n/**\n * Check for global variable leaks.\n *\n * @private\n */\nRunner.prototype.checkGlobals = function(test) {\n if (!this.checkLeaks) {\n return;\n }\n var ok = this._globals;\n\n var globals = this.globalProps();\n var leaks;\n\n if (test) {\n ok = ok.concat(test._allowedGlobals || []);\n }\n\n if (this.prevGlobalsLength === globals.length) {\n return;\n }\n this.prevGlobalsLength = globals.length;\n\n leaks = filterLeaks(ok, globals);\n this._globals = this._globals.concat(leaks);\n\n if (leaks.length) {\n var msg = `global leak(s) detected: ${leaks.map(e => `'${e}'`).join(', ')}`;\n this.fail(test, new Error(msg));\n }\n};\n\n/**\n * Fail the given `test`.\n *\n * If `test` is a hook, failures work in the following pattern:\n * - If bail, run corresponding `after each` and `after` hooks,\n * then exit\n * - Failed `before` hook skips all tests in a suite and subsuites,\n * but jumps to corresponding `after` hook\n * - Failed `before each` hook skips remaining tests in a\n * suite and jumps to corresponding `after each` hook,\n * which is run only once\n * - Failed `after` hook does not alter execution order\n * - Failed `after each` hook skips remaining tests in a\n * suite and subsuites, but executes other `after each`\n * hooks\n *\n * @private\n * @param {Runnable} test\n * @param {Error} err\n * @param {boolean} [force=false] - Whether to fail a pending test.\n */\nRunner.prototype.fail = function(test, err, force) {\n force = force === true;\n if (test.isPending() && !force) {\n return;\n }\n if (this.state === constants.STATE_STOPPED) {\n if (err.code === errorConstants.MULTIPLE_DONE) {\n throw err;\n }\n throw createFatalError(\n 'Test failed after root suite execution completed!',\n err\n );\n }\n\n ++this.failures;\n debug('total number of failures: %d', this.failures);\n test.state = STATE_FAILED;\n\n if (!isError(err)) {\n err = thrown2Error(err);\n }\n\n try {\n err.stack =\n this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack);\n } catch (ignore) {\n // some environments do not take kindly to monkeying with the stack\n }\n\n this.emit(constants.EVENT_TEST_FAIL, test, err);\n};\n\n/**\n * Run hook `name` callbacks and then invoke `fn()`.\n *\n * @private\n * @param {string} name\n * @param {Function} fn\n */\n\nRunner.prototype.hook = function(name, fn) {\n if (this._opts.dryRun) return fn();\n\n var suite = this.suite;\n var hooks = suite.getHooks(name);\n var self = this;\n\n function next(i) {\n var hook = hooks[i];\n if (!hook) {\n return fn();\n }\n self.currentRunnable = hook;\n\n if (name === HOOK_TYPE_BEFORE_ALL) {\n hook.ctx.currentTest = hook.parent.tests[0];\n } else if (name === HOOK_TYPE_AFTER_ALL) {\n hook.ctx.currentTest = hook.parent.tests[hook.parent.tests.length - 1];\n } else {\n hook.ctx.currentTest = self.test;\n }\n\n setHookTitle(hook);\n\n hook.allowUncaught = self.allowUncaught;\n\n self.emit(constants.EVENT_HOOK_BEGIN, hook);\n\n if (!hook.listeners('error').length) {\n self._addEventListener(hook, 'error', function(err) {\n self.fail(hook, err);\n });\n }\n\n hook.run(function cbHookRun(err) {\n var testError = hook.error();\n if (testError) {\n self.fail(self.test, testError);\n }\n // conditional skip\n if (hook.pending) {\n if (name === HOOK_TYPE_AFTER_EACH) {\n // TODO define and implement use case\n if (self.test) {\n self.test.pending = true;\n }\n } else if (name === HOOK_TYPE_BEFORE_EACH) {\n if (self.test) {\n self.test.pending = true;\n }\n self.emit(constants.EVENT_HOOK_END, hook);\n hook.pending = false; // activates hook for next test\n return fn(new Error('abort hookDown'));\n } else if (name === HOOK_TYPE_BEFORE_ALL) {\n suite.tests.forEach(function(test) {\n test.pending = true;\n });\n suite.suites.forEach(function(suite) {\n suite.pending = true;\n });\n hooks = [];\n } else {\n hook.pending = false;\n var errForbid = createUnsupportedError('`this.skip` forbidden');\n self.fail(hook, errForbid);\n return fn(errForbid);\n }\n } else if (err) {\n self.fail(hook, err);\n // stop executing hooks, notify callee of hook err\n return fn(err);\n }\n self.emit(constants.EVENT_HOOK_END, hook);\n delete hook.ctx.currentTest;\n setHookTitle(hook);\n next(++i);\n });\n\n function setHookTitle(hook) {\n hook.originalTitle = hook.originalTitle || hook.title;\n if (hook.ctx && hook.ctx.currentTest) {\n hook.title = `${hook.originalTitle} for \"${hook.ctx.currentTest.title}\"`;\n } else {\n var parentTitle;\n if (hook.parent.title) {\n parentTitle = hook.parent.title;\n } else {\n parentTitle = hook.parent.root ? '{root}' : '';\n }\n hook.title = `${hook.originalTitle} in \"${parentTitle}\"`;\n }\n }\n }\n\n Runner.immediately(function() {\n next(0);\n });\n};\n\n/**\n * Run hook `name` for the given array of `suites`\n * in order, and callback `fn(err, errSuite)`.\n *\n * @private\n * @param {string} name\n * @param {Array} suites\n * @param {Function} fn\n */\nRunner.prototype.hooks = function(name, suites, fn) {\n var self = this;\n var orig = this.suite;\n\n function next(suite) {\n self.suite = suite;\n\n if (!suite) {\n self.suite = orig;\n return fn();\n }\n\n self.hook(name, function(err) {\n if (err) {\n var errSuite = self.suite;\n self.suite = orig;\n return fn(err, errSuite);\n }\n\n next(suites.pop());\n });\n }\n\n next(suites.pop());\n};\n\n/**\n * Run 'afterEach' hooks from bottom up.\n *\n * @param {String} name\n * @param {Function} fn\n * @private\n */\nRunner.prototype.hookUp = function(name, fn) {\n var suites = [this.suite].concat(this.parents()).reverse();\n this.hooks(name, suites, fn);\n};\n\n/**\n * Run 'beforeEach' hooks from top level down.\n *\n * @param {String} name\n * @param {Function} fn\n * @private\n */\nRunner.prototype.hookDown = function(name, fn) {\n var suites = [this.suite].concat(this.parents());\n this.hooks(name, suites, fn);\n};\n\n/**\n * Return an array of parent Suites from\n * closest to furthest.\n *\n * @return {Array}\n * @private\n */\nRunner.prototype.parents = function() {\n var suite = this.suite;\n var suites = [];\n while (suite.parent) {\n suite = suite.parent;\n suites.push(suite);\n }\n return suites;\n};\n\n/**\n * Run the current test and callback `fn(err)`.\n *\n * @param {Function} fn\n * @private\n */\nRunner.prototype.runTest = function(fn) {\n if (this._opts.dryRun) return fn();\n\n var self = this;\n var test = this.test;\n\n if (!test) {\n return;\n }\n\n if (this.asyncOnly) {\n test.asyncOnly = true;\n }\n this._addEventListener(test, 'error', function(err) {\n self.fail(test, err);\n });\n if (this.allowUncaught) {\n test.allowUncaught = true;\n return test.run(fn);\n }\n try {\n test.run(fn);\n } catch (err) {\n fn(err);\n }\n};\n\n/**\n * Run tests in the given `suite` and invoke the callback `fn()` when complete.\n *\n * @private\n * @param {Suite} suite\n * @param {Function} fn\n */\nRunner.prototype.runTests = function(suite, fn) {\n var self = this;\n var tests = suite.tests.slice();\n var test;\n\n function hookErr(_, errSuite, after) {\n // before/after Each hook for errSuite failed:\n var orig = self.suite;\n\n // for failed 'after each' hook start from errSuite parent,\n // otherwise start from errSuite itself\n self.suite = after ? errSuite.parent : errSuite;\n\n if (self.suite) {\n self.hookUp(HOOK_TYPE_AFTER_EACH, function(err2, errSuite2) {\n self.suite = orig;\n // some hooks may fail even now\n if (err2) {\n return hookErr(err2, errSuite2, true);\n }\n // report error suite\n fn(errSuite);\n });\n } else {\n // there is no need calling other 'after each' hooks\n self.suite = orig;\n fn(errSuite);\n }\n }\n\n function next(err, errSuite) {\n // if we bail after first err\n if (self.failures && suite._bail) {\n tests = [];\n }\n\n if (self._abort) {\n return fn();\n }\n\n if (err) {\n return hookErr(err, errSuite, true);\n }\n\n // next test\n test = tests.shift();\n\n // all done\n if (!test) {\n return fn();\n }\n\n // grep\n var match = self._grep.test(test.fullTitle());\n if (self._invert) {\n match = !match;\n }\n if (!match) {\n // Run immediately only if we have defined a grep. When we\n // define a grep — It can cause maximum callstack error if\n // the grep is doing a large recursive loop by neglecting\n // all tests. The run immediately function also comes with\n // a performance cost. So we don't want to run immediately\n // if we run the whole test suite, because running the whole\n // test suite don't do any immediate recursive loops. Thus,\n // allowing a JS runtime to breathe.\n if (self._grep !== self._defaultGrep) {\n Runner.immediately(next);\n } else {\n next();\n }\n return;\n }\n\n // static skip, no hooks are executed\n if (test.isPending()) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants.EVENT_TEST_PENDING, test);\n }\n self.emit(constants.EVENT_TEST_END, test);\n return next();\n }\n\n // execute test and hook(s)\n self.emit(constants.EVENT_TEST_BEGIN, (self.test = test));\n self.hookDown(HOOK_TYPE_BEFORE_EACH, function(err, errSuite) {\n // conditional skip within beforeEach\n if (test.isPending()) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants.EVENT_TEST_PENDING, test);\n }\n self.emit(constants.EVENT_TEST_END, test);\n // skip inner afterEach hooks below errSuite level\n var origSuite = self.suite;\n self.suite = errSuite || self.suite;\n return self.hookUp(HOOK_TYPE_AFTER_EACH, function(e, eSuite) {\n self.suite = origSuite;\n next(e, eSuite);\n });\n }\n if (err) {\n return hookErr(err, errSuite, false);\n }\n self.currentRunnable = self.test;\n self.runTest(function(err) {\n test = self.test;\n // conditional skip within it\n if (test.pending) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants.EVENT_TEST_PENDING, test);\n }\n self.emit(constants.EVENT_TEST_END, test);\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n } else if (err) {\n var retry = test.currentRetry();\n if (retry < test.retries()) {\n var clonedTest = test.clone();\n clonedTest.currentRetry(retry + 1);\n tests.unshift(clonedTest);\n\n self.emit(constants.EVENT_TEST_RETRY, test, err);\n\n // Early return + hook trigger so that it doesn't\n // increment the count wrong\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n } else {\n self.fail(test, err);\n }\n self.emit(constants.EVENT_TEST_END, test);\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n }\n\n test.state = STATE_PASSED;\n self.emit(constants.EVENT_TEST_PASS, test);\n self.emit(constants.EVENT_TEST_END, test);\n self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n });\n });\n }\n\n this.next = next;\n this.hookErr = hookErr;\n next();\n};\n\n/**\n * Run the given `suite` and invoke the callback `fn()` when complete.\n *\n * @private\n * @param {Suite} suite\n * @param {Function} fn\n */\nRunner.prototype.runSuite = function(suite, fn) {\n var i = 0;\n var self = this;\n var total = this.grepTotal(suite);\n\n debug('runSuite(): running %s', suite.fullTitle());\n\n if (!total || (self.failures && suite._bail)) {\n debug('runSuite(): bailing');\n return fn();\n }\n\n this.emit(constants.EVENT_SUITE_BEGIN, (this.suite = suite));\n\n function next(errSuite) {\n if (errSuite) {\n // current suite failed on a hook from errSuite\n if (errSuite === suite) {\n // if errSuite is current suite\n // continue to the next sibling suite\n return done();\n }\n // errSuite is among the parents of current suite\n // stop execution of errSuite and all sub-suites\n return done(errSuite);\n }\n\n if (self._abort) {\n return done();\n }\n\n var curr = suite.suites[i++];\n if (!curr) {\n return done();\n }\n\n // Avoid grep neglecting large number of tests causing a\n // huge recursive loop and thus a maximum call stack error.\n // See comment in `this.runTests()` for more information.\n if (self._grep !== self._defaultGrep) {\n Runner.immediately(function() {\n self.runSuite(curr, next);\n });\n } else {\n self.runSuite(curr, next);\n }\n }\n\n function done(errSuite) {\n self.suite = suite;\n self.nextSuite = next;\n\n // remove reference to test\n delete self.test;\n\n self.hook(HOOK_TYPE_AFTER_ALL, function() {\n self.emit(constants.EVENT_SUITE_END, suite);\n fn(errSuite);\n });\n }\n\n this.nextSuite = next;\n\n this.hook(HOOK_TYPE_BEFORE_ALL, function(err) {\n if (err) {\n return done();\n }\n self.runTests(suite, next);\n });\n};\n\n/**\n * Handle uncaught exceptions within runner.\n *\n * This function is bound to the instance as `Runner#uncaught` at instantiation\n * time. It's intended to be listening on the `Process.uncaughtException` event.\n * In order to not leak EE listeners, we need to ensure no more than a single\n * `uncaughtException` listener exists per `Runner`. The only way to do\n * this--because this function needs the context (and we don't have lambdas)--is\n * to use `Function.prototype.bind`. We need strict equality to unregister and\n * _only_ unregister the _one_ listener we set from the\n * `Process.uncaughtException` event; would be poor form to just remove\n * everything. See {@link Runner#run} for where the event listener is registered\n * and unregistered.\n * @param {Error} err - Some uncaught error\n * @private\n */\nRunner.prototype._uncaught = function(err) {\n // this is defensive to prevent future developers from mis-calling this function.\n // it's more likely that it'd be called with the incorrect context--say, the global\n // `process` object--than it would to be called with a context that is not a \"subclass\"\n // of `Runner`.\n if (!(this instanceof Runner)) {\n throw createFatalError(\n 'Runner#uncaught() called with invalid context',\n this\n );\n }\n if (err instanceof Pending) {\n debug('uncaught(): caught a Pending');\n return;\n }\n // browser does not exit script when throwing in global.onerror()\n if (this.allowUncaught && !utils.isBrowser()) {\n debug('uncaught(): bubbling exception due to --allow-uncaught');\n throw err;\n }\n\n if (this.state === constants.STATE_STOPPED) {\n debug('uncaught(): throwing after run has completed!');\n throw err;\n }\n\n if (err) {\n debug('uncaught(): got truthy exception %O', err);\n } else {\n debug('uncaught(): undefined/falsy exception');\n err = createInvalidExceptionError(\n 'Caught falsy/undefined exception which would otherwise be uncaught. No stack trace found; try a debugger',\n err\n );\n }\n\n if (!isError(err)) {\n err = thrown2Error(err);\n debug('uncaught(): converted \"error\" %o to Error', err);\n }\n err.uncaught = true;\n\n var runnable = this.currentRunnable;\n\n if (!runnable) {\n runnable = new Runnable('Uncaught error outside test suite');\n debug('uncaught(): no current Runnable; created a phony one');\n runnable.parent = this.suite;\n\n if (this.state === constants.STATE_RUNNING) {\n debug('uncaught(): failing gracefully');\n this.fail(runnable, err);\n } else {\n // Can't recover from this failure\n debug('uncaught(): test run has not yet started; unrecoverable');\n this.emit(constants.EVENT_RUN_BEGIN);\n this.fail(runnable, err);\n this.emit(constants.EVENT_RUN_END);\n }\n\n return;\n }\n\n runnable.clearTimeout();\n\n if (runnable.isFailed()) {\n debug('uncaught(): Runnable has already failed');\n // Ignore error if already failed\n return;\n } else if (runnable.isPending()) {\n debug('uncaught(): pending Runnable wound up failing!');\n // report 'pending test' retrospectively as failed\n this.fail(runnable, err, true);\n return;\n }\n\n // we cannot recover gracefully if a Runnable has already passed\n // then fails asynchronously\n if (runnable.isPassed()) {\n debug('uncaught(): Runnable has already passed; bailing gracefully');\n this.fail(runnable, err);\n this.abort();\n } else {\n debug('uncaught(): forcing Runnable to complete with Error');\n return runnable.callback(err);\n }\n};\n\n/**\n * Run the root suite and invoke `fn(failures)`\n * on completion.\n *\n * @public\n * @memberof Runner\n * @param {Function} fn - Callback when finished\n * @param {{files: string[], options: Options}} [opts] - For subclasses\n * @returns {Runner} Runner instance.\n */\nRunner.prototype.run = function(fn, opts = {}) {\n var rootSuite = this.suite;\n var options = opts.options || {};\n\n debug('run(): got options: %O', options);\n fn = fn || function() {};\n\n const end = () => {\n debug('run(): root suite completed; emitting %s', constants.EVENT_RUN_END);\n this.emit(constants.EVENT_RUN_END);\n };\n\n const begin = () => {\n debug('run(): emitting %s', constants.EVENT_RUN_BEGIN);\n this.emit(constants.EVENT_RUN_BEGIN);\n debug('run(): emitted %s', constants.EVENT_RUN_BEGIN);\n\n this.runSuite(rootSuite, end);\n };\n\n const prepare = () => {\n debug('run(): starting');\n // If there is an `only` filter\n if (rootSuite.hasOnly()) {\n rootSuite.filterOnly();\n debug('run(): filtered exclusive Runnables');\n }\n this.state = constants.STATE_RUNNING;\n if (this._delay) {\n this.emit(constants.EVENT_DELAY_END);\n debug('run(): \"delay\" ended');\n }\n\n return begin();\n };\n\n // references cleanup to avoid memory leaks\n if (this._opts.cleanReferencesAfterRun) {\n this.on(constants.EVENT_SUITE_END, suite => {\n suite.cleanReferences();\n });\n }\n\n // callback\n this.on(constants.EVENT_RUN_END, function() {\n this.state = constants.STATE_STOPPED;\n debug('run(): emitted %s', constants.EVENT_RUN_END);\n fn(this.failures);\n });\n\n this._removeEventListener(process, 'uncaughtException', this.uncaught);\n this._removeEventListener(process, 'unhandledRejection', this.unhandled);\n this._addEventListener(process, 'uncaughtException', this.uncaught);\n this._addEventListener(process, 'unhandledRejection', this.unhandled);\n\n if (this._delay) {\n // for reporters, I guess.\n // might be nice to debounce some dots while we wait.\n this.emit(constants.EVENT_DELAY_BEGIN, rootSuite);\n rootSuite.once(EVENT_ROOT_SUITE_RUN, prepare);\n debug('run(): waiting for green light due to --delay');\n } else {\n Runner.immediately(prepare);\n }\n\n return this;\n};\n\n/**\n * Toggle partial object linking behavior; used for building object references from\n * unique ID's. Does nothing in serial mode, because the object references already exist.\n * Subclasses can implement this (e.g., `ParallelBufferedRunner`)\n * @abstract\n * @param {boolean} [value] - If `true`, enable partial object linking, otherwise disable\n * @returns {Runner}\n * @chainable\n * @public\n * @example\n * // this reporter needs proper object references when run in parallel mode\n * class MyReporter() {\n * constructor(runner) {\n * this.runner.linkPartialObjects(true)\n * .on(EVENT_SUITE_BEGIN, suite => {\n // this Suite may be the same object...\n * })\n * .on(EVENT_TEST_BEGIN, test => {\n * // ...as the `test.parent` property\n * });\n * }\n * }\n */\nRunner.prototype.linkPartialObjects = function(value) {\n return this;\n};\n\n/*\n * Like {@link Runner#run}, but does not accept a callback and returns a `Promise` instead of a `Runner`.\n * This function cannot reject; an `unhandledRejection` event will bubble up to the `process` object instead.\n * @public\n * @memberof Runner\n * @param {Object} [opts] - Options for {@link Runner#run}\n * @returns {Promise<number>} Failure count\n */\nRunner.prototype.runAsync = async function runAsync(opts = {}) {\n return new Promise(resolve => {\n this.run(resolve, opts);\n });\n};\n\n/**\n * Cleanly abort execution.\n *\n * @memberof Runner\n * @public\n * @return {Runner} Runner instance.\n */\nRunner.prototype.abort = function() {\n debug('abort(): aborting');\n this._abort = true;\n\n return this;\n};\n\n/**\n * Returns `true` if Mocha is running in parallel mode. For reporters.\n *\n * Subclasses should return an appropriate value.\n * @public\n * @returns {false}\n */\nRunner.prototype.isParallelMode = function isParallelMode() {\n return false;\n};\n\n/**\n * Configures an alternate reporter for worker processes to use. Subclasses\n * using worker processes should implement this.\n * @public\n * @param {string} path - Absolute path to alternate reporter for worker processes to use\n * @returns {Runner}\n * @throws When in serial mode\n * @chainable\n * @abstract\n */\nRunner.prototype.workerReporter = function() {\n throw createUnsupportedError('workerReporter() not supported in serial mode');\n};\n\n/**\n * Filter leaks with the given globals flagged as `ok`.\n *\n * @private\n * @param {Array} ok\n * @param {Array} globals\n * @return {Array}\n */\nfunction filterLeaks(ok, globals) {\n return globals.filter(function(key) {\n // Firefox and Chrome exposes iframes as index inside the window object\n if (/^\\d+/.test(key)) {\n return false;\n }\n\n // in firefox\n // if runner runs in an iframe, this iframe's window.getInterface method\n // not init at first it is assigned in some seconds\n if (global.navigator && /^getInterface/.test(key)) {\n return false;\n }\n\n // an iframe could be approached by window[iframeIndex]\n // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak\n if (global.navigator && /^\\d+/.test(key)) {\n return false;\n }\n\n // Opera and IE expose global variables for HTML element IDs (issue #243)\n if (/^mocha-/.test(key)) {\n return false;\n }\n\n var matched = ok.filter(function(ok) {\n if (~ok.indexOf('*')) {\n return key.indexOf(ok.split('*')[0]) === 0;\n }\n return key === ok;\n });\n return !matched.length && (!global.navigator || key !== 'onerror');\n });\n}\n\n/**\n * Check if argument is an instance of Error object or a duck-typed equivalent.\n *\n * @private\n * @param {Object} err - object to check\n * @param {string} err.message - error message\n * @returns {boolean}\n */\nfunction isError(err) {\n return err instanceof Error || (err && typeof err.message === 'string');\n}\n\n/**\n *\n * Converts thrown non-extensible type into proper Error.\n *\n * @private\n * @param {*} thrown - Non-extensible type thrown by code\n * @return {Error}\n */\nfunction thrown2Error(err) {\n return new Error(\n `the ${utils.canonicalType(err)} ${stringify(\n err\n )} was thrown, throw an Error :)`\n );\n}\n\nRunner.constants = constants;\n\n/**\n * Node.js' `EventEmitter`\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter}\n */\n\nmodule.exports = Runner;\n","'use strict';\n/**\n * @module Base\n */\n/**\n * Module dependencies.\n */\n\nvar diff = require('diff');\nvar milliseconds = require('ms');\nvar utils = require('../utils');\nvar supportsColor = require('supports-color');\nvar symbols = require('log-symbols');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n\nconst isBrowser = utils.isBrowser();\n\nfunction getBrowserWindowSize() {\n if ('innerHeight' in global) {\n return [global.innerHeight, global.innerWidth];\n }\n // In a Web Worker, the DOM Window is not available.\n return [640, 480];\n}\n\n/**\n * Expose `Base`.\n */\n\nexports = module.exports = Base;\n\n/**\n * Check if both stdio streams are associated with a tty.\n */\n\nvar isatty = isBrowser || (process.stdout.isTTY && process.stderr.isTTY);\n\n/**\n * Save log references to avoid tests interfering (see GH-3604).\n */\nvar consoleLog = console.log;\n\n/**\n * Enable coloring by default, except in the browser interface.\n */\n\nexports.useColors =\n !isBrowser &&\n (supportsColor.stdout || process.env.MOCHA_COLORS !== undefined);\n\n/**\n * Inline diffs instead of +/-\n */\n\nexports.inlineDiffs = false;\n\n/**\n * Default color map.\n */\n\nexports.colors = {\n pass: 90,\n fail: 31,\n 'bright pass': 92,\n 'bright fail': 91,\n 'bright yellow': 93,\n pending: 36,\n suite: 0,\n 'error title': 0,\n 'error message': 31,\n 'error stack': 90,\n checkmark: 32,\n fast: 90,\n medium: 33,\n slow: 31,\n green: 32,\n light: 90,\n 'diff gutter': 90,\n 'diff added': 32,\n 'diff removed': 31,\n 'diff added inline': '30;42',\n 'diff removed inline': '30;41'\n};\n\n/**\n * Default symbol map.\n */\n\nexports.symbols = {\n ok: symbols.success,\n err: symbols.err,\n dot: '.',\n comma: ',',\n bang: '!'\n};\n\n/**\n * Color `str` with the given `type`,\n * allowing colors to be disabled,\n * as well as user-defined color\n * schemes.\n *\n * @private\n * @param {string} type\n * @param {string} str\n * @return {string}\n */\nvar color = (exports.color = function(type, str) {\n if (!exports.useColors) {\n return String(str);\n }\n return '\\u001b[' + exports.colors[type] + 'm' + str + '\\u001b[0m';\n});\n\n/**\n * Expose term window size, with some defaults for when stderr is not a tty.\n */\n\nexports.window = {\n width: 75\n};\n\nif (isatty) {\n if (isBrowser) {\n exports.window.width = getBrowserWindowSize()[1];\n } else {\n exports.window.width = process.stdout.getWindowSize(1)[0];\n }\n}\n\n/**\n * Expose some basic cursor interactions that are common among reporters.\n */\n\nexports.cursor = {\n hide: function() {\n isatty && process.stdout.write('\\u001b[?25l');\n },\n\n show: function() {\n isatty && process.stdout.write('\\u001b[?25h');\n },\n\n deleteLine: function() {\n isatty && process.stdout.write('\\u001b[2K');\n },\n\n beginningOfLine: function() {\n isatty && process.stdout.write('\\u001b[0G');\n },\n\n CR: function() {\n if (isatty) {\n exports.cursor.deleteLine();\n exports.cursor.beginningOfLine();\n } else {\n process.stdout.write('\\r');\n }\n }\n};\n\nvar showDiff = (exports.showDiff = function(err) {\n return (\n err &&\n err.showDiff !== false &&\n sameType(err.actual, err.expected) &&\n err.expected !== undefined\n );\n});\n\nfunction stringifyDiffObjs(err) {\n if (!utils.isString(err.actual) || !utils.isString(err.expected)) {\n err.actual = utils.stringify(err.actual);\n err.expected = utils.stringify(err.expected);\n }\n}\n\n/**\n * Returns a diff between 2 strings with coloured ANSI output.\n *\n * @description\n * The diff will be either inline or unified dependent on the value\n * of `Base.inlineDiff`.\n *\n * @param {string} actual\n * @param {string} expected\n * @return {string} Diff\n */\nvar generateDiff = (exports.generateDiff = function(actual, expected) {\n try {\n const diffSize = 2048;\n if (actual.length > diffSize) {\n actual = actual.substring(0, diffSize) + ' ... Lines skipped';\n }\n if (expected.length > diffSize) {\n expected = expected.substring(0, diffSize) + ' ... Lines skipped';\n }\n return exports.inlineDiffs\n ? inlineDiff(actual, expected)\n : unifiedDiff(actual, expected);\n } catch (err) {\n var msg =\n '\\n ' +\n color('diff added', '+ expected') +\n ' ' +\n color('diff removed', '- actual: failed to generate Mocha diff') +\n '\\n';\n return msg;\n }\n});\n\n/**\n * Outputs the given `failures` as a list.\n *\n * @public\n * @memberof Mocha.reporters.Base\n * @variation 1\n * @param {Object[]} failures - Each is Test instance with corresponding\n * Error property\n */\nexports.list = function(failures) {\n var multipleErr, multipleTest;\n Base.consoleLog();\n failures.forEach(function(test, i) {\n // format\n var fmt =\n color('error title', ' %s) %s:\\n') +\n color('error message', ' %s') +\n color('error stack', '\\n%s\\n');\n\n // msg\n var msg;\n var err;\n if (test.err && test.err.multiple) {\n if (multipleTest !== test) {\n multipleTest = test;\n multipleErr = [test.err].concat(test.err.multiple);\n }\n err = multipleErr.shift();\n } else {\n err = test.err;\n }\n var message;\n if (typeof err.inspect === 'function') {\n message = err.inspect() + '';\n } else if (err.message && typeof err.message.toString === 'function') {\n message = err.message + '';\n } else {\n message = '';\n }\n var stack = err.stack || message;\n var index = message ? stack.indexOf(message) : -1;\n\n if (index === -1) {\n msg = message;\n } else {\n index += message.length;\n msg = stack.slice(0, index);\n // remove msg from stack\n stack = stack.slice(index + 1);\n }\n\n // uncaught\n if (err.uncaught) {\n msg = 'Uncaught ' + msg;\n }\n // explicitly show diff\n if (!exports.hideDiff && showDiff(err)) {\n stringifyDiffObjs(err);\n fmt =\n color('error title', ' %s) %s:\\n%s') + color('error stack', '\\n%s\\n');\n var match = message.match(/^([^:]+): expected/);\n msg = '\\n ' + color('error message', match ? match[1] : msg);\n\n msg += generateDiff(err.actual, err.expected);\n }\n\n // indent stack trace\n stack = stack.replace(/^/gm, ' ');\n\n // indented test title\n var testTitle = '';\n test.titlePath().forEach(function(str, index) {\n if (index !== 0) {\n testTitle += '\\n ';\n }\n for (var i = 0; i < index; i++) {\n testTitle += ' ';\n }\n testTitle += str;\n });\n\n Base.consoleLog(fmt, i + 1, testTitle, msg, stack);\n });\n};\n\n/**\n * Constructs a new `Base` reporter instance.\n *\n * @description\n * All other reporters generally inherit from this reporter.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Base(runner, options) {\n var failures = (this.failures = []);\n\n if (!runner) {\n throw new TypeError('Missing runner argument');\n }\n this.options = options || {};\n this.runner = runner;\n this.stats = runner.stats; // assigned so Reporters keep a closer reference\n\n runner.on(EVENT_TEST_PASS, function(test) {\n if (test.duration > test.slow()) {\n test.speed = 'slow';\n } else if (test.duration > test.slow() / 2) {\n test.speed = 'medium';\n } else {\n test.speed = 'fast';\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n if (showDiff(err)) {\n stringifyDiffObjs(err);\n }\n // more than one error per test\n if (test.err && err instanceof Error) {\n test.err.multiple = (test.err.multiple || []).concat(err);\n } else {\n test.err = err;\n }\n failures.push(test);\n });\n}\n\n/**\n * Outputs common epilogue used by many of the bundled reporters.\n *\n * @public\n * @memberof Mocha.reporters\n */\nBase.prototype.epilogue = function() {\n var stats = this.stats;\n var fmt;\n\n Base.consoleLog();\n\n // passes\n fmt =\n color('bright pass', ' ') +\n color('green', ' %d passing') +\n color('light', ' (%s)');\n\n Base.consoleLog(fmt, stats.passes || 0, milliseconds(stats.duration));\n\n // pending\n if (stats.pending) {\n fmt = color('pending', ' ') + color('pending', ' %d pending');\n\n Base.consoleLog(fmt, stats.pending);\n }\n\n // failures\n if (stats.failures) {\n fmt = color('fail', ' %d failing');\n\n Base.consoleLog(fmt, stats.failures);\n\n Base.list(this.failures);\n Base.consoleLog();\n }\n\n Base.consoleLog();\n};\n\n/**\n * Pads the given `str` to `len`.\n *\n * @private\n * @param {string} str\n * @param {string} len\n * @return {string}\n */\nfunction pad(str, len) {\n str = String(str);\n return Array(len - str.length + 1).join(' ') + str;\n}\n\n/**\n * Returns inline diff between 2 strings with coloured ANSI output.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} Diff\n */\nfunction inlineDiff(actual, expected) {\n var msg = errorDiff(actual, expected);\n\n // linenos\n var lines = msg.split('\\n');\n if (lines.length > 4) {\n var width = String(lines.length).length;\n msg = lines\n .map(function(str, i) {\n return pad(++i, width) + ' |' + ' ' + str;\n })\n .join('\\n');\n }\n\n // legend\n msg =\n '\\n' +\n color('diff removed inline', 'actual') +\n ' ' +\n color('diff added inline', 'expected') +\n '\\n\\n' +\n msg +\n '\\n';\n\n // indent\n msg = msg.replace(/^/gm, ' ');\n return msg;\n}\n\n/**\n * Returns unified diff between two strings with coloured ANSI output.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} The diff.\n */\nfunction unifiedDiff(actual, expected) {\n var indent = ' ';\n function cleanUp(line) {\n if (line[0] === '+') {\n return indent + colorLines('diff added', line);\n }\n if (line[0] === '-') {\n return indent + colorLines('diff removed', line);\n }\n if (line.match(/@@/)) {\n return '--';\n }\n if (line.match(/\\\\ No newline/)) {\n return null;\n }\n return indent + line;\n }\n function notBlank(line) {\n return typeof line !== 'undefined' && line !== null;\n }\n var msg = diff.createPatch('string', actual, expected);\n var lines = msg.split('\\n').splice(5);\n return (\n '\\n ' +\n colorLines('diff added', '+ expected') +\n ' ' +\n colorLines('diff removed', '- actual') +\n '\\n\\n' +\n lines\n .map(cleanUp)\n .filter(notBlank)\n .join('\\n')\n );\n}\n\n/**\n * Returns character diff for `err`.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} the diff\n */\nfunction errorDiff(actual, expected) {\n return diff\n .diffWordsWithSpace(actual, expected)\n .map(function(str) {\n if (str.added) {\n return colorLines('diff added inline', str.value);\n }\n if (str.removed) {\n return colorLines('diff removed inline', str.value);\n }\n return str.value;\n })\n .join('');\n}\n\n/**\n * Colors lines for `str`, using the color `name`.\n *\n * @private\n * @param {string} name\n * @param {string} str\n * @return {string}\n */\nfunction colorLines(name, str) {\n return str\n .split('\\n')\n .map(function(str) {\n return color(name, str);\n })\n .join('\\n');\n}\n\n/**\n * Object#toString reference.\n */\nvar objToString = Object.prototype.toString;\n\n/**\n * Checks that a / b have the same type.\n *\n * @private\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nfunction sameType(a, b) {\n return objToString.call(a) === objToString.call(b);\n}\n\nBase.consoleLog = consoleLog;\n\nBase.abstract = true;\n","'use strict';\n/**\n * @module Dot\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\n\n/**\n * Expose `Dot`.\n */\n\nexports = module.exports = Dot;\n\n/**\n * Constructs a new `Dot` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Dot(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var n = -1;\n\n runner.on(EVENT_RUN_BEGIN, function() {\n process.stdout.write('\\n');\n });\n\n runner.on(EVENT_TEST_PENDING, function() {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n process.stdout.write(Base.color('pending', Base.symbols.comma));\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n if (test.speed === 'slow') {\n process.stdout.write(Base.color('bright yellow', Base.symbols.dot));\n } else {\n process.stdout.write(Base.color(test.speed, Base.symbols.dot));\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function() {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n process.stdout.write(Base.color('fail', Base.symbols.bang));\n });\n\n runner.once(EVENT_RUN_END, function() {\n process.stdout.write('\\n');\n self.epilogue();\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Dot, Base);\n\nDot.description = 'dot matrix representation';\n","'use strict';\n/**\n * @module Doc\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\n\n/**\n * Expose `Doc`.\n */\n\nexports = module.exports = Doc;\n\n/**\n * Constructs a new `Doc` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Doc(runner, options) {\n Base.call(this, runner, options);\n\n var indents = 2;\n\n function indent() {\n return Array(indents).join(' ');\n }\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n if (suite.root) {\n return;\n }\n ++indents;\n Base.consoleLog('%s<section class=\"suite\">', indent());\n ++indents;\n Base.consoleLog('%s<h1>%s</h1>', indent(), utils.escape(suite.title));\n Base.consoleLog('%s<dl>', indent());\n });\n\n runner.on(EVENT_SUITE_END, function(suite) {\n if (suite.root) {\n return;\n }\n Base.consoleLog('%s</dl>', indent());\n --indents;\n Base.consoleLog('%s</section>', indent());\n --indents;\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n Base.consoleLog('%s <dt>%s</dt>', indent(), utils.escape(test.title));\n Base.consoleLog('%s <dt>%s</dt>', indent(), utils.escape(test.file));\n var code = utils.escape(utils.clean(test.body));\n Base.consoleLog('%s <dd><pre><code>%s</code></pre></dd>', indent(), code);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n Base.consoleLog(\n '%s <dt class=\"error\">%s</dt>',\n indent(),\n utils.escape(test.title)\n );\n Base.consoleLog(\n '%s <dt class=\"error\">%s</dt>',\n indent(),\n utils.escape(test.file)\n );\n var code = utils.escape(utils.clean(test.body));\n Base.consoleLog(\n '%s <dd class=\"error\"><pre><code>%s</code></pre></dd>',\n indent(),\n code\n );\n Base.consoleLog(\n '%s <dd class=\"error\">%s</dd>',\n indent(),\n utils.escape(err)\n );\n });\n}\n\nDoc.description = 'HTML documentation';\n","'use strict';\n/**\n * @module TAP\n */\n/**\n * Module dependencies.\n */\n\nvar util = require('util');\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar inherits = require('../utils').inherits;\nvar sprintf = util.format;\n\n/**\n * Expose `TAP`.\n */\n\nexports = module.exports = TAP;\n\n/**\n * Constructs a new `TAP` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction TAP(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var n = 1;\n\n var tapVersion = '12';\n if (options && options.reporterOptions) {\n if (options.reporterOptions.tapVersion) {\n tapVersion = options.reporterOptions.tapVersion.toString();\n }\n }\n\n this._producer = createProducer(tapVersion);\n\n runner.once(EVENT_RUN_BEGIN, function() {\n self._producer.writeVersion();\n });\n\n runner.on(EVENT_TEST_END, function() {\n ++n;\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n self._producer.writePending(n, test);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n self._producer.writePass(n, test);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n self._producer.writeFail(n, test, err);\n });\n\n runner.once(EVENT_RUN_END, function() {\n self._producer.writeEpilogue(runner.stats);\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(TAP, Base);\n\n/**\n * Returns a TAP-safe title of `test`.\n *\n * @private\n * @param {Test} test - Test instance.\n * @return {String} title with any hash character removed\n */\nfunction title(test) {\n return test.fullTitle().replace(/#/g, '');\n}\n\n/**\n * Writes newline-terminated formatted string to reporter output stream.\n *\n * @private\n * @param {string} format - `printf`-like format string\n * @param {...*} [varArgs] - Format string arguments\n */\nfunction println(format, varArgs) {\n var vargs = Array.from(arguments);\n vargs[0] += '\\n';\n process.stdout.write(sprintf.apply(null, vargs));\n}\n\n/**\n * Returns a `tapVersion`-appropriate TAP producer instance, if possible.\n *\n * @private\n * @param {string} tapVersion - Version of TAP specification to produce.\n * @returns {TAPProducer} specification-appropriate instance\n * @throws {Error} if specification version has no associated producer.\n */\nfunction createProducer(tapVersion) {\n var producers = {\n '12': new TAP12Producer(),\n '13': new TAP13Producer()\n };\n var producer = producers[tapVersion];\n\n if (!producer) {\n throw new Error(\n 'invalid or unsupported TAP version: ' + JSON.stringify(tapVersion)\n );\n }\n\n return producer;\n}\n\n/**\n * @summary\n * Constructs a new TAPProducer.\n *\n * @description\n * <em>Only</em> to be used as an abstract base class.\n *\n * @private\n * @constructor\n */\nfunction TAPProducer() {}\n\n/**\n * Writes the TAP version to reporter output stream.\n *\n * @abstract\n */\nTAPProducer.prototype.writeVersion = function() {};\n\n/**\n * Writes the plan to reporter output stream.\n *\n * @abstract\n * @param {number} ntests - Number of tests that are planned to run.\n */\nTAPProducer.prototype.writePlan = function(ntests) {\n println('%d..%d', 1, ntests);\n};\n\n/**\n * Writes that test passed to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that passed.\n * @param {Test} test - Instance containing test information.\n */\nTAPProducer.prototype.writePass = function(n, test) {\n println('ok %d %s', n, title(test));\n};\n\n/**\n * Writes that test was skipped to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that was skipped.\n * @param {Test} test - Instance containing test information.\n */\nTAPProducer.prototype.writePending = function(n, test) {\n println('ok %d %s # SKIP -', n, title(test));\n};\n\n/**\n * Writes that test failed to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that failed.\n * @param {Test} test - Instance containing test information.\n * @param {Error} err - Reason the test failed.\n */\nTAPProducer.prototype.writeFail = function(n, test, err) {\n println('not ok %d %s', n, title(test));\n};\n\n/**\n * Writes the summary epilogue to reporter output stream.\n *\n * @abstract\n * @param {Object} stats - Object containing run statistics.\n */\nTAPProducer.prototype.writeEpilogue = function(stats) {\n // :TBD: Why is this not counting pending tests?\n println('# tests ' + (stats.passes + stats.failures));\n println('# pass ' + stats.passes);\n // :TBD: Why are we not showing pending results?\n println('# fail ' + stats.failures);\n this.writePlan(stats.passes + stats.failures + stats.pending);\n};\n\n/**\n * @summary\n * Constructs a new TAP12Producer.\n *\n * @description\n * Produces output conforming to the TAP12 specification.\n *\n * @private\n * @constructor\n * @extends TAPProducer\n * @see {@link https://testanything.org/tap-specification.html|Specification}\n */\nfunction TAP12Producer() {\n /**\n * Writes that test failed to reporter output stream, with error formatting.\n * @override\n */\n this.writeFail = function(n, test, err) {\n TAPProducer.prototype.writeFail.call(this, n, test, err);\n if (err.message) {\n println(err.message.replace(/^/gm, ' '));\n }\n if (err.stack) {\n println(err.stack.replace(/^/gm, ' '));\n }\n };\n}\n\n/**\n * Inherit from `TAPProducer.prototype`.\n */\ninherits(TAP12Producer, TAPProducer);\n\n/**\n * @summary\n * Constructs a new TAP13Producer.\n *\n * @description\n * Produces output conforming to the TAP13 specification.\n *\n * @private\n * @constructor\n * @extends TAPProducer\n * @see {@link https://testanything.org/tap-version-13-specification.html|Specification}\n */\nfunction TAP13Producer() {\n /**\n * Writes the TAP version to reporter output stream.\n * @override\n */\n this.writeVersion = function() {\n println('TAP version 13');\n };\n\n /**\n * Writes that test failed to reporter output stream, with error formatting.\n * @override\n */\n this.writeFail = function(n, test, err) {\n TAPProducer.prototype.writeFail.call(this, n, test, err);\n var emitYamlBlock = err.message != null || err.stack != null;\n if (emitYamlBlock) {\n println(indent(1) + '---');\n if (err.message) {\n println(indent(2) + 'message: |-');\n println(err.message.replace(/^/gm, indent(3)));\n }\n if (err.stack) {\n println(indent(2) + 'stack: |-');\n println(err.stack.replace(/^/gm, indent(3)));\n }\n println(indent(1) + '...');\n }\n };\n\n function indent(level) {\n return Array(level + 1).join(' ');\n }\n}\n\n/**\n * Inherit from `TAPProducer.prototype`.\n */\ninherits(TAP13Producer, TAPProducer);\n\nTAP.description = 'TAP-compatible output';\n","'use strict';\n/**\n * @module JSON\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\n\n/**\n * Expose `JSON`.\n */\n\nexports = module.exports = JSONReporter;\n\n/**\n * Constructs a new `JSON` reporter instance.\n *\n * @public\n * @class JSON\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction JSONReporter(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var tests = [];\n var pending = [];\n var failures = [];\n var passes = [];\n\n runner.on(EVENT_TEST_END, function(test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n passes.push(test);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n failures.push(test);\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n pending.push(test);\n });\n\n runner.once(EVENT_RUN_END, function() {\n var obj = {\n stats: self.stats,\n tests: tests.map(clean),\n pending: pending.map(clean),\n failures: failures.map(clean),\n passes: passes.map(clean)\n };\n\n runner.testResults = obj;\n\n process.stdout.write(JSON.stringify(obj, null, 2));\n });\n}\n\n/**\n * Return a plain-object representation of `test`\n * free of cyclic properties etc.\n *\n * @private\n * @param {Object} test\n * @return {Object}\n */\nfunction clean(test) {\n var err = test.err || {};\n if (err instanceof Error) {\n err = errorJSON(err);\n }\n\n return {\n title: test.title,\n fullTitle: test.fullTitle(),\n file: test.file,\n duration: test.duration,\n currentRetry: test.currentRetry(),\n speed: test.speed,\n err: cleanCycles(err)\n };\n}\n\n/**\n * Replaces any circular references inside `obj` with '[object Object]'\n *\n * @private\n * @param {Object} obj\n * @return {Object}\n */\nfunction cleanCycles(obj) {\n var cache = [];\n return JSON.parse(\n JSON.stringify(obj, function(key, value) {\n if (typeof value === 'object' && value !== null) {\n if (cache.indexOf(value) !== -1) {\n // Instead of going in a circle, we'll print [object Object]\n return '' + value;\n }\n cache.push(value);\n }\n\n return value;\n })\n );\n}\n\n/**\n * Transform an Error object into a JSON object.\n *\n * @private\n * @param {Error} err\n * @return {Object}\n */\nfunction errorJSON(err) {\n var res = {};\n Object.getOwnPropertyNames(err).forEach(function(key) {\n res[key] = err[key];\n }, err);\n return res;\n}\n\nJSONReporter.description = 'single JSON object';\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\n\n/**\n @module browser/Progress\n*/\n\n/**\n * Expose `Progress`.\n */\n\nmodule.exports = Progress;\n\n/**\n * Initialize a new `Progress` indicator.\n */\nfunction Progress() {\n this.percent = 0;\n this.size(0);\n this.fontSize(11);\n this.font('helvetica, arial, sans-serif');\n}\n\n/**\n * Set progress size to `size`.\n *\n * @public\n * @param {number} size\n * @return {Progress} Progress instance.\n */\nProgress.prototype.size = function(size) {\n this._size = size;\n return this;\n};\n\n/**\n * Set text to `text`.\n *\n * @public\n * @param {string} text\n * @return {Progress} Progress instance.\n */\nProgress.prototype.text = function(text) {\n this._text = text;\n return this;\n};\n\n/**\n * Set font size to `size`.\n *\n * @public\n * @param {number} size\n * @return {Progress} Progress instance.\n */\nProgress.prototype.fontSize = function(size) {\n this._fontSize = size;\n return this;\n};\n\n/**\n * Set font to `family`.\n *\n * @param {string} family\n * @return {Progress} Progress instance.\n */\nProgress.prototype.font = function(family) {\n this._font = family;\n return this;\n};\n\n/**\n * Update percentage to `n`.\n *\n * @param {number} n\n * @return {Progress} Progress instance.\n */\nProgress.prototype.update = function(n) {\n this.percent = n;\n return this;\n};\n\n/**\n * Draw on `ctx`.\n *\n * @param {CanvasRenderingContext2d} ctx\n * @return {Progress} Progress instance.\n */\nProgress.prototype.draw = function(ctx) {\n try {\n var percent = Math.min(this.percent, 100);\n var size = this._size;\n var half = size / 2;\n var x = half;\n var y = half;\n var rad = half - 1;\n var fontSize = this._fontSize;\n\n ctx.font = fontSize + 'px ' + this._font;\n\n var angle = Math.PI * 2 * (percent / 100);\n ctx.clearRect(0, 0, size, size);\n\n // outer circle\n ctx.strokeStyle = '#9f9f9f';\n ctx.beginPath();\n ctx.arc(x, y, rad, 0, angle, false);\n ctx.stroke();\n\n // inner circle\n ctx.strokeStyle = '#eee';\n ctx.beginPath();\n ctx.arc(x, y, rad - 1, 0, angle, true);\n ctx.stroke();\n\n // text\n var text = this._text || (percent | 0) + '%';\n var w = ctx.measureText(text).width;\n\n ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1);\n } catch (ignore) {\n // don't fail if we can't render progress\n }\n return this;\n};\n","'use strict';\n\n/* eslint-env browser */\n/**\n * @module HTML\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar Progress = require('../browser/progress');\nvar escapeRe = require('escape-string-regexp');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar escape = utils.escape;\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\n\nvar Date = global.Date;\n\n/**\n * Expose `HTML`.\n */\n\nexports = module.exports = HTML;\n\n/**\n * Stats template.\n */\n\nvar statsTemplate =\n '<ul id=\"mocha-stats\">' +\n '<li class=\"progress\"><canvas width=\"40\" height=\"40\"></canvas></li>' +\n '<li class=\"passes\"><a href=\"javascript:void(0);\">passes:</a> <em>0</em></li>' +\n '<li class=\"failures\"><a href=\"javascript:void(0);\">failures:</a> <em>0</em></li>' +\n '<li class=\"duration\">duration: <em>0</em>s</li>' +\n '</ul>';\n\nvar playIcon = '&#x2023;';\n\n/**\n * Constructs a new `HTML` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction HTML(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var stats = this.stats;\n var stat = fragment(statsTemplate);\n var items = stat.getElementsByTagName('li');\n var passes = items[1].getElementsByTagName('em')[0];\n var passesLink = items[1].getElementsByTagName('a')[0];\n var failures = items[2].getElementsByTagName('em')[0];\n var failuresLink = items[2].getElementsByTagName('a')[0];\n var duration = items[3].getElementsByTagName('em')[0];\n var canvas = stat.getElementsByTagName('canvas')[0];\n var report = fragment('<ul id=\"mocha-report\"></ul>');\n var stack = [report];\n var progress;\n var ctx;\n var root = document.getElementById('mocha');\n\n if (canvas.getContext) {\n var ratio = window.devicePixelRatio || 1;\n canvas.style.width = canvas.width;\n canvas.style.height = canvas.height;\n canvas.width *= ratio;\n canvas.height *= ratio;\n ctx = canvas.getContext('2d');\n ctx.scale(ratio, ratio);\n progress = new Progress();\n }\n\n if (!root) {\n return error('#mocha div missing, add it to your document');\n }\n\n // pass toggle\n on(passesLink, 'click', function(evt) {\n evt.preventDefault();\n unhide();\n var name = /pass/.test(report.className) ? '' : ' pass';\n report.className = report.className.replace(/fail|pass/g, '') + name;\n if (report.className.trim()) {\n hideSuitesWithout('test pass');\n }\n });\n\n // failure toggle\n on(failuresLink, 'click', function(evt) {\n evt.preventDefault();\n unhide();\n var name = /fail/.test(report.className) ? '' : ' fail';\n report.className = report.className.replace(/fail|pass/g, '') + name;\n if (report.className.trim()) {\n hideSuitesWithout('test fail');\n }\n });\n\n root.appendChild(stat);\n root.appendChild(report);\n\n if (progress) {\n progress.size(40);\n }\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n if (suite.root) {\n return;\n }\n\n // suite\n var url = self.suiteURL(suite);\n var el = fragment(\n '<li class=\"suite\"><h1><a href=\"%s\">%s</a></h1></li>',\n url,\n escape(suite.title)\n );\n\n // container\n stack[0].appendChild(el);\n stack.unshift(document.createElement('ul'));\n el.appendChild(stack[0]);\n });\n\n runner.on(EVENT_SUITE_END, function(suite) {\n if (suite.root) {\n updateStats();\n return;\n }\n stack.shift();\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var url = self.testURL(test);\n var markup =\n '<li class=\"test pass %e\"><h2>%e<span class=\"duration\">%ems</span> ' +\n '<a href=\"%s\" class=\"replay\">' +\n playIcon +\n '</a></h2></li>';\n var el = fragment(markup, test.speed, test.title, test.duration, url);\n self.addCodeToggle(el, test.body);\n appendToStack(el);\n updateStats();\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n var el = fragment(\n '<li class=\"test fail\"><h2>%e <a href=\"%e\" class=\"replay\">' +\n playIcon +\n '</a></h2></li>',\n test.title,\n self.testURL(test)\n );\n var stackString; // Note: Includes leading newline\n var message = test.err.toString();\n\n // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we\n // check for the result of the stringifying.\n if (message === '[object Error]') {\n message = test.err.message;\n }\n\n if (test.err.stack) {\n var indexOfMessage = test.err.stack.indexOf(test.err.message);\n if (indexOfMessage === -1) {\n stackString = test.err.stack;\n } else {\n stackString = test.err.stack.substr(\n test.err.message.length + indexOfMessage\n );\n }\n } else if (test.err.sourceURL && test.err.line !== undefined) {\n // Safari doesn't give you a stack. Let's at least provide a source line.\n stackString = '\\n(' + test.err.sourceURL + ':' + test.err.line + ')';\n }\n\n stackString = stackString || '';\n\n if (test.err.htmlMessage && stackString) {\n el.appendChild(\n fragment(\n '<div class=\"html-error\">%s\\n<pre class=\"error\">%e</pre></div>',\n test.err.htmlMessage,\n stackString\n )\n );\n } else if (test.err.htmlMessage) {\n el.appendChild(\n fragment('<div class=\"html-error\">%s</div>', test.err.htmlMessage)\n );\n } else {\n el.appendChild(\n fragment('<pre class=\"error\">%e%e</pre>', message, stackString)\n );\n }\n\n self.addCodeToggle(el, test.body);\n appendToStack(el);\n updateStats();\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n var el = fragment(\n '<li class=\"test pass pending\"><h2>%e</h2></li>',\n test.title\n );\n appendToStack(el);\n updateStats();\n });\n\n function appendToStack(el) {\n // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack.\n if (stack[0]) {\n stack[0].appendChild(el);\n }\n }\n\n function updateStats() {\n // TODO: add to stats\n var percent = ((stats.tests / runner.total) * 100) | 0;\n if (progress) {\n progress.update(percent).draw(ctx);\n }\n\n // update stats\n var ms = new Date() - stats.start;\n text(passes, stats.passes);\n text(failures, stats.failures);\n text(duration, (ms / 1000).toFixed(2));\n }\n}\n\n/**\n * Makes a URL, preserving querystring (\"search\") parameters.\n *\n * @param {string} s\n * @return {string} A new URL.\n */\nfunction makeUrl(s) {\n var search = window.location.search;\n\n // Remove previous grep query parameter if present\n if (search) {\n search = search.replace(/[?&]grep=[^&\\s]*/g, '').replace(/^&/, '?');\n }\n\n return (\n window.location.pathname +\n (search ? search + '&' : '?') +\n 'grep=' +\n encodeURIComponent(escapeRe(s))\n );\n}\n\n/**\n * Provide suite URL.\n *\n * @param {Object} [suite]\n */\nHTML.prototype.suiteURL = function(suite) {\n return makeUrl(suite.fullTitle());\n};\n\n/**\n * Provide test URL.\n *\n * @param {Object} [test]\n */\nHTML.prototype.testURL = function(test) {\n return makeUrl(test.fullTitle());\n};\n\n/**\n * Adds code toggle functionality for the provided test's list element.\n *\n * @param {HTMLLIElement} el\n * @param {string} contents\n */\nHTML.prototype.addCodeToggle = function(el, contents) {\n var h2 = el.getElementsByTagName('h2')[0];\n\n on(h2, 'click', function() {\n pre.style.display = pre.style.display === 'none' ? 'block' : 'none';\n });\n\n var pre = fragment('<pre><code>%e</code></pre>', utils.clean(contents));\n el.appendChild(pre);\n pre.style.display = 'none';\n};\n\n/**\n * Display error `msg`.\n *\n * @param {string} msg\n */\nfunction error(msg) {\n document.body.appendChild(fragment('<div id=\"mocha-error\">%s</div>', msg));\n}\n\n/**\n * Return a DOM fragment from `html`.\n *\n * @param {string} html\n */\nfunction fragment(html) {\n var args = arguments;\n var div = document.createElement('div');\n var i = 1;\n\n div.innerHTML = html.replace(/%([se])/g, function(_, type) {\n switch (type) {\n case 's':\n return String(args[i++]);\n case 'e':\n return escape(args[i++]);\n // no default\n }\n });\n\n return div.firstChild;\n}\n\n/**\n * Check for suites that do not have elements\n * with `classname`, and hide them.\n *\n * @param {text} classname\n */\nfunction hideSuitesWithout(classname) {\n var suites = document.getElementsByClassName('suite');\n for (var i = 0; i < suites.length; i++) {\n var els = suites[i].getElementsByClassName(classname);\n if (!els.length) {\n suites[i].className += ' hidden';\n }\n }\n}\n\n/**\n * Unhide .hidden suites.\n */\nfunction unhide() {\n var els = document.getElementsByClassName('suite hidden');\n while (els.length > 0) {\n els[0].className = els[0].className.replace('suite hidden', 'suite');\n }\n}\n\n/**\n * Set an element's text contents.\n *\n * @param {HTMLElement} el\n * @param {string} contents\n */\nfunction text(el, contents) {\n if (el.textContent) {\n el.textContent = contents;\n } else {\n el.innerText = contents;\n }\n}\n\n/**\n * Listen on `event` with callback `fn`.\n */\nfunction on(el, event, fn) {\n if (el.addEventListener) {\n el.addEventListener(event, fn, false);\n } else {\n el.attachEvent('on' + event, fn);\n }\n}\n\nHTML.browserOnly = true;\n","'use strict';\n/**\n * @module List\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_BEGIN = constants.EVENT_TEST_BEGIN;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar color = Base.color;\nvar cursor = Base.cursor;\n\n/**\n * Expose `List`.\n */\n\nexports = module.exports = List;\n\n/**\n * Constructs a new `List` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction List(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var n = 0;\n\n runner.on(EVENT_RUN_BEGIN, function() {\n Base.consoleLog();\n });\n\n runner.on(EVENT_TEST_BEGIN, function(test) {\n process.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n var fmt = color('checkmark', ' -') + color('pending', ' %s');\n Base.consoleLog(fmt, test.fullTitle());\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var fmt =\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s: ') +\n color(test.speed, '%dms');\n cursor.CR();\n Base.consoleLog(fmt, test.fullTitle(), test.duration);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n cursor.CR();\n Base.consoleLog(color('fail', ' %d) %s'), ++n, test.fullTitle());\n });\n\n runner.once(EVENT_RUN_END, self.epilogue.bind(self));\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(List, Base);\n\nList.description = 'like \"spec\" reporter but flat';\n","'use strict';\n/**\n * @module Min\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n\n/**\n * Expose `Min`.\n */\n\nexports = module.exports = Min;\n\n/**\n * Constructs a new `Min` reporter instance.\n *\n * @description\n * This minimal test reporter is best used with '--watch'.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Min(runner, options) {\n Base.call(this, runner, options);\n\n runner.on(EVENT_RUN_BEGIN, function() {\n // clear screen\n process.stdout.write('\\u001b[2J');\n // set cursor position\n process.stdout.write('\\u001b[1;3H');\n });\n\n runner.once(EVENT_RUN_END, this.epilogue.bind(this));\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Min, Base);\n\nMin.description = 'essentially just a summary';\n","'use strict';\n/**\n * @module Spec\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar inherits = require('../utils').inherits;\nvar color = Base.color;\n\n/**\n * Expose `Spec`.\n */\n\nexports = module.exports = Spec;\n\n/**\n * Constructs a new `Spec` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Spec(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var indents = 0;\n var n = 0;\n\n function indent() {\n return Array(indents).join(' ');\n }\n\n runner.on(EVENT_RUN_BEGIN, function() {\n Base.consoleLog();\n });\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n ++indents;\n Base.consoleLog(color('suite', '%s%s'), indent(), suite.title);\n });\n\n runner.on(EVENT_SUITE_END, function() {\n --indents;\n if (indents === 1) {\n Base.consoleLog();\n }\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n var fmt = indent() + color('pending', ' - %s');\n Base.consoleLog(fmt, test.title);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var fmt;\n if (test.speed === 'fast') {\n fmt =\n indent() +\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s');\n Base.consoleLog(fmt, test.title);\n } else {\n fmt =\n indent() +\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s') +\n color(test.speed, ' (%dms)');\n Base.consoleLog(fmt, test.title, test.duration);\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n Base.consoleLog(indent() + color('fail', ' %d) %s'), ++n, test.title);\n });\n\n runner.once(EVENT_RUN_END, self.epilogue.bind(self));\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Spec, Base);\n\nSpec.description = 'hierarchical & verbose [default]';\n","'use strict';\n/**\n * @module Nyan\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar inherits = require('../utils').inherits;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n\n/**\n * Expose `Dot`.\n */\n\nexports = module.exports = NyanCat;\n\n/**\n * Constructs a new `Nyan` reporter instance.\n *\n * @public\n * @class Nyan\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction NyanCat(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var nyanCatWidth = (this.nyanCatWidth = 11);\n\n this.colorIndex = 0;\n this.numberOfLines = 4;\n this.rainbowColors = self.generateColors();\n this.scoreboardWidth = 5;\n this.tick = 0;\n this.trajectories = [[], [], [], []];\n this.trajectoryWidthMax = width - nyanCatWidth;\n\n runner.on(EVENT_RUN_BEGIN, function() {\n Base.cursor.hide();\n self.draw();\n });\n\n runner.on(EVENT_TEST_PENDING, function() {\n self.draw();\n });\n\n runner.on(EVENT_TEST_PASS, function() {\n self.draw();\n });\n\n runner.on(EVENT_TEST_FAIL, function() {\n self.draw();\n });\n\n runner.once(EVENT_RUN_END, function() {\n Base.cursor.show();\n for (var i = 0; i < self.numberOfLines; i++) {\n write('\\n');\n }\n self.epilogue();\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(NyanCat, Base);\n\n/**\n * Draw the nyan cat\n *\n * @private\n */\n\nNyanCat.prototype.draw = function() {\n this.appendRainbow();\n this.drawScoreboard();\n this.drawRainbow();\n this.drawNyanCat();\n this.tick = !this.tick;\n};\n\n/**\n * Draw the \"scoreboard\" showing the number\n * of passes, failures and pending tests.\n *\n * @private\n */\n\nNyanCat.prototype.drawScoreboard = function() {\n var stats = this.stats;\n\n function draw(type, n) {\n write(' ');\n write(Base.color(type, n));\n write('\\n');\n }\n\n draw('green', stats.passes);\n draw('fail', stats.failures);\n draw('pending', stats.pending);\n write('\\n');\n\n this.cursorUp(this.numberOfLines);\n};\n\n/**\n * Append the rainbow.\n *\n * @private\n */\n\nNyanCat.prototype.appendRainbow = function() {\n var segment = this.tick ? '_' : '-';\n var rainbowified = this.rainbowify(segment);\n\n for (var index = 0; index < this.numberOfLines; index++) {\n var trajectory = this.trajectories[index];\n if (trajectory.length >= this.trajectoryWidthMax) {\n trajectory.shift();\n }\n trajectory.push(rainbowified);\n }\n};\n\n/**\n * Draw the rainbow.\n *\n * @private\n */\n\nNyanCat.prototype.drawRainbow = function() {\n var self = this;\n\n this.trajectories.forEach(function(line) {\n write('\\u001b[' + self.scoreboardWidth + 'C');\n write(line.join(''));\n write('\\n');\n });\n\n this.cursorUp(this.numberOfLines);\n};\n\n/**\n * Draw the nyan cat\n *\n * @private\n */\nNyanCat.prototype.drawNyanCat = function() {\n var self = this;\n var startWidth = this.scoreboardWidth + this.trajectories[0].length;\n var dist = '\\u001b[' + startWidth + 'C';\n var padding = '';\n\n write(dist);\n write('_,------,');\n write('\\n');\n\n write(dist);\n padding = self.tick ? ' ' : ' ';\n write('_|' + padding + '/\\\\_/\\\\ ');\n write('\\n');\n\n write(dist);\n padding = self.tick ? '_' : '__';\n var tail = self.tick ? '~' : '^';\n write(tail + '|' + padding + this.face() + ' ');\n write('\\n');\n\n write(dist);\n padding = self.tick ? ' ' : ' ';\n write(padding + '\"\" \"\" ');\n write('\\n');\n\n this.cursorUp(this.numberOfLines);\n};\n\n/**\n * Draw nyan cat face.\n *\n * @private\n * @return {string}\n */\n\nNyanCat.prototype.face = function() {\n var stats = this.stats;\n if (stats.failures) {\n return '( x .x)';\n } else if (stats.pending) {\n return '( o .o)';\n } else if (stats.passes) {\n return '( ^ .^)';\n }\n return '( - .-)';\n};\n\n/**\n * Move cursor up `n`.\n *\n * @private\n * @param {number} n\n */\n\nNyanCat.prototype.cursorUp = function(n) {\n write('\\u001b[' + n + 'A');\n};\n\n/**\n * Move cursor down `n`.\n *\n * @private\n * @param {number} n\n */\n\nNyanCat.prototype.cursorDown = function(n) {\n write('\\u001b[' + n + 'B');\n};\n\n/**\n * Generate rainbow colors.\n *\n * @private\n * @return {Array}\n */\nNyanCat.prototype.generateColors = function() {\n var colors = [];\n\n for (var i = 0; i < 6 * 7; i++) {\n var pi3 = Math.floor(Math.PI / 3);\n var n = i * (1.0 / 6);\n var r = Math.floor(3 * Math.sin(n) + 3);\n var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3);\n var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3);\n colors.push(36 * r + 6 * g + b + 16);\n }\n\n return colors;\n};\n\n/**\n * Apply rainbow to the given `str`.\n *\n * @private\n * @param {string} str\n * @return {string}\n */\nNyanCat.prototype.rainbowify = function(str) {\n if (!Base.useColors) {\n return str;\n }\n var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];\n this.colorIndex += 1;\n return '\\u001b[38;5;' + color + 'm' + str + '\\u001b[0m';\n};\n\n/**\n * Stdout helper.\n *\n * @param {string} string A message to write to stdout.\n */\nfunction write(string) {\n process.stdout.write(string);\n}\n\nNyanCat.description = '\"nyan cat\"';\n","'use strict';\n/**\n * @module XUnit\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar fs = require('fs');\nvar path = require('path');\nvar errors = require('../errors');\nvar createUnsupportedError = errors.createUnsupportedError;\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar STATE_FAILED = require('../runnable').constants.STATE_FAILED;\nvar inherits = utils.inherits;\nvar escape = utils.escape;\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\nvar Date = global.Date;\n\n/**\n * Expose `XUnit`.\n */\n\nexports = module.exports = XUnit;\n\n/**\n * Constructs a new `XUnit` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction XUnit(runner, options) {\n Base.call(this, runner, options);\n\n var stats = this.stats;\n var tests = [];\n var self = this;\n\n // the name of the test suite, as it will appear in the resulting XML file\n var suiteName;\n\n // the default name of the test suite if none is provided\n var DEFAULT_SUITE_NAME = 'Mocha Tests';\n\n if (options && options.reporterOptions) {\n if (options.reporterOptions.output) {\n if (!fs.createWriteStream) {\n throw createUnsupportedError('file output not supported in browser');\n }\n\n fs.mkdirSync(path.dirname(options.reporterOptions.output), {\n recursive: true\n });\n self.fileStream = fs.createWriteStream(options.reporterOptions.output);\n }\n\n // get the suite name from the reporter options (if provided)\n suiteName = options.reporterOptions.suiteName;\n }\n\n // fall back to the default suite name\n suiteName = suiteName || DEFAULT_SUITE_NAME;\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n tests.push(test);\n });\n\n runner.once(EVENT_RUN_END, function() {\n self.write(\n tag(\n 'testsuite',\n {\n name: suiteName,\n tests: stats.tests,\n failures: 0,\n errors: stats.failures,\n skipped: stats.tests - stats.failures - stats.passes,\n timestamp: new Date().toUTCString(),\n time: stats.duration / 1000 || 0\n },\n false\n )\n );\n\n tests.forEach(function(t) {\n self.test(t);\n });\n\n self.write('</testsuite>');\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(XUnit, Base);\n\n/**\n * Override done to close the stream (if it's a file).\n *\n * @param failures\n * @param {Function} fn\n */\nXUnit.prototype.done = function(failures, fn) {\n if (this.fileStream) {\n this.fileStream.end(function() {\n fn(failures);\n });\n } else {\n fn(failures);\n }\n};\n\n/**\n * Write out the given line.\n *\n * @param {string} line\n */\nXUnit.prototype.write = function(line) {\n if (this.fileStream) {\n this.fileStream.write(line + '\\n');\n } else if (typeof process === 'object' && process.stdout) {\n process.stdout.write(line + '\\n');\n } else {\n Base.consoleLog(line);\n }\n};\n\n/**\n * Output tag for the given `test.`\n *\n * @param {Test} test\n */\nXUnit.prototype.test = function(test) {\n Base.useColors = false;\n\n var attrs = {\n classname: test.parent.fullTitle(),\n name: test.title,\n time: test.duration / 1000 || 0\n };\n\n if (test.state === STATE_FAILED) {\n var err = test.err;\n var diff =\n !Base.hideDiff && Base.showDiff(err)\n ? '\\n' + Base.generateDiff(err.actual, err.expected)\n : '';\n this.write(\n tag(\n 'testcase',\n attrs,\n false,\n tag(\n 'failure',\n {},\n false,\n escape(err.message) + escape(diff) + '\\n' + escape(err.stack)\n )\n )\n );\n } else if (test.isPending()) {\n this.write(tag('testcase', attrs, false, tag('skipped', {}, true)));\n } else {\n this.write(tag('testcase', attrs, true));\n }\n};\n\n/**\n * HTML tag helper.\n *\n * @param name\n * @param attrs\n * @param close\n * @param content\n * @return {string}\n */\nfunction tag(name, attrs, close, content) {\n var end = close ? '/>' : '>';\n var pairs = [];\n var tag;\n\n for (var key in attrs) {\n if (Object.prototype.hasOwnProperty.call(attrs, key)) {\n pairs.push(key + '=\"' + escape(attrs[key]) + '\"');\n }\n }\n\n tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end;\n if (content) {\n tag += content + '</' + name + end;\n }\n return tag;\n}\n\nXUnit.description = 'XUnit-compatible XML output';\n","'use strict';\n/**\n * @module Markdown\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar constants = require('../runner').constants;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n\n/**\n * Constants\n */\n\nvar SUITE_PREFIX = '$';\n\n/**\n * Expose `Markdown`.\n */\n\nexports = module.exports = Markdown;\n\n/**\n * Constructs a new `Markdown` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Markdown(runner, options) {\n Base.call(this, runner, options);\n\n var level = 0;\n var buf = '';\n\n function title(str) {\n return Array(level).join('#') + ' ' + str;\n }\n\n function mapTOC(suite, obj) {\n var ret = obj;\n var key = SUITE_PREFIX + suite.title;\n\n obj = obj[key] = obj[key] || {suite: suite};\n suite.suites.forEach(function(suite) {\n mapTOC(suite, obj);\n });\n\n return ret;\n }\n\n function stringifyTOC(obj, level) {\n ++level;\n var buf = '';\n var link;\n for (var key in obj) {\n if (key === 'suite') {\n continue;\n }\n if (key !== SUITE_PREFIX) {\n link = ' - [' + key.substring(1) + ']';\n link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\\n';\n buf += Array(level).join(' ') + link;\n }\n buf += stringifyTOC(obj[key], level);\n }\n return buf;\n }\n\n function generateTOC(suite) {\n var obj = mapTOC(suite, {});\n return stringifyTOC(obj, 0);\n }\n\n generateTOC(runner.suite);\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n ++level;\n var slug = utils.slug(suite.fullTitle());\n buf += '<a name=\"' + slug + '\"></a>' + '\\n';\n buf += title(suite.title) + '\\n';\n });\n\n runner.on(EVENT_SUITE_END, function() {\n --level;\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var code = utils.clean(test.body);\n buf += test.title + '.\\n';\n buf += '\\n```js\\n';\n buf += code + '\\n';\n buf += '```\\n\\n';\n });\n\n runner.once(EVENT_RUN_END, function() {\n process.stdout.write('# TOC\\n');\n process.stdout.write(generateTOC(runner.suite));\n process.stdout.write(buf);\n });\n}\n\nMarkdown.description = 'GitHub Flavored Markdown';\n","'use strict';\n/**\n * @module Progress\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar inherits = require('../utils').inherits;\nvar color = Base.color;\nvar cursor = Base.cursor;\n\n/**\n * Expose `Progress`.\n */\n\nexports = module.exports = Progress;\n\n/**\n * General progress bar color.\n */\n\nBase.colors.progress = 90;\n\n/**\n * Constructs a new `Progress` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Progress(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.5) | 0;\n var total = runner.total;\n var complete = 0;\n var lastN = -1;\n\n // default chars\n options = options || {};\n var reporterOptions = options.reporterOptions || {};\n\n options.open = reporterOptions.open || '[';\n options.complete = reporterOptions.complete || '▬';\n options.incomplete = reporterOptions.incomplete || Base.symbols.dot;\n options.close = reporterOptions.close || ']';\n options.verbose = reporterOptions.verbose || false;\n\n // tests started\n runner.on(EVENT_RUN_BEGIN, function() {\n process.stdout.write('\\n');\n cursor.hide();\n });\n\n // tests complete\n runner.on(EVENT_TEST_END, function() {\n complete++;\n\n var percent = complete / total;\n var n = (width * percent) | 0;\n var i = width - n;\n\n if (n === lastN && !options.verbose) {\n // Don't re-render the line if it hasn't changed\n return;\n }\n lastN = n;\n\n cursor.CR();\n process.stdout.write('\\u001b[J');\n process.stdout.write(color('progress', ' ' + options.open));\n process.stdout.write(Array(n).join(options.complete));\n process.stdout.write(Array(i).join(options.incomplete));\n process.stdout.write(color('progress', options.close));\n if (options.verbose) {\n process.stdout.write(color('progress', ' ' + complete + ' of ' + total));\n }\n });\n\n // tests are complete, output some stats\n // and the failures if any\n runner.once(EVENT_RUN_END, function() {\n cursor.show();\n process.stdout.write('\\n');\n self.epilogue();\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Progress, Base);\n\nProgress.description = 'a progress bar';\n","'use strict';\n/**\n * @module Landing\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar STATE_FAILED = require('../runnable').constants.STATE_FAILED;\n\nvar cursor = Base.cursor;\nvar color = Base.color;\n\n/**\n * Expose `Landing`.\n */\n\nexports = module.exports = Landing;\n\n/**\n * Airplane color.\n */\n\nBase.colors.plane = 0;\n\n/**\n * Airplane crash color.\n */\n\nBase.colors['plane crash'] = 31;\n\n/**\n * Runway color.\n */\n\nBase.colors.runway = 90;\n\n/**\n * Constructs a new `Landing` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Landing(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var stream = process.stdout;\n\n var plane = color('plane', '✈');\n var crashed = -1;\n var n = 0;\n var total = 0;\n\n function runway() {\n var buf = Array(width).join('-');\n return ' ' + color('runway', buf);\n }\n\n runner.on(EVENT_RUN_BEGIN, function() {\n stream.write('\\n\\n\\n ');\n cursor.hide();\n });\n\n runner.on(EVENT_TEST_END, function(test) {\n // check if the plane crashed\n var col = crashed === -1 ? ((width * ++n) / ++total) | 0 : crashed;\n // show the crash\n if (test.state === STATE_FAILED) {\n plane = color('plane crash', '✈');\n crashed = col;\n }\n\n // render landing strip\n stream.write('\\u001b[' + (width + 1) + 'D\\u001b[2A');\n stream.write(runway());\n stream.write('\\n ');\n stream.write(color('runway', Array(col).join('⋅')));\n stream.write(plane);\n stream.write(color('runway', Array(width - col).join('⋅') + '\\n'));\n stream.write(runway());\n stream.write('\\u001b[0m');\n });\n\n runner.once(EVENT_RUN_END, function() {\n cursor.show();\n process.stdout.write('\\n');\n self.epilogue();\n });\n\n // if cursor is hidden when we ctrl-C, then it will remain hidden unless...\n process.once('SIGINT', function() {\n cursor.show();\n process.nextTick(function() {\n process.kill(process.pid, 'SIGINT');\n });\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Landing, Base);\n\nLanding.description = 'Unicode landing strip';\n","'use strict';\n/**\n * @module JSONStream\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\n\n/**\n * Expose `JSONStream`.\n */\n\nexports = module.exports = JSONStream;\n\n/**\n * Constructs a new `JSONStream` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction JSONStream(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var total = runner.total;\n\n runner.once(EVENT_RUN_BEGIN, function() {\n writeEvent(['start', {total: total}]);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n writeEvent(['pass', clean(test)]);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n test = clean(test);\n test.err = err.message;\n test.stack = err.stack || null;\n writeEvent(['fail', test]);\n });\n\n runner.once(EVENT_RUN_END, function() {\n writeEvent(['end', self.stats]);\n });\n}\n\n/**\n * Mocha event to be written to the output stream.\n * @typedef {Array} JSONStream~MochaEvent\n */\n\n/**\n * Writes Mocha event to reporter output stream.\n *\n * @private\n * @param {JSONStream~MochaEvent} event - Mocha event to be output.\n */\nfunction writeEvent(event) {\n process.stdout.write(JSON.stringify(event) + '\\n');\n}\n\n/**\n * Returns an object literal representation of `test`\n * free of cyclic properties, etc.\n *\n * @private\n * @param {Test} test - Instance used as data source.\n * @return {Object} object containing pared-down test instance data\n */\nfunction clean(test) {\n return {\n title: test.title,\n fullTitle: test.fullTitle(),\n file: test.file,\n duration: test.duration,\n currentRetry: test.currentRetry(),\n speed: test.speed\n };\n}\n\nJSONStream.description = 'newline delimited JSON events';\n","'use strict';\n\n// Alias exports to a their normalized format Mocha#reporter to prevent a need\n// for dynamic (try/catch) requires, which Browserify doesn't handle.\nexports.Base = exports.base = require('./base');\nexports.Dot = exports.dot = require('./dot');\nexports.Doc = exports.doc = require('./doc');\nexports.TAP = exports.tap = require('./tap');\nexports.JSON = exports.json = require('./json');\nexports.HTML = exports.html = require('./html');\nexports.List = exports.list = require('./list');\nexports.Min = exports.min = require('./min');\nexports.Spec = exports.spec = require('./spec');\nexports.Nyan = exports.nyan = require('./nyan');\nexports.XUnit = exports.xunit = require('./xunit');\nexports.Markdown = exports.markdown = require('./markdown');\nexports.Progress = exports.progress = require('./progress');\nexports.Landing = exports.landing = require('./landing');\nexports.JSONStream = exports['json-stream'] = require('./json-stream');\n","'use strict';\n\n/**\n * Web Notifications module.\n * @module Growl\n */\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\nvar Date = global.Date;\nvar setTimeout = global.setTimeout;\nvar EVENT_RUN_END = require('../runner').constants.EVENT_RUN_END;\nvar isBrowser = require('../utils').isBrowser;\n\n/**\n * Checks if browser notification support exists.\n *\n * @public\n * @see {@link https://caniuse.com/#feat=notifications|Browser support (notifications)}\n * @see {@link https://caniuse.com/#feat=promises|Browser support (promises)}\n * @see {@link Mocha#growl}\n * @see {@link Mocha#isGrowlCapable}\n * @return {boolean} whether browser notification support exists\n */\nexports.isCapable = function() {\n var hasNotificationSupport = 'Notification' in window;\n var hasPromiseSupport = typeof Promise === 'function';\n return isBrowser() && hasNotificationSupport && hasPromiseSupport;\n};\n\n/**\n * Implements browser notifications as a pseudo-reporter.\n *\n * @public\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/notification|Notification API}\n * @see {@link https://developers.google.com/web/fundamentals/push-notifications/display-a-notification|Displaying a Notification}\n * @see {@link Growl#isPermitted}\n * @see {@link Mocha#_growl}\n * @param {Runner} runner - Runner instance.\n */\nexports.notify = function(runner) {\n var promise = isPermitted();\n\n /**\n * Attempt notification.\n */\n var sendNotification = function() {\n // If user hasn't responded yet... \"No notification for you!\" (Seinfeld)\n Promise.race([promise, Promise.resolve(undefined)])\n .then(canNotify)\n .then(function() {\n display(runner);\n })\n .catch(notPermitted);\n };\n\n runner.once(EVENT_RUN_END, sendNotification);\n};\n\n/**\n * Checks if browser notification is permitted by user.\n *\n * @private\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Notification/permission|Notification.permission}\n * @see {@link Mocha#growl}\n * @see {@link Mocha#isGrowlPermitted}\n * @returns {Promise<boolean>} promise determining if browser notification\n * permissible when fulfilled.\n */\nfunction isPermitted() {\n var permitted = {\n granted: function allow() {\n return Promise.resolve(true);\n },\n denied: function deny() {\n return Promise.resolve(false);\n },\n default: function ask() {\n return Notification.requestPermission().then(function(permission) {\n return permission === 'granted';\n });\n }\n };\n\n return permitted[Notification.permission]();\n}\n\n/**\n * @summary\n * Determines if notification should proceed.\n *\n * @description\n * Notification shall <strong>not</strong> proceed unless `value` is true.\n *\n * `value` will equal one of:\n * <ul>\n * <li><code>true</code> (from `isPermitted`)</li>\n * <li><code>false</code> (from `isPermitted`)</li>\n * <li><code>undefined</code> (from `Promise.race`)</li>\n * </ul>\n *\n * @private\n * @param {boolean|undefined} value - Determines if notification permissible.\n * @returns {Promise<undefined>} Notification can proceed\n */\nfunction canNotify(value) {\n if (!value) {\n var why = value === false ? 'blocked' : 'unacknowledged';\n var reason = 'not permitted by user (' + why + ')';\n return Promise.reject(new Error(reason));\n }\n return Promise.resolve();\n}\n\n/**\n * Displays the notification.\n *\n * @private\n * @param {Runner} runner - Runner instance.\n */\nfunction display(runner) {\n var stats = runner.stats;\n var symbol = {\n cross: '\\u274C',\n tick: '\\u2705'\n };\n var logo = require('../../package.json').notifyLogo;\n var _message;\n var message;\n var title;\n\n if (stats.failures) {\n _message = stats.failures + ' of ' + stats.tests + ' tests failed';\n message = symbol.cross + ' ' + _message;\n title = 'Failed';\n } else {\n _message = stats.passes + ' tests passed in ' + stats.duration + 'ms';\n message = symbol.tick + ' ' + _message;\n title = 'Passed';\n }\n\n // Send notification\n var options = {\n badge: logo,\n body: message,\n dir: 'ltr',\n icon: logo,\n lang: 'en-US',\n name: 'mocha',\n requireInteraction: false,\n timestamp: Date.now()\n };\n var notification = new Notification(title, options);\n\n // Autoclose after brief delay (makes various browsers act same)\n var FORCE_DURATION = 4000;\n setTimeout(notification.close.bind(notification), FORCE_DURATION);\n}\n\n/**\n * As notifications are tangential to our purpose, just log the error.\n *\n * @private\n * @param {Error} err - Why notification didn't happen.\n */\nfunction notPermitted(err) {\n console.error('notification error:', err.message);\n}\n","'use strict';\n\n/**\n * Provides a factory function for a {@link StatsCollector} object.\n * @module\n */\n\nvar constants = require('./runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\n\n/**\n * Test statistics collector.\n *\n * @public\n * @typedef {Object} StatsCollector\n * @property {number} suites - integer count of suites run.\n * @property {number} tests - integer count of tests run.\n * @property {number} passes - integer count of passing tests.\n * @property {number} pending - integer count of pending tests.\n * @property {number} failures - integer count of failed tests.\n * @property {Date} start - time when testing began.\n * @property {Date} end - time when testing concluded.\n * @property {number} duration - number of msecs that testing took.\n */\n\nvar Date = global.Date;\n\n/**\n * Provides stats such as test duration, number of tests passed / failed etc., by listening for events emitted by `runner`.\n *\n * @private\n * @param {Runner} runner - Runner instance\n * @throws {TypeError} If falsy `runner`\n */\nfunction createStatsCollector(runner) {\n /**\n * @type StatsCollector\n */\n var stats = {\n suites: 0,\n tests: 0,\n passes: 0,\n pending: 0,\n failures: 0\n };\n\n if (!runner) {\n throw new TypeError('Missing runner argument');\n }\n\n runner.stats = stats;\n\n runner.once(EVENT_RUN_BEGIN, function() {\n stats.start = new Date();\n });\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n suite.root || stats.suites++;\n });\n runner.on(EVENT_TEST_PASS, function() {\n stats.passes++;\n });\n runner.on(EVENT_TEST_FAIL, function() {\n stats.failures++;\n });\n runner.on(EVENT_TEST_PENDING, function() {\n stats.pending++;\n });\n runner.on(EVENT_TEST_END, function() {\n stats.tests++;\n });\n runner.once(EVENT_RUN_END, function() {\n stats.end = new Date();\n stats.duration = stats.end - stats.start;\n });\n}\n\nmodule.exports = createStatsCollector;\n","'use strict';\nvar Runnable = require('./runnable');\nvar utils = require('./utils');\nvar errors = require('./errors');\nvar createInvalidArgumentTypeError = errors.createInvalidArgumentTypeError;\nvar isString = utils.isString;\n\nconst {MOCHA_ID_PROP_NAME} = utils.constants;\n\nmodule.exports = Test;\n\n/**\n * Initialize a new `Test` with the given `title` and callback `fn`.\n *\n * @public\n * @class\n * @extends Runnable\n * @param {String} title - Test title (required)\n * @param {Function} [fn] - Test callback. If omitted, the Test is considered \"pending\"\n */\nfunction Test(title, fn) {\n if (!isString(title)) {\n throw createInvalidArgumentTypeError(\n 'Test argument \"title\" should be a string. Received type \"' +\n typeof title +\n '\"',\n 'title',\n 'string'\n );\n }\n this.type = 'test';\n Runnable.call(this, title, fn);\n this.reset();\n}\n\n/**\n * Inherit from `Runnable.prototype`.\n */\nutils.inherits(Test, Runnable);\n\n/**\n * Resets the state initially or for a next run.\n */\nTest.prototype.reset = function() {\n Runnable.prototype.reset.call(this);\n this.pending = !this.fn;\n delete this.state;\n};\n\n/**\n * Set or get retried test\n *\n * @private\n */\nTest.prototype.retriedTest = function(n) {\n if (!arguments.length) {\n return this._retriedTest;\n }\n this._retriedTest = n;\n};\n\n/**\n * Add test to the list of tests marked `only`.\n *\n * @private\n */\nTest.prototype.markOnly = function() {\n this.parent.appendOnlyTest(this);\n};\n\nTest.prototype.clone = function() {\n var test = new Test(this.title, this.fn);\n test.timeout(this.timeout());\n test.slow(this.slow());\n test.retries(this.retries());\n test.currentRetry(this.currentRetry());\n test.retriedTest(this.retriedTest() || this);\n test.globals(this.globals());\n test.parent = this.parent;\n test.file = this.file;\n test.ctx = this.ctx;\n return test;\n};\n\n/**\n * Returns an minimal object suitable for transmission over IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\nTest.prototype.serialize = function serialize() {\n return {\n $$currentRetry: this._currentRetry,\n $$fullTitle: this.fullTitle(),\n $$isPending: this.pending,\n $$retriedTest: this._retriedTest || null,\n $$slow: this._slow,\n $$titlePath: this.titlePath(),\n body: this.body,\n duration: this.duration,\n err: this.err,\n parent: {\n $$fullTitle: this.parent.fullTitle(),\n [MOCHA_ID_PROP_NAME]: this.parent.id\n },\n speed: this.speed,\n state: this.state,\n title: this.title,\n type: this.type,\n file: this.file,\n [MOCHA_ID_PROP_NAME]: this.id\n };\n};\n","'use strict';\n\n/**\n @module interfaces/common\n*/\n\nvar Suite = require('../suite');\nvar errors = require('../errors');\nvar createMissingArgumentError = errors.createMissingArgumentError;\nvar createUnsupportedError = errors.createUnsupportedError;\nvar createForbiddenExclusivityError = errors.createForbiddenExclusivityError;\n\n/**\n * Functions common to more than one interface.\n *\n * @private\n * @param {Suite[]} suites\n * @param {Context} context\n * @param {Mocha} mocha\n * @return {Object} An object containing common functions.\n */\nmodule.exports = function(suites, context, mocha) {\n /**\n * Check if the suite should be tested.\n *\n * @private\n * @param {Suite} suite - suite to check\n * @returns {boolean}\n */\n function shouldBeTested(suite) {\n return (\n !mocha.options.grep ||\n (mocha.options.grep &&\n mocha.options.grep.test(suite.fullTitle()) &&\n !mocha.options.invert)\n );\n }\n\n return {\n /**\n * This is only present if flag --delay is passed into Mocha. It triggers\n * root suite execution.\n *\n * @param {Suite} suite The root suite.\n * @return {Function} A function which runs the root suite\n */\n runWithSuite: function runWithSuite(suite) {\n return function run() {\n suite.run();\n };\n },\n\n /**\n * Execute before running tests.\n *\n * @param {string} name\n * @param {Function} fn\n */\n before: function(name, fn) {\n suites[0].beforeAll(name, fn);\n },\n\n /**\n * Execute after running tests.\n *\n * @param {string} name\n * @param {Function} fn\n */\n after: function(name, fn) {\n suites[0].afterAll(name, fn);\n },\n\n /**\n * Execute before each test case.\n *\n * @param {string} name\n * @param {Function} fn\n */\n beforeEach: function(name, fn) {\n suites[0].beforeEach(name, fn);\n },\n\n /**\n * Execute after each test case.\n *\n * @param {string} name\n * @param {Function} fn\n */\n afterEach: function(name, fn) {\n suites[0].afterEach(name, fn);\n },\n\n suite: {\n /**\n * Create an exclusive Suite; convenience function\n * See docstring for create() below.\n *\n * @param {Object} opts\n * @returns {Suite}\n */\n only: function only(opts) {\n if (mocha.options.forbidOnly) {\n throw createForbiddenExclusivityError(mocha);\n }\n opts.isOnly = true;\n return this.create(opts);\n },\n\n /**\n * Create a Suite, but skip it; convenience function\n * See docstring for create() below.\n *\n * @param {Object} opts\n * @returns {Suite}\n */\n skip: function skip(opts) {\n opts.pending = true;\n return this.create(opts);\n },\n\n /**\n * Creates a suite.\n *\n * @param {Object} opts Options\n * @param {string} opts.title Title of Suite\n * @param {Function} [opts.fn] Suite Function (not always applicable)\n * @param {boolean} [opts.pending] Is Suite pending?\n * @param {string} [opts.file] Filepath where this Suite resides\n * @param {boolean} [opts.isOnly] Is Suite exclusive?\n * @returns {Suite}\n */\n create: function create(opts) {\n var suite = Suite.create(suites[0], opts.title);\n suite.pending = Boolean(opts.pending);\n suite.file = opts.file;\n suites.unshift(suite);\n if (opts.isOnly) {\n suite.markOnly();\n }\n if (\n suite.pending &&\n mocha.options.forbidPending &&\n shouldBeTested(suite)\n ) {\n throw createUnsupportedError('Pending test forbidden');\n }\n if (typeof opts.fn === 'function') {\n opts.fn.call(suite);\n suites.shift();\n } else if (typeof opts.fn === 'undefined' && !suite.pending) {\n throw createMissingArgumentError(\n 'Suite \"' +\n suite.fullTitle() +\n '\" was defined but no callback was supplied. ' +\n 'Supply a callback or explicitly skip the suite.',\n 'callback',\n 'function'\n );\n } else if (!opts.fn && suite.pending) {\n suites.shift();\n }\n\n return suite;\n }\n },\n\n test: {\n /**\n * Exclusive test-case.\n *\n * @param {Object} mocha\n * @param {Function} test\n * @returns {*}\n */\n only: function(mocha, test) {\n if (mocha.options.forbidOnly) {\n throw createForbiddenExclusivityError(mocha);\n }\n test.markOnly();\n return test;\n },\n\n /**\n * Pending test case.\n *\n * @param {string} title\n */\n skip: function(title) {\n context.test(title);\n }\n }\n };\n};\n","'use strict';\n\nvar Test = require('../test');\nvar EVENT_FILE_PRE_REQUIRE = require('../suite').constants\n .EVENT_FILE_PRE_REQUIRE;\n\n/**\n * BDD-style interface:\n *\n * describe('Array', function() {\n * describe('#indexOf()', function() {\n * it('should return -1 when not present', function() {\n * // ...\n * });\n *\n * it('should return the index when present', function() {\n * // ...\n * });\n * });\n * });\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function bddInterface(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {\n var common = require('./common')(suites, context, mocha);\n\n context.before = common.before;\n context.after = common.after;\n context.beforeEach = common.beforeEach;\n context.afterEach = common.afterEach;\n context.run = mocha.options.delay && common.runWithSuite(suite);\n /**\n * Describe a \"suite\" with the given `title`\n * and callback `fn` containing nested suites\n * and/or tests.\n */\n\n context.describe = context.context = function(title, fn) {\n return common.suite.create({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Pending describe.\n */\n\n context.xdescribe = context.xcontext = context.describe.skip = function(\n title,\n fn\n ) {\n return common.suite.skip({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Exclusive suite.\n */\n\n context.describe.only = function(title, fn) {\n return common.suite.only({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Describe a specification or test-case\n * with the given `title` and callback `fn`\n * acting as a thunk.\n */\n\n context.it = context.specify = function(title, fn) {\n var suite = suites[0];\n if (suite.isPending()) {\n fn = null;\n }\n var test = new Test(title, fn);\n test.file = file;\n suite.addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.it.only = function(title, fn) {\n return common.test.only(mocha, context.it(title, fn));\n };\n\n /**\n * Pending test case.\n */\n\n context.xit = context.xspecify = context.it.skip = function(title) {\n return context.it(title);\n };\n });\n};\n\nmodule.exports.description = 'BDD or RSpec style [default]';\n","'use strict';\n\nvar Test = require('../test');\nvar EVENT_FILE_PRE_REQUIRE = require('../suite').constants\n .EVENT_FILE_PRE_REQUIRE;\n\n/**\n * TDD-style interface:\n *\n * suite('Array', function() {\n * suite('#indexOf()', function() {\n * suiteSetup(function() {\n *\n * });\n *\n * test('should return -1 when not present', function() {\n *\n * });\n *\n * test('should return the index when present', function() {\n *\n * });\n *\n * suiteTeardown(function() {\n *\n * });\n * });\n * });\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {\n var common = require('./common')(suites, context, mocha);\n\n context.setup = common.beforeEach;\n context.teardown = common.afterEach;\n context.suiteSetup = common.before;\n context.suiteTeardown = common.after;\n context.run = mocha.options.delay && common.runWithSuite(suite);\n\n /**\n * Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites and/or tests.\n */\n context.suite = function(title, fn) {\n return common.suite.create({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Pending suite.\n */\n context.suite.skip = function(title, fn) {\n return common.suite.skip({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Exclusive test-case.\n */\n context.suite.only = function(title, fn) {\n return common.suite.only({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk.\n */\n context.test = function(title, fn) {\n var suite = suites[0];\n if (suite.isPending()) {\n fn = null;\n }\n var test = new Test(title, fn);\n test.file = file;\n suite.addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.test.only = function(title, fn) {\n return common.test.only(mocha, context.test(title, fn));\n };\n\n context.test.skip = common.test.skip;\n });\n};\n\nmodule.exports.description =\n 'traditional \"suite\"/\"test\" instead of BDD\\'s \"describe\"/\"it\"';\n","'use strict';\n\nvar Test = require('../test');\nvar EVENT_FILE_PRE_REQUIRE = require('../suite').constants\n .EVENT_FILE_PRE_REQUIRE;\n\n/**\n * QUnit-style interface:\n *\n * suite('Array');\n *\n * test('#length', function() {\n * var arr = [1,2,3];\n * ok(arr.length == 3);\n * });\n *\n * test('#indexOf()', function() {\n * var arr = [1,2,3];\n * ok(arr.indexOf(1) == 0);\n * ok(arr.indexOf(2) == 1);\n * ok(arr.indexOf(3) == 2);\n * });\n *\n * suite('String');\n *\n * test('#length', function() {\n * ok('foo'.length == 3);\n * });\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function qUnitInterface(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {\n var common = require('./common')(suites, context, mocha);\n\n context.before = common.before;\n context.after = common.after;\n context.beforeEach = common.beforeEach;\n context.afterEach = common.afterEach;\n context.run = mocha.options.delay && common.runWithSuite(suite);\n /**\n * Describe a \"suite\" with the given `title`.\n */\n\n context.suite = function(title) {\n if (suites.length > 1) {\n suites.shift();\n }\n return common.suite.create({\n title: title,\n file: file,\n fn: false\n });\n };\n\n /**\n * Exclusive Suite.\n */\n\n context.suite.only = function(title) {\n if (suites.length > 1) {\n suites.shift();\n }\n return common.suite.only({\n title: title,\n file: file,\n fn: false\n });\n };\n\n /**\n * Describe a specification or test-case\n * with the given `title` and callback `fn`\n * acting as a thunk.\n */\n\n context.test = function(title, fn) {\n var test = new Test(title, fn);\n test.file = file;\n suites[0].addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.test.only = function(title, fn) {\n return common.test.only(mocha, context.test(title, fn));\n };\n\n context.test.skip = common.test.skip;\n });\n};\n\nmodule.exports.description = 'QUnit style';\n","'use strict';\nvar Suite = require('../suite');\nvar Test = require('../test');\n\n/**\n * Exports-style (as Node.js module) interface:\n *\n * exports.Array = {\n * '#indexOf()': {\n * 'should return -1 when the value is not present': function() {\n *\n * },\n *\n * 'should return the correct index when the value is present': function() {\n *\n * }\n * }\n * };\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function(suite) {\n var suites = [suite];\n\n suite.on(Suite.constants.EVENT_FILE_REQUIRE, visit);\n\n function visit(obj, file) {\n var suite;\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n var fn = obj[key];\n switch (key) {\n case 'before':\n suites[0].beforeAll(fn);\n break;\n case 'after':\n suites[0].afterAll(fn);\n break;\n case 'beforeEach':\n suites[0].beforeEach(fn);\n break;\n case 'afterEach':\n suites[0].afterEach(fn);\n break;\n default:\n var test = new Test(key, fn);\n test.file = file;\n suites[0].addTest(test);\n }\n } else {\n suite = Suite.create(suites[0], key);\n suites.unshift(suite);\n visit(obj[key], file);\n suites.shift();\n }\n }\n }\n};\n\nmodule.exports.description = 'Node.js module (\"exports\") style';\n","'use strict';\n\nexports.bdd = require('./bdd');\nexports.tdd = require('./tdd');\nexports.qunit = require('./qunit');\nexports.exports = require('./exports');\n","'use strict';\n/**\n * @module Context\n */\n/**\n * Expose `Context`.\n */\n\nmodule.exports = Context;\n\n/**\n * Initialize a new `Context`.\n *\n * @private\n */\nfunction Context() {}\n\n/**\n * Set or get the context `Runnable` to `runnable`.\n *\n * @private\n * @param {Runnable} runnable\n * @return {Context} context\n */\nContext.prototype.runnable = function(runnable) {\n if (!arguments.length) {\n return this._runnable;\n }\n this.test = this._runnable = runnable;\n return this;\n};\n\n/**\n * Set or get test timeout `ms`.\n *\n * @private\n * @param {number} ms\n * @return {Context} self\n */\nContext.prototype.timeout = function(ms) {\n if (!arguments.length) {\n return this.runnable().timeout();\n }\n this.runnable().timeout(ms);\n return this;\n};\n\n/**\n * Set or get test slowness threshold `ms`.\n *\n * @private\n * @param {number} ms\n * @return {Context} self\n */\nContext.prototype.slow = function(ms) {\n if (!arguments.length) {\n return this.runnable().slow();\n }\n this.runnable().slow(ms);\n return this;\n};\n\n/**\n * Mark a test as skipped.\n *\n * @private\n * @throws Pending\n */\nContext.prototype.skip = function() {\n this.runnable().skip();\n};\n\n/**\n * Set or get a number of allowed retries on failed tests\n *\n * @private\n * @param {number} n\n * @return {Context} self\n */\nContext.prototype.retries = function(n) {\n if (!arguments.length) {\n return this.runnable().retries();\n }\n this.runnable().retries(n);\n return this;\n};\n","'use strict';\n\n/*!\n * mocha\n * Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>\n * MIT Licensed\n */\n\nvar escapeRe = require('escape-string-regexp');\nvar path = require('path');\nvar builtinReporters = require('./reporters');\nvar growl = require('./nodejs/growl');\nvar utils = require('./utils');\nvar mocharc = require('./mocharc.json');\nvar Suite = require('./suite');\nvar esmUtils = utils.supportsEsModules(true)\n ? require('./esm-utils')\n : undefined;\nvar createStatsCollector = require('./stats-collector');\nconst {\n warn,\n createInvalidReporterError,\n createInvalidInterfaceError,\n createMochaInstanceAlreadyDisposedError,\n createMochaInstanceAlreadyRunningError,\n createUnsupportedError\n} = require('./errors');\nconst {\n EVENT_FILE_PRE_REQUIRE,\n EVENT_FILE_POST_REQUIRE,\n EVENT_FILE_REQUIRE\n} = Suite.constants;\nvar debug = require('debug')('mocha:mocha');\n\nexports = module.exports = Mocha;\n\n/**\n * A Mocha instance is a finite state machine.\n * These are the states it can be in.\n * @private\n */\nvar mochaStates = utils.defineConstants({\n /**\n * Initial state of the mocha instance\n * @private\n */\n INIT: 'init',\n /**\n * Mocha instance is running tests\n * @private\n */\n RUNNING: 'running',\n /**\n * Mocha instance is done running tests and references to test functions and hooks are cleaned.\n * You can reset this state by unloading the test files.\n * @private\n */\n REFERENCES_CLEANED: 'referencesCleaned',\n /**\n * Mocha instance is disposed and can no longer be used.\n * @private\n */\n DISPOSED: 'disposed'\n});\n\n/**\n * To require local UIs and reporters when running in node.\n */\n\nif (!utils.isBrowser() && typeof module.paths !== 'undefined') {\n var cwd = utils.cwd();\n module.paths.push(cwd, path.join(cwd, 'node_modules'));\n}\n\n/**\n * Expose internals.\n * @private\n */\n\nexports.utils = utils;\nexports.interfaces = require('./interfaces');\n/**\n * @public\n * @memberof Mocha\n */\nexports.reporters = builtinReporters;\nexports.Runnable = require('./runnable');\nexports.Context = require('./context');\n/**\n *\n * @memberof Mocha\n */\nexports.Runner = require('./runner');\nexports.Suite = Suite;\nexports.Hook = require('./hook');\nexports.Test = require('./test');\n\nlet currentContext;\nexports.afterEach = function(...args) {\n return (currentContext.afterEach || currentContext.teardown).apply(\n this,\n args\n );\n};\nexports.after = function(...args) {\n return (currentContext.after || currentContext.suiteTeardown).apply(\n this,\n args\n );\n};\nexports.beforeEach = function(...args) {\n return (currentContext.beforeEach || currentContext.setup).apply(this, args);\n};\nexports.before = function(...args) {\n return (currentContext.before || currentContext.suiteSetup).apply(this, args);\n};\nexports.describe = function(...args) {\n return (currentContext.describe || currentContext.suite).apply(this, args);\n};\nexports.describe.only = function(...args) {\n return (currentContext.describe || currentContext.suite).only.apply(\n this,\n args\n );\n};\nexports.describe.skip = function(...args) {\n return (currentContext.describe || currentContext.suite).skip.apply(\n this,\n args\n );\n};\nexports.it = function(...args) {\n return (currentContext.it || currentContext.test).apply(this, args);\n};\nexports.it.only = function(...args) {\n return (currentContext.it || currentContext.test).only.apply(this, args);\n};\nexports.it.skip = function(...args) {\n return (currentContext.it || currentContext.test).skip.apply(this, args);\n};\nexports.xdescribe = exports.describe.skip;\nexports.xit = exports.it.skip;\nexports.setup = exports.beforeEach;\nexports.suiteSetup = exports.before;\nexports.suiteTeardown = exports.after;\nexports.suite = exports.describe;\nexports.teardown = exports.afterEach;\nexports.test = exports.it;\nexports.run = function(...args) {\n return currentContext.run.apply(this, args);\n};\n\n/**\n * Constructs a new Mocha instance with `options`.\n *\n * @public\n * @class Mocha\n * @param {Object} [options] - Settings object.\n * @param {boolean} [options.allowUncaught] - Propagate uncaught errors?\n * @param {boolean} [options.asyncOnly] - Force `done` callback or promise?\n * @param {boolean} [options.bail] - Bail after first test failure?\n * @param {boolean} [options.checkLeaks] - Check for global variable leaks?\n * @param {boolean} [options.color] - Color TTY output from reporter?\n * @param {boolean} [options.delay] - Delay root suite execution?\n * @param {boolean} [options.diff] - Show diff on failure?\n * @param {boolean} [options.dryRun] - Report tests without running them?\n * @param {string} [options.fgrep] - Test filter given string.\n * @param {boolean} [options.forbidOnly] - Tests marked `only` fail the suite?\n * @param {boolean} [options.forbidPending] - Pending tests fail the suite?\n * @param {boolean} [options.fullTrace] - Full stacktrace upon failure?\n * @param {string[]} [options.global] - Variables expected in global scope.\n * @param {RegExp|string} [options.grep] - Test filter given regular expression.\n * @param {boolean} [options.growl] - Enable desktop notifications?\n * @param {boolean} [options.inlineDiffs] - Display inline diffs?\n * @param {boolean} [options.invert] - Invert test filter matches?\n * @param {boolean} [options.noHighlighting] - Disable syntax highlighting?\n * @param {string|constructor} [options.reporter] - Reporter name or constructor.\n * @param {Object} [options.reporterOption] - Reporter settings object.\n * @param {number} [options.retries] - Number of times to retry failed tests.\n * @param {number} [options.slow] - Slow threshold value.\n * @param {number|string} [options.timeout] - Timeout threshold value.\n * @param {string} [options.ui] - Interface name.\n * @param {boolean} [options.parallel] - Run jobs in parallel.\n * @param {number} [options.jobs] - Max number of worker processes for parallel runs.\n * @param {MochaRootHookObject} [options.rootHooks] - Hooks to bootstrap the root suite with.\n * @param {string[]} [options.require] - Pathname of `rootHooks` plugin for parallel runs.\n * @param {boolean} [options.isWorker] - Should be `true` if `Mocha` process is running in a worker process.\n */\nfunction Mocha(options = {}) {\n options = {...mocharc, ...options};\n this.files = [];\n this.options = options;\n // root suite\n this.suite = new exports.Suite('', new exports.Context(), true);\n this._cleanReferencesAfterRun = true;\n this._state = mochaStates.INIT;\n\n this.grep(options.grep)\n .fgrep(options.fgrep)\n .ui(options.ui)\n .reporter(\n options.reporter,\n options.reporterOption || options.reporterOptions // for backwards compability\n )\n .slow(options.slow)\n .global(options.global);\n\n // this guard exists because Suite#timeout does not consider `undefined` to be valid input\n if (typeof options.timeout !== 'undefined') {\n this.timeout(options.timeout === false ? 0 : options.timeout);\n }\n\n if ('retries' in options) {\n this.retries(options.retries);\n }\n\n [\n 'allowUncaught',\n 'asyncOnly',\n 'bail',\n 'checkLeaks',\n 'color',\n 'delay',\n 'diff',\n 'dryRun',\n 'forbidOnly',\n 'forbidPending',\n 'fullTrace',\n 'growl',\n 'inlineDiffs',\n 'invert'\n ].forEach(function(opt) {\n if (options[opt]) {\n this[opt]();\n }\n }, this);\n\n if (options.rootHooks) {\n this.rootHooks(options.rootHooks);\n }\n\n /**\n * The class which we'll instantiate in {@link Mocha#run}. Defaults to\n * {@link Runner} in serial mode; changes in parallel mode.\n * @memberof Mocha\n * @private\n */\n this._runnerClass = exports.Runner;\n\n /**\n * Whether or not to call {@link Mocha#loadFiles} implicitly when calling\n * {@link Mocha#run}. If this is `true`, then it's up to the consumer to call\n * {@link Mocha#loadFiles} _or_ {@link Mocha#loadFilesAsync}.\n * @private\n * @memberof Mocha\n */\n this._lazyLoadFiles = false;\n\n /**\n * It's useful for a Mocha instance to know if it's running in a worker process.\n * We could derive this via other means, but it's helpful to have a flag to refer to.\n * @memberof Mocha\n * @private\n */\n this.isWorker = Boolean(options.isWorker);\n\n this.globalSetup(options.globalSetup)\n .globalTeardown(options.globalTeardown)\n .enableGlobalSetup(options.enableGlobalSetup)\n .enableGlobalTeardown(options.enableGlobalTeardown);\n\n if (\n options.parallel &&\n (typeof options.jobs === 'undefined' || options.jobs > 1)\n ) {\n debug('attempting to enable parallel mode');\n this.parallelMode(true);\n }\n}\n\n/**\n * Enables or disables bailing on the first failure.\n *\n * @public\n * @see [CLI option](../#-bail-b)\n * @param {boolean} [bail=true] - Whether to bail on first error.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.bail = function(bail) {\n this.suite.bail(bail !== false);\n return this;\n};\n\n/**\n * @summary\n * Adds `file` to be loaded for execution.\n *\n * @description\n * Useful for generic setup code that must be included within test suite.\n *\n * @public\n * @see [CLI option](../#-file-filedirectoryglob)\n * @param {string} file - Pathname of file to be loaded.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.addFile = function(file) {\n this.files.push(file);\n return this;\n};\n\n/**\n * Sets reporter to `reporter`, defaults to \"spec\".\n *\n * @public\n * @see [CLI option](../#-reporter-name-r-name)\n * @see [Reporters](../#reporters)\n * @param {String|Function} reporterName - Reporter name or constructor.\n * @param {Object} [reporterOptions] - Options used to configure the reporter.\n * @returns {Mocha} this\n * @chainable\n * @throws {Error} if requested reporter cannot be loaded\n * @example\n *\n * // Use XUnit reporter and direct its output to file\n * mocha.reporter('xunit', { output: '/path/to/testspec.xunit.xml' });\n */\nMocha.prototype.reporter = function(reporterName, reporterOptions) {\n if (typeof reporterName === 'function') {\n this._reporter = reporterName;\n } else {\n reporterName = reporterName || 'spec';\n var reporter;\n // Try to load a built-in reporter.\n if (builtinReporters[reporterName]) {\n reporter = builtinReporters[reporterName];\n }\n // Try to load reporters from process.cwd() and node_modules\n if (!reporter) {\n try {\n reporter = require(reporterName);\n } catch (err) {\n if (err.code === 'MODULE_NOT_FOUND') {\n // Try to load reporters from a path (absolute or relative)\n try {\n reporter = require(path.resolve(utils.cwd(), reporterName));\n } catch (_err) {\n _err.code === 'MODULE_NOT_FOUND'\n ? warn(`'${reporterName}' reporter not found`)\n : warn(\n `'${reporterName}' reporter blew up with error:\\n ${err.stack}`\n );\n }\n } else {\n warn(`'${reporterName}' reporter blew up with error:\\n ${err.stack}`);\n }\n }\n }\n if (!reporter) {\n throw createInvalidReporterError(\n `invalid reporter '${reporterName}'`,\n reporterName\n );\n }\n this._reporter = reporter;\n }\n this.options.reporterOption = reporterOptions;\n // alias option name is used in public reporters xunit/tap/progress\n this.options.reporterOptions = reporterOptions;\n return this;\n};\n\n/**\n * Sets test UI `name`, defaults to \"bdd\".\n *\n * @public\n * @see [CLI option](../#-ui-name-u-name)\n * @see [Interface DSLs](../#interfaces)\n * @param {string|Function} [ui=bdd] - Interface name or class.\n * @returns {Mocha} this\n * @chainable\n * @throws {Error} if requested interface cannot be loaded\n */\nMocha.prototype.ui = function(ui) {\n var bindInterface;\n if (typeof ui === 'function') {\n bindInterface = ui;\n } else {\n ui = ui || 'bdd';\n bindInterface = exports.interfaces[ui];\n if (!bindInterface) {\n try {\n bindInterface = require(ui);\n } catch (err) {\n throw createInvalidInterfaceError(`invalid interface '${ui}'`, ui);\n }\n }\n }\n bindInterface(this.suite);\n\n this.suite.on(EVENT_FILE_PRE_REQUIRE, function(context) {\n currentContext = context;\n });\n\n return this;\n};\n\n/**\n * Loads `files` prior to execution. Does not support ES Modules.\n *\n * @description\n * The implementation relies on Node's `require` to execute\n * the test interface functions and will be subject to its cache.\n * Supports only CommonJS modules. To load ES modules, use Mocha#loadFilesAsync.\n *\n * @private\n * @see {@link Mocha#addFile}\n * @see {@link Mocha#run}\n * @see {@link Mocha#unloadFiles}\n * @see {@link Mocha#loadFilesAsync}\n * @param {Function} [fn] - Callback invoked upon completion.\n */\nMocha.prototype.loadFiles = function(fn) {\n var self = this;\n var suite = this.suite;\n this.files.forEach(function(file) {\n file = path.resolve(file);\n suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self);\n suite.emit(EVENT_FILE_REQUIRE, require(file), file, self);\n suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self);\n });\n fn && fn();\n};\n\n/**\n * Loads `files` prior to execution. Supports Node ES Modules.\n *\n * @description\n * The implementation relies on Node's `require` and `import` to execute\n * the test interface functions and will be subject to its cache.\n * Supports both CJS and ESM modules.\n *\n * @public\n * @see {@link Mocha#addFile}\n * @see {@link Mocha#run}\n * @see {@link Mocha#unloadFiles}\n * @returns {Promise}\n * @example\n *\n * // loads ESM (and CJS) test files asynchronously, then runs root suite\n * mocha.loadFilesAsync()\n * .then(() => mocha.run(failures => process.exitCode = failures ? 1 : 0))\n * .catch(() => process.exitCode = 1);\n */\nMocha.prototype.loadFilesAsync = function() {\n var self = this;\n var suite = this.suite;\n this.lazyLoadFiles(true);\n\n if (!esmUtils) {\n return new Promise(function(resolve) {\n self.loadFiles(resolve);\n });\n }\n\n return esmUtils.loadFilesAsync(\n this.files,\n function(file) {\n suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self);\n },\n function(file, resultModule) {\n suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self);\n suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self);\n }\n );\n};\n\n/**\n * Removes a previously loaded file from Node's `require` cache.\n *\n * @private\n * @static\n * @see {@link Mocha#unloadFiles}\n * @param {string} file - Pathname of file to be unloaded.\n */\nMocha.unloadFile = function(file) {\n if (utils.isBrowser()) {\n throw createUnsupportedError(\n 'unloadFile() is only suported in a Node.js environment'\n );\n }\n return require('./nodejs/file-unloader').unloadFile(file);\n};\n\n/**\n * Unloads `files` from Node's `require` cache.\n *\n * @description\n * This allows required files to be \"freshly\" reloaded, providing the ability\n * to reuse a Mocha instance programmatically.\n * Note: does not clear ESM module files from the cache\n *\n * <strong>Intended for consumers &mdash; not used internally</strong>\n *\n * @public\n * @see {@link Mocha#run}\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.unloadFiles = function() {\n if (this._state === mochaStates.DISPOSED) {\n throw createMochaInstanceAlreadyDisposedError(\n 'Mocha instance is already disposed, it cannot be used again.',\n this._cleanReferencesAfterRun,\n this\n );\n }\n\n this.files.forEach(function(file) {\n Mocha.unloadFile(file);\n });\n this._state = mochaStates.INIT;\n return this;\n};\n\n/**\n * Sets `grep` filter after escaping RegExp special characters.\n *\n * @public\n * @see {@link Mocha#grep}\n * @param {string} str - Value to be converted to a regexp.\n * @returns {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title begins with `\"foo\"` followed by a period\n * mocha.fgrep('foo.');\n */\nMocha.prototype.fgrep = function(str) {\n if (!str) {\n return this;\n }\n return this.grep(new RegExp(escapeRe(str)));\n};\n\n/**\n * @summary\n * Sets `grep` filter used to select specific tests for execution.\n *\n * @description\n * If `re` is a regexp-like string, it will be converted to regexp.\n * The regexp is tested against the full title of each test (i.e., the\n * name of the test preceded by titles of each its ancestral suites).\n * As such, using an <em>exact-match</em> fixed pattern against the\n * test name itself will not yield any matches.\n * <br>\n * <strong>Previous filter value will be overwritten on each call!</strong>\n *\n * @public\n * @see [CLI option](../#-grep-regexp-g-regexp)\n * @see {@link Mocha#fgrep}\n * @see {@link Mocha#invert}\n * @param {RegExp|String} re - Regular expression used to select tests.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title contains `\"match\"`, ignoring case\n * mocha.grep(/match/i);\n * @example\n *\n * // Same as above but with regexp-like string argument\n * mocha.grep('/match/i');\n * @example\n *\n * // ## Anti-example\n * // Given embedded test `it('only-this-test')`...\n * mocha.grep('/^only-this-test$/'); // NO! Use `.only()` to do this!\n */\nMocha.prototype.grep = function(re) {\n if (utils.isString(re)) {\n // extract args if it's regex-like, i.e: [string, pattern, flag]\n var arg = re.match(/^\\/(.*)\\/(g|i|)$|.*/);\n this.options.grep = new RegExp(arg[1] || arg[0], arg[2]);\n } else {\n this.options.grep = re;\n }\n return this;\n};\n\n/**\n * Inverts `grep` matches.\n *\n * @public\n * @see {@link Mocha#grep}\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title does *not* contain `\"match\"`, ignoring case\n * mocha.grep(/match/i).invert();\n */\nMocha.prototype.invert = function() {\n this.options.invert = true;\n return this;\n};\n\n/**\n * Enables or disables checking for global variables leaked while running tests.\n *\n * @public\n * @see [CLI option](../#-check-leaks)\n * @param {boolean} [checkLeaks=true] - Whether to check for global variable leaks.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.checkLeaks = function(checkLeaks) {\n this.options.checkLeaks = checkLeaks !== false;\n return this;\n};\n\n/**\n * Enables or disables whether or not to dispose after each test run.\n * Disable this to ensure you can run the test suite multiple times.\n * If disabled, be sure to dispose mocha when you're done to prevent memory leaks.\n * @public\n * @see {@link Mocha#dispose}\n * @param {boolean} cleanReferencesAfterRun\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.cleanReferencesAfterRun = function(cleanReferencesAfterRun) {\n this._cleanReferencesAfterRun = cleanReferencesAfterRun !== false;\n return this;\n};\n\n/**\n * Manually dispose this mocha instance. Mark this instance as `disposed` and unable to run more tests.\n * It also removes function references to tests functions and hooks, so variables trapped in closures can be cleaned by the garbage collector.\n * @public\n */\nMocha.prototype.dispose = function() {\n if (this._state === mochaStates.RUNNING) {\n throw createMochaInstanceAlreadyRunningError(\n 'Cannot dispose while the mocha instance is still running tests.'\n );\n }\n this.unloadFiles();\n this._previousRunner && this._previousRunner.dispose();\n this.suite.dispose();\n this._state = mochaStates.DISPOSED;\n};\n\n/**\n * Displays full stack trace upon test failure.\n *\n * @public\n * @see [CLI option](../#-full-trace)\n * @param {boolean} [fullTrace=true] - Whether to print full stacktrace upon failure.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.fullTrace = function(fullTrace) {\n this.options.fullTrace = fullTrace !== false;\n return this;\n};\n\n/**\n * Enables desktop notification support if prerequisite software installed.\n *\n * @public\n * @see [CLI option](../#-growl-g)\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.growl = function() {\n this.options.growl = this.isGrowlCapable();\n if (!this.options.growl) {\n var detail = utils.isBrowser()\n ? 'notification support not available in this browser...'\n : 'notification support prerequisites not installed...';\n console.error(detail + ' cannot enable!');\n }\n return this;\n};\n\n/**\n * @summary\n * Determines if Growl support seems likely.\n *\n * @description\n * <strong>Not available when run in browser.</strong>\n *\n * @private\n * @see {@link Growl#isCapable}\n * @see {@link Mocha#growl}\n * @return {boolean} whether Growl support can be expected\n */\nMocha.prototype.isGrowlCapable = growl.isCapable;\n\n/**\n * Implements desktop notifications using a pseudo-reporter.\n *\n * @private\n * @see {@link Mocha#growl}\n * @see {@link Growl#notify}\n * @param {Runner} runner - Runner instance.\n */\nMocha.prototype._growl = growl.notify;\n\n/**\n * Specifies whitelist of variable names to be expected in global scope.\n *\n * @public\n * @see [CLI option](../#-global-variable-name)\n * @see {@link Mocha#checkLeaks}\n * @param {String[]|String} global - Accepted global variable name(s).\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Specify variables to be expected in global scope\n * mocha.global(['jQuery', 'MyLib']);\n */\nMocha.prototype.global = function(global) {\n this.options.global = (this.options.global || [])\n .concat(global)\n .filter(Boolean)\n .filter(function(elt, idx, arr) {\n return arr.indexOf(elt) === idx;\n });\n return this;\n};\n// for backwards compability, 'globals' is an alias of 'global'\nMocha.prototype.globals = Mocha.prototype.global;\n\n/**\n * Enables or disables TTY color output by screen-oriented reporters.\n *\n * @public\n * @see [CLI option](../#-color-c-colors)\n * @param {boolean} [color=true] - Whether to enable color output.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.color = function(color) {\n this.options.color = color !== false;\n return this;\n};\n\n/**\n * Enables or disables reporter to use inline diffs (rather than +/-)\n * in test failure output.\n *\n * @public\n * @see [CLI option](../#-inline-diffs)\n * @param {boolean} [inlineDiffs=true] - Whether to use inline diffs.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.inlineDiffs = function(inlineDiffs) {\n this.options.inlineDiffs = inlineDiffs !== false;\n return this;\n};\n\n/**\n * Enables or disables reporter to include diff in test failure output.\n *\n * @public\n * @see [CLI option](../#-diff)\n * @param {boolean} [diff=true] - Whether to show diff on failure.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.diff = function(diff) {\n this.options.diff = diff !== false;\n return this;\n};\n\n/**\n * Enables or disables running tests in dry-run mode.\n *\n * @public\n * @see [CLI option](../#-dry-run)\n * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.dryRun = function(dryRun) {\n this.options.dryRun = dryRun !== false;\n return this;\n};\n\n/**\n * @summary\n * Sets timeout threshold value.\n *\n * @description\n * A string argument can use shorthand (such as \"2s\") and will be converted.\n * If the value is `0`, timeouts will be disabled.\n *\n * @public\n * @see [CLI option](../#-timeout-ms-t-ms)\n * @see [Timeouts](../#timeouts)\n * @param {number|string} msecs - Timeout threshold value.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Sets timeout to one second\n * mocha.timeout(1000);\n * @example\n *\n * // Same as above but using string argument\n * mocha.timeout('1s');\n */\nMocha.prototype.timeout = function(msecs) {\n this.suite.timeout(msecs);\n return this;\n};\n\n/**\n * Sets the number of times to retry failed tests.\n *\n * @public\n * @see [CLI option](../#-retries-n)\n * @see [Retry Tests](../#retry-tests)\n * @param {number} retry - Number of times to retry failed tests.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Allow any failed test to retry one more time\n * mocha.retries(1);\n */\nMocha.prototype.retries = function(retry) {\n this.suite.retries(retry);\n return this;\n};\n\n/**\n * Sets slowness threshold value.\n *\n * @public\n * @see [CLI option](../#-slow-ms-s-ms)\n * @param {number} msecs - Slowness threshold value.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Sets \"slow\" threshold to half a second\n * mocha.slow(500);\n * @example\n *\n * // Same as above but using string argument\n * mocha.slow('0.5s');\n */\nMocha.prototype.slow = function(msecs) {\n this.suite.slow(msecs);\n return this;\n};\n\n/**\n * Forces all tests to either accept a `done` callback or return a promise.\n *\n * @public\n * @see [CLI option](../#-async-only-a)\n * @param {boolean} [asyncOnly=true] - Whether to force `done` callback or promise.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.asyncOnly = function(asyncOnly) {\n this.options.asyncOnly = asyncOnly !== false;\n return this;\n};\n\n/**\n * Disables syntax highlighting (in browser).\n *\n * @public\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.noHighlighting = function() {\n this.options.noHighlighting = true;\n return this;\n};\n\n/**\n * Enables or disables uncaught errors to propagate.\n *\n * @public\n * @see [CLI option](../#-allow-uncaught)\n * @param {boolean} [allowUncaught=true] - Whether to propagate uncaught errors.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.allowUncaught = function(allowUncaught) {\n this.options.allowUncaught = allowUncaught !== false;\n return this;\n};\n\n/**\n * @summary\n * Delays root suite execution.\n *\n * @description\n * Used to perform async operations before any suites are run.\n *\n * @public\n * @see [delayed root suite](../#delayed-root-suite)\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.delay = function delay() {\n this.options.delay = true;\n return this;\n};\n\n/**\n * Causes tests marked `only` to fail the suite.\n *\n * @public\n * @see [CLI option](../#-forbid-only)\n * @param {boolean} [forbidOnly=true] - Whether tests marked `only` fail the suite.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.forbidOnly = function(forbidOnly) {\n this.options.forbidOnly = forbidOnly !== false;\n return this;\n};\n\n/**\n * Causes pending tests and tests marked `skip` to fail the suite.\n *\n * @public\n * @see [CLI option](../#-forbid-pending)\n * @param {boolean} [forbidPending=true] - Whether pending tests fail the suite.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.forbidPending = function(forbidPending) {\n this.options.forbidPending = forbidPending !== false;\n return this;\n};\n\n/**\n * Throws an error if mocha is in the wrong state to be able to transition to a \"running\" state.\n * @private\n */\nMocha.prototype._guardRunningStateTransition = function() {\n if (this._state === mochaStates.RUNNING) {\n throw createMochaInstanceAlreadyRunningError(\n 'Mocha instance is currently running tests, cannot start a next test run until this one is done',\n this\n );\n }\n if (\n this._state === mochaStates.DISPOSED ||\n this._state === mochaStates.REFERENCES_CLEANED\n ) {\n throw createMochaInstanceAlreadyDisposedError(\n 'Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.',\n this._cleanReferencesAfterRun,\n this\n );\n }\n};\n\n/**\n * Mocha version as specified by \"package.json\".\n *\n * @name Mocha#version\n * @type string\n * @readonly\n */\nObject.defineProperty(Mocha.prototype, 'version', {\n value: require('../package.json').version,\n configurable: false,\n enumerable: true,\n writable: false\n});\n\n/**\n * Callback to be invoked when test execution is complete.\n *\n * @private\n * @callback DoneCB\n * @param {number} failures - Number of failures that occurred.\n */\n\n/**\n * Runs root suite and invokes `fn()` when complete.\n *\n * @description\n * To run tests multiple times (or to run tests in files that are\n * already in the `require` cache), make sure to clear them from\n * the cache first!\n *\n * @public\n * @see {@link Mocha#unloadFiles}\n * @see {@link Runner#run}\n * @param {DoneCB} [fn] - Callback invoked when test execution completed.\n * @returns {Runner} runner instance\n * @example\n *\n * // exit with non-zero status if there were test failures\n * mocha.run(failures => process.exitCode = failures ? 1 : 0);\n */\nMocha.prototype.run = function(fn) {\n this._guardRunningStateTransition();\n this._state = mochaStates.RUNNING;\n if (this._previousRunner) {\n this._previousRunner.dispose();\n this.suite.reset();\n }\n if (this.files.length && !this._lazyLoadFiles) {\n this.loadFiles();\n }\n var suite = this.suite;\n var options = this.options;\n options.files = this.files;\n const runner = new this._runnerClass(suite, {\n delay: options.delay,\n dryRun: options.dryRun,\n cleanReferencesAfterRun: this._cleanReferencesAfterRun\n });\n createStatsCollector(runner);\n var reporter = new this._reporter(runner, options);\n runner.checkLeaks = options.checkLeaks === true;\n runner.fullStackTrace = options.fullTrace;\n runner.asyncOnly = options.asyncOnly;\n runner.allowUncaught = options.allowUncaught;\n runner.forbidOnly = options.forbidOnly;\n runner.forbidPending = options.forbidPending;\n if (options.grep) {\n runner.grep(options.grep, options.invert);\n }\n if (options.global) {\n runner.globals(options.global);\n }\n if (options.growl) {\n this._growl(runner);\n }\n if (options.color !== undefined) {\n exports.reporters.Base.useColors = options.color;\n }\n exports.reporters.Base.inlineDiffs = options.inlineDiffs;\n exports.reporters.Base.hideDiff = !options.diff;\n\n const done = failures => {\n this._previousRunner = runner;\n this._state = this._cleanReferencesAfterRun\n ? mochaStates.REFERENCES_CLEANED\n : mochaStates.INIT;\n fn = fn || utils.noop;\n if (typeof reporter.done === 'function') {\n reporter.done(failures, fn);\n } else {\n fn(failures);\n }\n };\n\n const runAsync = async runner => {\n const context =\n this.options.enableGlobalSetup && this.hasGlobalSetupFixtures()\n ? await this.runGlobalSetup(runner)\n : {};\n const failureCount = await runner.runAsync({\n files: this.files,\n options\n });\n if (this.options.enableGlobalTeardown && this.hasGlobalTeardownFixtures()) {\n await this.runGlobalTeardown(runner, {context});\n }\n return failureCount;\n };\n\n // no \"catch\" here is intentional. errors coming out of\n // Runner#run are considered uncaught/unhandled and caught\n // by the `process` event listeners.\n // also: returning anything other than `runner` would be a breaking\n // change\n runAsync(runner).then(done);\n\n return runner;\n};\n\n/**\n * Assigns hooks to the root suite\n * @param {MochaRootHookObject} [hooks] - Hooks to assign to root suite\n * @chainable\n */\nMocha.prototype.rootHooks = function rootHooks({\n beforeAll = [],\n beforeEach = [],\n afterAll = [],\n afterEach = []\n} = {}) {\n beforeAll = utils.castArray(beforeAll);\n beforeEach = utils.castArray(beforeEach);\n afterAll = utils.castArray(afterAll);\n afterEach = utils.castArray(afterEach);\n beforeAll.forEach(hook => {\n this.suite.beforeAll(hook);\n });\n beforeEach.forEach(hook => {\n this.suite.beforeEach(hook);\n });\n afterAll.forEach(hook => {\n this.suite.afterAll(hook);\n });\n afterEach.forEach(hook => {\n this.suite.afterEach(hook);\n });\n return this;\n};\n\n/**\n * Toggles parallel mode.\n *\n * Must be run before calling {@link Mocha#run}. Changes the `Runner` class to\n * use; also enables lazy file loading if not already done so.\n *\n * Warning: when passed `false` and lazy loading has been enabled _via any means_ (including calling `parallelMode(true)`), this method will _not_ disable lazy loading. Lazy loading is a prerequisite for parallel\n * mode, but parallel mode is _not_ a prerequisite for lazy loading!\n * @param {boolean} [enable] - If `true`, enable; otherwise disable.\n * @throws If run in browser\n * @throws If Mocha not in `INIT` state\n * @returns {Mocha}\n * @chainable\n * @public\n */\nMocha.prototype.parallelMode = function parallelMode(enable = true) {\n if (utils.isBrowser()) {\n throw createUnsupportedError('parallel mode is only supported in Node.js');\n }\n const parallel = Boolean(enable);\n if (\n parallel === this.options.parallel &&\n this._lazyLoadFiles &&\n this._runnerClass !== exports.Runner\n ) {\n return this;\n }\n if (this._state !== mochaStates.INIT) {\n throw createUnsupportedError(\n 'cannot change parallel mode after having called run()'\n );\n }\n this.options.parallel = parallel;\n\n // swap Runner class\n this._runnerClass = parallel\n ? require('./nodejs/parallel-buffered-runner')\n : exports.Runner;\n\n // lazyLoadFiles may have been set `true` otherwise (for ESM loading),\n // so keep `true` if so.\n return this.lazyLoadFiles(this._lazyLoadFiles || parallel);\n};\n\n/**\n * Disables implicit call to {@link Mocha#loadFiles} in {@link Mocha#run}. This\n * setting is used by watch mode, parallel mode, and for loading ESM files.\n * @todo This should throw if we've already loaded files; such behavior\n * necessitates adding a new state.\n * @param {boolean} [enable] - If `true`, disable eager loading of files in\n * {@link Mocha#run}\n * @chainable\n * @public\n */\nMocha.prototype.lazyLoadFiles = function lazyLoadFiles(enable) {\n this._lazyLoadFiles = enable === true;\n debug('set lazy load to %s', enable);\n return this;\n};\n\n/**\n * Configures one or more global setup fixtures.\n *\n * If given no parameters, _unsets_ any previously-set fixtures.\n * @chainable\n * @public\n * @param {MochaGlobalFixture|MochaGlobalFixture[]} [setupFns] - Global setup fixture(s)\n * @returns {Mocha}\n */\nMocha.prototype.globalSetup = function globalSetup(setupFns = []) {\n setupFns = utils.castArray(setupFns);\n this.options.globalSetup = setupFns;\n debug('configured %d global setup functions', setupFns.length);\n return this;\n};\n\n/**\n * Configures one or more global teardown fixtures.\n *\n * If given no parameters, _unsets_ any previously-set fixtures.\n * @chainable\n * @public\n * @param {MochaGlobalFixture|MochaGlobalFixture[]} [teardownFns] - Global teardown fixture(s)\n * @returns {Mocha}\n */\nMocha.prototype.globalTeardown = function globalTeardown(teardownFns = []) {\n teardownFns = utils.castArray(teardownFns);\n this.options.globalTeardown = teardownFns;\n debug('configured %d global teardown functions', teardownFns.length);\n return this;\n};\n\n/**\n * Run any global setup fixtures sequentially, if any.\n *\n * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalSetup` option is `false`; see {@link Mocha#enableGlobalSetup}.\n *\n * The context object this function resolves with should be consumed by {@link Mocha#runGlobalTeardown}.\n * @param {object} [context] - Context object if already have one\n * @public\n * @returns {Promise<object>} Context object\n */\nMocha.prototype.runGlobalSetup = async function runGlobalSetup(context = {}) {\n const {globalSetup} = this.options;\n if (globalSetup && globalSetup.length) {\n debug('run(): global setup starting');\n await this._runGlobalFixtures(globalSetup, context);\n debug('run(): global setup complete');\n }\n return context;\n};\n\n/**\n * Run any global teardown fixtures sequentially, if any.\n *\n * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalTeardown` option is `false`; see {@link Mocha#enableGlobalTeardown}.\n *\n * Should be called with context object returned by {@link Mocha#runGlobalSetup}, if applicable.\n * @param {object} [context] - Context object if already have one\n * @public\n * @returns {Promise<object>} Context object\n */\nMocha.prototype.runGlobalTeardown = async function runGlobalTeardown(\n context = {}\n) {\n const {globalTeardown} = this.options;\n if (globalTeardown && globalTeardown.length) {\n debug('run(): global teardown starting');\n await this._runGlobalFixtures(globalTeardown, context);\n }\n debug('run(): global teardown complete');\n return context;\n};\n\n/**\n * Run global fixtures sequentially with context `context`\n * @private\n * @param {MochaGlobalFixture[]} [fixtureFns] - Fixtures to run\n * @param {object} [context] - context object\n * @returns {Promise<object>} context object\n */\nMocha.prototype._runGlobalFixtures = async function _runGlobalFixtures(\n fixtureFns = [],\n context = {}\n) {\n for await (const fixtureFn of fixtureFns) {\n await fixtureFn.call(context);\n }\n return context;\n};\n\n/**\n * Toggle execution of any global setup fixture(s)\n *\n * @chainable\n * @public\n * @param {boolean } [enabled=true] - If `false`, do not run global setup fixture\n * @returns {Mocha}\n */\nMocha.prototype.enableGlobalSetup = function enableGlobalSetup(enabled = true) {\n this.options.enableGlobalSetup = Boolean(enabled);\n return this;\n};\n\n/**\n * Toggle execution of any global teardown fixture(s)\n *\n * @chainable\n * @public\n * @param {boolean } [enabled=true] - If `false`, do not run global teardown fixture\n * @returns {Mocha}\n */\nMocha.prototype.enableGlobalTeardown = function enableGlobalTeardown(\n enabled = true\n) {\n this.options.enableGlobalTeardown = Boolean(enabled);\n return this;\n};\n\n/**\n * Returns `true` if one or more global setup fixtures have been supplied.\n * @public\n * @returns {boolean}\n */\nMocha.prototype.hasGlobalSetupFixtures = function hasGlobalSetupFixtures() {\n return Boolean(this.options.globalSetup.length);\n};\n\n/**\n * Returns `true` if one or more global teardown fixtures have been supplied.\n * @public\n * @returns {boolean}\n */\nMocha.prototype.hasGlobalTeardownFixtures = function hasGlobalTeardownFixtures() {\n return Boolean(this.options.globalTeardown.length);\n};\n\n/**\n * An alternative way to define root hooks that works with parallel runs.\n * @typedef {Object} MochaRootHookObject\n * @property {Function|Function[]} [beforeAll] - \"Before all\" hook(s)\n * @property {Function|Function[]} [beforeEach] - \"Before each\" hook(s)\n * @property {Function|Function[]} [afterAll] - \"After all\" hook(s)\n * @property {Function|Function[]} [afterEach] - \"After each\" hook(s)\n */\n\n/**\n * An function that returns a {@link MochaRootHookObject}, either sync or async.\n @callback MochaRootHookFunction\n * @returns {MochaRootHookObject|Promise<MochaRootHookObject>}\n */\n\n/**\n * A function that's invoked _once_ which is either sync or async.\n * Can be a \"teardown\" or \"setup\". These will all share the same context.\n * @callback MochaGlobalFixture\n * @returns {void|Promise<void>}\n */\n\n/**\n * An object making up all necessary parts of a plugin loader and aggregator\n * @typedef {Object} PluginDefinition\n * @property {string} exportName - Named export to use\n * @property {string} [optionName] - Option name for Mocha constructor (use `exportName` if omitted)\n * @property {PluginValidator} [validate] - Validator function\n * @property {PluginFinalizer} [finalize] - Finalizer/aggregator function\n */\n\n/**\n * A (sync) function to assert a user-supplied plugin implementation is valid.\n *\n * Defined in a {@link PluginDefinition}.\n\n * @callback PluginValidator\n * @param {*} value - Value to check\n * @this {PluginDefinition}\n * @returns {void}\n */\n\n/**\n * A function to finalize plugins impls of a particular ilk\n * @callback PluginFinalizer\n * @param {Array<*>} impls - User-supplied implementations\n * @returns {Promise<*>|*}\n */\n","'use strict';\n\n/* eslint no-unused-vars: off */\n/* eslint-env commonjs */\n\n/**\n * Shim process.stdout.\n */\n\nprocess.stdout = require('browser-stdout')({label: false});\n\nvar parseQuery = require('./lib/browser/parse-query');\nvar highlightTags = require('./lib/browser/highlight-tags');\nvar Mocha = require('./lib/mocha');\n\n/**\n * Create a Mocha instance.\n *\n * @return {undefined}\n */\n\nvar mocha = new Mocha({reporter: 'html'});\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\n\nvar Date = global.Date;\nvar setTimeout = global.setTimeout;\nvar setInterval = global.setInterval;\nvar clearTimeout = global.clearTimeout;\nvar clearInterval = global.clearInterval;\n\nvar uncaughtExceptionHandlers = [];\n\nvar originalOnerrorHandler = global.onerror;\n\n/**\n * Remove uncaughtException listener.\n * Revert to original onerror handler if previously defined.\n */\n\nprocess.removeListener = function(e, fn) {\n if (e === 'uncaughtException') {\n if (originalOnerrorHandler) {\n global.onerror = originalOnerrorHandler;\n } else {\n global.onerror = function() {};\n }\n var i = uncaughtExceptionHandlers.indexOf(fn);\n if (i !== -1) {\n uncaughtExceptionHandlers.splice(i, 1);\n }\n }\n};\n\n/**\n * Implements listenerCount for 'uncaughtException'.\n */\n\nprocess.listenerCount = function(name) {\n if (name === 'uncaughtException') {\n return uncaughtExceptionHandlers.length;\n }\n return 0;\n};\n\n/**\n * Implements uncaughtException listener.\n */\n\nprocess.on = function(e, fn) {\n if (e === 'uncaughtException') {\n global.onerror = function(err, url, line) {\n fn(new Error(err + ' (' + url + ':' + line + ')'));\n return !mocha.options.allowUncaught;\n };\n uncaughtExceptionHandlers.push(fn);\n }\n};\n\nprocess.listeners = function(e) {\n if (e === 'uncaughtException') {\n return uncaughtExceptionHandlers;\n }\n return [];\n};\n\n// The BDD UI is registered by default, but no UI will be functional in the\n// browser without an explicit call to the overridden `mocha.ui` (see below).\n// Ensure that this default UI does not expose its methods to the global scope.\nmocha.suite.removeAllListeners('pre-require');\n\nvar immediateQueue = [];\nvar immediateTimeout;\n\nfunction timeslice() {\n var immediateStart = new Date().getTime();\n while (immediateQueue.length && new Date().getTime() - immediateStart < 100) {\n immediateQueue.shift()();\n }\n if (immediateQueue.length) {\n immediateTimeout = setTimeout(timeslice, 0);\n } else {\n immediateTimeout = null;\n }\n}\n\n/**\n * High-performance override of Runner.immediately.\n */\n\nMocha.Runner.immediately = function(callback) {\n immediateQueue.push(callback);\n if (!immediateTimeout) {\n immediateTimeout = setTimeout(timeslice, 0);\n }\n};\n\n/**\n * Function to allow assertion libraries to throw errors directly into mocha.\n * This is useful when running tests in a browser because window.onerror will\n * only receive the 'message' attribute of the Error.\n */\nmocha.throwError = function(err) {\n uncaughtExceptionHandlers.forEach(function(fn) {\n fn(err);\n });\n throw err;\n};\n\n/**\n * Override ui to ensure that the ui functions are initialized.\n * Normally this would happen in Mocha.prototype.loadFiles.\n */\n\nmocha.ui = function(ui) {\n Mocha.prototype.ui.call(this, ui);\n this.suite.emit('pre-require', global, null, this);\n return this;\n};\n\n/**\n * Setup mocha with the given setting options.\n */\n\nmocha.setup = function(opts) {\n if (typeof opts === 'string') {\n opts = {ui: opts};\n }\n if (opts.delay === true) {\n this.delay();\n }\n var self = this;\n Object.keys(opts)\n .filter(function(opt) {\n return opt !== 'delay';\n })\n .forEach(function(opt) {\n if (Object.prototype.hasOwnProperty.call(opts, opt)) {\n self[opt](opts[opt]);\n }\n });\n return this;\n};\n\n/**\n * Run mocha, returning the Runner.\n */\n\nmocha.run = function(fn) {\n var options = mocha.options;\n mocha.globals('location');\n\n var query = parseQuery(global.location.search || '');\n if (query.grep) {\n mocha.grep(query.grep);\n }\n if (query.fgrep) {\n mocha.fgrep(query.fgrep);\n }\n if (query.invert) {\n mocha.invert();\n }\n\n return Mocha.prototype.run.call(mocha, function(err) {\n // The DOM Document is not available in Web Workers.\n var document = global.document;\n if (\n document &&\n document.getElementById('mocha') &&\n options.noHighlighting !== true\n ) {\n highlightTags('code');\n }\n if (fn) {\n fn(err);\n }\n });\n};\n\n/**\n * Expose the process shim.\n * https://github.com/mochajs/mocha/pull/916\n */\n\nMocha.process = process;\n\n/**\n * Expose mocha.\n */\n\nglobal.Mocha = Mocha;\nglobal.mocha = mocha;\n\n// this allows test/acceptance/required-tokens.js to pass; thus,\n// you can now do `const describe = require('mocha').describe` in a\n// browser context (assuming browserification). should fix #880\nmodule.exports = Object.assign(mocha, global);\n"],"names":["global","$propertyIsEnumerable","getOwnPropertyDescriptor","toString","classof","IndexedObject","isObject","hasOwnProperty","document","DESCRIPTORS","createElement","$getOwnPropertyDescriptor","IE8_DOM_DEFINE","has","propertyIsEnumerableModule","$defineProperty","definePropertyModule","store","WeakMap","keys","set","get","NATIVE_WEAK_MAP","shared","hiddenKeys","objectHas","InternalStateModule","aFunction","path","floor","min","max","createMethod","indexOf","require$$0","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","normalize","isForced","process","versions","version","userAgent","V8_VERSION","NATIVE_SYMBOL","WellKnownSymbolsStore","Symbol","USE_SYMBOL_AS_UID","SPECIES","isArray","bind","$filter","HAS_SPECIES_SUPPORT","$","MAX_SAFE_INTEGER","defineProperty","assign","FAILS_ON_PRIMITIVES","nativeKeys","UNSUPPORTED_Y","stickyHelpers","exec","RegExpPrototype","fixRegExpWellKnownSymbolLogic","regExpExec","$forEach","STRICT_METHOD","COLLECTION_NAME","DOMIterables","Collection","CollectionPrototype","forEach","FORCED","self","window","defaultSetTimout","Error","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","setTimeout","clearTimeout","runTimeout","fun","e","call","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","i","push","Item","array","prototype","apply","title","platform","browser","env","argv","release","config","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","hrtime","previousTimestamp","clocktime","seconds","Math","nanoseconds","startTime","uptime","currentTime","dif","TO_STRING_TAG","test","TO_STRING_TAG_SUPPORT","flags","NAME","IE_PROTO","ObjectPrototype","CORRECT_PROTOTYPE_GETTER","nativeGetPrototypeOf","domain","EventHandlers","Object","create","EventEmitter","init","usingDomains","undefined","_events","_maxListeners","defaultMaxListeners","active","getPrototypeOf","_eventsCount","setMaxListeners","n","isNaN","TypeError","$getMaxListeners","that","getMaxListeners","emitNone","handler","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","type","er","events","doError","error","domainEmitter","domainThrown","err","context","_addListener","target","listener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","emitWarning","console","warn","log","prependListener","_onceWrap","fired","g","prependOnceListener","list","position","originalListener","spliceOne","key","evlistener","ret","unwrapListeners","listenerCount","eventNames","Reflect","index","k","pop","arr","copy","$map","setPrototypeOf","PROTOTYPE","html","defineProperties","getOwnPropertyNames","require$$1","require$$2","require$$3","j","nativeGetOwnPropertyDescriptor","$getOwnPropertyNames","MATCH","isRegExp","getFlags","charAt","callRegExpExec","wrappedWellKnownSymbolModule","setInternalState","getInternalState","getOwnPropertyNamesExternal","nativeObjectCreate","isSymbol","ArrayPrototype","fill","$includes","ITERATOR","BUGGY_SAFARI_ITERATORS","returnThis","IteratorPrototype","Iterators","IteratorsCore","pow","ARRAY_BUFFER","NativeArrayBuffer","RangeError","IEEE754","NATIVE_ARRAY_BUFFER","ArrayBuffer","arrayBufferModule","correctIsRegExpLogic","notARegExp","forcedStringTrimMethod","Int8Array","NATIVE_ARRAY_BUFFER_VIEWS","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","ArrayBufferModule","ArrayBufferViewCore","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","createTypedArrayConstructor","$copyWithin","$fill","fromSpeciesAndList","Uint8Array","ArrayIterators","$lastIndexOf","$slice","UA","nativeSort","STABLE_SORT","V8","FF","IE_OR_EDGE","WEBKIT","getSortCompare","internalSort","lookup","revLookup","Arr","inited","code","charCodeAt","toByteArray","b64","l","tmp","placeHolders","L","tripletToBase64","num","encodeChunk","uint8","start","end","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","write","value","c","rt","abs","LN2","INSPECT_MAX_BYTES","Buffer","TYPED_ARRAY_SUPPORT","kMaxLength","createBuffer","__proto__","arg","encodingOrOffset","allocUnsafe","from","poolSize","_augment","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","encoding","checked","allocUnsafeSlow","string","isEncoding","byteLength","actual","slice","fromArrayLike","byteOffset","obj","internalIsBuffer","isnan","data","isBuffer","b","_isBuffer","compare","a","x","y","String","toLowerCase","pos","buf","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","swap16","swap32","swap64","equals","inspect","str","match","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","includes","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","isFinite","toJSON","_arr","base64","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","out","toHex","bytes","newBuf","subarray","sliceLen","checkOffset","ext","readUIntLE","noAssert","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","ieee754","readFloatBE","readDoubleLE","readDoubleBE","checkInt","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","objectWriteUInt16","littleEndian","writeUInt16LE","writeUInt16BE","objectWriteUInt32","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","checkIEEE754","writeFloat","writeFloatLE","writeFloatBE","writeDouble","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","replace","trim","units","leadSurrogate","byteArray","hi","lo","src","dst","isFastBuffer","isSlowBuffer","constructor","inherits","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor","formatRegExp","format","f","isString","objects","JSON","stringify","_","isNull","deprecate","fn","msg","isUndefined","deprecated","debugs","debugEnviron","debuglog","toUpperCase","RegExp","pid","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","idx","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","isError","formatError","isDate","base","braces","toUTCString","formatArray","map","formatProperty","reduceToSingleString","simple","isNumber","desc","split","line","reduce","prev","cur","numLinesEst","ar","isNullOrUndefined","re","objectToString","isPrimitive","maybeBuf","Buffer.isBuffer","o","pad","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","add","prop","BufferList","head","tail","v","entry","next","shift","clear","p","isBufferEncoding","assertEncoding","StringDecoder","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","substring","cr","enc","Readable","ReadableState","debug","event","options","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","chunk","state","readableAddChunk","isPaused","addToFront","chunkInvalid","onEofChunk","_e","skipAdd","emitReadable","maybeReadMore","needMoreData","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","pipe","dest","pipeOpts","doEnd","endFn","onend","cleanup","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","_writableState","needDrain","increasedAwaitDrain","pause","unpipe","resume","dests","_i","splice","ev","nReadingNextTick","resume_","wrap","paused","method","_fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","endReadableNT","xs","Writable","WritableState","nop","WriteReq","cb","callback","getBuffer","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","CorkedRequest","writableStateGetBuffer","current","_write","writev","_writev","writeAfterEnd","validChunk","valid","writeOrBuffer","cork","uncork","clearBuffer","setDefaultEncoding","decodeChunk","last","doWrite","onwriteError","onwriteStateUpdate","needFinish","afterWrite","onwriteDrain","finishMaybe","holder","finish","endWritable","prefinish","need","_this","allowHalfOpen","onEndNT","Transform","TransformState","afterTransform","needTransform","transforming","writechunk","writeencoding","ts","_transformState","rs","transform","_transform","flush","_flush","done","ws","PassThrough","Stream","EE","source","_isStdio","didOnEnd","destroy","WritableStream","BrowserStdout","label","chunks","process.nextTick","parseQuery","qs","pair","decodeURIComponent","highlight","js","highlightTags","getElementById","getElementsByTagName","innerHTML","location","runner","IS_NODE","IS_IOS","Promise","notify","IS_WEBOS_WEBKIT","newPromiseCapability","NativePromise","newPromiseCapabilityModule","IS_BROWSER","INCORRECT_ITERATION","ArrayIteratorMethods","runtime","exports","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","values","Gp","displayName","defineIteratorMethods","isGeneratorFunction","genFun","mark","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","then","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","iter","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","object","reverse","iterable","iteratorMethod","skipTempReset","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","Function","normalizeArray","allowAboveRoot","up","splitPathRe","splitPath","filename","resolvedPath","resolvedAbsolute","filter","isPathAbsolute","isAbsolute","trailingSlash","paths","relative","to","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","root","basename","extname","factory","this","Diff","diff","oldString","newString","castInput","removeEmpty","tokenize","newLen","oldLen","editLength","maxEditLength","bestPath","newPos","components","oldPos","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","_oldPos","canAdd","canRemove","clonePath","pushComponent","buildValues","useLongestToken","added","removed","commonCount","left","right","comparator","ignoreCase","chars","componentPos","componentLen","component","oldValue","lastComponent","characterDiff","diffChars","oldStr","newStr","generateOptions","defaults","extendedWordChars","reWhitespace","wordDiff","ignoreWhitespace","tokens","diffWords","diffWordsWithSpace","lineDiff","retLines","linesAndNewlines","newlineIsToken","diffLines","diffTrimmedLines","sentenceDiff","diffSentences","cssDiff","diffCss","_typeof","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","minLen","arr2","objectPrototypeToString","jsonDiff","_this$options","undefinedReplacement","_this$options$stringi","stringifyReplacer","canonicalize","diffJson","oldObj","newObj","stack","replacementStack","replacer","canonicalizedObj","sortedKeys","_key","sort","arrayDiff","diffArrays","oldArr","newArr","parsePatch","uniDiff","diffstr","delimiters","parseIndex","header","parseFileHeader","hunks","_line","parseHunk","strict","fileHeader","keyPrefix","fileName","chunkHeaderIndex","chunkHeaderLine","chunkHeader","hunk","oldStart","oldLines","newStart","newLines","lines","linedelimiters","addCount","removeCount","operation","distanceIterator","minLine","maxLine","wantForward","backwardExhausted","forwardExhausted","localOffset","applyPatch","compareLine","lineNumber","patchContent","errorCount","fuzzFactor","removeEOFNL","addEOFNL","hunkFits","toPos","content","diffOffset","_hunk","_toPos","previousOperation","_k","applyPatches","currentIndex","processIndex","loadFile","updatedContent","patched","structuredPatch","oldFileName","newFileName","oldHeader","newHeader","contextLines","oldRangeStart","newRangeStart","curRange","oldLine","newLine","_loop","_curRange","_curRange2","_curRange3","contextSize","oldEOFNewline","newEOFNewline","noNlBeforeAdds","formatPatch","createTwoFilesPatch","createPatch","arrayEqual","arrayStartsWith","calcLineCount","_calcOldNewLineCount","calcOldNewLineCount","merge","mine","theirs","loadPatch","fileNameChanged","selectField","mineIndex","theirsIndex","mineOffset","theirsOffset","mineCurrent","theirsCurrent","hunkBefore","cloneHunk","mergedHunk","mergeLines","param","patch","conflict","check","mineLines","theirOffset","theirLines","their","insertLeading","theirCurrent","mutualChange","_hunk$lines","collectChange","_hunk$lines2","removal","insertTrailing","myChanges","theirChanges","allRemoves","skipRemoveSuperset","_hunk$lines3","_hunk$lines4","_hunk$lines5","collectContext","merged","_hunk$lines6","insert","matchChanges","changes","matchIndex","contextChanges","conflicted","change","removeChanges","delta","changeContent","myCount","theirCount","convertChangesToDMP","convertChangesToXML","escapeHTML","h","parse","fmtLong","fmtShort","parseFloat","ms","msAbs","round","plural","isPlural","FREEZING","InternalMetadataModule","urlAlphabet","customAlphabet","alphabet","id","random","nanoid","freeExports","freeModule","freeGlobal","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","propertyName","contains","codePointToSymbol","parseError","hexEscape","decEscape","message","encode","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","symbol","$0","high","low","decode","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","isAttributeValue","escape","he","nodeType","MOCHA_ID_PROP_NAME","util","spaces","tabs","emptyRepresentation","typeHint","canonicalType","primitives","Set","_type","json","jsonStringify","acc","char","_stringify","space","repeat","sDate","toISOString","withStack","item","is","node","slash","href","isMochaInternal","isNodeInternal","isPromise","clamp","range","freeze","createMap","partialSupport","isBrowser","versionFields","major","minor","Boolean","process.browser","castArray","defineConstants","uniqueID","success","warning","Pending","setup","createDebug","coerce","disable","enable","enabled","humanize","names","skips","formatters","selectColor","namespace","prevTime","enableOverride","curr","formatter","formatArgs","logFn","useColors","color","extend","newDebug","namespaces","save","toNamespace","regexp","load","localstorage","__nwjs","navigator","documentElement","WebkitAppearance","firebug","table","lastC","storage","setItem","removeItem","r","getItem","DEBUG","localStorage","cache","constants","FATAL","INVALID_ARG_TYPE","INVALID_ARG_VALUE","INVALID_EXCEPTION","INVALID_INTERFACE","INVALID_REPORTER","MULTIPLE_DONE","NO_FILES_MATCH_PATTERN","UNSUPPORTED","INSTANCE_ALREADY_RUNNING","INSTANCE_ALREADY_DISPOSED","FORBIDDEN_EXCLUSIVITY","INVALID_PLUGIN_IMPLEMENTATION","INVALID_PLUGIN_DEFINITION","TIMEOUT","UNPARSABLE_FILE","MOCHA_ERRORS","createNoFilesMatchPatternError","pattern","createInvalidReporterError","reporter","createInvalidInterfaceError","ui","createUnsupportedError","createMissingArgumentError","argument","expected","createInvalidArgumentTypeError","createInvalidArgumentValueError","reason","createInvalidExceptionError","valueType","createFatalError","createInvalidLegacyPluginError","pluginType","pluginId","createInvalidPluginError","createMochaInstanceAlreadyDisposedError","cleanReferencesAfterRun","instance","createMochaInstanceAlreadyRunningError","createMultipleDoneError","runnable","originalErr","fullTitle","parent","ignored","file","createForbiddenExclusivityError","mocha","isWorker","createInvalidPluginDefinitionError","pluginDef","createInvalidPluginImplementationError","pluginImpl","createTimeoutError","createUnparsableFileError","isMochaError","Runnable","body","_timeout","_slow","_retries","utils","assignNewMochaID","getMochaID","timedOut","_currentRetry","pending","milliseconds","INT_MAX","timer","resetTimeout","slow","skip","isPending","isFailed","STATE_FAILED","isPassed","STATE_PASSED","retries","currentRetry","titlePath","_timeoutError","globals","_allowedGlobals","errorWasHandled","multiple","duration","asyncSkip","callFnAsync","allowUncaught","toValueOrError","callFn","asyncOnly","STATE_PENDING","Hook","_error","serialize","$$isPending","$$titlePath","currentTest","utilsConstants","Suite","suite","addSuite","parentContext","isRoot","errors","suites","tests","_beforeEach","_beforeAll","_afterEach","_afterAll","_bail","_onlyTests","_onlySuites","deprecatedEvents","delayed","doReset","thingToReset","clone","bail","_createHook","hook","beforeAll","EVENT_SUITE_ADD_HOOK_BEFORE_ALL","afterAll","EVENT_SUITE_ADD_HOOK_AFTER_ALL","beforeEach","EVENT_SUITE_ADD_HOOK_BEFORE_EACH","afterEach","EVENT_SUITE_ADD_HOOK_AFTER_EACH","EVENT_SUITE_ADD_SUITE","addTest","EVENT_SUITE_ADD_TEST","total","sum","eachTest","EVENT_ROOT_SUITE_RUN","hasOnly","some","filterOnly","onlySuite","onlySuites","childSuite","appendOnlySuite","markOnly","appendOnlyTest","getHooks","dispose","cleanReferences","cleanArrReferences","$$fullTitle","EVENT_FILE_POST_REQUIRE","EVENT_FILE_PRE_REQUIRE","EVENT_FILE_REQUIRE","HOOK_TYPE_AFTER_ALL","HOOK_TYPE_AFTER_EACH","HOOK_TYPE_BEFORE_ALL","HOOK_TYPE_BEFORE_EACH","constant","stackFilter","stackTraceFilter","errorConstants","EVENT_HOOK_BEGIN","EVENT_HOOK_END","EVENT_RUN_BEGIN","EVENT_DELAY_BEGIN","EVENT_DELAY_END","EVENT_RUN_END","EVENT_SUITE_BEGIN","EVENT_SUITE_END","EVENT_TEST_BEGIN","EVENT_TEST_END","EVENT_TEST_FAIL","EVENT_TEST_PASS","EVENT_TEST_PENDING","EVENT_TEST_RETRY","STATE_IDLE","STATE_RUNNING","STATE_STOPPED","Runner","_delay","delay","_globals","_abort","_opts","failures","_eventListeners","Map","retriedTest","checkGlobals","_defaultGrep","grep","globalProps","uncaught","_uncaught","unhandled","promise","_removeEventListener","_addEventListener","immediately","setImmediate","eventName","targetListeners","targetEventListeners","invert","_grep","_invert","grepTotal","props","checkLeaks","ok","leaks","prevGlobalsLength","filterLeaks","fail","force","thrown2Error","fullStackTrace","ignore","dryRun","hooks","currentRunnable","setHookTitle","cbHookRun","testError","errForbid","originalTitle","parentTitle","orig","errSuite","hookUp","parents","hookDown","runTest","runTests","hookErr","after","err2","errSuite2","forbidPending","origSuite","eSuite","retry","clonedTest","runSuite","nextSuite","abort","rootSuite","begin","prepare","linkPartialObjects","runAsync","isParallelMode","workerReporter","matched","getBrowserWindowSize","innerHeight","innerWidth","Base","isatty","stdout","isTTY","stderr","consoleLog","supportsColor","MOCHA_COLORS","pass","checkmark","fast","medium","green","light","symbols","dot","comma","bang","width","getWindowSize","hide","show","deleteLine","beginningOfLine","CR","cursor","showDiff","sameType","stringifyDiffObjs","generateDiff","diffSize","inlineDiffs","inlineDiff","unifiedDiff","multipleErr","multipleTest","fmt","hideDiff","testTitle","stats","speed","epilogue","passes","errorDiff","indent","cleanUp","colorLines","notBlank","objToString","Dot","description","Doc","indents","clean","sprintf","TAP","tapVersion","reporterOptions","_producer","createProducer","writeVersion","writePending","writePass","writeFail","writeEpilogue","println","varArgs","vargs","producers","TAP12Producer","TAP13Producer","producer","TAPProducer","writePlan","ntests","emitYamlBlock","level","JSONReporter","testResults","errorJSON","cleanCycles","Progress","percent","fontSize","font","_size","text","_text","_fontSize","family","_font","update","draw","half","rad","angle","PI","clearRect","strokeStyle","beginPath","arc","stroke","measureText","fillText","HTML","statsTemplate","playIcon","stat","fragment","items","passesLink","failuresLink","canvas","report","progress","getContext","ratio","devicePixelRatio","height","scale","evt","preventDefault","unhide","className","hideSuitesWithout","appendChild","url","suiteURL","el","updateStats","testURL","markup","addCodeToggle","appendToStack","stackString","indexOfMessage","sourceURL","htmlMessage","toFixed","makeUrl","search","pathname","encodeURIComponent","escapeRe","contents","h2","pre","display","div","firstChild","classname","getElementsByClassName","els","textContent","innerText","addEventListener","attachEvent","browserOnly","List","Min","Spec","NyanCat","nyanCatWidth","colorIndex","numberOfLines","rainbowColors","generateColors","scoreboardWidth","tick","trajectories","trajectoryWidthMax","appendRainbow","drawScoreboard","drawRainbow","drawNyanCat","cursorUp","segment","rainbowified","rainbowify","trajectory","startWidth","dist","padding","face","cursorDown","pi3","sin","XUnit","suiteName","DEFAULT_SUITE_NAME","tag","skipped","t","fileStream","attrs","close","pairs","SUITE_PREFIX","Markdown","mapTOC","stringifyTOC","link","slug","generateTOC","lastN","open","incomplete","verbose","Landing","plane","runway","crashed","col","kill","JSONStream","writeEvent","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","hasNotificationSupport","hasPromiseSupport","isPermitted","sendNotification","race","canNotify","notPermitted","permitted","granted","allow","denied","deny","ask","Notification","requestPermission","permission","why","cross","logo","notifyLogo","_message","badge","icon","lang","requireInteraction","notification","FORCE_DURATION","createStatsCollector","Test","_retriedTest","$$currentRetry","$$retriedTest","$$slow","shouldBeTested","runWithSuite","before","only","forbidOnly","isOnly","bddInterface","common","describe","xdescribe","xcontext","it","specify","xit","xspecify","teardown","suiteSetup","suiteTeardown","qUnitInterface","visit","_runnable","esmUtils","supportsEsModules","Mocha","mochaStates","INIT","RUNNING","REFERENCES_CLEANED","DISPOSED","builtinReporters","currentContext","mocharc","files","_cleanReferencesAfterRun","_state","fgrep","reporterOption","opt","rootHooks","_runnerClass","_lazyLoadFiles","globalSetup","globalTeardown","enableGlobalSetup","enableGlobalTeardown","parallel","jobs","parallelMode","addFile","reporterName","_reporter","require","_err","bindInterface","interfaces","loadFiles","loadFilesAsync","lazyLoadFiles","resultModule","unloadFile","unloadFiles","_previousRunner","fullTrace","growl","isGrowlCapable","detail","isCapable","_growl","elt","msecs","noHighlighting","_guardRunningStateTransition","reporters","hasGlobalSetupFixtures","runGlobalSetup","failureCount","hasGlobalTeardownFixtures","runGlobalTeardown","setupFns","teardownFns","_runGlobalFixtures","fixtureFns","fixtureFn","setInterval","clearInterval","uncaughtExceptionHandlers","originalOnerrorHandler","immediateQueue","immediateTimeout","timeslice","immediateStart","throwError","query"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"mocha.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/engine-v8-version.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.js","node_modules/core-js/internals/document-create-element.js","node_modules/core-js/internals/ie8-dom-define.js","node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/core-js/internals/an-object.js","node_modules/core-js/internals/object-define-property.js","node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/core-js/internals/inspect-source.js","node_modules/core-js/internals/native-weak-map.js","node_modules/core-js/internals/shared-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/internal-state.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/create-property.js","node_modules/core-js/internals/array-method-has-species-support.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/a-function.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/internals/array-method-is-strict.js","node_modules/core-js/internals/array-for-each.js","node_modules/core-js/modules/web.dom-collections.for-each.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/modules/es.object.keys.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/core-js/internals/same-value.js","node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/core-js/modules/es.string.search.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/modules/es.object.assign.js","node_modules/core-js/modules/es.array.concat.js","node_modules/rollup-plugin-node-polyfills/polyfills/global.js","node_modules/rollup-plugin-node-globals/src/global.js","node_modules/process-es6/browser.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/modules/es.regexp.to-string.js","node_modules/core-js/internals/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/modules/es.object.get-prototype-of.js","node_modules/core-js/modules/es.function.name.js","node_modules/core-js/modules/es.reflect.own-keys.js","node_modules/rollup-plugin-node-polyfills/polyfills/events.js","node_modules/core-js/modules/es.array.join.js","node_modules/core-js/internals/string-multibyte.js","node_modules/core-js/internals/advance-string-index.js","node_modules/core-js/internals/get-substitution.js","node_modules/core-js/modules/es.string.replace.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/inherit-if-required.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/modules/es.number.constructor.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/internals/set-species.js","node_modules/core-js/modules/es.regexp.constructor.js","node_modules/core-js/internals/object-get-own-property-names-external.js","node_modules/core-js/modules/es.object.get-own-property-names.js","node_modules/core-js/modules/es.array.map.js","node_modules/core-js/modules/es.string.match.js","node_modules/core-js/modules/es.object.get-own-property-descriptor.js","node_modules/core-js/internals/species-constructor.js","node_modules/core-js/modules/es.string.split.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/internals/iterators.js","node_modules/core-js/internals/iterators-core.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/create-iterator-constructor.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/core-js/internals/array-buffer-native.js","node_modules/core-js/internals/array-buffer-view-core.js","node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/to-index.js","node_modules/core-js/internals/ieee754.js","node_modules/core-js/internals/array-fill.js","node_modules/core-js/internals/array-buffer.js","node_modules/core-js/internals/is-integer.js","node_modules/core-js/internals/to-positive-integer.js","node_modules/core-js/internals/to-offset.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/typed-array-from.js","node_modules/core-js/internals/typed-array-constructor.js","node_modules/core-js/modules/es.typed-array.uint8-array.js","node_modules/core-js/internals/array-copy-within.js","node_modules/core-js/modules/es.typed-array.copy-within.js","node_modules/core-js/modules/es.typed-array.every.js","node_modules/core-js/modules/es.typed-array.fill.js","node_modules/core-js/internals/array-from-constructor-and-list.js","node_modules/core-js/internals/typed-array-species-constructor.js","node_modules/core-js/internals/typed-array-from-species-and-list.js","node_modules/core-js/modules/es.typed-array.filter.js","node_modules/core-js/modules/es.typed-array.find.js","node_modules/core-js/modules/es.typed-array.find-index.js","node_modules/core-js/modules/es.typed-array.for-each.js","node_modules/core-js/modules/es.typed-array.includes.js","node_modules/core-js/modules/es.typed-array.index-of.js","node_modules/core-js/modules/es.typed-array.iterator.js","node_modules/core-js/modules/es.typed-array.join.js","node_modules/core-js/internals/array-last-index-of.js","node_modules/core-js/modules/es.typed-array.last-index-of.js","node_modules/core-js/modules/es.typed-array.map.js","node_modules/core-js/internals/array-reduce.js","node_modules/core-js/modules/es.typed-array.reduce.js","node_modules/core-js/modules/es.typed-array.reduce-right.js","node_modules/core-js/modules/es.typed-array.reverse.js","node_modules/core-js/modules/es.typed-array.set.js","node_modules/core-js/modules/es.typed-array.slice.js","node_modules/core-js/modules/es.typed-array.some.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.typed-array.sort.js","node_modules/core-js/modules/es.typed-array.subarray.js","node_modules/core-js/modules/es.typed-array.to-locale-string.js","node_modules/core-js/modules/es.typed-array.to-string.js","node_modules/core-js/modules/es.array-buffer.constructor.js","node_modules/core-js/internals/well-known-symbol-wrapped.js","node_modules/core-js/internals/path.js","node_modules/core-js/internals/define-well-known-symbol.js","node_modules/core-js/modules/es.symbol.js","node_modules/core-js/modules/es.symbol.description.js","node_modules/core-js/modules/es.symbol.species.js","node_modules/core-js/modules/es.array.species.js","node_modules/core-js/modules/es.array.fill.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/modules/es.array.includes.js","node_modules/core-js/internals/not-a-regexp.js","node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/core-js/modules/es.string.includes.js","node_modules/core-js/modules/web.url.to-json.js","node_modules/core-js/internals/string-trim-forced.js","node_modules/core-js/modules/es.string.trim.js","node_modules/buffer-es6/base64.js","node_modules/buffer-es6/ieee754.js","node_modules/buffer-es6/isArray.js","node_modules/buffer-es6/index.js","node_modules/rollup-plugin-node-polyfills/polyfills/process-es6.js","node_modules/rollup-plugin-node-polyfills/polyfills/inherits.js","node_modules/rollup-plugin-node-polyfills/polyfills/util.js","node_modules/rollup-plugin-node-polyfills/polyfills/buffer-es6.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/buffer-list.js","node_modules/rollup-plugin-node-polyfills/polyfills/string-decoder.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/readable.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/writable.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/duplex.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/transform.js","node_modules/rollup-plugin-node-polyfills/polyfills/readable-stream/passthrough.js","node_modules/rollup-plugin-node-polyfills/polyfills/stream.js","node_modules/browser-stdout/index.js","lib/browser/parse-query.js","lib/browser/highlight-tags.js","node_modules/core-js/modules/es.symbol.iterator.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/modules/es.symbol.async-iterator.js","node_modules/core-js/modules/es.symbol.to-string-tag.js","node_modules/core-js/modules/es.json.to-string-tag.js","node_modules/core-js/modules/es.math.to-string-tag.js","node_modules/core-js/internals/native-promise-constructor.js","node_modules/core-js/internals/iterator-close.js","node_modules/core-js/internals/iterate.js","node_modules/core-js/internals/engine-is-ios.js","node_modules/core-js/internals/engine-is-node.js","node_modules/core-js/internals/task.js","node_modules/core-js/internals/engine-is-ios-pebble.js","node_modules/core-js/internals/engine-is-webos-webkit.js","node_modules/core-js/internals/microtask.js","node_modules/core-js/internals/new-promise-capability.js","node_modules/core-js/internals/promise-resolve.js","node_modules/core-js/internals/host-report-errors.js","node_modules/core-js/internals/perform.js","node_modules/core-js/internals/engine-is-browser.js","node_modules/core-js/modules/es.promise.js","node_modules/regenerator-runtime/runtime.js","node_modules/escape-string-regexp/index.js","node_modules/rollup-plugin-node-polyfills/polyfills/path.js","node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/modules/es.array.from.js","node_modules/core-js/modules/es.array.sort.js","node_modules/diff/dist/diff.js","node_modules/ms/index.js","node_modules/core-js/internals/freezing.js","node_modules/core-js/internals/internal-metadata.js","node_modules/core-js/internals/collection.js","node_modules/core-js/internals/collection-strong.js","node_modules/core-js/modules/es.set.js","node_modules/core-js/modules/es.object.freeze.js","node_modules/rollup-plugin-node-globals/src/browser.js","node_modules/nanoid/non-secure/index.js","node_modules/he/he.js","lib/utils.js","node_modules/log-symbols/browser.js","node_modules/core-js/modules/es.map.js","lib/pending.js","node_modules/debug/node_modules/ms/index.js","node_modules/debug/src/common.js","node_modules/debug/src/browser.js","node_modules/core-js/internals/object-to-array.js","node_modules/core-js/modules/es.object.values.js","lib/errors.js","lib/runnable.js","lib/hook.js","lib/suite.js","lib/runner.js","lib/reporters/base.js","lib/reporters/dot.js","lib/reporters/doc.js","lib/reporters/tap.js","node_modules/rollup-plugin-node-polyfills/polyfills/empty.js","lib/reporters/json.js","node_modules/core-js/internals/this-number-value.js","node_modules/core-js/internals/string-repeat.js","node_modules/core-js/modules/es.number.to-fixed.js","lib/browser/progress.js","lib/reporters/html.js","lib/reporters/list.js","lib/reporters/min.js","lib/reporters/spec.js","lib/reporters/nyan.js","lib/reporters/xunit.js","lib/reporters/markdown.js","lib/reporters/progress.js","lib/reporters/landing.js","lib/reporters/json-stream.js","lib/reporters/index.js","lib/browser/growl.js","lib/stats-collector.js","lib/test.js","lib/interfaces/common.js","lib/interfaces/bdd.js","lib/interfaces/tdd.js","lib/interfaces/qunit.js","lib/interfaces/exports.js","lib/interfaces/index.js","lib/context.js","lib/mocha.js","browser-entry.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n","var isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var isSymbol = require('../internals/is-symbol');\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var fails = require('./fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('./fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = patchedExec.call(raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = str.slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = toString(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = string.charAt(index);\n if (chr === '\\\\') {\n result += chr + string.charAt(++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = string.charAt(index);\n if (chr === '\\\\') {\n chr = chr + string.charAt(++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (IS_NCG.test(string.slice(index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || has(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named.push([groupname, groupid]);\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || pattern instanceof RegExpWrapper) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags.call(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && flags.indexOf('s') > -1;\n if (dotAll) flags = flags.replace(/s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","module.exports = {};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf && !isPrototypeOf.call(TypedArray, C)) {\n throw TypeError('Target is not a typed array constructor');\n } return C;\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.es/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isInteger = require('../internals/is-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isInteger(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","module.exports = function (Constructor, list) {\n var index = 0;\n var length = list.length;\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $lastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// TODO: use something more complex like timsort?\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar aFunction = require('../internals/a-function');\nvar toLength = require('../internals/to-length');\nvar internalSort = require('../internals/array-sort');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && Uint16Array.prototype.sort;\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !fails(function () {\n var array = new Uint16Array(2);\n array.sort(null);\n array.sort({});\n});\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n array.sort(function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n var array = this;\n if (comparefn !== undefined) aFunction(comparefn);\n if (STABLE_SORT) return nativeSort.call(array, comparefn);\n\n aTypedArray(array);\n var arrayLength = toLength(array.length);\n var items = Array(arrayLength);\n var index;\n\n for (index = 0; index < arrayLength; index++) {\n items[index] = array[index];\n }\n\n items = internalSort(array, getSortCompare(comparefn));\n\n for (index = 0; index < arrayLength; index++) {\n array[index] = items[index];\n }\n\n return array;\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~toString(requireObjectCoercible(this))\n .indexOf(toString(notARegExp(searchString)), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","\nexport function read (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexport function write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\n // return arr.foo() === 42 && // typed array instances can be augmented\n // typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n // arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n // } catch (e) {\n // return false\n // }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nexport function Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n // Object.defineProperty(Buffer, Symbol.species, {\n // value: null,\n // configurable: true\n // })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nexport default browser$1;\nexport { addListener, argv, binding, browser, chdir, config, cwd, emit, env, hrtime, nextTick, off, on, once, platform, release, removeAllListeners, removeListener, title, umask, uptime, version, versions };\n","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","var lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n};\n\nBuffer.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>'\n};\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nexport { Buffer, INSPECT_MAX_BYTES, SlowBuffer, isBuffer, _kMaxLength as kMaxLength };\n","import {Buffer} from 'buffer';\n\nexport default BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport {Buffer} from 'buffer';\nvar isBufferEncoding = Buffer.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nexport function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","'use strict';\n\n\nReadable.ReadableState = ReadableState;\nimport EventEmitter from 'events';\nimport {inherits, debuglog} from 'util';\nimport BufferList from './buffer-list';\nimport {StringDecoder} from 'string_decoder';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\n\nvar debug = debuglog('stream');\ninherits(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nexport default Readable;\nexport function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nimport {inherits, deprecate} from 'util';\nimport {Buffer} from 'buffer';\nWritable.WritableState = WritableState;\nimport {EventEmitter} from 'events';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\ninherits(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\nexport default Writable;\nexport function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n nextTick(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n","\nimport {inherits} from 'util';\nimport {nextTick} from 'process';\nimport {Readable} from './readable';\nimport {Writable} from './writable';\n\n\ninherits(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nexport default Duplex;\nexport function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nimport {Duplex} from './duplex';\n\n\nimport {inherits} from 'util';\ninherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nexport default Transform;\nexport function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n","\nimport {Transform} from './transform';\n\nimport {inherits} from 'util';\ninherits(PassThrough, Transform);\nexport default PassThrough;\nexport function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n","import EE from 'events';\nimport {inherits} from 'util';\n\nimport {Duplex} from './readable-stream/duplex.js';\nimport {Readable} from './readable-stream/readable.js';\nimport {Writable} from './readable-stream/writable.js';\nimport {Transform} from './readable-stream/transform.js';\nimport {PassThrough} from './readable-stream/passthrough.js';\ninherits(Stream, EE);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nexport default Stream;\nexport {Readable,Writable,Duplex,Transform,PassThrough,Stream}\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var WritableStream = require('stream').Writable\nvar inherits = require('util').inherits\n\nmodule.exports = BrowserStdout\n\n\ninherits(BrowserStdout, WritableStream)\n\nfunction BrowserStdout(opts) {\n if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts)\n\n opts = opts || {}\n WritableStream.call(this, opts)\n this.label = (opts.label !== undefined) ? opts.label : 'stdout'\n}\n\nBrowserStdout.prototype._write = function(chunks, encoding, cb) {\n var output = chunks.toString ? chunks.toString() : chunks\n if (this.label === false) {\n console.log(output)\n } else {\n console.log(this.label+':', output)\n }\n process.nextTick(cb)\n}\n","'use strict';\n\n/**\n * Parse the given `qs`.\n *\n * @private\n * @param {string} qs\n * @return {Object<string, string>}\n */\nmodule.exports = function parseQuery(qs) {\n return qs\n .replace('?', '')\n .split('&')\n .reduce(function(obj, pair) {\n var i = pair.indexOf('=');\n var key = pair.slice(0, i);\n var val = pair.slice(++i);\n\n // Due to how the URLSearchParams API treats spaces\n obj[key] = decodeURIComponent(val.replace(/\\+/g, '%20'));\n\n return obj;\n }, {});\n};\n","'use strict';\n\n/**\n * Highlight the given string of `js`.\n *\n * @private\n * @param {string} js\n * @return {string}\n */\nfunction highlight(js) {\n return js\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\\/\\/(.*)/gm, '<span class=\"comment\">//$1</span>')\n .replace(/('.*?')/gm, '<span class=\"string\">$1</span>')\n .replace(/(\\d+\\.\\d+)/gm, '<span class=\"number\">$1</span>')\n .replace(/(\\d+)/gm, '<span class=\"number\">$1</span>')\n .replace(\n /\\bnew[ \\t]+(\\w+)/gm,\n '<span class=\"keyword\">new</span> <span class=\"init\">$1</span>'\n )\n .replace(\n /\\b(function|new|throw|return|var|if|else)\\b/gm,\n '<span class=\"keyword\">$1</span>'\n );\n}\n\n/**\n * Highlight the contents of tag `name`.\n *\n * @private\n * @param {string} name\n */\nmodule.exports = function highlightTags(name) {\n var code = document.getElementById('mocha').getElementsByTagName(name);\n for (var i = 0, len = code.length; i < len; ++i) {\n code[i].innerHTML = highlight(code[i].innerHTML);\n }\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var argumentsLength = arguments.length;\n var i = 1;\n while (argumentsLength > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","module.exports = typeof window == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromiseConstructorPrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexport function resolve() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : '/';\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexport function normalize(path) {\n var isPathAbsolute = isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isPathAbsolute).join('/');\n\n if (!path && !isPathAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexport function isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\nexport function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n}\n\n\n// path.relative(from, to)\n// posix version\nexport function relative(from, to) {\n from = resolve(from).substr(1);\n to = resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\nexport var sep = '/';\nexport var delimiter = ':';\n\nexport function dirname(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\nexport function basename(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n}\n\n\nexport function extname(path) {\n return splitPath(path)[3];\n}\nexport default {\n extname: extname,\n basename: basename,\n dirname: dirname,\n sep: sep,\n delimiter: delimiter,\n relative: relative,\n join: join,\n isAbsolute: isAbsolute,\n normalize: normalize,\n resolve: resolve\n};\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b' ?\n function (str, start, len) { return str.substr(start, len) } :\n function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.Diff = {}));\n}(this, (function (exports) { 'use strict';\n\n function Diff() {}\n Diff.prototype = {\n diff: function diff(oldString, newString) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = options.callback;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = options;\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n } // Allow subclasses to massage the input prior to running\n\n\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{\n value: this.join(newString),\n count: newString.length\n }]);\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath = void 0;\n\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced.\n\n\n if (callback) {\n (function exec() {\n setTimeout(function () {\n // This should not happen, but we want to be safe.\n\n /* istanbul ignore next */\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n }\n },\n pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n equals: function equals(left, right) {\n if (this.options.comparator) {\n return this.options.comparator(left, right);\n } else {\n return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n },\n removeEmpty: function removeEmpty(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n\n return ret;\n },\n castInput: function castInput(value) {\n return value;\n },\n tokenize: function tokenize(value) {\n return value.split('');\n },\n join: function join(chars) {\n return chars.join('');\n }\n };\n\n function buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = diff.join(value);\n } else {\n component.value = diff.join(newString.slice(newPos, newPos + component.count));\n }\n\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n } // Special case handle for when one terminal is ignored (i.e. whitespace).\n // For this case we merge the terminal into the prior string and drop the change.\n // This is only available for string mode.\n\n\n var lastComponent = components[componentLen - 1];\n\n if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n }\n\n function clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n }\n\n var characterDiff = new Diff();\n function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n }\n\n function generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n\n return defaults;\n }\n\n //\n // Ranges and exceptions:\n // Latin-1 Supplement, 0080–00FF\n // - U+00D7 × Multiplication sign\n // - U+00F7 ÷ Division sign\n // Latin Extended-A, 0100–017F\n // Latin Extended-B, 0180–024F\n // IPA Extensions, 0250–02AF\n // Spacing Modifier Letters, 02B0–02FF\n // - U+02C7 ˇ &#711; Caron\n // - U+02D8 ˘ &#728; Breve\n // - U+02D9 ˙ &#729; Dot Above\n // - U+02DA ˚ &#730; Ring Above\n // - U+02DB ˛ &#731; Ogonek\n // - U+02DC ˜ &#732; Small Tilde\n // - U+02DD ˝ &#733; Double Acute Accent\n // Latin Extended Additional, 1E00–1EFF\n\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\n var reWhitespace = /\\S/;\n var wordDiff = new Diff();\n\n wordDiff.equals = function (left, right) {\n if (this.options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n };\n\n wordDiff.tokenize = function (value) {\n // All whitespace symbols except newline group into one token, each newline - in separate token\n var tokens = value.split(/([^\\S\\r\\n]+|[()[\\]{}'\"\\r\\n]|\\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n };\n\n function diffWords(oldStr, newStr, options) {\n options = generateOptions(options, {\n ignoreWhitespace: true\n });\n return wordDiff.diff(oldStr, newStr, options);\n }\n function diffWordsWithSpace(oldStr, newStr, options) {\n return wordDiff.diff(oldStr, newStr, options);\n }\n\n var lineDiff = new Diff();\n\n lineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/); // Ignore the final empty token that occurs if the string ends with a new line\n\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n } // Merge the content and line separators into single tokens\n\n\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n\n retLines.push(line);\n }\n }\n\n return retLines;\n };\n\n function diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n }\n function diffTrimmedLines(oldStr, newStr, callback) {\n var options = generateOptions(callback, {\n ignoreWhitespace: true\n });\n return lineDiff.diff(oldStr, newStr, options);\n }\n\n var sentenceDiff = new Diff();\n\n sentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n };\n\n function diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n }\n\n var cssDiff = new Diff();\n\n cssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n };\n\n function diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var objectPrototypeToString = Object.prototype.toString;\n var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\n\n jsonDiff.useLongestToken = true;\n jsonDiff.tokenize = lineDiff.tokenize;\n\n jsonDiff.castInput = function (value) {\n var _this$options = this.options,\n undefinedReplacement = _this$options.undefinedReplacement,\n _this$options$stringi = _this$options.stringifyReplacer,\n stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) {\n return typeof v === 'undefined' ? undefinedReplacement : v;\n } : _this$options$stringi;\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' ');\n };\n\n jsonDiff.equals = function (left, right) {\n return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\n };\n\n function diffJson(oldObj, newObj, options) {\n return jsonDiff.diff(oldObj, newObj, options);\n } // This function handles the presence of circular references by bailing out when encountering an\n // object that is already on the \"stack\" of items being processed. Accepts an optional replacer\n\n function canonicalize(obj, stack, replacementStack, replacer, key) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n if (replacer) {\n obj = replacer(key, obj);\n }\n\n var i;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);\n }\n\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if (_typeof(obj) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n\n var sortedKeys = [],\n _key;\n\n for (_key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(_key)) {\n sortedKeys.push(_key);\n }\n }\n\n sortedKeys.sort();\n\n for (i = 0; i < sortedKeys.length; i += 1) {\n _key = sortedKeys[i];\n canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);\n }\n\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n\n return canonicalizedObj;\n }\n\n var arrayDiff = new Diff();\n\n arrayDiff.tokenize = function (value) {\n return value.slice();\n };\n\n arrayDiff.join = arrayDiff.removeEmpty = function (value) {\n return value;\n };\n\n function diffArrays(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n }\n\n function parsePatch(uniDiff) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var diffstr = uniDiff.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = uniDiff.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index); // Parse diff metadata\n\n while (i < diffstr.length) {\n var line = diffstr[i]; // File header found, end parsing diff metadata\n\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n } // Diff index\n\n\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n\n if (header) {\n index.index = header[1];\n }\n\n i++;\n } // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n\n\n parseFileHeader(index);\n parseFileHeader(index); // Parse hunks\n\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n } // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n\n\n function parseFileHeader(index) {\n var fileHeader = /^(---|\\+\\+\\+)\\s+(.*)$/.exec(diffstr[i]);\n\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n var data = fileHeader[2].split('\\t', 2);\n var fileName = data[0].replace(/\\\\\\\\/g, '\\\\');\n\n if (/^\".*\"$/.test(fileName)) {\n fileName = fileName.substr(1, fileName.length - 2);\n }\n\n index[keyPrefix + 'FileName'] = fileName;\n index[keyPrefix + 'Header'] = (data[1] || '').trim();\n i++;\n }\n } // Parses a hunk\n // This assumes that we are at the start of a hunk.\n\n\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2],\n newStart: +chunkHeader[3],\n newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4],\n lines: [],\n linedelimiters: []\n }; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart += 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart += 1;\n }\n\n var addCount = 0,\n removeCount = 0;\n\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n\n var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n hunk.linedelimiters.push(delimiters[i] || '\\n');\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n } // Handle the empty block count case\n\n\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n } // Perform optional sanity checking\n\n\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n }\n\n // Iterator that traverses in the range of [min, max], stepping\n // by distance from a given start position. I.e. for [0, 4], with\n // start of 2, this will iterate 2, 3, 1, 4, 0.\n function distanceIterator (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n } // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n\n\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n } // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n\n\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n } // We tried to fit hunk before text beginning and beyond text length, then\n // hunk can't fit on the text. Return undefined\n\n };\n }\n\n function applyPatch(source, uniDiff) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n } // Apply the diff to the input\n\n\n var lines = source.split(/\\r\\n|[\\n\\v\\f\\r\\x85]/),\n delimiters = source.match(/\\r\\n|[\\n\\v\\f\\r\\x85]/g) || [],\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) {\n return line === patchContent;\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL,\n addEOFNL;\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n\n\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line;\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n\n toPos++;\n }\n }\n\n return true;\n } // Search best fit offsets for each hunk based on the previous ones\n\n\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n var iterator = distanceIterator(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n } // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n\n\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n } // Apply patch hunks\n\n\n var diffOffset = 0;\n\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;\n\n diffOffset += _hunk.newLines - _hunk.oldLines;\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line.length > 0 ? line[0] : ' ',\n content = line.length > 0 ? line.substr(1) : line,\n delimiter = _hunk.linedelimiters[j];\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n delimiters.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n delimiters.splice(_toPos, 0, delimiter);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n } // Handle EOFNL insertion/removal\n\n\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n delimiters.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n delimiters.push('\\n');\n }\n\n for (var _k = 0; _k < lines.length - 1; _k++) {\n lines[_k] = lines[_k] + delimiters[_k];\n }\n\n return lines.join('');\n } // Wrapper that supports multiple file patches via callbacks.\n\n function applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff = parsePatch(uniDiff);\n }\n\n var currentIndex = 0;\n\n function processIndex() {\n var index = uniDiff[currentIndex++];\n\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n\n processIndex();\n }\n\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = {};\n }\n\n if (typeof options.context === 'undefined') {\n options.context = 4;\n }\n\n var diff = diffLines(oldStr, newStr, options);\n diff.push({\n value: '',\n lines: []\n }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n\n var _loop = function _loop(i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n var _curRange;\n\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n } // Output our changes\n\n\n (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n }))); // Track the updated file position\n\n\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n var _curRange2;\n\n // Overlapping\n (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines)));\n } else {\n var _curRange3;\n\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n\n (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;\n\n if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n // however, if the old file is empty, do not output the no-nl line\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n }\n\n if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n _loop(i);\n }\n\n return {\n oldFileName: oldFileName,\n newFileName: newFileName,\n oldHeader: oldHeader,\n newHeader: newHeader,\n hunks: hunks\n };\n }\n function formatPatch(diff) {\n var ret = [];\n\n if (diff.oldFileName == diff.newFileName) {\n ret.push('Index: ' + diff.oldFileName);\n }\n\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,\n // the first number is one lower than one would expect.\n // https://www.artima.com/weblogs/viewpost.jsp?thread=164293\n\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n }\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));\n }\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n }\n\n function arrayEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n return arrayStartsWith(a, b);\n }\n function arrayStartsWith(array, start) {\n if (start.length > array.length) {\n return false;\n }\n\n for (var i = 0; i < start.length; i++) {\n if (start[i] !== array[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function calcLineCount(hunk) {\n var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines),\n oldLines = _calcOldNewLineCount.oldLines,\n newLines = _calcOldNewLineCount.newLines;\n\n if (oldLines !== undefined) {\n hunk.oldLines = oldLines;\n } else {\n delete hunk.oldLines;\n }\n\n if (newLines !== undefined) {\n hunk.newLines = newLines;\n } else {\n delete hunk.newLines;\n }\n }\n function merge(mine, theirs, base) {\n mine = loadPatch(mine, base);\n theirs = loadPatch(theirs, base);\n var ret = {}; // For index we just let it pass through as it doesn't have any necessary meaning.\n // Leaving sanity checks on this to the API consumer that may know more about the\n // meaning in their own context.\n\n if (mine.index || theirs.index) {\n ret.index = mine.index || theirs.index;\n }\n\n if (mine.newFileName || theirs.newFileName) {\n if (!fileNameChanged(mine)) {\n // No header or no change in ours, use theirs (and ours if theirs does not exist)\n ret.oldFileName = theirs.oldFileName || mine.oldFileName;\n ret.newFileName = theirs.newFileName || mine.newFileName;\n ret.oldHeader = theirs.oldHeader || mine.oldHeader;\n ret.newHeader = theirs.newHeader || mine.newHeader;\n } else if (!fileNameChanged(theirs)) {\n // No header or no change in theirs, use ours\n ret.oldFileName = mine.oldFileName;\n ret.newFileName = mine.newFileName;\n ret.oldHeader = mine.oldHeader;\n ret.newHeader = mine.newHeader;\n } else {\n // Both changed... figure it out\n ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);\n ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);\n ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);\n ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);\n }\n }\n\n ret.hunks = [];\n var mineIndex = 0,\n theirsIndex = 0,\n mineOffset = 0,\n theirsOffset = 0;\n\n while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {\n var mineCurrent = mine.hunks[mineIndex] || {\n oldStart: Infinity\n },\n theirsCurrent = theirs.hunks[theirsIndex] || {\n oldStart: Infinity\n };\n\n if (hunkBefore(mineCurrent, theirsCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(mineCurrent, mineOffset));\n mineIndex++;\n theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;\n } else if (hunkBefore(theirsCurrent, mineCurrent)) {\n // This patch does not overlap with any of the others, yay.\n ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));\n theirsIndex++;\n mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;\n } else {\n // Overlap, merge as best we can\n var mergedHunk = {\n oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),\n oldLines: 0,\n newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),\n newLines: 0,\n lines: []\n };\n mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);\n theirsIndex++;\n mineIndex++;\n ret.hunks.push(mergedHunk);\n }\n }\n\n return ret;\n }\n\n function loadPatch(param, base) {\n if (typeof param === 'string') {\n if (/^@@/m.test(param) || /^Index:/m.test(param)) {\n return parsePatch(param)[0];\n }\n\n if (!base) {\n throw new Error('Must provide a base reference or pass in a patch');\n }\n\n return structuredPatch(undefined, undefined, base, param);\n }\n\n return param;\n }\n\n function fileNameChanged(patch) {\n return patch.newFileName && patch.newFileName !== patch.oldFileName;\n }\n\n function selectField(index, mine, theirs) {\n if (mine === theirs) {\n return mine;\n } else {\n index.conflict = true;\n return {\n mine: mine,\n theirs: theirs\n };\n }\n }\n\n function hunkBefore(test, check) {\n return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;\n }\n\n function cloneHunk(hunk, offset) {\n return {\n oldStart: hunk.oldStart,\n oldLines: hunk.oldLines,\n newStart: hunk.newStart + offset,\n newLines: hunk.newLines,\n lines: hunk.lines\n };\n }\n\n function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {\n // This will generally result in a conflicted hunk, but there are cases where the context\n // is the only overlap where we can successfully merge the content here.\n var mine = {\n offset: mineOffset,\n lines: mineLines,\n index: 0\n },\n their = {\n offset: theirOffset,\n lines: theirLines,\n index: 0\n }; // Handle any leading content\n\n insertLeading(hunk, mine, their);\n insertLeading(hunk, their, mine); // Now in the overlap content. Scan through and select the best changes from each.\n\n while (mine.index < mine.lines.length && their.index < their.lines.length) {\n var mineCurrent = mine.lines[mine.index],\n theirCurrent = their.lines[their.index];\n\n if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {\n // Both modified ...\n mutualChange(hunk, mine, their);\n } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {\n var _hunk$lines;\n\n // Mine inserted\n (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine)));\n } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {\n var _hunk$lines2;\n\n // Theirs inserted\n (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their)));\n } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {\n // Mine removed or edited\n removal(hunk, mine, their);\n } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {\n // Their removed or edited\n removal(hunk, their, mine, true);\n } else if (mineCurrent === theirCurrent) {\n // Context identity\n hunk.lines.push(mineCurrent);\n mine.index++;\n their.index++;\n } else {\n // Context mismatch\n conflict(hunk, collectChange(mine), collectChange(their));\n }\n } // Now push anything that may be remaining\n\n\n insertTrailing(hunk, mine);\n insertTrailing(hunk, their);\n calcLineCount(hunk);\n }\n\n function mutualChange(hunk, mine, their) {\n var myChanges = collectChange(mine),\n theirChanges = collectChange(their);\n\n if (allRemoves(myChanges) && allRemoves(theirChanges)) {\n // Special case for remove changes that are supersets of one another\n if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {\n var _hunk$lines3;\n\n (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges));\n\n return;\n } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {\n var _hunk$lines4;\n\n (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges));\n\n return;\n }\n } else if (arrayEqual(myChanges, theirChanges)) {\n var _hunk$lines5;\n\n (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges));\n\n return;\n }\n\n conflict(hunk, myChanges, theirChanges);\n }\n\n function removal(hunk, mine, their, swap) {\n var myChanges = collectChange(mine),\n theirChanges = collectContext(their, myChanges);\n\n if (theirChanges.merged) {\n var _hunk$lines6;\n\n (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged));\n } else {\n conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);\n }\n }\n\n function conflict(hunk, mine, their) {\n hunk.conflict = true;\n hunk.lines.push({\n conflict: true,\n mine: mine,\n theirs: their\n });\n }\n\n function insertLeading(hunk, insert, their) {\n while (insert.offset < their.offset && insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n insert.offset++;\n }\n }\n\n function insertTrailing(hunk, insert) {\n while (insert.index < insert.lines.length) {\n var line = insert.lines[insert.index++];\n hunk.lines.push(line);\n }\n }\n\n function collectChange(state) {\n var ret = [],\n operation = state.lines[state.index][0];\n\n while (state.index < state.lines.length) {\n var line = state.lines[state.index]; // Group additions that are immediately after subtractions and treat them as one \"atomic\" modify change.\n\n if (operation === '-' && line[0] === '+') {\n operation = '+';\n }\n\n if (operation === line[0]) {\n ret.push(line);\n state.index++;\n } else {\n break;\n }\n }\n\n return ret;\n }\n\n function collectContext(state, matchChanges) {\n var changes = [],\n merged = [],\n matchIndex = 0,\n contextChanges = false,\n conflicted = false;\n\n while (matchIndex < matchChanges.length && state.index < state.lines.length) {\n var change = state.lines[state.index],\n match = matchChanges[matchIndex]; // Once we've hit our add, then we are done\n\n if (match[0] === '+') {\n break;\n }\n\n contextChanges = contextChanges || change[0] !== ' ';\n merged.push(match);\n matchIndex++; // Consume any additions in the other block as a conflict to attempt\n // to pull in the remaining context after this\n\n if (change[0] === '+') {\n conflicted = true;\n\n while (change[0] === '+') {\n changes.push(change);\n change = state.lines[++state.index];\n }\n }\n\n if (match.substr(1) === change.substr(1)) {\n changes.push(change);\n state.index++;\n } else {\n conflicted = true;\n }\n }\n\n if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {\n conflicted = true;\n }\n\n if (conflicted) {\n return changes;\n }\n\n while (matchIndex < matchChanges.length) {\n merged.push(matchChanges[matchIndex++]);\n }\n\n return {\n merged: merged,\n changes: changes\n };\n }\n\n function allRemoves(changes) {\n return changes.reduce(function (prev, change) {\n return prev && change[0] === '-';\n }, true);\n }\n\n function skipRemoveSuperset(state, removeChanges, delta) {\n for (var i = 0; i < delta; i++) {\n var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);\n\n if (state.lines[state.index + i] !== ' ' + changeContent) {\n return false;\n }\n }\n\n state.index += delta;\n return true;\n }\n\n function calcOldNewLineCount(lines) {\n var oldLines = 0;\n var newLines = 0;\n lines.forEach(function (line) {\n if (typeof line !== 'string') {\n var myCount = calcOldNewLineCount(line.mine);\n var theirCount = calcOldNewLineCount(line.theirs);\n\n if (oldLines !== undefined) {\n if (myCount.oldLines === theirCount.oldLines) {\n oldLines += myCount.oldLines;\n } else {\n oldLines = undefined;\n }\n }\n\n if (newLines !== undefined) {\n if (myCount.newLines === theirCount.newLines) {\n newLines += myCount.newLines;\n } else {\n newLines = undefined;\n }\n }\n } else {\n if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {\n newLines++;\n }\n\n if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {\n oldLines++;\n }\n }\n });\n return {\n oldLines: oldLines,\n newLines: newLines\n };\n }\n\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\n function convertChangesToDMP(changes) {\n var ret = [],\n change,\n operation;\n\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n\n return ret;\n }\n\n function convertChangesToXML(changes) {\n var ret = [];\n\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n\n if (change.added) {\n ret.push('<ins>');\n } else if (change.removed) {\n ret.push('<del>');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('</ins>');\n } else if (change.removed) {\n ret.push('</del>');\n }\n }\n\n return ret.join('');\n }\n\n function escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&amp;');\n n = n.replace(/</g, '&lt;');\n n = n.replace(/>/g, '&gt;');\n n = n.replace(/\"/g, '&quot;');\n return n;\n }\n\n exports.Diff = Diff;\n exports.applyPatch = applyPatch;\n exports.applyPatches = applyPatches;\n exports.canonicalize = canonicalize;\n exports.convertChangesToDMP = convertChangesToDMP;\n exports.convertChangesToXML = convertChangesToXML;\n exports.createPatch = createPatch;\n exports.createTwoFilesPatch = createTwoFilesPatch;\n exports.diffArrays = diffArrays;\n exports.diffChars = diffChars;\n exports.diffCss = diffCss;\n exports.diffJson = diffJson;\n exports.diffLines = diffLines;\n exports.diffSentences = diffSentences;\n exports.diffTrimmedLines = diffTrimmedLines;\n exports.diffWords = diffWords;\n exports.diffWordsWithSpace = diffWordsWithSpace;\n exports.merge = merge;\n exports.parsePatch = parsePatch;\n exports.structuredPatch = structuredPatch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = [].splice;\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice.call(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","export var browser = true;\n","// This alphabet uses `A-Za-z0-9_-` symbols. The genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet =\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\n\nlet customAlphabet = (alphabet, size) => {\n return () => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nexport { nanoid, customAlphabet }\n","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '&quot;',\n\t\t'&': '&amp;',\n\t\t'\\'': '&#x27;',\n\t\t'<': '&lt;',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '&gt;',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '&#x60;'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;')\n\t\t\t\t\t.replace(/&#x66;&#x6A;/g, '&fjlig;');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&amp`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `&#119558;`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `&#x1D306;`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","'use strict';\n\n/**\n * Various utility functions used throughout Mocha's codebase.\n * @module utils\n */\n\n/**\n * Module dependencies.\n */\n\nconst {nanoid} = require('nanoid/non-secure');\nvar path = require('path');\nvar util = require('util');\nvar he = require('he');\n\nconst MOCHA_ID_PROP_NAME = '__mocha_id__';\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * @param {function} ctor - Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor - Constructor function to inherit prototype from.\n * @throws {TypeError} if either constructor is null, or if super constructor\n * lacks a prototype.\n */\nexports.inherits = util.inherits;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @private\n * @param {string} html\n * @return {string}\n */\nexports.escape = function(html) {\n return he.encode(String(html), {useNamedReferences: false});\n};\n\n/**\n * Test if the given obj is type of string.\n *\n * @private\n * @param {Object} obj\n * @return {boolean}\n */\nexports.isString = function(obj) {\n return typeof obj === 'string';\n};\n\n/**\n * Compute a slug from the given `str`.\n *\n * @private\n * @param {string} str\n * @return {string}\n */\nexports.slug = function(str) {\n return str\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^-\\w]/g, '')\n .replace(/-{2,}/g, '-');\n};\n\n/**\n * Strip the function definition from `str`, and re-indent for pre whitespace.\n *\n * @param {string} str\n * @return {string}\n */\nexports.clean = function(str) {\n str = str\n .replace(/\\r\\n?|[\\n\\u2028\\u2029]/g, '\\n')\n .replace(/^\\uFEFF/, '')\n // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content\n .replace(\n /^function(?:\\s*|\\s+[^(]*)\\([^)]*\\)\\s*\\{((?:.|\\n)*?)\\s*\\}$|^\\([^)]*\\)\\s*=>\\s*(?:\\{((?:.|\\n)*?)\\s*\\}|((?:.|\\n)*))$/,\n '$1$2$3'\n );\n\n var spaces = str.match(/^\\n?( *)/)[1].length;\n var tabs = str.match(/^\\n?(\\t*)/)[1].length;\n var re = new RegExp(\n '^\\n?' + (tabs ? '\\t' : ' ') + '{' + (tabs || spaces) + '}',\n 'gm'\n );\n\n str = str.replace(re, '');\n\n return str.trim();\n};\n\n/**\n * If a value could have properties, and has none, this function is called,\n * which returns a string representation of the empty value.\n *\n * Functions w/ no properties return `'[Function]'`\n * Arrays w/ length === 0 return `'[]'`\n * Objects w/ no properties return `'{}'`\n * All else: return result of `value.toString()`\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} typeHint The type of the value\n * @returns {string}\n */\nfunction emptyRepresentation(value, typeHint) {\n switch (typeHint) {\n case 'function':\n return '[Function]';\n case 'object':\n return '{}';\n case 'array':\n return '[]';\n default:\n return value.toString();\n }\n}\n\n/**\n * Takes some variable and asks `Object.prototype.toString()` what it thinks it\n * is.\n *\n * @private\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString\n * @param {*} value The value to test.\n * @returns {string} Computed type\n * @example\n * canonicalType({}) // 'object'\n * canonicalType([]) // 'array'\n * canonicalType(1) // 'number'\n * canonicalType(false) // 'boolean'\n * canonicalType(Infinity) // 'number'\n * canonicalType(null) // 'null'\n * canonicalType(new Date()) // 'date'\n * canonicalType(/foo/) // 'regexp'\n * canonicalType('type') // 'string'\n * canonicalType(global) // 'global'\n * canonicalType(new String('foo') // 'object'\n * canonicalType(async function() {}) // 'asyncfunction'\n * canonicalType(await import(name)) // 'module'\n */\nvar canonicalType = (exports.canonicalType = function canonicalType(value) {\n if (value === undefined) {\n return 'undefined';\n } else if (value === null) {\n return 'null';\n } else if (Buffer.isBuffer(value)) {\n return 'buffer';\n }\n return Object.prototype.toString\n .call(value)\n .replace(/^\\[.+\\s(.+?)]$/, '$1')\n .toLowerCase();\n});\n\n/**\n *\n * Returns a general type or data structure of a variable\n * @private\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures\n * @param {*} value The value to test.\n * @returns {string} One of undefined, boolean, number, string, bigint, symbol, object\n * @example\n * type({}) // 'object'\n * type([]) // 'array'\n * type(1) // 'number'\n * type(false) // 'boolean'\n * type(Infinity) // 'number'\n * type(null) // 'null'\n * type(new Date()) // 'object'\n * type(/foo/) // 'object'\n * type('type') // 'string'\n * type(global) // 'object'\n * type(new String('foo') // 'string'\n */\nexports.type = function type(value) {\n // Null is special\n if (value === null) return 'null';\n const primitives = new Set([\n 'undefined',\n 'boolean',\n 'number',\n 'string',\n 'bigint',\n 'symbol'\n ]);\n const _type = typeof value;\n if (_type === 'function') return _type;\n if (primitives.has(_type)) return _type;\n if (value instanceof String) return 'string';\n if (value instanceof Error) return 'error';\n if (Array.isArray(value)) return 'array';\n\n return _type;\n};\n\n/**\n * Stringify `value`. Different behavior depending on type of value:\n *\n * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.\n * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.\n * - If `value` is an *empty* object, function, or array, return result of function\n * {@link emptyRepresentation}.\n * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of\n * JSON.stringify().\n *\n * @private\n * @see exports.type\n * @param {*} value\n * @return {string}\n */\nexports.stringify = function(value) {\n var typeHint = canonicalType(value);\n\n if (!~['object', 'array', 'function'].indexOf(typeHint)) {\n if (typeHint === 'buffer') {\n var json = Buffer.prototype.toJSON.call(value);\n // Based on the toJSON result\n return jsonStringify(\n json.data && json.type ? json.data : json,\n 2\n ).replace(/,(\\n|$)/g, '$1');\n }\n\n // IE7/IE8 has a bizarre String constructor; needs to be coerced\n // into an array and back to obj.\n if (typeHint === 'string' && typeof value === 'object') {\n value = value.split('').reduce(function(acc, char, idx) {\n acc[idx] = char;\n return acc;\n }, {});\n typeHint = 'object';\n } else {\n return jsonStringify(value);\n }\n }\n\n for (var prop in value) {\n if (Object.prototype.hasOwnProperty.call(value, prop)) {\n return jsonStringify(\n exports.canonicalize(value, null, typeHint),\n 2\n ).replace(/,(\\n|$)/g, '$1');\n }\n }\n\n return emptyRepresentation(value, typeHint);\n};\n\n/**\n * like JSON.stringify but more sense.\n *\n * @private\n * @param {Object} object\n * @param {number=} spaces\n * @param {number=} depth\n * @returns {*}\n */\nfunction jsonStringify(object, spaces, depth) {\n if (typeof spaces === 'undefined') {\n // primitive types\n return _stringify(object);\n }\n\n depth = depth || 1;\n var space = spaces * depth;\n var str = Array.isArray(object) ? '[' : '{';\n var end = Array.isArray(object) ? ']' : '}';\n var length =\n typeof object.length === 'number'\n ? object.length\n : Object.keys(object).length;\n // `.repeat()` polyfill\n function repeat(s, n) {\n return new Array(n).join(s);\n }\n\n function _stringify(val) {\n switch (canonicalType(val)) {\n case 'null':\n case 'undefined':\n val = '[' + val + ']';\n break;\n case 'array':\n case 'object':\n val = jsonStringify(val, spaces, depth + 1);\n break;\n case 'boolean':\n case 'regexp':\n case 'symbol':\n case 'number':\n val =\n val === 0 && 1 / val === -Infinity // `-0`\n ? '-0'\n : val.toString();\n break;\n case 'bigint':\n val = val.toString() + 'n';\n break;\n case 'date':\n var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString();\n val = '[Date: ' + sDate + ']';\n break;\n case 'buffer':\n var json = val.toJSON();\n // Based on the toJSON result\n json = json.data && json.type ? json.data : json;\n val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']';\n break;\n default:\n val =\n val === '[Function]' || val === '[Circular]'\n ? val\n : JSON.stringify(val); // string\n }\n return val;\n }\n\n for (var i in object) {\n if (!Object.prototype.hasOwnProperty.call(object, i)) {\n continue; // not my business\n }\n --length;\n str +=\n '\\n ' +\n repeat(' ', space) +\n (Array.isArray(object) ? '' : '\"' + i + '\": ') + // key\n _stringify(object[i]) + // value\n (length ? ',' : ''); // comma\n }\n\n return (\n str +\n // [], {}\n (str.length !== 1 ? '\\n' + repeat(' ', --space) + end : end)\n );\n}\n\n/**\n * Return a new Thing that has the keys in sorted order. Recursive.\n *\n * If the Thing...\n * - has already been seen, return string `'[Circular]'`\n * - is `undefined`, return string `'[undefined]'`\n * - is `null`, return value `null`\n * - is some other primitive, return the value\n * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method\n * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.\n * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()`\n *\n * @private\n * @see {@link exports.stringify}\n * @param {*} value Thing to inspect. May or may not have properties.\n * @param {Array} [stack=[]] Stack of seen values\n * @param {string} [typeHint] Type hint\n * @return {(Object|Array|Function|string|undefined)}\n */\nexports.canonicalize = function canonicalize(value, stack, typeHint) {\n var canonicalizedObj;\n /* eslint-disable no-unused-vars */\n var prop;\n /* eslint-enable no-unused-vars */\n typeHint = typeHint || canonicalType(value);\n function withStack(value, fn) {\n stack.push(value);\n fn();\n stack.pop();\n }\n\n stack = stack || [];\n\n if (stack.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n switch (typeHint) {\n case 'undefined':\n case 'buffer':\n case 'null':\n canonicalizedObj = value;\n break;\n case 'array':\n withStack(value, function() {\n canonicalizedObj = value.map(function(item) {\n return exports.canonicalize(item, stack);\n });\n });\n break;\n case 'function':\n /* eslint-disable-next-line no-unused-vars */\n for (prop in value) {\n canonicalizedObj = {};\n break;\n }\n /* eslint-enable guard-for-in */\n if (!canonicalizedObj) {\n canonicalizedObj = emptyRepresentation(value, typeHint);\n break;\n }\n /* falls through */\n case 'object':\n canonicalizedObj = canonicalizedObj || {};\n withStack(value, function() {\n Object.keys(value)\n .sort()\n .forEach(function(key) {\n canonicalizedObj[key] = exports.canonicalize(value[key], stack);\n });\n });\n break;\n case 'date':\n case 'number':\n case 'regexp':\n case 'boolean':\n case 'symbol':\n canonicalizedObj = value;\n break;\n default:\n canonicalizedObj = value + '';\n }\n\n return canonicalizedObj;\n};\n\n/**\n * @summary\n * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`)\n * @description\n * When invoking this function you get a filter function that get the Error.stack as an input,\n * and return a prettify output.\n * (i.e: strip Mocha and internal node functions from stack trace).\n * @returns {Function}\n */\nexports.stackTraceFilter = function() {\n // TODO: Replace with `process.browser`\n var is = typeof document === 'undefined' ? {node: true} : {browser: true};\n var slash = path.sep;\n var cwd;\n if (is.node) {\n cwd = exports.cwd() + slash;\n } else {\n cwd = (typeof location === 'undefined'\n ? window.location\n : location\n ).href.replace(/\\/[^/]*$/, '/');\n slash = '/';\n }\n\n function isMochaInternal(line) {\n return (\n ~line.indexOf('node_modules' + slash + 'mocha' + slash) ||\n ~line.indexOf(slash + 'mocha.js') ||\n ~line.indexOf(slash + 'mocha.min.js')\n );\n }\n\n function isNodeInternal(line) {\n return (\n ~line.indexOf('(timers.js:') ||\n ~line.indexOf('(events.js:') ||\n ~line.indexOf('(node.js:') ||\n ~line.indexOf('(module.js:') ||\n ~line.indexOf('GeneratorFunctionPrototype.next (native)') ||\n false\n );\n }\n\n return function(stack) {\n stack = stack.split('\\n');\n\n stack = stack.reduce(function(list, line) {\n if (isMochaInternal(line)) {\n return list;\n }\n\n if (is.node && isNodeInternal(line)) {\n return list;\n }\n\n // Clean up cwd(absolute)\n if (/:\\d+:\\d+\\)?$/.test(line)) {\n line = line.replace('(' + cwd, '(');\n }\n\n list.push(line);\n return list;\n }, []);\n\n return stack.join('\\n');\n };\n};\n\n/**\n * Crude, but effective.\n * @public\n * @param {*} value\n * @returns {boolean} Whether or not `value` is a Promise\n */\nexports.isPromise = function isPromise(value) {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof value.then === 'function'\n );\n};\n\n/**\n * Clamps a numeric value to an inclusive range.\n *\n * @param {number} value - Value to be clamped.\n * @param {number[]} range - Two element array specifying [min, max] range.\n * @returns {number} clamped value\n */\nexports.clamp = function clamp(value, range) {\n return Math.min(Math.max(value, range[0]), range[1]);\n};\n\n/**\n * It's a noop.\n * @public\n */\nexports.noop = function() {};\n\n/**\n * Creates a map-like object.\n *\n * @description\n * A \"map\" is an object with no prototype, for our purposes. In some cases\n * this would be more appropriate than a `Map`, especially if your environment\n * doesn't support it. Recommended for use in Mocha's public APIs.\n *\n * @public\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Custom_and_Null_objects|MDN:Map}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Custom_and_Null_objects|MDN:Object.create - Custom objects}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Custom_and_Null_objects|MDN:Object.assign}\n * @param {...*} [obj] - Arguments to `Object.assign()`.\n * @returns {Object} An object with no prototype, having `...obj` properties\n */\nexports.createMap = function(obj) {\n return Object.assign.apply(\n null,\n [Object.create(null)].concat(Array.prototype.slice.call(arguments))\n );\n};\n\n/**\n * Creates a read-only map-like object.\n *\n * @description\n * This differs from {@link module:utils.createMap createMap} only in that\n * the argument must be non-empty, because the result is frozen.\n *\n * @see {@link module:utils.createMap createMap}\n * @param {...*} [obj] - Arguments to `Object.assign()`.\n * @returns {Object} A frozen object with no prototype, having `...obj` properties\n * @throws {TypeError} if argument is not a non-empty object.\n */\nexports.defineConstants = function(obj) {\n if (canonicalType(obj) !== 'object' || !Object.keys(obj).length) {\n throw new TypeError('Invalid argument; expected a non-empty object');\n }\n return Object.freeze(exports.createMap(obj));\n};\n\n/**\n * Whether current version of Node support ES modules\n *\n * @description\n * Versions prior to 10 did not support ES Modules, and version 10 has an old incompatible version of ESM.\n * This function returns whether Node.JS has ES Module supports that is compatible with Mocha's needs,\n * which is version >=12.11.\n *\n * @param {partialSupport} whether the full Node.js ESM support is available (>= 12) or just something that supports the runtime (>= 10)\n *\n * @returns {Boolean} whether the current version of Node.JS supports ES Modules in a way that is compatible with Mocha\n */\nexports.supportsEsModules = function(partialSupport) {\n if (!exports.isBrowser() && process.versions && process.versions.node) {\n var versionFields = process.versions.node.split('.');\n var major = +versionFields[0];\n var minor = +versionFields[1];\n\n if (!partialSupport) {\n return major >= 13 || (major === 12 && minor >= 11);\n } else {\n return major >= 10;\n }\n }\n};\n\n/**\n * Returns current working directory\n *\n * Wrapper around `process.cwd()` for isolation\n * @private\n */\nexports.cwd = function cwd() {\n return process.cwd();\n};\n\n/**\n * Returns `true` if Mocha is running in a browser.\n * Checks for `process.browser`.\n * @returns {boolean}\n * @private\n */\nexports.isBrowser = function isBrowser() {\n return Boolean(process.browser);\n};\n\n/*\n * Casts `value` to an array; useful for optionally accepting array parameters\n *\n * It follows these rules, depending on `value`. If `value` is...\n * 1. `undefined`: return an empty Array\n * 2. `null`: return an array with a single `null` element\n * 3. Any other object: return the value of `Array.from()` _if_ the object is iterable\n * 4. otherwise: return an array with a single element, `value`\n * @param {*} value - Something to cast to an Array\n * @returns {Array<*>}\n */\nexports.castArray = function castArray(value) {\n if (value === undefined) {\n return [];\n }\n if (value === null) {\n return [null];\n }\n if (\n typeof value === 'object' &&\n (typeof value[Symbol.iterator] === 'function' || value.length !== undefined)\n ) {\n return Array.from(value);\n }\n return [value];\n};\n\nexports.constants = exports.defineConstants({\n MOCHA_ID_PROP_NAME\n});\n\n/**\n * Creates a new unique identifier\n * @returns {string} Unique identifier\n */\nexports.uniqueID = () => nanoid();\n\nexports.assignNewMochaID = obj => {\n const id = exports.uniqueID();\n Object.defineProperty(obj, MOCHA_ID_PROP_NAME, {\n get() {\n return id;\n }\n });\n return obj;\n};\n\n/**\n * Retrieves a Mocha ID from an object, if present.\n * @param {*} [obj] - Object\n * @returns {string|void}\n */\nexports.getMochaID = obj =>\n obj && typeof obj === 'object' ? obj[MOCHA_ID_PROP_NAME] : undefined;\n","'use strict';\n\nmodule.exports = {\n\tinfo: 'ℹ️',\n\tsuccess: '✅',\n\twarning: '⚠️',\n\terror: '❌️'\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n\n/**\n @module Pending\n*/\n\nmodule.exports = Pending;\n\n/**\n * Initialize a new `Pending` error with the given message.\n *\n * @param {string} message\n */\nfunction Pending(message) {\n this.message = message;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride,\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\n\nconst {format} = require('util');\n\n/**\n * Contains error codes, factory functions to create throwable error objects,\n * and warning/deprecation functions.\n * @module\n */\n\n/**\n * process.emitWarning or a polyfill\n * @see https://nodejs.org/api/process.html#process_process_emitwarning_warning_options\n * @ignore\n */\nconst emitWarning = (msg, type) => {\n if (process.emitWarning) {\n process.emitWarning(msg, type);\n } else {\n /* istanbul ignore next */\n process.nextTick(function() {\n console.warn(type + ': ' + msg);\n });\n }\n};\n\n/**\n * Show a deprecation warning. Each distinct message is only displayed once.\n * Ignores empty messages.\n *\n * @param {string} [msg] - Warning to print\n * @private\n */\nconst deprecate = msg => {\n msg = String(msg);\n if (msg && !deprecate.cache[msg]) {\n deprecate.cache[msg] = true;\n emitWarning(msg, 'DeprecationWarning');\n }\n};\ndeprecate.cache = {};\n\n/**\n * Show a generic warning.\n * Ignores empty messages.\n *\n * @param {string} [msg] - Warning to print\n * @private\n */\nconst warn = msg => {\n if (msg) {\n emitWarning(msg);\n }\n};\n\n/**\n * When Mocha throws exceptions (or rejects `Promise`s), it attempts to assign a `code` property to the `Error` object, for easier handling. These are the potential values of `code`.\n * @public\n * @namespace\n * @memberof module:lib/errors\n */\nvar constants = {\n /**\n * An unrecoverable error.\n * @constant\n * @default\n */\n FATAL: 'ERR_MOCHA_FATAL',\n\n /**\n * The type of an argument to a function call is invalid\n * @constant\n * @default\n */\n INVALID_ARG_TYPE: 'ERR_MOCHA_INVALID_ARG_TYPE',\n\n /**\n * The value of an argument to a function call is invalid\n * @constant\n * @default\n */\n INVALID_ARG_VALUE: 'ERR_MOCHA_INVALID_ARG_VALUE',\n\n /**\n * Something was thrown, but it wasn't an `Error`\n * @constant\n * @default\n */\n INVALID_EXCEPTION: 'ERR_MOCHA_INVALID_EXCEPTION',\n\n /**\n * An interface (e.g., `Mocha.interfaces`) is unknown or invalid\n * @constant\n * @default\n */\n INVALID_INTERFACE: 'ERR_MOCHA_INVALID_INTERFACE',\n\n /**\n * A reporter (.e.g, `Mocha.reporters`) is unknown or invalid\n * @constant\n * @default\n */\n INVALID_REPORTER: 'ERR_MOCHA_INVALID_REPORTER',\n\n /**\n * `done()` was called twice in a `Test` or `Hook` callback\n * @constant\n * @default\n */\n MULTIPLE_DONE: 'ERR_MOCHA_MULTIPLE_DONE',\n\n /**\n * No files matched the pattern provided by the user\n * @constant\n * @default\n */\n NO_FILES_MATCH_PATTERN: 'ERR_MOCHA_NO_FILES_MATCH_PATTERN',\n\n /**\n * Known, but unsupported behavior of some kind\n * @constant\n * @default\n */\n UNSUPPORTED: 'ERR_MOCHA_UNSUPPORTED',\n\n /**\n * Invalid state transition occurring in `Mocha` instance\n * @constant\n * @default\n */\n INSTANCE_ALREADY_RUNNING: 'ERR_MOCHA_INSTANCE_ALREADY_RUNNING',\n\n /**\n * Invalid state transition occurring in `Mocha` instance\n * @constant\n * @default\n */\n INSTANCE_ALREADY_DISPOSED: 'ERR_MOCHA_INSTANCE_ALREADY_DISPOSED',\n\n /**\n * Use of `only()` w/ `--forbid-only` results in this error.\n * @constant\n * @default\n */\n FORBIDDEN_EXCLUSIVITY: 'ERR_MOCHA_FORBIDDEN_EXCLUSIVITY',\n\n /**\n * To be thrown when a user-defined plugin implementation (e.g., `mochaHooks`) is invalid\n * @constant\n * @default\n */\n INVALID_PLUGIN_IMPLEMENTATION: 'ERR_MOCHA_INVALID_PLUGIN_IMPLEMENTATION',\n\n /**\n * To be thrown when a builtin or third-party plugin definition (the _definition_ of `mochaHooks`) is invalid\n * @constant\n * @default\n */\n INVALID_PLUGIN_DEFINITION: 'ERR_MOCHA_INVALID_PLUGIN_DEFINITION',\n\n /**\n * When a runnable exceeds its allowed run time.\n * @constant\n * @default\n */\n TIMEOUT: 'ERR_MOCHA_TIMEOUT',\n\n /**\n * Input file is not able to be parsed\n * @constant\n * @default\n */\n UNPARSABLE_FILE: 'ERR_MOCHA_UNPARSABLE_FILE'\n};\n\n/**\n * A set containing all string values of all Mocha error constants, for use by {@link isMochaError}.\n * @private\n */\nconst MOCHA_ERRORS = new Set(Object.values(constants));\n\n/**\n * Creates an error object to be thrown when no files to be tested could be found using specified pattern.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} pattern - User-specified argument value.\n * @returns {Error} instance detailing the error condition\n */\nfunction createNoFilesMatchPatternError(message, pattern) {\n var err = new Error(message);\n err.code = constants.NO_FILES_MATCH_PATTERN;\n err.pattern = pattern;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when the reporter specified in the options was not found.\n *\n * @public\n * @param {string} message - Error message to be displayed.\n * @param {string} reporter - User-specified reporter value.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidReporterError(message, reporter) {\n var err = new TypeError(message);\n err.code = constants.INVALID_REPORTER;\n err.reporter = reporter;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when the interface specified in the options was not found.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} ui - User-specified interface value.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidInterfaceError(message, ui) {\n var err = new Error(message);\n err.code = constants.INVALID_INTERFACE;\n err.interface = ui;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a behavior, option, or parameter is unsupported.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\nfunction createUnsupportedError(message) {\n var err = new Error(message);\n err.code = constants.UNSUPPORTED;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an argument is missing.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} expected - Expected argument datatype.\n * @returns {Error} instance detailing the error condition\n */\nfunction createMissingArgumentError(message, argument, expected) {\n return createInvalidArgumentTypeError(message, argument, expected);\n}\n\n/**\n * Creates an error object to be thrown when an argument did not use the supported type\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} expected - Expected argument datatype.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidArgumentTypeError(message, argument, expected) {\n var err = new TypeError(message);\n err.code = constants.INVALID_ARG_TYPE;\n err.argument = argument;\n err.expected = expected;\n err.actual = typeof argument;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an argument did not use the supported value\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} argument - Argument name.\n * @param {string} value - Argument value.\n * @param {string} [reason] - Why value is invalid.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidArgumentValueError(message, argument, value, reason) {\n var err = new TypeError(message);\n err.code = constants.INVALID_ARG_VALUE;\n err.argument = argument;\n err.value = value;\n err.reason = typeof reason !== 'undefined' ? reason : 'is invalid';\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an exception was caught, but the `Error` is falsy or undefined.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\nfunction createInvalidExceptionError(message, value) {\n var err = new Error(message);\n err.code = constants.INVALID_EXCEPTION;\n err.valueType = typeof value;\n err.value = value;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when an unrecoverable error occurs.\n *\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @returns {Error} instance detailing the error condition\n */\nfunction createFatalError(message, value) {\n var err = new Error(message);\n err.code = constants.FATAL;\n err.valueType = typeof value;\n err.value = value;\n return err;\n}\n\n/**\n * Dynamically creates a plugin-type-specific error based on plugin type\n * @param {string} message - Error message\n * @param {\"reporter\"|\"ui\"} pluginType - Plugin type. Future: expand as needed\n * @param {string} [pluginId] - Name/path of plugin, if any\n * @throws When `pluginType` is not known\n * @public\n * @static\n * @returns {Error}\n */\nfunction createInvalidLegacyPluginError(message, pluginType, pluginId) {\n switch (pluginType) {\n case 'reporter':\n return createInvalidReporterError(message, pluginId);\n case 'ui':\n return createInvalidInterfaceError(message, pluginId);\n default:\n throw new Error('unknown pluginType \"' + pluginType + '\"');\n }\n}\n\n/**\n * **DEPRECATED**. Use {@link createInvalidLegacyPluginError} instead Dynamically creates a plugin-type-specific error based on plugin type\n * @deprecated\n * @param {string} message - Error message\n * @param {\"reporter\"|\"interface\"} pluginType - Plugin type. Future: expand as needed\n * @param {string} [pluginId] - Name/path of plugin, if any\n * @throws When `pluginType` is not known\n * @public\n * @static\n * @returns {Error}\n */\nfunction createInvalidPluginError(...args) {\n deprecate('Use createInvalidLegacyPluginError() instead');\n return createInvalidLegacyPluginError(...args);\n}\n\n/**\n * Creates an error object to be thrown when a mocha object's `run` method is executed while it is already disposed.\n * @param {string} message The error message to be displayed.\n * @param {boolean} cleanReferencesAfterRun the value of `cleanReferencesAfterRun`\n * @param {Mocha} instance the mocha instance that throw this error\n * @static\n */\nfunction createMochaInstanceAlreadyDisposedError(\n message,\n cleanReferencesAfterRun,\n instance\n) {\n var err = new Error(message);\n err.code = constants.INSTANCE_ALREADY_DISPOSED;\n err.cleanReferencesAfterRun = cleanReferencesAfterRun;\n err.instance = instance;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a mocha object's `run` method is called while a test run is in progress.\n * @param {string} message The error message to be displayed.\n * @static\n * @public\n */\nfunction createMochaInstanceAlreadyRunningError(message, instance) {\n var err = new Error(message);\n err.code = constants.INSTANCE_ALREADY_RUNNING;\n err.instance = instance;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when done() is called multiple times in a test\n *\n * @public\n * @param {Runnable} runnable - Original runnable\n * @param {Error} [originalErr] - Original error, if any\n * @returns {Error} instance detailing the error condition\n * @static\n */\nfunction createMultipleDoneError(runnable, originalErr) {\n var title;\n try {\n title = format('<%s>', runnable.fullTitle());\n if (runnable.parent.root) {\n title += ' (of root suite)';\n }\n } catch (ignored) {\n title = format('<%s> (of unknown suite)', runnable.title);\n }\n var message = format(\n 'done() called multiple times in %s %s',\n runnable.type ? runnable.type : 'unknown runnable',\n title\n );\n if (runnable.file) {\n message += format(' of file %s', runnable.file);\n }\n if (originalErr) {\n message += format('; in addition, done() received error: %s', originalErr);\n }\n\n var err = new Error(message);\n err.code = constants.MULTIPLE_DONE;\n err.valueType = typeof originalErr;\n err.value = originalErr;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when `.only()` is used with\n * `--forbid-only`.\n * @static\n * @public\n * @param {Mocha} mocha - Mocha instance\n * @returns {Error} Error with code {@link constants.FORBIDDEN_EXCLUSIVITY}\n */\nfunction createForbiddenExclusivityError(mocha) {\n var err = new Error(\n mocha.isWorker\n ? '`.only` is not supported in parallel mode'\n : '`.only` forbidden by --forbid-only'\n );\n err.code = constants.FORBIDDEN_EXCLUSIVITY;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a plugin definition is invalid\n * @static\n * @param {string} msg - Error message\n * @param {PluginDefinition} [pluginDef] - Problematic plugin definition\n * @public\n * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}\n */\nfunction createInvalidPluginDefinitionError(msg, pluginDef) {\n const err = new Error(msg);\n err.code = constants.INVALID_PLUGIN_DEFINITION;\n err.pluginDef = pluginDef;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a plugin implementation (user code) is invalid\n * @static\n * @param {string} msg - Error message\n * @param {Object} [opts] - Plugin definition and user-supplied implementation\n * @param {PluginDefinition} [opts.pluginDef] - Plugin Definition\n * @param {*} [opts.pluginImpl] - Plugin Implementation (user-supplied)\n * @public\n * @returns {Error} Error with code {@link constants.INVALID_PLUGIN_DEFINITION}\n */\nfunction createInvalidPluginImplementationError(\n msg,\n {pluginDef, pluginImpl} = {}\n) {\n const err = new Error(msg);\n err.code = constants.INVALID_PLUGIN_IMPLEMENTATION;\n err.pluginDef = pluginDef;\n err.pluginImpl = pluginImpl;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when a runnable exceeds its allowed run time.\n * @static\n * @param {string} msg - Error message\n * @param {number} [timeout] - Timeout in ms\n * @param {string} [file] - File, if given\n * @returns {MochaTimeoutError}\n */\nfunction createTimeoutError(msg, timeout, file) {\n const err = new Error(msg);\n err.code = constants.TIMEOUT;\n err.timeout = timeout;\n err.file = file;\n return err;\n}\n\n/**\n * Creates an error object to be thrown when file is unparsable\n * @public\n * @static\n * @param {string} message - Error message to be displayed.\n * @param {string} filename - File name\n * @returns {Error} Error with code {@link constants.UNPARSABLE_FILE}\n */\nfunction createUnparsableFileError(message, filename) {\n var err = new Error(message);\n err.code = constants.UNPARSABLE_FILE;\n return err;\n}\n\n/**\n * Returns `true` if an error came out of Mocha.\n * _Can suffer from false negatives, but not false positives._\n * @static\n * @public\n * @param {*} err - Error, or anything\n * @returns {boolean}\n */\nconst isMochaError = err =>\n Boolean(err && typeof err === 'object' && MOCHA_ERRORS.has(err.code));\n\nmodule.exports = {\n constants,\n createFatalError,\n createForbiddenExclusivityError,\n createInvalidArgumentTypeError,\n createInvalidArgumentValueError,\n createInvalidExceptionError,\n createInvalidInterfaceError,\n createInvalidLegacyPluginError,\n createInvalidPluginDefinitionError,\n createInvalidPluginError,\n createInvalidPluginImplementationError,\n createInvalidReporterError,\n createMissingArgumentError,\n createMochaInstanceAlreadyDisposedError,\n createMochaInstanceAlreadyRunningError,\n createMultipleDoneError,\n createNoFilesMatchPatternError,\n createTimeoutError,\n createUnparsableFileError,\n createUnsupportedError,\n deprecate,\n isMochaError,\n warn\n};\n\n/**\n * The error thrown when a Runnable times out\n * @memberof module:lib/errors\n * @typedef {Error} MochaTimeoutError\n * @property {constants.TIMEOUT} code - Error code\n * @property {number?} timeout Timeout in ms\n * @property {string?} file Filepath, if given\n */\n","'use strict';\n\nvar EventEmitter = require('events').EventEmitter;\nvar Pending = require('./pending');\nvar debug = require('debug')('mocha:runnable');\nvar milliseconds = require('ms');\nvar utils = require('./utils');\nconst {\n createInvalidExceptionError,\n createMultipleDoneError,\n createTimeoutError\n} = require('./errors');\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n * @private\n */\nvar Date = global.Date;\nvar setTimeout = global.setTimeout;\nvar clearTimeout = global.clearTimeout;\nvar toString = Object.prototype.toString;\n\nmodule.exports = Runnable;\n\n/**\n * Initialize a new `Runnable` with the given `title` and callback `fn`.\n *\n * @class\n * @extends external:EventEmitter\n * @public\n * @param {String} title\n * @param {Function} fn\n */\nfunction Runnable(title, fn) {\n this.title = title;\n this.fn = fn;\n this.body = (fn || '').toString();\n this.async = fn && fn.length;\n this.sync = !this.async;\n this._timeout = 2000;\n this._slow = 75;\n this._retries = -1;\n utils.assignNewMochaID(this);\n Object.defineProperty(this, 'id', {\n get() {\n return utils.getMochaID(this);\n }\n });\n this.reset();\n}\n\n/**\n * Inherit from `EventEmitter.prototype`.\n */\nutils.inherits(Runnable, EventEmitter);\n\n/**\n * Resets the state initially or for a next run.\n */\nRunnable.prototype.reset = function() {\n this.timedOut = false;\n this._currentRetry = 0;\n this.pending = false;\n delete this.state;\n delete this.err;\n};\n\n/**\n * Get current timeout value in msecs.\n *\n * @private\n * @returns {number} current timeout threshold value\n */\n/**\n * @summary\n * Set timeout threshold value (msecs).\n *\n * @description\n * A string argument can use shorthand (e.g., \"2s\") and will be converted.\n * The value will be clamped to range [<code>0</code>, <code>2^<sup>31</sup>-1</code>].\n * If clamped value matches either range endpoint, timeouts will be disabled.\n *\n * @private\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Maximum_delay_value}\n * @param {number|string} ms - Timeout threshold value.\n * @returns {Runnable} this\n * @chainable\n */\nRunnable.prototype.timeout = function(ms) {\n if (!arguments.length) {\n return this._timeout;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n\n // Clamp to range\n var INT_MAX = Math.pow(2, 31) - 1;\n var range = [0, INT_MAX];\n ms = utils.clamp(ms, range);\n\n // see #1652 for reasoning\n if (ms === range[0] || ms === range[1]) {\n this._timeout = 0;\n } else {\n this._timeout = ms;\n }\n debug('timeout %d', this._timeout);\n\n if (this.timer) {\n this.resetTimeout();\n }\n return this;\n};\n\n/**\n * Set or get slow `ms`.\n *\n * @private\n * @param {number|string} ms\n * @return {Runnable|number} ms or Runnable instance.\n */\nRunnable.prototype.slow = function(ms) {\n if (!arguments.length || typeof ms === 'undefined') {\n return this._slow;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n debug('slow %d', ms);\n this._slow = ms;\n return this;\n};\n\n/**\n * Halt and mark as pending.\n *\n * @memberof Mocha.Runnable\n * @public\n */\nRunnable.prototype.skip = function() {\n this.pending = true;\n throw new Pending('sync skip; aborting execution');\n};\n\n/**\n * Check if this runnable or its parent suite is marked as pending.\n *\n * @private\n */\nRunnable.prototype.isPending = function() {\n return this.pending || (this.parent && this.parent.isPending());\n};\n\n/**\n * Return `true` if this Runnable has failed.\n * @return {boolean}\n * @private\n */\nRunnable.prototype.isFailed = function() {\n return !this.isPending() && this.state === constants.STATE_FAILED;\n};\n\n/**\n * Return `true` if this Runnable has passed.\n * @return {boolean}\n * @private\n */\nRunnable.prototype.isPassed = function() {\n return !this.isPending() && this.state === constants.STATE_PASSED;\n};\n\n/**\n * Set or get number of retries.\n *\n * @private\n */\nRunnable.prototype.retries = function(n) {\n if (!arguments.length) {\n return this._retries;\n }\n this._retries = n;\n};\n\n/**\n * Set or get current retry\n *\n * @private\n */\nRunnable.prototype.currentRetry = function(n) {\n if (!arguments.length) {\n return this._currentRetry;\n }\n this._currentRetry = n;\n};\n\n/**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @memberof Mocha.Runnable\n * @public\n * @return {string}\n */\nRunnable.prototype.fullTitle = function() {\n return this.titlePath().join(' ');\n};\n\n/**\n * Return the title path generated by concatenating the parent's title path with the title.\n *\n * @memberof Mocha.Runnable\n * @public\n * @return {string}\n */\nRunnable.prototype.titlePath = function() {\n return this.parent.titlePath().concat([this.title]);\n};\n\n/**\n * Clear the timeout.\n *\n * @private\n */\nRunnable.prototype.clearTimeout = function() {\n clearTimeout(this.timer);\n};\n\n/**\n * Reset the timeout.\n *\n * @private\n */\nRunnable.prototype.resetTimeout = function() {\n var self = this;\n var ms = this.timeout();\n\n if (ms === 0) {\n return;\n }\n this.clearTimeout();\n this.timer = setTimeout(function() {\n if (self.timeout() === 0) {\n return;\n }\n self.callback(self._timeoutError(ms));\n self.timedOut = true;\n }, ms);\n};\n\n/**\n * Set or get a list of whitelisted globals for this test run.\n *\n * @private\n * @param {string[]} globals\n */\nRunnable.prototype.globals = function(globals) {\n if (!arguments.length) {\n return this._allowedGlobals;\n }\n this._allowedGlobals = globals;\n};\n\n/**\n * Run the test and invoke `fn(err)`.\n *\n * @param {Function} fn\n * @private\n */\nRunnable.prototype.run = function(fn) {\n var self = this;\n var start = new Date();\n var ctx = this.ctx;\n var finished;\n var errorWasHandled = false;\n\n if (this.isPending()) return fn();\n\n // Sometimes the ctx exists, but it is not runnable\n if (ctx && ctx.runnable) {\n ctx.runnable(this);\n }\n\n // called multiple times\n function multiple(err) {\n if (errorWasHandled) {\n return;\n }\n errorWasHandled = true;\n self.emit('error', createMultipleDoneError(self, err));\n }\n\n // finished\n function done(err) {\n var ms = self.timeout();\n if (self.timedOut) {\n return;\n }\n\n if (finished) {\n return multiple(err);\n }\n\n self.clearTimeout();\n self.duration = new Date() - start;\n finished = true;\n if (!err && self.duration > ms && ms > 0) {\n err = self._timeoutError(ms);\n }\n fn(err);\n }\n\n // for .resetTimeout() and Runner#uncaught()\n this.callback = done;\n\n if (this.fn && typeof this.fn.call !== 'function') {\n done(\n new TypeError(\n 'A runnable must be passed a function as its second argument.'\n )\n );\n return;\n }\n\n // explicit async with `done` argument\n if (this.async) {\n this.resetTimeout();\n\n // allows skip() to be used in an explicit async context\n this.skip = function asyncSkip() {\n this.pending = true;\n done();\n // halt execution, the uncaught handler will ignore the failure.\n throw new Pending('async skip; aborting execution');\n };\n\n try {\n callFnAsync(this.fn);\n } catch (err) {\n // handles async runnables which actually run synchronously\n errorWasHandled = true;\n if (err instanceof Pending) {\n return; // done() is already called in this.skip()\n } else if (this.allowUncaught) {\n throw err;\n }\n done(Runnable.toValueOrError(err));\n }\n return;\n }\n\n // sync or promise-returning\n try {\n callFn(this.fn);\n } catch (err) {\n errorWasHandled = true;\n if (err instanceof Pending) {\n return done();\n } else if (this.allowUncaught) {\n throw err;\n }\n done(Runnable.toValueOrError(err));\n }\n\n function callFn(fn) {\n var result = fn.call(ctx);\n if (result && typeof result.then === 'function') {\n self.resetTimeout();\n result.then(\n function() {\n done();\n // Return null so libraries like bluebird do not warn about\n // subsequently constructed Promises.\n return null;\n },\n function(reason) {\n done(reason || new Error('Promise rejected with no or falsy reason'));\n }\n );\n } else {\n if (self.asyncOnly) {\n return done(\n new Error(\n '--async-only option in use without declaring `done()` or returning a promise'\n )\n );\n }\n\n done();\n }\n }\n\n function callFnAsync(fn) {\n var result = fn.call(ctx, function(err) {\n if (err instanceof Error || toString.call(err) === '[object Error]') {\n return done(err);\n }\n if (err) {\n if (Object.prototype.toString.call(err) === '[object Object]') {\n return done(\n new Error('done() invoked with non-Error: ' + JSON.stringify(err))\n );\n }\n return done(new Error('done() invoked with non-Error: ' + err));\n }\n if (result && utils.isPromise(result)) {\n return done(\n new Error(\n 'Resolution method is overspecified. Specify a callback *or* return a Promise; not both.'\n )\n );\n }\n\n done();\n });\n }\n};\n\n/**\n * Instantiates a \"timeout\" error\n *\n * @param {number} ms - Timeout (in milliseconds)\n * @returns {Error} a \"timeout\" error\n * @private\n */\nRunnable.prototype._timeoutError = function(ms) {\n let msg = `Timeout of ${ms}ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves.`;\n if (this.file) {\n msg += ' (' + this.file + ')';\n }\n return createTimeoutError(msg, ms, this.file);\n};\n\nvar constants = utils.defineConstants(\n /**\n * {@link Runnable}-related constants.\n * @public\n * @memberof Runnable\n * @readonly\n * @static\n * @alias constants\n * @enum {string}\n */\n {\n /**\n * Value of `state` prop when a `Runnable` has failed\n */\n STATE_FAILED: 'failed',\n /**\n * Value of `state` prop when a `Runnable` has passed\n */\n STATE_PASSED: 'passed',\n /**\n * Value of `state` prop when a `Runnable` has been skipped by user\n */\n STATE_PENDING: 'pending'\n }\n);\n\n/**\n * Given `value`, return identity if truthy, otherwise create an \"invalid exception\" error and return that.\n * @param {*} [value] - Value to return, if present\n * @returns {*|Error} `value`, otherwise an `Error`\n * @private\n */\nRunnable.toValueOrError = function(value) {\n return (\n value ||\n createInvalidExceptionError(\n 'Runnable failed with falsy or undefined exception. Please throw an Error instead.',\n value\n )\n );\n};\n\nRunnable.constants = constants;\n","'use strict';\n\nvar Runnable = require('./runnable');\nconst {inherits, constants} = require('./utils');\nconst {MOCHA_ID_PROP_NAME} = constants;\n\n/**\n * Expose `Hook`.\n */\n\nmodule.exports = Hook;\n\n/**\n * Initialize a new `Hook` with the given `title` and callback `fn`\n *\n * @class\n * @extends Runnable\n * @param {String} title\n * @param {Function} fn\n */\nfunction Hook(title, fn) {\n Runnable.call(this, title, fn);\n this.type = 'hook';\n}\n\n/**\n * Inherit from `Runnable.prototype`.\n */\ninherits(Hook, Runnable);\n\n/**\n * Resets the state for a next run.\n */\nHook.prototype.reset = function() {\n Runnable.prototype.reset.call(this);\n delete this._error;\n};\n\n/**\n * Get or set the test `err`.\n *\n * @memberof Hook\n * @public\n * @param {Error} err\n * @return {Error}\n */\nHook.prototype.error = function(err) {\n if (!arguments.length) {\n err = this._error;\n this._error = null;\n return err;\n }\n\n this._error = err;\n};\n\n/**\n * Returns an object suitable for IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\nHook.prototype.serialize = function serialize() {\n return {\n $$currentRetry: this.currentRetry(),\n $$fullTitle: this.fullTitle(),\n $$isPending: Boolean(this.isPending()),\n $$titlePath: this.titlePath(),\n ctx:\n this.ctx && this.ctx.currentTest\n ? {\n currentTest: {\n title: this.ctx.currentTest.title,\n [MOCHA_ID_PROP_NAME]: this.ctx.currentTest.id\n }\n }\n : {},\n duration: this.duration,\n file: this.file,\n parent: {\n $$fullTitle: this.parent.fullTitle(),\n [MOCHA_ID_PROP_NAME]: this.parent.id\n },\n state: this.state,\n title: this.title,\n type: this.type,\n [MOCHA_ID_PROP_NAME]: this.id\n };\n};\n","'use strict';\n\n/**\n * Module dependencies.\n * @private\n */\nconst {EventEmitter} = require('events');\nconst Hook = require('./hook');\nvar {\n assignNewMochaID,\n clamp,\n constants: utilsConstants,\n createMap,\n defineConstants,\n getMochaID,\n inherits,\n isString\n} = require('./utils');\nconst debug = require('debug')('mocha:suite');\nconst milliseconds = require('ms');\nconst errors = require('./errors');\n\nconst {MOCHA_ID_PROP_NAME} = utilsConstants;\n\n/**\n * Expose `Suite`.\n */\n\nexports = module.exports = Suite;\n\n/**\n * Create a new `Suite` with the given `title` and parent `Suite`.\n *\n * @public\n * @param {Suite} parent - Parent suite (required!)\n * @param {string} title - Title\n * @return {Suite}\n */\nSuite.create = function(parent, title) {\n var suite = new Suite(title, parent.ctx);\n suite.parent = parent;\n title = suite.fullTitle();\n parent.addSuite(suite);\n return suite;\n};\n\n/**\n * Constructs a new `Suite` instance with the given `title`, `ctx`, and `isRoot`.\n *\n * @public\n * @class\n * @extends EventEmitter\n * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter|EventEmitter}\n * @param {string} title - Suite title.\n * @param {Context} parentContext - Parent context instance.\n * @param {boolean} [isRoot=false] - Whether this is the root suite.\n */\nfunction Suite(title, parentContext, isRoot) {\n if (!isString(title)) {\n throw errors.createInvalidArgumentTypeError(\n 'Suite argument \"title\" must be a string. Received type \"' +\n typeof title +\n '\"',\n 'title',\n 'string'\n );\n }\n this.title = title;\n function Context() {}\n Context.prototype = parentContext;\n this.ctx = new Context();\n this.suites = [];\n this.tests = [];\n this.root = isRoot === true;\n this.pending = false;\n this._retries = -1;\n this._beforeEach = [];\n this._beforeAll = [];\n this._afterEach = [];\n this._afterAll = [];\n this._timeout = 2000;\n this._slow = 75;\n this._bail = false;\n this._onlyTests = [];\n this._onlySuites = [];\n assignNewMochaID(this);\n\n Object.defineProperty(this, 'id', {\n get() {\n return getMochaID(this);\n }\n });\n\n this.reset();\n\n this.on('newListener', function(event) {\n if (deprecatedEvents[event]) {\n errors.deprecate(\n 'Event \"' +\n event +\n '\" is deprecated. Please let the Mocha team know about your use case: https://git.io/v6Lwm'\n );\n }\n });\n}\n\n/**\n * Inherit from `EventEmitter.prototype`.\n */\ninherits(Suite, EventEmitter);\n\n/**\n * Resets the state initially or for a next run.\n */\nSuite.prototype.reset = function() {\n this.delayed = false;\n function doReset(thingToReset) {\n thingToReset.reset();\n }\n this.suites.forEach(doReset);\n this.tests.forEach(doReset);\n this._beforeEach.forEach(doReset);\n this._afterEach.forEach(doReset);\n this._beforeAll.forEach(doReset);\n this._afterAll.forEach(doReset);\n};\n\n/**\n * Return a clone of this `Suite`.\n *\n * @private\n * @return {Suite}\n */\nSuite.prototype.clone = function() {\n var suite = new Suite(this.title);\n debug('clone');\n suite.ctx = this.ctx;\n suite.root = this.root;\n suite.timeout(this.timeout());\n suite.retries(this.retries());\n suite.slow(this.slow());\n suite.bail(this.bail());\n return suite;\n};\n\n/**\n * Set or get timeout `ms` or short-hand such as \"2s\".\n *\n * @private\n * @todo Do not attempt to set value if `ms` is undefined\n * @param {number|string} ms\n * @return {Suite|number} for chaining\n */\nSuite.prototype.timeout = function(ms) {\n if (!arguments.length) {\n return this._timeout;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n\n // Clamp to range\n var INT_MAX = Math.pow(2, 31) - 1;\n var range = [0, INT_MAX];\n ms = clamp(ms, range);\n\n debug('timeout %d', ms);\n this._timeout = parseInt(ms, 10);\n return this;\n};\n\n/**\n * Set or get number of times to retry a failed test.\n *\n * @private\n * @param {number|string} n\n * @return {Suite|number} for chaining\n */\nSuite.prototype.retries = function(n) {\n if (!arguments.length) {\n return this._retries;\n }\n debug('retries %d', n);\n this._retries = parseInt(n, 10) || 0;\n return this;\n};\n\n/**\n * Set or get slow `ms` or short-hand such as \"2s\".\n *\n * @private\n * @param {number|string} ms\n * @return {Suite|number} for chaining\n */\nSuite.prototype.slow = function(ms) {\n if (!arguments.length) {\n return this._slow;\n }\n if (typeof ms === 'string') {\n ms = milliseconds(ms);\n }\n debug('slow %d', ms);\n this._slow = ms;\n return this;\n};\n\n/**\n * Set or get whether to bail after first error.\n *\n * @private\n * @param {boolean} bail\n * @return {Suite|number} for chaining\n */\nSuite.prototype.bail = function(bail) {\n if (!arguments.length) {\n return this._bail;\n }\n debug('bail %s', bail);\n this._bail = bail;\n return this;\n};\n\n/**\n * Check if this suite or its parent suite is marked as pending.\n *\n * @private\n */\nSuite.prototype.isPending = function() {\n return this.pending || (this.parent && this.parent.isPending());\n};\n\n/**\n * Generic hook-creator.\n * @private\n * @param {string} title - Title of hook\n * @param {Function} fn - Hook callback\n * @returns {Hook} A new hook\n */\nSuite.prototype._createHook = function(title, fn) {\n var hook = new Hook(title, fn);\n hook.parent = this;\n hook.timeout(this.timeout());\n hook.retries(this.retries());\n hook.slow(this.slow());\n hook.ctx = this.ctx;\n hook.file = this.file;\n return hook;\n};\n\n/**\n * Run `fn(test[, done])` before running tests.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.beforeAll = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"before all\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._beforeAll.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_ALL, hook);\n return this;\n};\n\n/**\n * Run `fn(test[, done])` after running tests.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.afterAll = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"after all\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._afterAll.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_ALL, hook);\n return this;\n};\n\n/**\n * Run `fn(test[, done])` before each test case.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.beforeEach = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"before each\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._beforeEach.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_BEFORE_EACH, hook);\n return this;\n};\n\n/**\n * Run `fn(test[, done])` after each test case.\n *\n * @private\n * @param {string} title\n * @param {Function} fn\n * @return {Suite} for chaining\n */\nSuite.prototype.afterEach = function(title, fn) {\n if (this.isPending()) {\n return this;\n }\n if (typeof title === 'function') {\n fn = title;\n title = fn.name;\n }\n title = '\"after each\" hook' + (title ? ': ' + title : '');\n\n var hook = this._createHook(title, fn);\n this._afterEach.push(hook);\n this.emit(constants.EVENT_SUITE_ADD_HOOK_AFTER_EACH, hook);\n return this;\n};\n\n/**\n * Add a test `suite`.\n *\n * @private\n * @param {Suite} suite\n * @return {Suite} for chaining\n */\nSuite.prototype.addSuite = function(suite) {\n suite.parent = this;\n suite.root = false;\n suite.timeout(this.timeout());\n suite.retries(this.retries());\n suite.slow(this.slow());\n suite.bail(this.bail());\n this.suites.push(suite);\n this.emit(constants.EVENT_SUITE_ADD_SUITE, suite);\n return this;\n};\n\n/**\n * Add a `test` to this suite.\n *\n * @private\n * @param {Test} test\n * @return {Suite} for chaining\n */\nSuite.prototype.addTest = function(test) {\n test.parent = this;\n test.timeout(this.timeout());\n test.retries(this.retries());\n test.slow(this.slow());\n test.ctx = this.ctx;\n this.tests.push(test);\n this.emit(constants.EVENT_SUITE_ADD_TEST, test);\n return this;\n};\n\n/**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @memberof Suite\n * @public\n * @return {string}\n */\nSuite.prototype.fullTitle = function() {\n return this.titlePath().join(' ');\n};\n\n/**\n * Return the title path generated by recursively concatenating the parent's\n * title path.\n *\n * @memberof Suite\n * @public\n * @return {string}\n */\nSuite.prototype.titlePath = function() {\n var result = [];\n if (this.parent) {\n result = result.concat(this.parent.titlePath());\n }\n if (!this.root) {\n result.push(this.title);\n }\n return result;\n};\n\n/**\n * Return the total number of tests.\n *\n * @memberof Suite\n * @public\n * @return {number}\n */\nSuite.prototype.total = function() {\n return (\n this.suites.reduce(function(sum, suite) {\n return sum + suite.total();\n }, 0) + this.tests.length\n );\n};\n\n/**\n * Iterates through each suite recursively to find all tests. Applies a\n * function in the format `fn(test)`.\n *\n * @private\n * @param {Function} fn\n * @return {Suite}\n */\nSuite.prototype.eachTest = function(fn) {\n this.tests.forEach(fn);\n this.suites.forEach(function(suite) {\n suite.eachTest(fn);\n });\n return this;\n};\n\n/**\n * This will run the root suite if we happen to be running in delayed mode.\n * @private\n */\nSuite.prototype.run = function run() {\n if (this.root) {\n this.emit(constants.EVENT_ROOT_SUITE_RUN);\n }\n};\n\n/**\n * Determines whether a suite has an `only` test or suite as a descendant.\n *\n * @private\n * @returns {Boolean}\n */\nSuite.prototype.hasOnly = function hasOnly() {\n return (\n this._onlyTests.length > 0 ||\n this._onlySuites.length > 0 ||\n this.suites.some(function(suite) {\n return suite.hasOnly();\n })\n );\n};\n\n/**\n * Filter suites based on `isOnly` logic.\n *\n * @private\n * @returns {Boolean}\n */\nSuite.prototype.filterOnly = function filterOnly() {\n if (this._onlyTests.length) {\n // If the suite contains `only` tests, run those and ignore any nested suites.\n this.tests = this._onlyTests;\n this.suites = [];\n } else {\n // Otherwise, do not run any of the tests in this suite.\n this.tests = [];\n this._onlySuites.forEach(function(onlySuite) {\n // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite.\n // Otherwise, all of the tests on this `only` suite should be run, so don't filter it.\n if (onlySuite.hasOnly()) {\n onlySuite.filterOnly();\n }\n });\n // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants.\n var onlySuites = this._onlySuites;\n this.suites = this.suites.filter(function(childSuite) {\n return onlySuites.indexOf(childSuite) !== -1 || childSuite.filterOnly();\n });\n }\n // Keep the suite only if there is something to run\n return this.tests.length > 0 || this.suites.length > 0;\n};\n\n/**\n * Adds a suite to the list of subsuites marked `only`.\n *\n * @private\n * @param {Suite} suite\n */\nSuite.prototype.appendOnlySuite = function(suite) {\n this._onlySuites.push(suite);\n};\n\n/**\n * Marks a suite to be `only`.\n *\n * @private\n */\nSuite.prototype.markOnly = function() {\n this.parent && this.parent.appendOnlySuite(this);\n};\n\n/**\n * Adds a test to the list of tests marked `only`.\n *\n * @private\n * @param {Test} test\n */\nSuite.prototype.appendOnlyTest = function(test) {\n this._onlyTests.push(test);\n};\n\n/**\n * Returns the array of hooks by hook name; see `HOOK_TYPE_*` constants.\n * @private\n */\nSuite.prototype.getHooks = function getHooks(name) {\n return this['_' + name];\n};\n\n/**\n * cleans all references from this suite and all child suites.\n */\nSuite.prototype.dispose = function() {\n this.suites.forEach(function(suite) {\n suite.dispose();\n });\n this.cleanReferences();\n};\n\n/**\n * Cleans up the references to all the deferred functions\n * (before/after/beforeEach/afterEach) and tests of a Suite.\n * These must be deleted otherwise a memory leak can happen,\n * as those functions may reference variables from closures,\n * thus those variables can never be garbage collected as long\n * as the deferred functions exist.\n *\n * @private\n */\nSuite.prototype.cleanReferences = function cleanReferences() {\n function cleanArrReferences(arr) {\n for (var i = 0; i < arr.length; i++) {\n delete arr[i].fn;\n }\n }\n\n if (Array.isArray(this._beforeAll)) {\n cleanArrReferences(this._beforeAll);\n }\n\n if (Array.isArray(this._beforeEach)) {\n cleanArrReferences(this._beforeEach);\n }\n\n if (Array.isArray(this._afterAll)) {\n cleanArrReferences(this._afterAll);\n }\n\n if (Array.isArray(this._afterEach)) {\n cleanArrReferences(this._afterEach);\n }\n\n for (var i = 0; i < this.tests.length; i++) {\n delete this.tests[i].fn;\n }\n};\n\n/**\n * Returns an object suitable for IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\nSuite.prototype.serialize = function serialize() {\n return {\n _bail: this._bail,\n $$fullTitle: this.fullTitle(),\n $$isPending: Boolean(this.isPending()),\n root: this.root,\n title: this.title,\n [MOCHA_ID_PROP_NAME]: this.id,\n parent: this.parent ? {[MOCHA_ID_PROP_NAME]: this.parent.id} : null\n };\n};\n\nvar constants = defineConstants(\n /**\n * {@link Suite}-related constants.\n * @public\n * @memberof Suite\n * @alias constants\n * @readonly\n * @static\n * @enum {string}\n */\n {\n /**\n * Event emitted after a test file has been loaded Not emitted in browser.\n */\n EVENT_FILE_POST_REQUIRE: 'post-require',\n /**\n * Event emitted before a test file has been loaded. In browser, this is emitted once an interface has been selected.\n */\n EVENT_FILE_PRE_REQUIRE: 'pre-require',\n /**\n * Event emitted immediately after a test file has been loaded. Not emitted in browser.\n */\n EVENT_FILE_REQUIRE: 'require',\n /**\n * Event emitted when `global.run()` is called (use with `delay` option)\n */\n EVENT_ROOT_SUITE_RUN: 'run',\n\n /**\n * Namespace for collection of a `Suite`'s \"after all\" hooks\n */\n HOOK_TYPE_AFTER_ALL: 'afterAll',\n /**\n * Namespace for collection of a `Suite`'s \"after each\" hooks\n */\n HOOK_TYPE_AFTER_EACH: 'afterEach',\n /**\n * Namespace for collection of a `Suite`'s \"before all\" hooks\n */\n HOOK_TYPE_BEFORE_ALL: 'beforeAll',\n /**\n * Namespace for collection of a `Suite`'s \"before all\" hooks\n */\n HOOK_TYPE_BEFORE_EACH: 'beforeEach',\n\n // the following events are all deprecated\n\n /**\n * Emitted after an \"after all\" `Hook` has been added to a `Suite`. Deprecated\n */\n EVENT_SUITE_ADD_HOOK_AFTER_ALL: 'afterAll',\n /**\n * Emitted after an \"after each\" `Hook` has been added to a `Suite` Deprecated\n */\n EVENT_SUITE_ADD_HOOK_AFTER_EACH: 'afterEach',\n /**\n * Emitted after an \"before all\" `Hook` has been added to a `Suite` Deprecated\n */\n EVENT_SUITE_ADD_HOOK_BEFORE_ALL: 'beforeAll',\n /**\n * Emitted after an \"before each\" `Hook` has been added to a `Suite` Deprecated\n */\n EVENT_SUITE_ADD_HOOK_BEFORE_EACH: 'beforeEach',\n /**\n * Emitted after a child `Suite` has been added to a `Suite`. Deprecated\n */\n EVENT_SUITE_ADD_SUITE: 'suite',\n /**\n * Emitted after a `Test` has been added to a `Suite`. Deprecated\n */\n EVENT_SUITE_ADD_TEST: 'test'\n }\n);\n\n/**\n * @summary There are no known use cases for these events.\n * @desc This is a `Set`-like object having all keys being the constant's string value and the value being `true`.\n * @todo Remove eventually\n * @type {Object<string,boolean>}\n * @ignore\n */\nvar deprecatedEvents = Object.keys(constants)\n .filter(function(constant) {\n return constant.substring(0, 15) === 'EVENT_SUITE_ADD';\n })\n .reduce(function(acc, constant) {\n acc[constants[constant]] = true;\n return acc;\n }, createMap());\n\nSuite.constants = constants;\n","'use strict';\n\n/**\n * Module dependencies.\n * @private\n */\nvar EventEmitter = require('events').EventEmitter;\nvar Pending = require('./pending');\nvar utils = require('./utils');\nvar debug = require('debug')('mocha:runner');\nvar Runnable = require('./runnable');\nvar Suite = require('./suite');\nvar HOOK_TYPE_BEFORE_EACH = Suite.constants.HOOK_TYPE_BEFORE_EACH;\nvar HOOK_TYPE_AFTER_EACH = Suite.constants.HOOK_TYPE_AFTER_EACH;\nvar HOOK_TYPE_AFTER_ALL = Suite.constants.HOOK_TYPE_AFTER_ALL;\nvar HOOK_TYPE_BEFORE_ALL = Suite.constants.HOOK_TYPE_BEFORE_ALL;\nvar EVENT_ROOT_SUITE_RUN = Suite.constants.EVENT_ROOT_SUITE_RUN;\nvar STATE_FAILED = Runnable.constants.STATE_FAILED;\nvar STATE_PASSED = Runnable.constants.STATE_PASSED;\nvar STATE_PENDING = Runnable.constants.STATE_PENDING;\nvar stackFilter = utils.stackTraceFilter();\nvar stringify = utils.stringify;\n\nconst {\n createInvalidExceptionError,\n createUnsupportedError,\n createFatalError,\n isMochaError,\n constants: errorConstants\n} = require('./errors');\n\n/**\n * Non-enumerable globals.\n * @private\n * @readonly\n */\nvar globals = [\n 'setTimeout',\n 'clearTimeout',\n 'setInterval',\n 'clearInterval',\n 'XMLHttpRequest',\n 'Date',\n 'setImmediate',\n 'clearImmediate'\n];\n\nvar constants = utils.defineConstants(\n /**\n * {@link Runner}-related constants.\n * @public\n * @memberof Runner\n * @readonly\n * @alias constants\n * @static\n * @enum {string}\n */\n {\n /**\n * Emitted when {@link Hook} execution begins\n */\n EVENT_HOOK_BEGIN: 'hook',\n /**\n * Emitted when {@link Hook} execution ends\n */\n EVENT_HOOK_END: 'hook end',\n /**\n * Emitted when Root {@link Suite} execution begins (all files have been parsed and hooks/tests are ready for execution)\n */\n EVENT_RUN_BEGIN: 'start',\n /**\n * Emitted when Root {@link Suite} execution has been delayed via `delay` option\n */\n EVENT_DELAY_BEGIN: 'waiting',\n /**\n * Emitted when delayed Root {@link Suite} execution is triggered by user via `global.run()`\n */\n EVENT_DELAY_END: 'ready',\n /**\n * Emitted when Root {@link Suite} execution ends\n */\n EVENT_RUN_END: 'end',\n /**\n * Emitted when {@link Suite} execution begins\n */\n EVENT_SUITE_BEGIN: 'suite',\n /**\n * Emitted when {@link Suite} execution ends\n */\n EVENT_SUITE_END: 'suite end',\n /**\n * Emitted when {@link Test} execution begins\n */\n EVENT_TEST_BEGIN: 'test',\n /**\n * Emitted when {@link Test} execution ends\n */\n EVENT_TEST_END: 'test end',\n /**\n * Emitted when {@link Test} execution fails\n */\n EVENT_TEST_FAIL: 'fail',\n /**\n * Emitted when {@link Test} execution succeeds\n */\n EVENT_TEST_PASS: 'pass',\n /**\n * Emitted when {@link Test} becomes pending\n */\n EVENT_TEST_PENDING: 'pending',\n /**\n * Emitted when {@link Test} execution has failed, but will retry\n */\n EVENT_TEST_RETRY: 'retry',\n /**\n * Initial state of Runner\n */\n STATE_IDLE: 'idle',\n /**\n * State set to this value when the Runner has started running\n */\n STATE_RUNNING: 'running',\n /**\n * State set to this value when the Runner has stopped\n */\n STATE_STOPPED: 'stopped'\n }\n);\n\nclass Runner extends EventEmitter {\n /**\n * Initialize a `Runner` at the Root {@link Suite}, which represents a hierarchy of {@link Suite|Suites} and {@link Test|Tests}.\n *\n * @extends external:EventEmitter\n * @public\n * @class\n * @param {Suite} suite - Root suite\n * @param {Object|boolean} [opts] - Options. If `boolean` (deprecated), whether to delay execution of root suite until ready.\n * @param {boolean} [opts.cleanReferencesAfterRun] - Whether to clean references to test fns and hooks when a suite is done.\n * @param {boolean} [opts.delay] - Whether to delay execution of root suite until ready.\n * @param {boolean} [opts.dryRun] - Whether to report tests without running them.\n * @param {boolean} [options.failZero] - Whether to fail test run if zero tests encountered.\n */\n constructor(suite, opts) {\n super();\n if (opts === undefined) {\n opts = {};\n }\n if (typeof opts === 'boolean') {\n // TODO: remove this\n require('./errors').deprecate(\n '\"Runner(suite: Suite, delay: boolean)\" is deprecated. Use \"Runner(suite: Suite, {delay: boolean})\" instead.'\n );\n this._delay = opts;\n opts = {};\n } else {\n this._delay = opts.delay;\n }\n var self = this;\n this._globals = [];\n this._abort = false;\n this.suite = suite;\n this._opts = opts;\n this.state = constants.STATE_IDLE;\n this.total = suite.total();\n this.failures = 0;\n /**\n * @type {Map<EventEmitter,Map<string,Set<EventListener>>>}\n */\n this._eventListeners = new Map();\n this.on(constants.EVENT_TEST_END, function(test) {\n if (test.type === 'test' && test.retriedTest() && test.parent) {\n var idx =\n test.parent.tests && test.parent.tests.indexOf(test.retriedTest());\n if (idx > -1) test.parent.tests[idx] = test;\n }\n self.checkGlobals(test);\n });\n this.on(constants.EVENT_HOOK_END, function(hook) {\n self.checkGlobals(hook);\n });\n this._defaultGrep = /.*/;\n this.grep(this._defaultGrep);\n this.globals(this.globalProps());\n\n this.uncaught = this._uncaught.bind(this);\n this.unhandled = (reason, promise) => {\n if (isMochaError(reason)) {\n debug(\n 'trapped unhandled rejection coming out of Mocha; forwarding to uncaught handler:',\n reason\n );\n this.uncaught(reason);\n } else {\n debug(\n 'trapped unhandled rejection from (probably) user code; re-emitting on process'\n );\n this._removeEventListener(\n process,\n 'unhandledRejection',\n this.unhandled\n );\n try {\n process.emit('unhandledRejection', reason, promise);\n } finally {\n this._addEventListener(process, 'unhandledRejection', this.unhandled);\n }\n }\n };\n }\n}\n\n/**\n * Wrapper for setImmediate, process.nextTick, or browser polyfill.\n *\n * @param {Function} fn\n * @private\n */\nRunner.immediately = global.setImmediate || process.nextTick;\n\n/**\n * Replacement for `target.on(eventName, listener)` that does bookkeeping to remove them when this runner instance is disposed.\n * @param {EventEmitter} target - The `EventEmitter`\n * @param {string} eventName - The event name\n * @param {string} fn - Listener function\n * @private\n */\nRunner.prototype._addEventListener = function(target, eventName, listener) {\n debug(\n '_addEventListener(): adding for event %s; %d current listeners',\n eventName,\n target.listenerCount(eventName)\n );\n /* istanbul ignore next */\n if (\n this._eventListeners.has(target) &&\n this._eventListeners.get(target).has(eventName) &&\n this._eventListeners\n .get(target)\n .get(eventName)\n .has(listener)\n ) {\n debug(\n 'warning: tried to attach duplicate event listener for %s',\n eventName\n );\n return;\n }\n target.on(eventName, listener);\n const targetListeners = this._eventListeners.has(target)\n ? this._eventListeners.get(target)\n : new Map();\n const targetEventListeners = targetListeners.has(eventName)\n ? targetListeners.get(eventName)\n : new Set();\n targetEventListeners.add(listener);\n targetListeners.set(eventName, targetEventListeners);\n this._eventListeners.set(target, targetListeners);\n};\n\n/**\n * Replacement for `target.removeListener(eventName, listener)` that also updates the bookkeeping.\n * @param {EventEmitter} target - The `EventEmitter`\n * @param {string} eventName - The event name\n * @param {function} listener - Listener function\n * @private\n */\nRunner.prototype._removeEventListener = function(target, eventName, listener) {\n target.removeListener(eventName, listener);\n\n if (this._eventListeners.has(target)) {\n const targetListeners = this._eventListeners.get(target);\n if (targetListeners.has(eventName)) {\n const targetEventListeners = targetListeners.get(eventName);\n targetEventListeners.delete(listener);\n if (!targetEventListeners.size) {\n targetListeners.delete(eventName);\n }\n }\n if (!targetListeners.size) {\n this._eventListeners.delete(target);\n }\n } else {\n debug('trying to remove listener for untracked object %s', target);\n }\n};\n\n/**\n * Removes all event handlers set during a run on this instance.\n * Remark: this does _not_ clean/dispose the tests or suites themselves.\n */\nRunner.prototype.dispose = function() {\n this.removeAllListeners();\n this._eventListeners.forEach((targetListeners, target) => {\n targetListeners.forEach((targetEventListeners, eventName) => {\n targetEventListeners.forEach(listener => {\n target.removeListener(eventName, listener);\n });\n });\n });\n this._eventListeners.clear();\n};\n\n/**\n * Run tests with full titles matching `re`. Updates runner.total\n * with number of tests matched.\n *\n * @public\n * @memberof Runner\n * @param {RegExp} re\n * @param {boolean} invert\n * @return {Runner} Runner instance.\n */\nRunner.prototype.grep = function(re, invert) {\n debug('grep(): setting to %s', re);\n this._grep = re;\n this._invert = invert;\n this.total = this.grepTotal(this.suite);\n return this;\n};\n\n/**\n * Returns the number of tests matching the grep search for the\n * given suite.\n *\n * @memberof Runner\n * @public\n * @param {Suite} suite\n * @return {number}\n */\nRunner.prototype.grepTotal = function(suite) {\n var self = this;\n var total = 0;\n\n suite.eachTest(function(test) {\n var match = self._grep.test(test.fullTitle());\n if (self._invert) {\n match = !match;\n }\n if (match) {\n total++;\n }\n });\n\n return total;\n};\n\n/**\n * Return a list of global properties.\n *\n * @return {Array}\n * @private\n */\nRunner.prototype.globalProps = function() {\n var props = Object.keys(global);\n\n // non-enumerables\n for (var i = 0; i < globals.length; ++i) {\n if (~props.indexOf(globals[i])) {\n continue;\n }\n props.push(globals[i]);\n }\n\n return props;\n};\n\n/**\n * Allow the given `arr` of globals.\n *\n * @public\n * @memberof Runner\n * @param {Array} arr\n * @return {Runner} Runner instance.\n */\nRunner.prototype.globals = function(arr) {\n if (!arguments.length) {\n return this._globals;\n }\n debug('globals(): setting to %O', arr);\n this._globals = this._globals.concat(arr);\n return this;\n};\n\n/**\n * Check for global variable leaks.\n *\n * @private\n */\nRunner.prototype.checkGlobals = function(test) {\n if (!this.checkLeaks) {\n return;\n }\n var ok = this._globals;\n\n var globals = this.globalProps();\n var leaks;\n\n if (test) {\n ok = ok.concat(test._allowedGlobals || []);\n }\n\n if (this.prevGlobalsLength === globals.length) {\n return;\n }\n this.prevGlobalsLength = globals.length;\n\n leaks = filterLeaks(ok, globals);\n this._globals = this._globals.concat(leaks);\n\n if (leaks.length) {\n var msg = `global leak(s) detected: ${leaks.map(e => `'${e}'`).join(', ')}`;\n this.fail(test, new Error(msg));\n }\n};\n\n/**\n * Fail the given `test`.\n *\n * If `test` is a hook, failures work in the following pattern:\n * - If bail, run corresponding `after each` and `after` hooks,\n * then exit\n * - Failed `before` hook skips all tests in a suite and subsuites,\n * but jumps to corresponding `after` hook\n * - Failed `before each` hook skips remaining tests in a\n * suite and jumps to corresponding `after each` hook,\n * which is run only once\n * - Failed `after` hook does not alter execution order\n * - Failed `after each` hook skips remaining tests in a\n * suite and subsuites, but executes other `after each`\n * hooks\n *\n * @private\n * @param {Runnable} test\n * @param {Error} err\n * @param {boolean} [force=false] - Whether to fail a pending test.\n */\nRunner.prototype.fail = function(test, err, force) {\n force = force === true;\n if (test.isPending() && !force) {\n return;\n }\n if (this.state === constants.STATE_STOPPED) {\n if (err.code === errorConstants.MULTIPLE_DONE) {\n throw err;\n }\n throw createFatalError(\n 'Test failed after root suite execution completed!',\n err\n );\n }\n\n ++this.failures;\n debug('total number of failures: %d', this.failures);\n test.state = STATE_FAILED;\n\n if (!isError(err)) {\n err = thrown2Error(err);\n }\n\n try {\n err.stack =\n this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack);\n } catch (ignore) {\n // some environments do not take kindly to monkeying with the stack\n }\n\n this.emit(constants.EVENT_TEST_FAIL, test, err);\n};\n\n/**\n * Run hook `name` callbacks and then invoke `fn()`.\n *\n * @private\n * @param {string} name\n * @param {Function} fn\n */\n\nRunner.prototype.hook = function(name, fn) {\n if (this._opts.dryRun) return fn();\n\n var suite = this.suite;\n var hooks = suite.getHooks(name);\n var self = this;\n\n function next(i) {\n var hook = hooks[i];\n if (!hook) {\n return fn();\n }\n self.currentRunnable = hook;\n\n if (name === HOOK_TYPE_BEFORE_ALL) {\n hook.ctx.currentTest = hook.parent.tests[0];\n } else if (name === HOOK_TYPE_AFTER_ALL) {\n hook.ctx.currentTest = hook.parent.tests[hook.parent.tests.length - 1];\n } else {\n hook.ctx.currentTest = self.test;\n }\n\n setHookTitle(hook);\n\n hook.allowUncaught = self.allowUncaught;\n\n self.emit(constants.EVENT_HOOK_BEGIN, hook);\n\n if (!hook.listeners('error').length) {\n self._addEventListener(hook, 'error', function(err) {\n self.fail(hook, err);\n });\n }\n\n hook.run(function cbHookRun(err) {\n var testError = hook.error();\n if (testError) {\n self.fail(self.test, testError);\n }\n // conditional skip\n if (hook.pending) {\n if (name === HOOK_TYPE_AFTER_EACH) {\n // TODO define and implement use case\n if (self.test) {\n self.test.pending = true;\n }\n } else if (name === HOOK_TYPE_BEFORE_EACH) {\n if (self.test) {\n self.test.pending = true;\n }\n self.emit(constants.EVENT_HOOK_END, hook);\n hook.pending = false; // activates hook for next test\n return fn(new Error('abort hookDown'));\n } else if (name === HOOK_TYPE_BEFORE_ALL) {\n suite.tests.forEach(function(test) {\n test.pending = true;\n });\n suite.suites.forEach(function(suite) {\n suite.pending = true;\n });\n hooks = [];\n } else {\n hook.pending = false;\n var errForbid = createUnsupportedError('`this.skip` forbidden');\n self.fail(hook, errForbid);\n return fn(errForbid);\n }\n } else if (err) {\n self.fail(hook, err);\n // stop executing hooks, notify callee of hook err\n return fn(err);\n }\n self.emit(constants.EVENT_HOOK_END, hook);\n delete hook.ctx.currentTest;\n setHookTitle(hook);\n next(++i);\n });\n\n function setHookTitle(hook) {\n hook.originalTitle = hook.originalTitle || hook.title;\n if (hook.ctx && hook.ctx.currentTest) {\n hook.title = `${hook.originalTitle} for \"${hook.ctx.currentTest.title}\"`;\n } else {\n var parentTitle;\n if (hook.parent.title) {\n parentTitle = hook.parent.title;\n } else {\n parentTitle = hook.parent.root ? '{root}' : '';\n }\n hook.title = `${hook.originalTitle} in \"${parentTitle}\"`;\n }\n }\n }\n\n Runner.immediately(function() {\n next(0);\n });\n};\n\n/**\n * Run hook `name` for the given array of `suites`\n * in order, and callback `fn(err, errSuite)`.\n *\n * @private\n * @param {string} name\n * @param {Array} suites\n * @param {Function} fn\n */\nRunner.prototype.hooks = function(name, suites, fn) {\n var self = this;\n var orig = this.suite;\n\n function next(suite) {\n self.suite = suite;\n\n if (!suite) {\n self.suite = orig;\n return fn();\n }\n\n self.hook(name, function(err) {\n if (err) {\n var errSuite = self.suite;\n self.suite = orig;\n return fn(err, errSuite);\n }\n\n next(suites.pop());\n });\n }\n\n next(suites.pop());\n};\n\n/**\n * Run 'afterEach' hooks from bottom up.\n *\n * @param {String} name\n * @param {Function} fn\n * @private\n */\nRunner.prototype.hookUp = function(name, fn) {\n var suites = [this.suite].concat(this.parents()).reverse();\n this.hooks(name, suites, fn);\n};\n\n/**\n * Run 'beforeEach' hooks from top level down.\n *\n * @param {String} name\n * @param {Function} fn\n * @private\n */\nRunner.prototype.hookDown = function(name, fn) {\n var suites = [this.suite].concat(this.parents());\n this.hooks(name, suites, fn);\n};\n\n/**\n * Return an array of parent Suites from\n * closest to furthest.\n *\n * @return {Array}\n * @private\n */\nRunner.prototype.parents = function() {\n var suite = this.suite;\n var suites = [];\n while (suite.parent) {\n suite = suite.parent;\n suites.push(suite);\n }\n return suites;\n};\n\n/**\n * Run the current test and callback `fn(err)`.\n *\n * @param {Function} fn\n * @private\n */\nRunner.prototype.runTest = function(fn) {\n if (this._opts.dryRun) return fn();\n\n var self = this;\n var test = this.test;\n\n if (!test) {\n return;\n }\n\n if (this.asyncOnly) {\n test.asyncOnly = true;\n }\n this._addEventListener(test, 'error', function(err) {\n self.fail(test, err);\n });\n if (this.allowUncaught) {\n test.allowUncaught = true;\n return test.run(fn);\n }\n try {\n test.run(fn);\n } catch (err) {\n fn(err);\n }\n};\n\n/**\n * Run tests in the given `suite` and invoke the callback `fn()` when complete.\n *\n * @private\n * @param {Suite} suite\n * @param {Function} fn\n */\nRunner.prototype.runTests = function(suite, fn) {\n var self = this;\n var tests = suite.tests.slice();\n var test;\n\n function hookErr(_, errSuite, after) {\n // before/after Each hook for errSuite failed:\n var orig = self.suite;\n\n // for failed 'after each' hook start from errSuite parent,\n // otherwise start from errSuite itself\n self.suite = after ? errSuite.parent : errSuite;\n\n if (self.suite) {\n self.hookUp(HOOK_TYPE_AFTER_EACH, function(err2, errSuite2) {\n self.suite = orig;\n // some hooks may fail even now\n if (err2) {\n return hookErr(err2, errSuite2, true);\n }\n // report error suite\n fn(errSuite);\n });\n } else {\n // there is no need calling other 'after each' hooks\n self.suite = orig;\n fn(errSuite);\n }\n }\n\n function next(err, errSuite) {\n // if we bail after first err\n if (self.failures && suite._bail) {\n tests = [];\n }\n\n if (self._abort) {\n return fn();\n }\n\n if (err) {\n return hookErr(err, errSuite, true);\n }\n\n // next test\n test = tests.shift();\n\n // all done\n if (!test) {\n return fn();\n }\n\n // grep\n var match = self._grep.test(test.fullTitle());\n if (self._invert) {\n match = !match;\n }\n if (!match) {\n // Run immediately only if we have defined a grep. When we\n // define a grep — It can cause maximum callstack error if\n // the grep is doing a large recursive loop by neglecting\n // all tests. The run immediately function also comes with\n // a performance cost. So we don't want to run immediately\n // if we run the whole test suite, because running the whole\n // test suite don't do any immediate recursive loops. Thus,\n // allowing a JS runtime to breathe.\n if (self._grep !== self._defaultGrep) {\n Runner.immediately(next);\n } else {\n next();\n }\n return;\n }\n\n // static skip, no hooks are executed\n if (test.isPending()) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants.EVENT_TEST_PENDING, test);\n }\n self.emit(constants.EVENT_TEST_END, test);\n return next();\n }\n\n // execute test and hook(s)\n self.emit(constants.EVENT_TEST_BEGIN, (self.test = test));\n self.hookDown(HOOK_TYPE_BEFORE_EACH, function(err, errSuite) {\n // conditional skip within beforeEach\n if (test.isPending()) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants.EVENT_TEST_PENDING, test);\n }\n self.emit(constants.EVENT_TEST_END, test);\n // skip inner afterEach hooks below errSuite level\n var origSuite = self.suite;\n self.suite = errSuite || self.suite;\n return self.hookUp(HOOK_TYPE_AFTER_EACH, function(e, eSuite) {\n self.suite = origSuite;\n next(e, eSuite);\n });\n }\n if (err) {\n return hookErr(err, errSuite, false);\n }\n self.currentRunnable = self.test;\n self.runTest(function(err) {\n test = self.test;\n // conditional skip within it\n if (test.pending) {\n if (self.forbidPending) {\n self.fail(test, new Error('Pending test forbidden'), true);\n } else {\n test.state = STATE_PENDING;\n self.emit(constants.EVENT_TEST_PENDING, test);\n }\n self.emit(constants.EVENT_TEST_END, test);\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n } else if (err) {\n var retry = test.currentRetry();\n if (retry < test.retries()) {\n var clonedTest = test.clone();\n clonedTest.currentRetry(retry + 1);\n tests.unshift(clonedTest);\n\n self.emit(constants.EVENT_TEST_RETRY, test, err);\n\n // Early return + hook trigger so that it doesn't\n // increment the count wrong\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n } else {\n self.fail(test, err);\n }\n self.emit(constants.EVENT_TEST_END, test);\n return self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n }\n\n test.state = STATE_PASSED;\n self.emit(constants.EVENT_TEST_PASS, test);\n self.emit(constants.EVENT_TEST_END, test);\n self.hookUp(HOOK_TYPE_AFTER_EACH, next);\n });\n });\n }\n\n this.next = next;\n this.hookErr = hookErr;\n next();\n};\n\n/**\n * Run the given `suite` and invoke the callback `fn()` when complete.\n *\n * @private\n * @param {Suite} suite\n * @param {Function} fn\n */\nRunner.prototype.runSuite = function(suite, fn) {\n var i = 0;\n var self = this;\n var total = this.grepTotal(suite);\n\n debug('runSuite(): running %s', suite.fullTitle());\n\n if (!total || (self.failures && suite._bail)) {\n debug('runSuite(): bailing');\n return fn();\n }\n\n this.emit(constants.EVENT_SUITE_BEGIN, (this.suite = suite));\n\n function next(errSuite) {\n if (errSuite) {\n // current suite failed on a hook from errSuite\n if (errSuite === suite) {\n // if errSuite is current suite\n // continue to the next sibling suite\n return done();\n }\n // errSuite is among the parents of current suite\n // stop execution of errSuite and all sub-suites\n return done(errSuite);\n }\n\n if (self._abort) {\n return done();\n }\n\n var curr = suite.suites[i++];\n if (!curr) {\n return done();\n }\n\n // Avoid grep neglecting large number of tests causing a\n // huge recursive loop and thus a maximum call stack error.\n // See comment in `this.runTests()` for more information.\n if (self._grep !== self._defaultGrep) {\n Runner.immediately(function() {\n self.runSuite(curr, next);\n });\n } else {\n self.runSuite(curr, next);\n }\n }\n\n function done(errSuite) {\n self.suite = suite;\n self.nextSuite = next;\n\n // remove reference to test\n delete self.test;\n\n self.hook(HOOK_TYPE_AFTER_ALL, function() {\n self.emit(constants.EVENT_SUITE_END, suite);\n fn(errSuite);\n });\n }\n\n this.nextSuite = next;\n\n this.hook(HOOK_TYPE_BEFORE_ALL, function(err) {\n if (err) {\n return done();\n }\n self.runTests(suite, next);\n });\n};\n\n/**\n * Handle uncaught exceptions within runner.\n *\n * This function is bound to the instance as `Runner#uncaught` at instantiation\n * time. It's intended to be listening on the `Process.uncaughtException` event.\n * In order to not leak EE listeners, we need to ensure no more than a single\n * `uncaughtException` listener exists per `Runner`. The only way to do\n * this--because this function needs the context (and we don't have lambdas)--is\n * to use `Function.prototype.bind`. We need strict equality to unregister and\n * _only_ unregister the _one_ listener we set from the\n * `Process.uncaughtException` event; would be poor form to just remove\n * everything. See {@link Runner#run} for where the event listener is registered\n * and unregistered.\n * @param {Error} err - Some uncaught error\n * @private\n */\nRunner.prototype._uncaught = function(err) {\n // this is defensive to prevent future developers from mis-calling this function.\n // it's more likely that it'd be called with the incorrect context--say, the global\n // `process` object--than it would to be called with a context that is not a \"subclass\"\n // of `Runner`.\n if (!(this instanceof Runner)) {\n throw createFatalError(\n 'Runner#uncaught() called with invalid context',\n this\n );\n }\n if (err instanceof Pending) {\n debug('uncaught(): caught a Pending');\n return;\n }\n // browser does not exit script when throwing in global.onerror()\n if (this.allowUncaught && !utils.isBrowser()) {\n debug('uncaught(): bubbling exception due to --allow-uncaught');\n throw err;\n }\n\n if (this.state === constants.STATE_STOPPED) {\n debug('uncaught(): throwing after run has completed!');\n throw err;\n }\n\n if (err) {\n debug('uncaught(): got truthy exception %O', err);\n } else {\n debug('uncaught(): undefined/falsy exception');\n err = createInvalidExceptionError(\n 'Caught falsy/undefined exception which would otherwise be uncaught. No stack trace found; try a debugger',\n err\n );\n }\n\n if (!isError(err)) {\n err = thrown2Error(err);\n debug('uncaught(): converted \"error\" %o to Error', err);\n }\n err.uncaught = true;\n\n var runnable = this.currentRunnable;\n\n if (!runnable) {\n runnable = new Runnable('Uncaught error outside test suite');\n debug('uncaught(): no current Runnable; created a phony one');\n runnable.parent = this.suite;\n\n if (this.state === constants.STATE_RUNNING) {\n debug('uncaught(): failing gracefully');\n this.fail(runnable, err);\n } else {\n // Can't recover from this failure\n debug('uncaught(): test run has not yet started; unrecoverable');\n this.emit(constants.EVENT_RUN_BEGIN);\n this.fail(runnable, err);\n this.emit(constants.EVENT_RUN_END);\n }\n\n return;\n }\n\n runnable.clearTimeout();\n\n if (runnable.isFailed()) {\n debug('uncaught(): Runnable has already failed');\n // Ignore error if already failed\n return;\n } else if (runnable.isPending()) {\n debug('uncaught(): pending Runnable wound up failing!');\n // report 'pending test' retrospectively as failed\n this.fail(runnable, err, true);\n return;\n }\n\n // we cannot recover gracefully if a Runnable has already passed\n // then fails asynchronously\n if (runnable.isPassed()) {\n debug('uncaught(): Runnable has already passed; bailing gracefully');\n this.fail(runnable, err);\n this.abort();\n } else {\n debug('uncaught(): forcing Runnable to complete with Error');\n return runnable.callback(err);\n }\n};\n\n/**\n * Run the root suite and invoke `fn(failures)`\n * on completion.\n *\n * @public\n * @memberof Runner\n * @param {Function} fn - Callback when finished\n * @param {{files: string[], options: Options}} [opts] - For subclasses\n * @returns {Runner} Runner instance.\n */\nRunner.prototype.run = function(fn, opts = {}) {\n var rootSuite = this.suite;\n var options = opts.options || {};\n\n debug('run(): got options: %O', options);\n fn = fn || function() {};\n\n const end = () => {\n if (!this.total && this._opts.failZero) this.failures = 1;\n\n debug('run(): root suite completed; emitting %s', constants.EVENT_RUN_END);\n this.emit(constants.EVENT_RUN_END);\n };\n\n const begin = () => {\n debug('run(): emitting %s', constants.EVENT_RUN_BEGIN);\n this.emit(constants.EVENT_RUN_BEGIN);\n debug('run(): emitted %s', constants.EVENT_RUN_BEGIN);\n\n this.runSuite(rootSuite, end);\n };\n\n const prepare = () => {\n debug('run(): starting');\n // If there is an `only` filter\n if (rootSuite.hasOnly()) {\n rootSuite.filterOnly();\n debug('run(): filtered exclusive Runnables');\n }\n this.state = constants.STATE_RUNNING;\n if (this._delay) {\n this.emit(constants.EVENT_DELAY_END);\n debug('run(): \"delay\" ended');\n }\n\n return begin();\n };\n\n // references cleanup to avoid memory leaks\n if (this._opts.cleanReferencesAfterRun) {\n this.on(constants.EVENT_SUITE_END, suite => {\n suite.cleanReferences();\n });\n }\n\n // callback\n this.on(constants.EVENT_RUN_END, function() {\n this.state = constants.STATE_STOPPED;\n debug('run(): emitted %s', constants.EVENT_RUN_END);\n fn(this.failures);\n });\n\n this._removeEventListener(process, 'uncaughtException', this.uncaught);\n this._removeEventListener(process, 'unhandledRejection', this.unhandled);\n this._addEventListener(process, 'uncaughtException', this.uncaught);\n this._addEventListener(process, 'unhandledRejection', this.unhandled);\n\n if (this._delay) {\n // for reporters, I guess.\n // might be nice to debounce some dots while we wait.\n this.emit(constants.EVENT_DELAY_BEGIN, rootSuite);\n rootSuite.once(EVENT_ROOT_SUITE_RUN, prepare);\n debug('run(): waiting for green light due to --delay');\n } else {\n Runner.immediately(prepare);\n }\n\n return this;\n};\n\n/**\n * Toggle partial object linking behavior; used for building object references from\n * unique ID's. Does nothing in serial mode, because the object references already exist.\n * Subclasses can implement this (e.g., `ParallelBufferedRunner`)\n * @abstract\n * @param {boolean} [value] - If `true`, enable partial object linking, otherwise disable\n * @returns {Runner}\n * @chainable\n * @public\n * @example\n * // this reporter needs proper object references when run in parallel mode\n * class MyReporter() {\n * constructor(runner) {\n * this.runner.linkPartialObjects(true)\n * .on(EVENT_SUITE_BEGIN, suite => {\n // this Suite may be the same object...\n * })\n * .on(EVENT_TEST_BEGIN, test => {\n * // ...as the `test.parent` property\n * });\n * }\n * }\n */\nRunner.prototype.linkPartialObjects = function(value) {\n return this;\n};\n\n/*\n * Like {@link Runner#run}, but does not accept a callback and returns a `Promise` instead of a `Runner`.\n * This function cannot reject; an `unhandledRejection` event will bubble up to the `process` object instead.\n * @public\n * @memberof Runner\n * @param {Object} [opts] - Options for {@link Runner#run}\n * @returns {Promise<number>} Failure count\n */\nRunner.prototype.runAsync = async function runAsync(opts = {}) {\n return new Promise(resolve => {\n this.run(resolve, opts);\n });\n};\n\n/**\n * Cleanly abort execution.\n *\n * @memberof Runner\n * @public\n * @return {Runner} Runner instance.\n */\nRunner.prototype.abort = function() {\n debug('abort(): aborting');\n this._abort = true;\n\n return this;\n};\n\n/**\n * Returns `true` if Mocha is running in parallel mode. For reporters.\n *\n * Subclasses should return an appropriate value.\n * @public\n * @returns {false}\n */\nRunner.prototype.isParallelMode = function isParallelMode() {\n return false;\n};\n\n/**\n * Configures an alternate reporter for worker processes to use. Subclasses\n * using worker processes should implement this.\n * @public\n * @param {string} path - Absolute path to alternate reporter for worker processes to use\n * @returns {Runner}\n * @throws When in serial mode\n * @chainable\n * @abstract\n */\nRunner.prototype.workerReporter = function() {\n throw createUnsupportedError('workerReporter() not supported in serial mode');\n};\n\n/**\n * Filter leaks with the given globals flagged as `ok`.\n *\n * @private\n * @param {Array} ok\n * @param {Array} globals\n * @return {Array}\n */\nfunction filterLeaks(ok, globals) {\n return globals.filter(function(key) {\n // Firefox and Chrome exposes iframes as index inside the window object\n if (/^\\d+/.test(key)) {\n return false;\n }\n\n // in firefox\n // if runner runs in an iframe, this iframe's window.getInterface method\n // not init at first it is assigned in some seconds\n if (global.navigator && /^getInterface/.test(key)) {\n return false;\n }\n\n // an iframe could be approached by window[iframeIndex]\n // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak\n if (global.navigator && /^\\d+/.test(key)) {\n return false;\n }\n\n // Opera and IE expose global variables for HTML element IDs (issue #243)\n if (/^mocha-/.test(key)) {\n return false;\n }\n\n var matched = ok.filter(function(ok) {\n if (~ok.indexOf('*')) {\n return key.indexOf(ok.split('*')[0]) === 0;\n }\n return key === ok;\n });\n return !matched.length && (!global.navigator || key !== 'onerror');\n });\n}\n\n/**\n * Check if argument is an instance of Error object or a duck-typed equivalent.\n *\n * @private\n * @param {Object} err - object to check\n * @param {string} err.message - error message\n * @returns {boolean}\n */\nfunction isError(err) {\n return err instanceof Error || (err && typeof err.message === 'string');\n}\n\n/**\n *\n * Converts thrown non-extensible type into proper Error.\n *\n * @private\n * @param {*} thrown - Non-extensible type thrown by code\n * @return {Error}\n */\nfunction thrown2Error(err) {\n return new Error(\n `the ${utils.canonicalType(err)} ${stringify(\n err\n )} was thrown, throw an Error :)`\n );\n}\n\nRunner.constants = constants;\n\n/**\n * Node.js' `EventEmitter`\n * @external EventEmitter\n * @see {@link https://nodejs.org/api/events.html#events_class_eventemitter}\n */\n\nmodule.exports = Runner;\n","'use strict';\n/**\n * @module Base\n */\n/**\n * Module dependencies.\n */\n\nvar diff = require('diff');\nvar milliseconds = require('ms');\nvar utils = require('../utils');\nvar supportsColor = require('supports-color');\nvar symbols = require('log-symbols');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n\nconst isBrowser = utils.isBrowser();\n\nfunction getBrowserWindowSize() {\n if ('innerHeight' in global) {\n return [global.innerHeight, global.innerWidth];\n }\n // In a Web Worker, the DOM Window is not available.\n return [640, 480];\n}\n\n/**\n * Expose `Base`.\n */\n\nexports = module.exports = Base;\n\n/**\n * Check if both stdio streams are associated with a tty.\n */\n\nvar isatty = isBrowser || (process.stdout.isTTY && process.stderr.isTTY);\n\n/**\n * Save log references to avoid tests interfering (see GH-3604).\n */\nvar consoleLog = console.log;\n\n/**\n * Enable coloring by default, except in the browser interface.\n */\n\nexports.useColors =\n !isBrowser &&\n (supportsColor.stdout || process.env.MOCHA_COLORS !== undefined);\n\n/**\n * Inline diffs instead of +/-\n */\n\nexports.inlineDiffs = false;\n\n/**\n * Default color map.\n */\n\nexports.colors = {\n pass: 90,\n fail: 31,\n 'bright pass': 92,\n 'bright fail': 91,\n 'bright yellow': 93,\n pending: 36,\n suite: 0,\n 'error title': 0,\n 'error message': 31,\n 'error stack': 90,\n checkmark: 32,\n fast: 90,\n medium: 33,\n slow: 31,\n green: 32,\n light: 90,\n 'diff gutter': 90,\n 'diff added': 32,\n 'diff removed': 31,\n 'diff added inline': '30;42',\n 'diff removed inline': '30;41'\n};\n\n/**\n * Default symbol map.\n */\n\nexports.symbols = {\n ok: symbols.success,\n err: symbols.error,\n dot: '.',\n comma: ',',\n bang: '!'\n};\n\n/**\n * Color `str` with the given `type`,\n * allowing colors to be disabled,\n * as well as user-defined color\n * schemes.\n *\n * @private\n * @param {string} type\n * @param {string} str\n * @return {string}\n */\nvar color = (exports.color = function(type, str) {\n if (!exports.useColors) {\n return String(str);\n }\n return '\\u001b[' + exports.colors[type] + 'm' + str + '\\u001b[0m';\n});\n\n/**\n * Expose term window size, with some defaults for when stderr is not a tty.\n */\n\nexports.window = {\n width: 75\n};\n\nif (isatty) {\n if (isBrowser) {\n exports.window.width = getBrowserWindowSize()[1];\n } else {\n exports.window.width = process.stdout.getWindowSize(1)[0];\n }\n}\n\n/**\n * Expose some basic cursor interactions that are common among reporters.\n */\n\nexports.cursor = {\n hide: function() {\n isatty && process.stdout.write('\\u001b[?25l');\n },\n\n show: function() {\n isatty && process.stdout.write('\\u001b[?25h');\n },\n\n deleteLine: function() {\n isatty && process.stdout.write('\\u001b[2K');\n },\n\n beginningOfLine: function() {\n isatty && process.stdout.write('\\u001b[0G');\n },\n\n CR: function() {\n if (isatty) {\n exports.cursor.deleteLine();\n exports.cursor.beginningOfLine();\n } else {\n process.stdout.write('\\r');\n }\n }\n};\n\nvar showDiff = (exports.showDiff = function(err) {\n return (\n err &&\n err.showDiff !== false &&\n sameType(err.actual, err.expected) &&\n err.expected !== undefined\n );\n});\n\nfunction stringifyDiffObjs(err) {\n if (!utils.isString(err.actual) || !utils.isString(err.expected)) {\n err.actual = utils.stringify(err.actual);\n err.expected = utils.stringify(err.expected);\n }\n}\n\n/**\n * Returns a diff between 2 strings with coloured ANSI output.\n *\n * @description\n * The diff will be either inline or unified dependent on the value\n * of `Base.inlineDiff`.\n *\n * @param {string} actual\n * @param {string} expected\n * @return {string} Diff\n */\nvar generateDiff = (exports.generateDiff = function(actual, expected) {\n try {\n const diffSize = 2048;\n if (actual.length > diffSize) {\n actual = actual.substring(0, diffSize) + ' ... Lines skipped';\n }\n if (expected.length > diffSize) {\n expected = expected.substring(0, diffSize) + ' ... Lines skipped';\n }\n return exports.inlineDiffs\n ? inlineDiff(actual, expected)\n : unifiedDiff(actual, expected);\n } catch (err) {\n var msg =\n '\\n ' +\n color('diff added', '+ expected') +\n ' ' +\n color('diff removed', '- actual: failed to generate Mocha diff') +\n '\\n';\n return msg;\n }\n});\n\n/**\n * Outputs the given `failures` as a list.\n *\n * @public\n * @memberof Mocha.reporters.Base\n * @variation 1\n * @param {Object[]} failures - Each is Test instance with corresponding\n * Error property\n */\nexports.list = function(failures) {\n var multipleErr, multipleTest;\n Base.consoleLog();\n failures.forEach(function(test, i) {\n // format\n var fmt =\n color('error title', ' %s) %s:\\n') +\n color('error message', ' %s') +\n color('error stack', '\\n%s\\n');\n\n // msg\n var msg;\n var err;\n if (test.err && test.err.multiple) {\n if (multipleTest !== test) {\n multipleTest = test;\n multipleErr = [test.err].concat(test.err.multiple);\n }\n err = multipleErr.shift();\n } else {\n err = test.err;\n }\n var message;\n if (typeof err.inspect === 'function') {\n message = err.inspect() + '';\n } else if (err.message && typeof err.message.toString === 'function') {\n message = err.message + '';\n } else {\n message = '';\n }\n var stack = err.stack || message;\n var index = message ? stack.indexOf(message) : -1;\n\n if (index === -1) {\n msg = message;\n } else {\n index += message.length;\n msg = stack.slice(0, index);\n // remove msg from stack\n stack = stack.slice(index + 1);\n }\n\n // uncaught\n if (err.uncaught) {\n msg = 'Uncaught ' + msg;\n }\n // explicitly show diff\n if (!exports.hideDiff && showDiff(err)) {\n stringifyDiffObjs(err);\n fmt =\n color('error title', ' %s) %s:\\n%s') + color('error stack', '\\n%s\\n');\n var match = message.match(/^([^:]+): expected/);\n msg = '\\n ' + color('error message', match ? match[1] : msg);\n\n msg += generateDiff(err.actual, err.expected);\n }\n\n // indent stack trace\n stack = stack.replace(/^/gm, ' ');\n\n // indented test title\n var testTitle = '';\n test.titlePath().forEach(function(str, index) {\n if (index !== 0) {\n testTitle += '\\n ';\n }\n for (var i = 0; i < index; i++) {\n testTitle += ' ';\n }\n testTitle += str;\n });\n\n Base.consoleLog(fmt, i + 1, testTitle, msg, stack);\n });\n};\n\n/**\n * Constructs a new `Base` reporter instance.\n *\n * @description\n * All other reporters generally inherit from this reporter.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Base(runner, options) {\n var failures = (this.failures = []);\n\n if (!runner) {\n throw new TypeError('Missing runner argument');\n }\n this.options = options || {};\n this.runner = runner;\n this.stats = runner.stats; // assigned so Reporters keep a closer reference\n\n runner.on(EVENT_TEST_PASS, function(test) {\n if (test.duration > test.slow()) {\n test.speed = 'slow';\n } else if (test.duration > test.slow() / 2) {\n test.speed = 'medium';\n } else {\n test.speed = 'fast';\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n if (showDiff(err)) {\n stringifyDiffObjs(err);\n }\n // more than one error per test\n if (test.err && err instanceof Error) {\n test.err.multiple = (test.err.multiple || []).concat(err);\n } else {\n test.err = err;\n }\n failures.push(test);\n });\n}\n\n/**\n * Outputs common epilogue used by many of the bundled reporters.\n *\n * @public\n * @memberof Mocha.reporters\n */\nBase.prototype.epilogue = function() {\n var stats = this.stats;\n var fmt;\n\n Base.consoleLog();\n\n // passes\n fmt =\n color('bright pass', ' ') +\n color('green', ' %d passing') +\n color('light', ' (%s)');\n\n Base.consoleLog(fmt, stats.passes || 0, milliseconds(stats.duration));\n\n // pending\n if (stats.pending) {\n fmt = color('pending', ' ') + color('pending', ' %d pending');\n\n Base.consoleLog(fmt, stats.pending);\n }\n\n // failures\n if (stats.failures) {\n fmt = color('fail', ' %d failing');\n\n Base.consoleLog(fmt, stats.failures);\n\n Base.list(this.failures);\n Base.consoleLog();\n }\n\n Base.consoleLog();\n};\n\n/**\n * Pads the given `str` to `len`.\n *\n * @private\n * @param {string} str\n * @param {string} len\n * @return {string}\n */\nfunction pad(str, len) {\n str = String(str);\n return Array(len - str.length + 1).join(' ') + str;\n}\n\n/**\n * Returns inline diff between 2 strings with coloured ANSI output.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} Diff\n */\nfunction inlineDiff(actual, expected) {\n var msg = errorDiff(actual, expected);\n\n // linenos\n var lines = msg.split('\\n');\n if (lines.length > 4) {\n var width = String(lines.length).length;\n msg = lines\n .map(function(str, i) {\n return pad(++i, width) + ' |' + ' ' + str;\n })\n .join('\\n');\n }\n\n // legend\n msg =\n '\\n' +\n color('diff removed inline', 'actual') +\n ' ' +\n color('diff added inline', 'expected') +\n '\\n\\n' +\n msg +\n '\\n';\n\n // indent\n msg = msg.replace(/^/gm, ' ');\n return msg;\n}\n\n/**\n * Returns unified diff between two strings with coloured ANSI output.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} The diff.\n */\nfunction unifiedDiff(actual, expected) {\n var indent = ' ';\n function cleanUp(line) {\n if (line[0] === '+') {\n return indent + colorLines('diff added', line);\n }\n if (line[0] === '-') {\n return indent + colorLines('diff removed', line);\n }\n if (line.match(/@@/)) {\n return '--';\n }\n if (line.match(/\\\\ No newline/)) {\n return null;\n }\n return indent + line;\n }\n function notBlank(line) {\n return typeof line !== 'undefined' && line !== null;\n }\n var msg = diff.createPatch('string', actual, expected);\n var lines = msg.split('\\n').splice(5);\n return (\n '\\n ' +\n colorLines('diff added', '+ expected') +\n ' ' +\n colorLines('diff removed', '- actual') +\n '\\n\\n' +\n lines\n .map(cleanUp)\n .filter(notBlank)\n .join('\\n')\n );\n}\n\n/**\n * Returns character diff for `err`.\n *\n * @private\n * @param {String} actual\n * @param {String} expected\n * @return {string} the diff\n */\nfunction errorDiff(actual, expected) {\n return diff\n .diffWordsWithSpace(actual, expected)\n .map(function(str) {\n if (str.added) {\n return colorLines('diff added inline', str.value);\n }\n if (str.removed) {\n return colorLines('diff removed inline', str.value);\n }\n return str.value;\n })\n .join('');\n}\n\n/**\n * Colors lines for `str`, using the color `name`.\n *\n * @private\n * @param {string} name\n * @param {string} str\n * @return {string}\n */\nfunction colorLines(name, str) {\n return str\n .split('\\n')\n .map(function(str) {\n return color(name, str);\n })\n .join('\\n');\n}\n\n/**\n * Object#toString reference.\n */\nvar objToString = Object.prototype.toString;\n\n/**\n * Checks that a / b have the same type.\n *\n * @private\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nfunction sameType(a, b) {\n return objToString.call(a) === objToString.call(b);\n}\n\nBase.consoleLog = consoleLog;\n\nBase.abstract = true;\n","'use strict';\n/**\n * @module Dot\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\n\n/**\n * Expose `Dot`.\n */\n\nexports = module.exports = Dot;\n\n/**\n * Constructs a new `Dot` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Dot(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var n = -1;\n\n runner.on(EVENT_RUN_BEGIN, function() {\n process.stdout.write('\\n');\n });\n\n runner.on(EVENT_TEST_PENDING, function() {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n process.stdout.write(Base.color('pending', Base.symbols.comma));\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n if (test.speed === 'slow') {\n process.stdout.write(Base.color('bright yellow', Base.symbols.dot));\n } else {\n process.stdout.write(Base.color(test.speed, Base.symbols.dot));\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function() {\n if (++n % width === 0) {\n process.stdout.write('\\n ');\n }\n process.stdout.write(Base.color('fail', Base.symbols.bang));\n });\n\n runner.once(EVENT_RUN_END, function() {\n process.stdout.write('\\n');\n self.epilogue();\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Dot, Base);\n\nDot.description = 'dot matrix representation';\n","'use strict';\n/**\n * @module Doc\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\n\n/**\n * Expose `Doc`.\n */\n\nexports = module.exports = Doc;\n\n/**\n * Constructs a new `Doc` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Doc(runner, options) {\n Base.call(this, runner, options);\n\n var indents = 2;\n\n function indent() {\n return Array(indents).join(' ');\n }\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n if (suite.root) {\n return;\n }\n ++indents;\n Base.consoleLog('%s<section class=\"suite\">', indent());\n ++indents;\n Base.consoleLog('%s<h1>%s</h1>', indent(), utils.escape(suite.title));\n Base.consoleLog('%s<dl>', indent());\n });\n\n runner.on(EVENT_SUITE_END, function(suite) {\n if (suite.root) {\n return;\n }\n Base.consoleLog('%s</dl>', indent());\n --indents;\n Base.consoleLog('%s</section>', indent());\n --indents;\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n Base.consoleLog('%s <dt>%s</dt>', indent(), utils.escape(test.title));\n Base.consoleLog('%s <dt>%s</dt>', indent(), utils.escape(test.file));\n var code = utils.escape(utils.clean(test.body));\n Base.consoleLog('%s <dd><pre><code>%s</code></pre></dd>', indent(), code);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n Base.consoleLog(\n '%s <dt class=\"error\">%s</dt>',\n indent(),\n utils.escape(test.title)\n );\n Base.consoleLog(\n '%s <dt class=\"error\">%s</dt>',\n indent(),\n utils.escape(test.file)\n );\n var code = utils.escape(utils.clean(test.body));\n Base.consoleLog(\n '%s <dd class=\"error\"><pre><code>%s</code></pre></dd>',\n indent(),\n code\n );\n Base.consoleLog(\n '%s <dd class=\"error\">%s</dd>',\n indent(),\n utils.escape(err)\n );\n });\n}\n\nDoc.description = 'HTML documentation';\n","'use strict';\n/**\n * @module TAP\n */\n/**\n * Module dependencies.\n */\n\nvar util = require('util');\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar inherits = require('../utils').inherits;\nvar sprintf = util.format;\n\n/**\n * Expose `TAP`.\n */\n\nexports = module.exports = TAP;\n\n/**\n * Constructs a new `TAP` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction TAP(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var n = 1;\n\n var tapVersion = '12';\n if (options && options.reporterOptions) {\n if (options.reporterOptions.tapVersion) {\n tapVersion = options.reporterOptions.tapVersion.toString();\n }\n }\n\n this._producer = createProducer(tapVersion);\n\n runner.once(EVENT_RUN_BEGIN, function() {\n self._producer.writeVersion();\n });\n\n runner.on(EVENT_TEST_END, function() {\n ++n;\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n self._producer.writePending(n, test);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n self._producer.writePass(n, test);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n self._producer.writeFail(n, test, err);\n });\n\n runner.once(EVENT_RUN_END, function() {\n self._producer.writeEpilogue(runner.stats);\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(TAP, Base);\n\n/**\n * Returns a TAP-safe title of `test`.\n *\n * @private\n * @param {Test} test - Test instance.\n * @return {String} title with any hash character removed\n */\nfunction title(test) {\n return test.fullTitle().replace(/#/g, '');\n}\n\n/**\n * Writes newline-terminated formatted string to reporter output stream.\n *\n * @private\n * @param {string} format - `printf`-like format string\n * @param {...*} [varArgs] - Format string arguments\n */\nfunction println(format, varArgs) {\n var vargs = Array.from(arguments);\n vargs[0] += '\\n';\n process.stdout.write(sprintf.apply(null, vargs));\n}\n\n/**\n * Returns a `tapVersion`-appropriate TAP producer instance, if possible.\n *\n * @private\n * @param {string} tapVersion - Version of TAP specification to produce.\n * @returns {TAPProducer} specification-appropriate instance\n * @throws {Error} if specification version has no associated producer.\n */\nfunction createProducer(tapVersion) {\n var producers = {\n '12': new TAP12Producer(),\n '13': new TAP13Producer()\n };\n var producer = producers[tapVersion];\n\n if (!producer) {\n throw new Error(\n 'invalid or unsupported TAP version: ' + JSON.stringify(tapVersion)\n );\n }\n\n return producer;\n}\n\n/**\n * @summary\n * Constructs a new TAPProducer.\n *\n * @description\n * <em>Only</em> to be used as an abstract base class.\n *\n * @private\n * @constructor\n */\nfunction TAPProducer() {}\n\n/**\n * Writes the TAP version to reporter output stream.\n *\n * @abstract\n */\nTAPProducer.prototype.writeVersion = function() {};\n\n/**\n * Writes the plan to reporter output stream.\n *\n * @abstract\n * @param {number} ntests - Number of tests that are planned to run.\n */\nTAPProducer.prototype.writePlan = function(ntests) {\n println('%d..%d', 1, ntests);\n};\n\n/**\n * Writes that test passed to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that passed.\n * @param {Test} test - Instance containing test information.\n */\nTAPProducer.prototype.writePass = function(n, test) {\n println('ok %d %s', n, title(test));\n};\n\n/**\n * Writes that test was skipped to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that was skipped.\n * @param {Test} test - Instance containing test information.\n */\nTAPProducer.prototype.writePending = function(n, test) {\n println('ok %d %s # SKIP -', n, title(test));\n};\n\n/**\n * Writes that test failed to reporter output stream.\n *\n * @abstract\n * @param {number} n - Index of test that failed.\n * @param {Test} test - Instance containing test information.\n * @param {Error} err - Reason the test failed.\n */\nTAPProducer.prototype.writeFail = function(n, test, err) {\n println('not ok %d %s', n, title(test));\n};\n\n/**\n * Writes the summary epilogue to reporter output stream.\n *\n * @abstract\n * @param {Object} stats - Object containing run statistics.\n */\nTAPProducer.prototype.writeEpilogue = function(stats) {\n // :TBD: Why is this not counting pending tests?\n println('# tests ' + (stats.passes + stats.failures));\n println('# pass ' + stats.passes);\n // :TBD: Why are we not showing pending results?\n println('# fail ' + stats.failures);\n this.writePlan(stats.passes + stats.failures + stats.pending);\n};\n\n/**\n * @summary\n * Constructs a new TAP12Producer.\n *\n * @description\n * Produces output conforming to the TAP12 specification.\n *\n * @private\n * @constructor\n * @extends TAPProducer\n * @see {@link https://testanything.org/tap-specification.html|Specification}\n */\nfunction TAP12Producer() {\n /**\n * Writes that test failed to reporter output stream, with error formatting.\n * @override\n */\n this.writeFail = function(n, test, err) {\n TAPProducer.prototype.writeFail.call(this, n, test, err);\n if (err.message) {\n println(err.message.replace(/^/gm, ' '));\n }\n if (err.stack) {\n println(err.stack.replace(/^/gm, ' '));\n }\n };\n}\n\n/**\n * Inherit from `TAPProducer.prototype`.\n */\ninherits(TAP12Producer, TAPProducer);\n\n/**\n * @summary\n * Constructs a new TAP13Producer.\n *\n * @description\n * Produces output conforming to the TAP13 specification.\n *\n * @private\n * @constructor\n * @extends TAPProducer\n * @see {@link https://testanything.org/tap-version-13-specification.html|Specification}\n */\nfunction TAP13Producer() {\n /**\n * Writes the TAP version to reporter output stream.\n * @override\n */\n this.writeVersion = function() {\n println('TAP version 13');\n };\n\n /**\n * Writes that test failed to reporter output stream, with error formatting.\n * @override\n */\n this.writeFail = function(n, test, err) {\n TAPProducer.prototype.writeFail.call(this, n, test, err);\n var emitYamlBlock = err.message != null || err.stack != null;\n if (emitYamlBlock) {\n println(indent(1) + '---');\n if (err.message) {\n println(indent(2) + 'message: |-');\n println(err.message.replace(/^/gm, indent(3)));\n }\n if (err.stack) {\n println(indent(2) + 'stack: |-');\n println(err.stack.replace(/^/gm, indent(3)));\n }\n println(indent(1) + '...');\n }\n };\n\n function indent(level) {\n return Array(level + 1).join(' ');\n }\n}\n\n/**\n * Inherit from `TAPProducer.prototype`.\n */\ninherits(TAP13Producer, TAPProducer);\n\nTAP.description = 'TAP-compatible output';\n","export default {};\n","'use strict';\n/**\n * @module JSON\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar fs = require('fs');\nvar path = require('path');\nconst createUnsupportedError = require('../errors').createUnsupportedError;\nconst utils = require('../utils');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\n\n/**\n * Expose `JSON`.\n */\n\nexports = module.exports = JSONReporter;\n\n/**\n * Constructs a new `JSON` reporter instance.\n *\n * @public\n * @class JSON\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction JSONReporter(runner, options = {}) {\n Base.call(this, runner, options);\n\n var self = this;\n var tests = [];\n var pending = [];\n var failures = [];\n var passes = [];\n var output;\n\n if (options.reporterOption && options.reporterOption.output) {\n if (utils.isBrowser()) {\n throw createUnsupportedError('file output not supported in browser');\n }\n output = options.reporterOption.output;\n }\n\n runner.on(EVENT_TEST_END, function(test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n passes.push(test);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n failures.push(test);\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n pending.push(test);\n });\n\n runner.once(EVENT_RUN_END, function() {\n var obj = {\n stats: self.stats,\n tests: tests.map(clean),\n pending: pending.map(clean),\n failures: failures.map(clean),\n passes: passes.map(clean)\n };\n\n runner.testResults = obj;\n\n var json = JSON.stringify(obj, null, 2);\n if (output) {\n try {\n fs.mkdirSync(path.dirname(output), {recursive: true});\n fs.writeFileSync(output, json);\n } catch (err) {\n console.error(\n `${Base.symbols.err} [mocha] writing output to \"${output}\" failed: ${err.message}\\n`\n );\n process.stdout.write(json);\n }\n } else {\n process.stdout.write(json);\n }\n });\n}\n\n/**\n * Return a plain-object representation of `test`\n * free of cyclic properties etc.\n *\n * @private\n * @param {Object} test\n * @return {Object}\n */\nfunction clean(test) {\n var err = test.err || {};\n if (err instanceof Error) {\n err = errorJSON(err);\n }\n\n return {\n title: test.title,\n fullTitle: test.fullTitle(),\n file: test.file,\n duration: test.duration,\n currentRetry: test.currentRetry(),\n speed: test.speed,\n err: cleanCycles(err)\n };\n}\n\n/**\n * Replaces any circular references inside `obj` with '[object Object]'\n *\n * @private\n * @param {Object} obj\n * @return {Object}\n */\nfunction cleanCycles(obj) {\n var cache = [];\n return JSON.parse(\n JSON.stringify(obj, function(key, value) {\n if (typeof value === 'object' && value !== null) {\n if (cache.indexOf(value) !== -1) {\n // Instead of going in a circle, we'll print [object Object]\n return '' + value;\n }\n cache.push(value);\n }\n\n return value;\n })\n );\n}\n\n/**\n * Transform an Error object into a JSON object.\n *\n * @private\n * @param {Error} err\n * @return {Object}\n */\nfunction errorJSON(err) {\n var res = {};\n Object.getOwnPropertyNames(err).forEach(function(key) {\n res[key] = err[key];\n }, err);\n return res;\n}\n\nJSONReporter.description = 'single JSON object';\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\n\n/**\n @module browser/Progress\n*/\n\n/**\n * Expose `Progress`.\n */\n\nmodule.exports = Progress;\n\n/**\n * Initialize a new `Progress` indicator.\n */\nfunction Progress() {\n this.percent = 0;\n this.size(0);\n this.fontSize(11);\n this.font('helvetica, arial, sans-serif');\n}\n\n/**\n * Set progress size to `size`.\n *\n * @public\n * @param {number} size\n * @return {Progress} Progress instance.\n */\nProgress.prototype.size = function(size) {\n this._size = size;\n return this;\n};\n\n/**\n * Set text to `text`.\n *\n * @public\n * @param {string} text\n * @return {Progress} Progress instance.\n */\nProgress.prototype.text = function(text) {\n this._text = text;\n return this;\n};\n\n/**\n * Set font size to `size`.\n *\n * @public\n * @param {number} size\n * @return {Progress} Progress instance.\n */\nProgress.prototype.fontSize = function(size) {\n this._fontSize = size;\n return this;\n};\n\n/**\n * Set font to `family`.\n *\n * @param {string} family\n * @return {Progress} Progress instance.\n */\nProgress.prototype.font = function(family) {\n this._font = family;\n return this;\n};\n\n/**\n * Update percentage to `n`.\n *\n * @param {number} n\n * @return {Progress} Progress instance.\n */\nProgress.prototype.update = function(n) {\n this.percent = n;\n return this;\n};\n\n/**\n * Draw on `ctx`.\n *\n * @param {CanvasRenderingContext2d} ctx\n * @return {Progress} Progress instance.\n */\nProgress.prototype.draw = function(ctx) {\n try {\n var percent = Math.min(this.percent, 100);\n var size = this._size;\n var half = size / 2;\n var x = half;\n var y = half;\n var rad = half - 1;\n var fontSize = this._fontSize;\n\n ctx.font = fontSize + 'px ' + this._font;\n\n var angle = Math.PI * 2 * (percent / 100);\n ctx.clearRect(0, 0, size, size);\n\n // outer circle\n ctx.strokeStyle = '#9f9f9f';\n ctx.beginPath();\n ctx.arc(x, y, rad, 0, angle, false);\n ctx.stroke();\n\n // inner circle\n ctx.strokeStyle = '#eee';\n ctx.beginPath();\n ctx.arc(x, y, rad - 1, 0, angle, true);\n ctx.stroke();\n\n // text\n var text = this._text || (percent | 0) + '%';\n var w = ctx.measureText(text).width;\n\n ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1);\n } catch (ignore) {\n // don't fail if we can't render progress\n }\n return this;\n};\n","'use strict';\n\n/* eslint-env browser */\n/**\n * @module HTML\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar Progress = require('../browser/progress');\nvar escapeRe = require('escape-string-regexp');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar escape = utils.escape;\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\n\nvar Date = global.Date;\n\n/**\n * Expose `HTML`.\n */\n\nexports = module.exports = HTML;\n\n/**\n * Stats template.\n */\n\nvar statsTemplate =\n '<ul id=\"mocha-stats\">' +\n '<li class=\"progress\"><canvas width=\"40\" height=\"40\"></canvas></li>' +\n '<li class=\"passes\"><a href=\"javascript:void(0);\">passes:</a> <em>0</em></li>' +\n '<li class=\"failures\"><a href=\"javascript:void(0);\">failures:</a> <em>0</em></li>' +\n '<li class=\"duration\">duration: <em>0</em>s</li>' +\n '</ul>';\n\nvar playIcon = '&#x2023;';\n\n/**\n * Constructs a new `HTML` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction HTML(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var stats = this.stats;\n var stat = fragment(statsTemplate);\n var items = stat.getElementsByTagName('li');\n var passes = items[1].getElementsByTagName('em')[0];\n var passesLink = items[1].getElementsByTagName('a')[0];\n var failures = items[2].getElementsByTagName('em')[0];\n var failuresLink = items[2].getElementsByTagName('a')[0];\n var duration = items[3].getElementsByTagName('em')[0];\n var canvas = stat.getElementsByTagName('canvas')[0];\n var report = fragment('<ul id=\"mocha-report\"></ul>');\n var stack = [report];\n var progress;\n var ctx;\n var root = document.getElementById('mocha');\n\n if (canvas.getContext) {\n var ratio = window.devicePixelRatio || 1;\n canvas.style.width = canvas.width;\n canvas.style.height = canvas.height;\n canvas.width *= ratio;\n canvas.height *= ratio;\n ctx = canvas.getContext('2d');\n ctx.scale(ratio, ratio);\n progress = new Progress();\n }\n\n if (!root) {\n return error('#mocha div missing, add it to your document');\n }\n\n // pass toggle\n on(passesLink, 'click', function(evt) {\n evt.preventDefault();\n unhide();\n var name = /pass/.test(report.className) ? '' : ' pass';\n report.className = report.className.replace(/fail|pass/g, '') + name;\n if (report.className.trim()) {\n hideSuitesWithout('test pass');\n }\n });\n\n // failure toggle\n on(failuresLink, 'click', function(evt) {\n evt.preventDefault();\n unhide();\n var name = /fail/.test(report.className) ? '' : ' fail';\n report.className = report.className.replace(/fail|pass/g, '') + name;\n if (report.className.trim()) {\n hideSuitesWithout('test fail');\n }\n });\n\n root.appendChild(stat);\n root.appendChild(report);\n\n if (progress) {\n progress.size(40);\n }\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n if (suite.root) {\n return;\n }\n\n // suite\n var url = self.suiteURL(suite);\n var el = fragment(\n '<li class=\"suite\"><h1><a href=\"%s\">%s</a></h1></li>',\n url,\n escape(suite.title)\n );\n\n // container\n stack[0].appendChild(el);\n stack.unshift(document.createElement('ul'));\n el.appendChild(stack[0]);\n });\n\n runner.on(EVENT_SUITE_END, function(suite) {\n if (suite.root) {\n updateStats();\n return;\n }\n stack.shift();\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var url = self.testURL(test);\n var markup =\n '<li class=\"test pass %e\"><h2>%e<span class=\"duration\">%ems</span> ' +\n '<a href=\"%s\" class=\"replay\">' +\n playIcon +\n '</a></h2></li>';\n var el = fragment(markup, test.speed, test.title, test.duration, url);\n self.addCodeToggle(el, test.body);\n appendToStack(el);\n updateStats();\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n var el = fragment(\n '<li class=\"test fail\"><h2>%e <a href=\"%e\" class=\"replay\">' +\n playIcon +\n '</a></h2></li>',\n test.title,\n self.testURL(test)\n );\n var stackString; // Note: Includes leading newline\n var message = test.err.toString();\n\n // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we\n // check for the result of the stringifying.\n if (message === '[object Error]') {\n message = test.err.message;\n }\n\n if (test.err.stack) {\n var indexOfMessage = test.err.stack.indexOf(test.err.message);\n if (indexOfMessage === -1) {\n stackString = test.err.stack;\n } else {\n stackString = test.err.stack.substr(\n test.err.message.length + indexOfMessage\n );\n }\n } else if (test.err.sourceURL && test.err.line !== undefined) {\n // Safari doesn't give you a stack. Let's at least provide a source line.\n stackString = '\\n(' + test.err.sourceURL + ':' + test.err.line + ')';\n }\n\n stackString = stackString || '';\n\n if (test.err.htmlMessage && stackString) {\n el.appendChild(\n fragment(\n '<div class=\"html-error\">%s\\n<pre class=\"error\">%e</pre></div>',\n test.err.htmlMessage,\n stackString\n )\n );\n } else if (test.err.htmlMessage) {\n el.appendChild(\n fragment('<div class=\"html-error\">%s</div>', test.err.htmlMessage)\n );\n } else {\n el.appendChild(\n fragment('<pre class=\"error\">%e%e</pre>', message, stackString)\n );\n }\n\n self.addCodeToggle(el, test.body);\n appendToStack(el);\n updateStats();\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n var el = fragment(\n '<li class=\"test pass pending\"><h2>%e</h2></li>',\n test.title\n );\n appendToStack(el);\n updateStats();\n });\n\n function appendToStack(el) {\n // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack.\n if (stack[0]) {\n stack[0].appendChild(el);\n }\n }\n\n function updateStats() {\n // TODO: add to stats\n var percent = ((stats.tests / runner.total) * 100) | 0;\n if (progress) {\n progress.update(percent).draw(ctx);\n }\n\n // update stats\n var ms = new Date() - stats.start;\n text(passes, stats.passes);\n text(failures, stats.failures);\n text(duration, (ms / 1000).toFixed(2));\n }\n}\n\n/**\n * Makes a URL, preserving querystring (\"search\") parameters.\n *\n * @param {string} s\n * @return {string} A new URL.\n */\nfunction makeUrl(s) {\n var search = window.location.search;\n\n // Remove previous grep query parameter if present\n if (search) {\n search = search.replace(/[?&]grep=[^&\\s]*/g, '').replace(/^&/, '?');\n }\n\n return (\n window.location.pathname +\n (search ? search + '&' : '?') +\n 'grep=' +\n encodeURIComponent(escapeRe(s))\n );\n}\n\n/**\n * Provide suite URL.\n *\n * @param {Object} [suite]\n */\nHTML.prototype.suiteURL = function(suite) {\n return makeUrl(suite.fullTitle());\n};\n\n/**\n * Provide test URL.\n *\n * @param {Object} [test]\n */\nHTML.prototype.testURL = function(test) {\n return makeUrl(test.fullTitle());\n};\n\n/**\n * Adds code toggle functionality for the provided test's list element.\n *\n * @param {HTMLLIElement} el\n * @param {string} contents\n */\nHTML.prototype.addCodeToggle = function(el, contents) {\n var h2 = el.getElementsByTagName('h2')[0];\n\n on(h2, 'click', function() {\n pre.style.display = pre.style.display === 'none' ? 'block' : 'none';\n });\n\n var pre = fragment('<pre><code>%e</code></pre>', utils.clean(contents));\n el.appendChild(pre);\n pre.style.display = 'none';\n};\n\n/**\n * Display error `msg`.\n *\n * @param {string} msg\n */\nfunction error(msg) {\n document.body.appendChild(fragment('<div id=\"mocha-error\">%s</div>', msg));\n}\n\n/**\n * Return a DOM fragment from `html`.\n *\n * @param {string} html\n */\nfunction fragment(html) {\n var args = arguments;\n var div = document.createElement('div');\n var i = 1;\n\n div.innerHTML = html.replace(/%([se])/g, function(_, type) {\n switch (type) {\n case 's':\n return String(args[i++]);\n case 'e':\n return escape(args[i++]);\n // no default\n }\n });\n\n return div.firstChild;\n}\n\n/**\n * Check for suites that do not have elements\n * with `classname`, and hide them.\n *\n * @param {text} classname\n */\nfunction hideSuitesWithout(classname) {\n var suites = document.getElementsByClassName('suite');\n for (var i = 0; i < suites.length; i++) {\n var els = suites[i].getElementsByClassName(classname);\n if (!els.length) {\n suites[i].className += ' hidden';\n }\n }\n}\n\n/**\n * Unhide .hidden suites.\n */\nfunction unhide() {\n var els = document.getElementsByClassName('suite hidden');\n while (els.length > 0) {\n els[0].className = els[0].className.replace('suite hidden', 'suite');\n }\n}\n\n/**\n * Set an element's text contents.\n *\n * @param {HTMLElement} el\n * @param {string} contents\n */\nfunction text(el, contents) {\n if (el.textContent) {\n el.textContent = contents;\n } else {\n el.innerText = contents;\n }\n}\n\n/**\n * Listen on `event` with callback `fn`.\n */\nfunction on(el, event, fn) {\n if (el.addEventListener) {\n el.addEventListener(event, fn, false);\n } else {\n el.attachEvent('on' + event, fn);\n }\n}\n\nHTML.browserOnly = true;\n","'use strict';\n/**\n * @module List\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_BEGIN = constants.EVENT_TEST_BEGIN;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar color = Base.color;\nvar cursor = Base.cursor;\n\n/**\n * Expose `List`.\n */\n\nexports = module.exports = List;\n\n/**\n * Constructs a new `List` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction List(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var n = 0;\n\n runner.on(EVENT_RUN_BEGIN, function() {\n Base.consoleLog();\n });\n\n runner.on(EVENT_TEST_BEGIN, function(test) {\n process.stdout.write(color('pass', ' ' + test.fullTitle() + ': '));\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n var fmt = color('checkmark', ' -') + color('pending', ' %s');\n Base.consoleLog(fmt, test.fullTitle());\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var fmt =\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s: ') +\n color(test.speed, '%dms');\n cursor.CR();\n Base.consoleLog(fmt, test.fullTitle(), test.duration);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n cursor.CR();\n Base.consoleLog(color('fail', ' %d) %s'), ++n, test.fullTitle());\n });\n\n runner.once(EVENT_RUN_END, self.epilogue.bind(self));\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(List, Base);\n\nList.description = 'like \"spec\" reporter but flat';\n","'use strict';\n/**\n * @module Min\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\n\n/**\n * Expose `Min`.\n */\n\nexports = module.exports = Min;\n\n/**\n * Constructs a new `Min` reporter instance.\n *\n * @description\n * This minimal test reporter is best used with '--watch'.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Min(runner, options) {\n Base.call(this, runner, options);\n\n runner.on(EVENT_RUN_BEGIN, function() {\n // clear screen\n process.stdout.write('\\u001b[2J');\n // set cursor position\n process.stdout.write('\\u001b[1;3H');\n });\n\n runner.once(EVENT_RUN_END, this.epilogue.bind(this));\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Min, Base);\n\nMin.description = 'essentially just a summary';\n","'use strict';\n/**\n * @module Spec\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar inherits = require('../utils').inherits;\nvar color = Base.color;\n\n/**\n * Expose `Spec`.\n */\n\nexports = module.exports = Spec;\n\n/**\n * Constructs a new `Spec` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Spec(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var indents = 0;\n var n = 0;\n\n function indent() {\n return Array(indents).join(' ');\n }\n\n runner.on(EVENT_RUN_BEGIN, function() {\n Base.consoleLog();\n });\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n ++indents;\n Base.consoleLog(color('suite', '%s%s'), indent(), suite.title);\n });\n\n runner.on(EVENT_SUITE_END, function() {\n --indents;\n if (indents === 1) {\n Base.consoleLog();\n }\n });\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n var fmt = indent() + color('pending', ' - %s');\n Base.consoleLog(fmt, test.title);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var fmt;\n if (test.speed === 'fast') {\n fmt =\n indent() +\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s');\n Base.consoleLog(fmt, test.title);\n } else {\n fmt =\n indent() +\n color('checkmark', ' ' + Base.symbols.ok) +\n color('pass', ' %s') +\n color(test.speed, ' (%dms)');\n Base.consoleLog(fmt, test.title, test.duration);\n }\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n Base.consoleLog(indent() + color('fail', ' %d) %s'), ++n, test.title);\n });\n\n runner.once(EVENT_RUN_END, self.epilogue.bind(self));\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Spec, Base);\n\nSpec.description = 'hierarchical & verbose [default]';\n","'use strict';\n/**\n * @module Nyan\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar inherits = require('../utils').inherits;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\n\n/**\n * Expose `Dot`.\n */\n\nexports = module.exports = NyanCat;\n\n/**\n * Constructs a new `Nyan` reporter instance.\n *\n * @public\n * @class Nyan\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction NyanCat(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var nyanCatWidth = (this.nyanCatWidth = 11);\n\n this.colorIndex = 0;\n this.numberOfLines = 4;\n this.rainbowColors = self.generateColors();\n this.scoreboardWidth = 5;\n this.tick = 0;\n this.trajectories = [[], [], [], []];\n this.trajectoryWidthMax = width - nyanCatWidth;\n\n runner.on(EVENT_RUN_BEGIN, function() {\n Base.cursor.hide();\n self.draw();\n });\n\n runner.on(EVENT_TEST_PENDING, function() {\n self.draw();\n });\n\n runner.on(EVENT_TEST_PASS, function() {\n self.draw();\n });\n\n runner.on(EVENT_TEST_FAIL, function() {\n self.draw();\n });\n\n runner.once(EVENT_RUN_END, function() {\n Base.cursor.show();\n for (var i = 0; i < self.numberOfLines; i++) {\n write('\\n');\n }\n self.epilogue();\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(NyanCat, Base);\n\n/**\n * Draw the nyan cat\n *\n * @private\n */\n\nNyanCat.prototype.draw = function() {\n this.appendRainbow();\n this.drawScoreboard();\n this.drawRainbow();\n this.drawNyanCat();\n this.tick = !this.tick;\n};\n\n/**\n * Draw the \"scoreboard\" showing the number\n * of passes, failures and pending tests.\n *\n * @private\n */\n\nNyanCat.prototype.drawScoreboard = function() {\n var stats = this.stats;\n\n function draw(type, n) {\n write(' ');\n write(Base.color(type, n));\n write('\\n');\n }\n\n draw('green', stats.passes);\n draw('fail', stats.failures);\n draw('pending', stats.pending);\n write('\\n');\n\n this.cursorUp(this.numberOfLines);\n};\n\n/**\n * Append the rainbow.\n *\n * @private\n */\n\nNyanCat.prototype.appendRainbow = function() {\n var segment = this.tick ? '_' : '-';\n var rainbowified = this.rainbowify(segment);\n\n for (var index = 0; index < this.numberOfLines; index++) {\n var trajectory = this.trajectories[index];\n if (trajectory.length >= this.trajectoryWidthMax) {\n trajectory.shift();\n }\n trajectory.push(rainbowified);\n }\n};\n\n/**\n * Draw the rainbow.\n *\n * @private\n */\n\nNyanCat.prototype.drawRainbow = function() {\n var self = this;\n\n this.trajectories.forEach(function(line) {\n write('\\u001b[' + self.scoreboardWidth + 'C');\n write(line.join(''));\n write('\\n');\n });\n\n this.cursorUp(this.numberOfLines);\n};\n\n/**\n * Draw the nyan cat\n *\n * @private\n */\nNyanCat.prototype.drawNyanCat = function() {\n var self = this;\n var startWidth = this.scoreboardWidth + this.trajectories[0].length;\n var dist = '\\u001b[' + startWidth + 'C';\n var padding = '';\n\n write(dist);\n write('_,------,');\n write('\\n');\n\n write(dist);\n padding = self.tick ? ' ' : ' ';\n write('_|' + padding + '/\\\\_/\\\\ ');\n write('\\n');\n\n write(dist);\n padding = self.tick ? '_' : '__';\n var tail = self.tick ? '~' : '^';\n write(tail + '|' + padding + this.face() + ' ');\n write('\\n');\n\n write(dist);\n padding = self.tick ? ' ' : ' ';\n write(padding + '\"\" \"\" ');\n write('\\n');\n\n this.cursorUp(this.numberOfLines);\n};\n\n/**\n * Draw nyan cat face.\n *\n * @private\n * @return {string}\n */\n\nNyanCat.prototype.face = function() {\n var stats = this.stats;\n if (stats.failures) {\n return '( x .x)';\n } else if (stats.pending) {\n return '( o .o)';\n } else if (stats.passes) {\n return '( ^ .^)';\n }\n return '( - .-)';\n};\n\n/**\n * Move cursor up `n`.\n *\n * @private\n * @param {number} n\n */\n\nNyanCat.prototype.cursorUp = function(n) {\n write('\\u001b[' + n + 'A');\n};\n\n/**\n * Move cursor down `n`.\n *\n * @private\n * @param {number} n\n */\n\nNyanCat.prototype.cursorDown = function(n) {\n write('\\u001b[' + n + 'B');\n};\n\n/**\n * Generate rainbow colors.\n *\n * @private\n * @return {Array}\n */\nNyanCat.prototype.generateColors = function() {\n var colors = [];\n\n for (var i = 0; i < 6 * 7; i++) {\n var pi3 = Math.floor(Math.PI / 3);\n var n = i * (1.0 / 6);\n var r = Math.floor(3 * Math.sin(n) + 3);\n var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3);\n var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3);\n colors.push(36 * r + 6 * g + b + 16);\n }\n\n return colors;\n};\n\n/**\n * Apply rainbow to the given `str`.\n *\n * @private\n * @param {string} str\n * @return {string}\n */\nNyanCat.prototype.rainbowify = function(str) {\n if (!Base.useColors) {\n return str;\n }\n var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];\n this.colorIndex += 1;\n return '\\u001b[38;5;' + color + 'm' + str + '\\u001b[0m';\n};\n\n/**\n * Stdout helper.\n *\n * @param {string} string A message to write to stdout.\n */\nfunction write(string) {\n process.stdout.write(string);\n}\n\nNyanCat.description = '\"nyan cat\"';\n","'use strict';\n/**\n * @module XUnit\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar fs = require('fs');\nvar path = require('path');\nvar errors = require('../errors');\nvar createUnsupportedError = errors.createUnsupportedError;\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar STATE_FAILED = require('../runnable').constants.STATE_FAILED;\nvar inherits = utils.inherits;\nvar escape = utils.escape;\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\nvar Date = global.Date;\n\n/**\n * Expose `XUnit`.\n */\n\nexports = module.exports = XUnit;\n\n/**\n * Constructs a new `XUnit` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction XUnit(runner, options) {\n Base.call(this, runner, options);\n\n var stats = this.stats;\n var tests = [];\n var self = this;\n\n // the name of the test suite, as it will appear in the resulting XML file\n var suiteName;\n\n // the default name of the test suite if none is provided\n var DEFAULT_SUITE_NAME = 'Mocha Tests';\n\n if (options && options.reporterOptions) {\n if (options.reporterOptions.output) {\n if (!fs.createWriteStream) {\n throw createUnsupportedError('file output not supported in browser');\n }\n\n fs.mkdirSync(path.dirname(options.reporterOptions.output), {\n recursive: true\n });\n self.fileStream = fs.createWriteStream(options.reporterOptions.output);\n }\n\n // get the suite name from the reporter options (if provided)\n suiteName = options.reporterOptions.suiteName;\n }\n\n // fall back to the default suite name\n suiteName = suiteName || DEFAULT_SUITE_NAME;\n\n runner.on(EVENT_TEST_PENDING, function(test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n tests.push(test);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test) {\n tests.push(test);\n });\n\n runner.once(EVENT_RUN_END, function() {\n self.write(\n tag(\n 'testsuite',\n {\n name: suiteName,\n tests: stats.tests,\n failures: 0,\n errors: stats.failures,\n skipped: stats.tests - stats.failures - stats.passes,\n timestamp: new Date().toUTCString(),\n time: stats.duration / 1000 || 0\n },\n false\n )\n );\n\n tests.forEach(function(t) {\n self.test(t);\n });\n\n self.write('</testsuite>');\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(XUnit, Base);\n\n/**\n * Override done to close the stream (if it's a file).\n *\n * @param failures\n * @param {Function} fn\n */\nXUnit.prototype.done = function(failures, fn) {\n if (this.fileStream) {\n this.fileStream.end(function() {\n fn(failures);\n });\n } else {\n fn(failures);\n }\n};\n\n/**\n * Write out the given line.\n *\n * @param {string} line\n */\nXUnit.prototype.write = function(line) {\n if (this.fileStream) {\n this.fileStream.write(line + '\\n');\n } else if (typeof process === 'object' && process.stdout) {\n process.stdout.write(line + '\\n');\n } else {\n Base.consoleLog(line);\n }\n};\n\n/**\n * Output tag for the given `test.`\n *\n * @param {Test} test\n */\nXUnit.prototype.test = function(test) {\n Base.useColors = false;\n\n var attrs = {\n classname: test.parent.fullTitle(),\n name: test.title,\n time: test.duration / 1000 || 0\n };\n\n if (test.state === STATE_FAILED) {\n var err = test.err;\n var diff =\n !Base.hideDiff && Base.showDiff(err)\n ? '\\n' + Base.generateDiff(err.actual, err.expected)\n : '';\n this.write(\n tag(\n 'testcase',\n attrs,\n false,\n tag(\n 'failure',\n {},\n false,\n escape(err.message) + escape(diff) + '\\n' + escape(err.stack)\n )\n )\n );\n } else if (test.isPending()) {\n this.write(tag('testcase', attrs, false, tag('skipped', {}, true)));\n } else {\n this.write(tag('testcase', attrs, true));\n }\n};\n\n/**\n * HTML tag helper.\n *\n * @param name\n * @param attrs\n * @param close\n * @param content\n * @return {string}\n */\nfunction tag(name, attrs, close, content) {\n var end = close ? '/>' : '>';\n var pairs = [];\n var tag;\n\n for (var key in attrs) {\n if (Object.prototype.hasOwnProperty.call(attrs, key)) {\n pairs.push(key + '=\"' + escape(attrs[key]) + '\"');\n }\n }\n\n tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end;\n if (content) {\n tag += content + '</' + name + end;\n }\n return tag;\n}\n\nXUnit.description = 'XUnit-compatible XML output';\n","'use strict';\n/**\n * @module Markdown\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar utils = require('../utils');\nvar constants = require('../runner').constants;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_SUITE_END = constants.EVENT_SUITE_END;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\n\n/**\n * Constants\n */\n\nvar SUITE_PREFIX = '$';\n\n/**\n * Expose `Markdown`.\n */\n\nexports = module.exports = Markdown;\n\n/**\n * Constructs a new `Markdown` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Markdown(runner, options) {\n Base.call(this, runner, options);\n\n var level = 0;\n var buf = '';\n\n function title(str) {\n return Array(level).join('#') + ' ' + str;\n }\n\n function mapTOC(suite, obj) {\n var ret = obj;\n var key = SUITE_PREFIX + suite.title;\n\n obj = obj[key] = obj[key] || {suite: suite};\n suite.suites.forEach(function(suite) {\n mapTOC(suite, obj);\n });\n\n return ret;\n }\n\n function stringifyTOC(obj, level) {\n ++level;\n var buf = '';\n var link;\n for (var key in obj) {\n if (key === 'suite') {\n continue;\n }\n if (key !== SUITE_PREFIX) {\n link = ' - [' + key.substring(1) + ']';\n link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\\n';\n buf += Array(level).join(' ') + link;\n }\n buf += stringifyTOC(obj[key], level);\n }\n return buf;\n }\n\n function generateTOC(suite) {\n var obj = mapTOC(suite, {});\n return stringifyTOC(obj, 0);\n }\n\n generateTOC(runner.suite);\n\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n ++level;\n var slug = utils.slug(suite.fullTitle());\n buf += '<a name=\"' + slug + '\"></a>' + '\\n';\n buf += title(suite.title) + '\\n';\n });\n\n runner.on(EVENT_SUITE_END, function() {\n --level;\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n var code = utils.clean(test.body);\n buf += test.title + '.\\n';\n buf += '\\n```js\\n';\n buf += code + '\\n';\n buf += '```\\n\\n';\n });\n\n runner.once(EVENT_RUN_END, function() {\n process.stdout.write('# TOC\\n');\n process.stdout.write(generateTOC(runner.suite));\n process.stdout.write(buf);\n });\n}\n\nMarkdown.description = 'GitHub Flavored Markdown';\n","'use strict';\n/**\n * @module Progress\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar inherits = require('../utils').inherits;\nvar color = Base.color;\nvar cursor = Base.cursor;\n\n/**\n * Expose `Progress`.\n */\n\nexports = module.exports = Progress;\n\n/**\n * General progress bar color.\n */\n\nBase.colors.progress = 90;\n\n/**\n * Constructs a new `Progress` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Progress(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.5) | 0;\n var total = runner.total;\n var complete = 0;\n var lastN = -1;\n\n // default chars\n options = options || {};\n var reporterOptions = options.reporterOptions || {};\n\n options.open = reporterOptions.open || '[';\n options.complete = reporterOptions.complete || '▬';\n options.incomplete = reporterOptions.incomplete || Base.symbols.dot;\n options.close = reporterOptions.close || ']';\n options.verbose = reporterOptions.verbose || false;\n\n // tests started\n runner.on(EVENT_RUN_BEGIN, function() {\n process.stdout.write('\\n');\n cursor.hide();\n });\n\n // tests complete\n runner.on(EVENT_TEST_END, function() {\n complete++;\n\n var percent = complete / total;\n var n = (width * percent) | 0;\n var i = width - n;\n\n if (n === lastN && !options.verbose) {\n // Don't re-render the line if it hasn't changed\n return;\n }\n lastN = n;\n\n cursor.CR();\n process.stdout.write('\\u001b[J');\n process.stdout.write(color('progress', ' ' + options.open));\n process.stdout.write(Array(n).join(options.complete));\n process.stdout.write(Array(i).join(options.incomplete));\n process.stdout.write(color('progress', options.close));\n if (options.verbose) {\n process.stdout.write(color('progress', ' ' + complete + ' of ' + total));\n }\n });\n\n // tests are complete, output some stats\n // and the failures if any\n runner.once(EVENT_RUN_END, function() {\n cursor.show();\n process.stdout.write('\\n');\n self.epilogue();\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Progress, Base);\n\nProgress.description = 'a progress bar';\n","'use strict';\n/**\n * @module Landing\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar inherits = require('../utils').inherits;\nvar constants = require('../runner').constants;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\nvar STATE_FAILED = require('../runnable').constants.STATE_FAILED;\n\nvar cursor = Base.cursor;\nvar color = Base.color;\n\n/**\n * Expose `Landing`.\n */\n\nexports = module.exports = Landing;\n\n/**\n * Airplane color.\n */\n\nBase.colors.plane = 0;\n\n/**\n * Airplane crash color.\n */\n\nBase.colors['plane crash'] = 31;\n\n/**\n * Runway color.\n */\n\nBase.colors.runway = 90;\n\n/**\n * Constructs a new `Landing` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction Landing(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var width = (Base.window.width * 0.75) | 0;\n var stream = process.stdout;\n\n var plane = color('plane', '✈');\n var crashed = -1;\n var n = 0;\n var total = 0;\n\n function runway() {\n var buf = Array(width).join('-');\n return ' ' + color('runway', buf);\n }\n\n runner.on(EVENT_RUN_BEGIN, function() {\n stream.write('\\n\\n\\n ');\n cursor.hide();\n });\n\n runner.on(EVENT_TEST_END, function(test) {\n // check if the plane crashed\n var col = crashed === -1 ? ((width * ++n) / ++total) | 0 : crashed;\n // show the crash\n if (test.state === STATE_FAILED) {\n plane = color('plane crash', '✈');\n crashed = col;\n }\n\n // render landing strip\n stream.write('\\u001b[' + (width + 1) + 'D\\u001b[2A');\n stream.write(runway());\n stream.write('\\n ');\n stream.write(color('runway', Array(col).join('⋅')));\n stream.write(plane);\n stream.write(color('runway', Array(width - col).join('⋅') + '\\n'));\n stream.write(runway());\n stream.write('\\u001b[0m');\n });\n\n runner.once(EVENT_RUN_END, function() {\n cursor.show();\n process.stdout.write('\\n');\n self.epilogue();\n });\n\n // if cursor is hidden when we ctrl-C, then it will remain hidden unless...\n process.once('SIGINT', function() {\n cursor.show();\n process.nextTick(function() {\n process.kill(process.pid, 'SIGINT');\n });\n });\n}\n\n/**\n * Inherit from `Base.prototype`.\n */\ninherits(Landing, Base);\n\nLanding.description = 'Unicode landing strip';\n","'use strict';\n/**\n * @module JSONStream\n */\n/**\n * Module dependencies.\n */\n\nvar Base = require('./base');\nvar constants = require('../runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\n\n/**\n * Expose `JSONStream`.\n */\n\nexports = module.exports = JSONStream;\n\n/**\n * Constructs a new `JSONStream` reporter instance.\n *\n * @public\n * @class\n * @memberof Mocha.reporters\n * @extends Mocha.reporters.Base\n * @param {Runner} runner - Instance triggers reporter actions.\n * @param {Object} [options] - runner options\n */\nfunction JSONStream(runner, options) {\n Base.call(this, runner, options);\n\n var self = this;\n var total = runner.total;\n\n runner.once(EVENT_RUN_BEGIN, function() {\n writeEvent(['start', {total: total}]);\n });\n\n runner.on(EVENT_TEST_PASS, function(test) {\n writeEvent(['pass', clean(test)]);\n });\n\n runner.on(EVENT_TEST_FAIL, function(test, err) {\n test = clean(test);\n test.err = err.message;\n test.stack = err.stack || null;\n writeEvent(['fail', test]);\n });\n\n runner.once(EVENT_RUN_END, function() {\n writeEvent(['end', self.stats]);\n });\n}\n\n/**\n * Mocha event to be written to the output stream.\n * @typedef {Array} JSONStream~MochaEvent\n */\n\n/**\n * Writes Mocha event to reporter output stream.\n *\n * @private\n * @param {JSONStream~MochaEvent} event - Mocha event to be output.\n */\nfunction writeEvent(event) {\n process.stdout.write(JSON.stringify(event) + '\\n');\n}\n\n/**\n * Returns an object literal representation of `test`\n * free of cyclic properties, etc.\n *\n * @private\n * @param {Test} test - Instance used as data source.\n * @return {Object} object containing pared-down test instance data\n */\nfunction clean(test) {\n return {\n title: test.title,\n fullTitle: test.fullTitle(),\n file: test.file,\n duration: test.duration,\n currentRetry: test.currentRetry(),\n speed: test.speed\n };\n}\n\nJSONStream.description = 'newline delimited JSON events';\n","'use strict';\n\n// Alias exports to a their normalized format Mocha#reporter to prevent a need\n// for dynamic (try/catch) requires, which Browserify doesn't handle.\nexports.Base = exports.base = require('./base');\nexports.Dot = exports.dot = require('./dot');\nexports.Doc = exports.doc = require('./doc');\nexports.TAP = exports.tap = require('./tap');\nexports.JSON = exports.json = require('./json');\nexports.HTML = exports.html = require('./html');\nexports.List = exports.list = require('./list');\nexports.Min = exports.min = require('./min');\nexports.Spec = exports.spec = require('./spec');\nexports.Nyan = exports.nyan = require('./nyan');\nexports.XUnit = exports.xunit = require('./xunit');\nexports.Markdown = exports.markdown = require('./markdown');\nexports.Progress = exports.progress = require('./progress');\nexports.Landing = exports.landing = require('./landing');\nexports.JSONStream = exports['json-stream'] = require('./json-stream');\n","'use strict';\n\n/**\n * Web Notifications module.\n * @module Growl\n */\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\nvar Date = global.Date;\nvar setTimeout = global.setTimeout;\nvar EVENT_RUN_END = require('../runner').constants.EVENT_RUN_END;\nvar isBrowser = require('../utils').isBrowser;\n\n/**\n * Checks if browser notification support exists.\n *\n * @public\n * @see {@link https://caniuse.com/#feat=notifications|Browser support (notifications)}\n * @see {@link https://caniuse.com/#feat=promises|Browser support (promises)}\n * @see {@link Mocha#growl}\n * @see {@link Mocha#isGrowlCapable}\n * @return {boolean} whether browser notification support exists\n */\nexports.isCapable = function() {\n var hasNotificationSupport = 'Notification' in window;\n var hasPromiseSupport = typeof Promise === 'function';\n return isBrowser() && hasNotificationSupport && hasPromiseSupport;\n};\n\n/**\n * Implements browser notifications as a pseudo-reporter.\n *\n * @public\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/notification|Notification API}\n * @see {@link https://developers.google.com/web/fundamentals/push-notifications/display-a-notification|Displaying a Notification}\n * @see {@link Growl#isPermitted}\n * @see {@link Mocha#_growl}\n * @param {Runner} runner - Runner instance.\n */\nexports.notify = function(runner) {\n var promise = isPermitted();\n\n /**\n * Attempt notification.\n */\n var sendNotification = function() {\n // If user hasn't responded yet... \"No notification for you!\" (Seinfeld)\n Promise.race([promise, Promise.resolve(undefined)])\n .then(canNotify)\n .then(function() {\n display(runner);\n })\n .catch(notPermitted);\n };\n\n runner.once(EVENT_RUN_END, sendNotification);\n};\n\n/**\n * Checks if browser notification is permitted by user.\n *\n * @private\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Notification/permission|Notification.permission}\n * @see {@link Mocha#growl}\n * @see {@link Mocha#isGrowlPermitted}\n * @returns {Promise<boolean>} promise determining if browser notification\n * permissible when fulfilled.\n */\nfunction isPermitted() {\n var permitted = {\n granted: function allow() {\n return Promise.resolve(true);\n },\n denied: function deny() {\n return Promise.resolve(false);\n },\n default: function ask() {\n return Notification.requestPermission().then(function(permission) {\n return permission === 'granted';\n });\n }\n };\n\n return permitted[Notification.permission]();\n}\n\n/**\n * @summary\n * Determines if notification should proceed.\n *\n * @description\n * Notification shall <strong>not</strong> proceed unless `value` is true.\n *\n * `value` will equal one of:\n * <ul>\n * <li><code>true</code> (from `isPermitted`)</li>\n * <li><code>false</code> (from `isPermitted`)</li>\n * <li><code>undefined</code> (from `Promise.race`)</li>\n * </ul>\n *\n * @private\n * @param {boolean|undefined} value - Determines if notification permissible.\n * @returns {Promise<undefined>} Notification can proceed\n */\nfunction canNotify(value) {\n if (!value) {\n var why = value === false ? 'blocked' : 'unacknowledged';\n var reason = 'not permitted by user (' + why + ')';\n return Promise.reject(new Error(reason));\n }\n return Promise.resolve();\n}\n\n/**\n * Displays the notification.\n *\n * @private\n * @param {Runner} runner - Runner instance.\n */\nfunction display(runner) {\n var stats = runner.stats;\n var symbol = {\n cross: '\\u274C',\n tick: '\\u2705'\n };\n var logo = require('../../package.json').notifyLogo;\n var _message;\n var message;\n var title;\n\n if (stats.failures) {\n _message = stats.failures + ' of ' + stats.tests + ' tests failed';\n message = symbol.cross + ' ' + _message;\n title = 'Failed';\n } else {\n _message = stats.passes + ' tests passed in ' + stats.duration + 'ms';\n message = symbol.tick + ' ' + _message;\n title = 'Passed';\n }\n\n // Send notification\n var options = {\n badge: logo,\n body: message,\n dir: 'ltr',\n icon: logo,\n lang: 'en-US',\n name: 'mocha',\n requireInteraction: false,\n timestamp: Date.now()\n };\n var notification = new Notification(title, options);\n\n // Autoclose after brief delay (makes various browsers act same)\n var FORCE_DURATION = 4000;\n setTimeout(notification.close.bind(notification), FORCE_DURATION);\n}\n\n/**\n * As notifications are tangential to our purpose, just log the error.\n *\n * @private\n * @param {Error} err - Why notification didn't happen.\n */\nfunction notPermitted(err) {\n console.error('notification error:', err.message);\n}\n","'use strict';\n\n/**\n * Provides a factory function for a {@link StatsCollector} object.\n * @module\n */\n\nvar constants = require('./runner').constants;\nvar EVENT_TEST_PASS = constants.EVENT_TEST_PASS;\nvar EVENT_TEST_FAIL = constants.EVENT_TEST_FAIL;\nvar EVENT_SUITE_BEGIN = constants.EVENT_SUITE_BEGIN;\nvar EVENT_RUN_BEGIN = constants.EVENT_RUN_BEGIN;\nvar EVENT_TEST_PENDING = constants.EVENT_TEST_PENDING;\nvar EVENT_RUN_END = constants.EVENT_RUN_END;\nvar EVENT_TEST_END = constants.EVENT_TEST_END;\n\n/**\n * Test statistics collector.\n *\n * @public\n * @typedef {Object} StatsCollector\n * @property {number} suites - integer count of suites run.\n * @property {number} tests - integer count of tests run.\n * @property {number} passes - integer count of passing tests.\n * @property {number} pending - integer count of pending tests.\n * @property {number} failures - integer count of failed tests.\n * @property {Date} start - time when testing began.\n * @property {Date} end - time when testing concluded.\n * @property {number} duration - number of msecs that testing took.\n */\n\nvar Date = global.Date;\n\n/**\n * Provides stats such as test duration, number of tests passed / failed etc., by listening for events emitted by `runner`.\n *\n * @private\n * @param {Runner} runner - Runner instance\n * @throws {TypeError} If falsy `runner`\n */\nfunction createStatsCollector(runner) {\n /**\n * @type StatsCollector\n */\n var stats = {\n suites: 0,\n tests: 0,\n passes: 0,\n pending: 0,\n failures: 0\n };\n\n if (!runner) {\n throw new TypeError('Missing runner argument');\n }\n\n runner.stats = stats;\n\n runner.once(EVENT_RUN_BEGIN, function() {\n stats.start = new Date();\n });\n runner.on(EVENT_SUITE_BEGIN, function(suite) {\n suite.root || stats.suites++;\n });\n runner.on(EVENT_TEST_PASS, function() {\n stats.passes++;\n });\n runner.on(EVENT_TEST_FAIL, function() {\n stats.failures++;\n });\n runner.on(EVENT_TEST_PENDING, function() {\n stats.pending++;\n });\n runner.on(EVENT_TEST_END, function() {\n stats.tests++;\n });\n runner.once(EVENT_RUN_END, function() {\n stats.end = new Date();\n stats.duration = stats.end - stats.start;\n });\n}\n\nmodule.exports = createStatsCollector;\n","'use strict';\nvar Runnable = require('./runnable');\nvar utils = require('./utils');\nvar errors = require('./errors');\nvar createInvalidArgumentTypeError = errors.createInvalidArgumentTypeError;\nvar isString = utils.isString;\n\nconst {MOCHA_ID_PROP_NAME} = utils.constants;\n\nmodule.exports = Test;\n\n/**\n * Initialize a new `Test` with the given `title` and callback `fn`.\n *\n * @public\n * @class\n * @extends Runnable\n * @param {String} title - Test title (required)\n * @param {Function} [fn] - Test callback. If omitted, the Test is considered \"pending\"\n */\nfunction Test(title, fn) {\n if (!isString(title)) {\n throw createInvalidArgumentTypeError(\n 'Test argument \"title\" should be a string. Received type \"' +\n typeof title +\n '\"',\n 'title',\n 'string'\n );\n }\n this.type = 'test';\n Runnable.call(this, title, fn);\n this.reset();\n}\n\n/**\n * Inherit from `Runnable.prototype`.\n */\nutils.inherits(Test, Runnable);\n\n/**\n * Resets the state initially or for a next run.\n */\nTest.prototype.reset = function() {\n Runnable.prototype.reset.call(this);\n this.pending = !this.fn;\n delete this.state;\n};\n\n/**\n * Set or get retried test\n *\n * @private\n */\nTest.prototype.retriedTest = function(n) {\n if (!arguments.length) {\n return this._retriedTest;\n }\n this._retriedTest = n;\n};\n\n/**\n * Add test to the list of tests marked `only`.\n *\n * @private\n */\nTest.prototype.markOnly = function() {\n this.parent.appendOnlyTest(this);\n};\n\nTest.prototype.clone = function() {\n var test = new Test(this.title, this.fn);\n test.timeout(this.timeout());\n test.slow(this.slow());\n test.retries(this.retries());\n test.currentRetry(this.currentRetry());\n test.retriedTest(this.retriedTest() || this);\n test.globals(this.globals());\n test.parent = this.parent;\n test.file = this.file;\n test.ctx = this.ctx;\n return test;\n};\n\n/**\n * Returns an minimal object suitable for transmission over IPC.\n * Functions are represented by keys beginning with `$$`.\n * @private\n * @returns {Object}\n */\nTest.prototype.serialize = function serialize() {\n return {\n $$currentRetry: this._currentRetry,\n $$fullTitle: this.fullTitle(),\n $$isPending: Boolean(this.pending),\n $$retriedTest: this._retriedTest || null,\n $$slow: this._slow,\n $$titlePath: this.titlePath(),\n body: this.body,\n duration: this.duration,\n err: this.err,\n parent: {\n $$fullTitle: this.parent.fullTitle(),\n [MOCHA_ID_PROP_NAME]: this.parent.id\n },\n speed: this.speed,\n state: this.state,\n title: this.title,\n type: this.type,\n file: this.file,\n [MOCHA_ID_PROP_NAME]: this.id\n };\n};\n","'use strict';\n\n/**\n @module interfaces/common\n*/\n\nvar Suite = require('../suite');\nvar errors = require('../errors');\nvar createMissingArgumentError = errors.createMissingArgumentError;\nvar createUnsupportedError = errors.createUnsupportedError;\nvar createForbiddenExclusivityError = errors.createForbiddenExclusivityError;\n\n/**\n * Functions common to more than one interface.\n *\n * @private\n * @param {Suite[]} suites\n * @param {Context} context\n * @param {Mocha} mocha\n * @return {Object} An object containing common functions.\n */\nmodule.exports = function(suites, context, mocha) {\n /**\n * Check if the suite should be tested.\n *\n * @private\n * @param {Suite} suite - suite to check\n * @returns {boolean}\n */\n function shouldBeTested(suite) {\n return (\n !mocha.options.grep ||\n (mocha.options.grep &&\n mocha.options.grep.test(suite.fullTitle()) &&\n !mocha.options.invert)\n );\n }\n\n return {\n /**\n * This is only present if flag --delay is passed into Mocha. It triggers\n * root suite execution.\n *\n * @param {Suite} suite The root suite.\n * @return {Function} A function which runs the root suite\n */\n runWithSuite: function runWithSuite(suite) {\n return function run() {\n suite.run();\n };\n },\n\n /**\n * Execute before running tests.\n *\n * @param {string} name\n * @param {Function} fn\n */\n before: function(name, fn) {\n suites[0].beforeAll(name, fn);\n },\n\n /**\n * Execute after running tests.\n *\n * @param {string} name\n * @param {Function} fn\n */\n after: function(name, fn) {\n suites[0].afterAll(name, fn);\n },\n\n /**\n * Execute before each test case.\n *\n * @param {string} name\n * @param {Function} fn\n */\n beforeEach: function(name, fn) {\n suites[0].beforeEach(name, fn);\n },\n\n /**\n * Execute after each test case.\n *\n * @param {string} name\n * @param {Function} fn\n */\n afterEach: function(name, fn) {\n suites[0].afterEach(name, fn);\n },\n\n suite: {\n /**\n * Create an exclusive Suite; convenience function\n * See docstring for create() below.\n *\n * @param {Object} opts\n * @returns {Suite}\n */\n only: function only(opts) {\n if (mocha.options.forbidOnly) {\n throw createForbiddenExclusivityError(mocha);\n }\n opts.isOnly = true;\n return this.create(opts);\n },\n\n /**\n * Create a Suite, but skip it; convenience function\n * See docstring for create() below.\n *\n * @param {Object} opts\n * @returns {Suite}\n */\n skip: function skip(opts) {\n opts.pending = true;\n return this.create(opts);\n },\n\n /**\n * Creates a suite.\n *\n * @param {Object} opts Options\n * @param {string} opts.title Title of Suite\n * @param {Function} [opts.fn] Suite Function (not always applicable)\n * @param {boolean} [opts.pending] Is Suite pending?\n * @param {string} [opts.file] Filepath where this Suite resides\n * @param {boolean} [opts.isOnly] Is Suite exclusive?\n * @returns {Suite}\n */\n create: function create(opts) {\n var suite = Suite.create(suites[0], opts.title);\n suite.pending = Boolean(opts.pending);\n suite.file = opts.file;\n suites.unshift(suite);\n if (opts.isOnly) {\n suite.markOnly();\n }\n if (\n suite.pending &&\n mocha.options.forbidPending &&\n shouldBeTested(suite)\n ) {\n throw createUnsupportedError('Pending test forbidden');\n }\n if (typeof opts.fn === 'function') {\n opts.fn.call(suite);\n suites.shift();\n } else if (typeof opts.fn === 'undefined' && !suite.pending) {\n throw createMissingArgumentError(\n 'Suite \"' +\n suite.fullTitle() +\n '\" was defined but no callback was supplied. ' +\n 'Supply a callback or explicitly skip the suite.',\n 'callback',\n 'function'\n );\n } else if (!opts.fn && suite.pending) {\n suites.shift();\n }\n\n return suite;\n }\n },\n\n test: {\n /**\n * Exclusive test-case.\n *\n * @param {Object} mocha\n * @param {Function} test\n * @returns {*}\n */\n only: function(mocha, test) {\n if (mocha.options.forbidOnly) {\n throw createForbiddenExclusivityError(mocha);\n }\n test.markOnly();\n return test;\n },\n\n /**\n * Pending test case.\n *\n * @param {string} title\n */\n skip: function(title) {\n context.test(title);\n }\n }\n };\n};\n","'use strict';\n\nvar Test = require('../test');\nvar EVENT_FILE_PRE_REQUIRE = require('../suite').constants\n .EVENT_FILE_PRE_REQUIRE;\n\n/**\n * BDD-style interface:\n *\n * describe('Array', function() {\n * describe('#indexOf()', function() {\n * it('should return -1 when not present', function() {\n * // ...\n * });\n *\n * it('should return the index when present', function() {\n * // ...\n * });\n * });\n * });\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function bddInterface(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {\n var common = require('./common')(suites, context, mocha);\n\n context.before = common.before;\n context.after = common.after;\n context.beforeEach = common.beforeEach;\n context.afterEach = common.afterEach;\n context.run = mocha.options.delay && common.runWithSuite(suite);\n /**\n * Describe a \"suite\" with the given `title`\n * and callback `fn` containing nested suites\n * and/or tests.\n */\n\n context.describe = context.context = function(title, fn) {\n return common.suite.create({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Pending describe.\n */\n\n context.xdescribe = context.xcontext = context.describe.skip = function(\n title,\n fn\n ) {\n return common.suite.skip({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Exclusive suite.\n */\n\n context.describe.only = function(title, fn) {\n return common.suite.only({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Describe a specification or test-case\n * with the given `title` and callback `fn`\n * acting as a thunk.\n */\n\n context.it = context.specify = function(title, fn) {\n var suite = suites[0];\n if (suite.isPending()) {\n fn = null;\n }\n var test = new Test(title, fn);\n test.file = file;\n suite.addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.it.only = function(title, fn) {\n return common.test.only(mocha, context.it(title, fn));\n };\n\n /**\n * Pending test case.\n */\n\n context.xit = context.xspecify = context.it.skip = function(title) {\n return context.it(title);\n };\n });\n};\n\nmodule.exports.description = 'BDD or RSpec style [default]';\n","'use strict';\n\nvar Test = require('../test');\nvar EVENT_FILE_PRE_REQUIRE = require('../suite').constants\n .EVENT_FILE_PRE_REQUIRE;\n\n/**\n * TDD-style interface:\n *\n * suite('Array', function() {\n * suite('#indexOf()', function() {\n * suiteSetup(function() {\n *\n * });\n *\n * test('should return -1 when not present', function() {\n *\n * });\n *\n * test('should return the index when present', function() {\n *\n * });\n *\n * suiteTeardown(function() {\n *\n * });\n * });\n * });\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {\n var common = require('./common')(suites, context, mocha);\n\n context.setup = common.beforeEach;\n context.teardown = common.afterEach;\n context.suiteSetup = common.before;\n context.suiteTeardown = common.after;\n context.run = mocha.options.delay && common.runWithSuite(suite);\n\n /**\n * Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites and/or tests.\n */\n context.suite = function(title, fn) {\n return common.suite.create({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Pending suite.\n */\n context.suite.skip = function(title, fn) {\n return common.suite.skip({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Exclusive test-case.\n */\n context.suite.only = function(title, fn) {\n return common.suite.only({\n title: title,\n file: file,\n fn: fn\n });\n };\n\n /**\n * Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk.\n */\n context.test = function(title, fn) {\n var suite = suites[0];\n if (suite.isPending()) {\n fn = null;\n }\n var test = new Test(title, fn);\n test.file = file;\n suite.addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.test.only = function(title, fn) {\n return common.test.only(mocha, context.test(title, fn));\n };\n\n context.test.skip = common.test.skip;\n });\n};\n\nmodule.exports.description =\n 'traditional \"suite\"/\"test\" instead of BDD\\'s \"describe\"/\"it\"';\n","'use strict';\n\nvar Test = require('../test');\nvar EVENT_FILE_PRE_REQUIRE = require('../suite').constants\n .EVENT_FILE_PRE_REQUIRE;\n\n/**\n * QUnit-style interface:\n *\n * suite('Array');\n *\n * test('#length', function() {\n * var arr = [1,2,3];\n * ok(arr.length == 3);\n * });\n *\n * test('#indexOf()', function() {\n * var arr = [1,2,3];\n * ok(arr.indexOf(1) == 0);\n * ok(arr.indexOf(2) == 1);\n * ok(arr.indexOf(3) == 2);\n * });\n *\n * suite('String');\n *\n * test('#length', function() {\n * ok('foo'.length == 3);\n * });\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function qUnitInterface(suite) {\n var suites = [suite];\n\n suite.on(EVENT_FILE_PRE_REQUIRE, function(context, file, mocha) {\n var common = require('./common')(suites, context, mocha);\n\n context.before = common.before;\n context.after = common.after;\n context.beforeEach = common.beforeEach;\n context.afterEach = common.afterEach;\n context.run = mocha.options.delay && common.runWithSuite(suite);\n /**\n * Describe a \"suite\" with the given `title`.\n */\n\n context.suite = function(title) {\n if (suites.length > 1) {\n suites.shift();\n }\n return common.suite.create({\n title: title,\n file: file,\n fn: false\n });\n };\n\n /**\n * Exclusive Suite.\n */\n\n context.suite.only = function(title) {\n if (suites.length > 1) {\n suites.shift();\n }\n return common.suite.only({\n title: title,\n file: file,\n fn: false\n });\n };\n\n /**\n * Describe a specification or test-case\n * with the given `title` and callback `fn`\n * acting as a thunk.\n */\n\n context.test = function(title, fn) {\n var test = new Test(title, fn);\n test.file = file;\n suites[0].addTest(test);\n return test;\n };\n\n /**\n * Exclusive test-case.\n */\n\n context.test.only = function(title, fn) {\n return common.test.only(mocha, context.test(title, fn));\n };\n\n context.test.skip = common.test.skip;\n });\n};\n\nmodule.exports.description = 'QUnit style';\n","'use strict';\nvar Suite = require('../suite');\nvar Test = require('../test');\n\n/**\n * Exports-style (as Node.js module) interface:\n *\n * exports.Array = {\n * '#indexOf()': {\n * 'should return -1 when the value is not present': function() {\n *\n * },\n *\n * 'should return the correct index when the value is present': function() {\n *\n * }\n * }\n * };\n *\n * @param {Suite} suite Root suite.\n */\nmodule.exports = function(suite) {\n var suites = [suite];\n\n suite.on(Suite.constants.EVENT_FILE_REQUIRE, visit);\n\n function visit(obj, file) {\n var suite;\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n var fn = obj[key];\n switch (key) {\n case 'before':\n suites[0].beforeAll(fn);\n break;\n case 'after':\n suites[0].afterAll(fn);\n break;\n case 'beforeEach':\n suites[0].beforeEach(fn);\n break;\n case 'afterEach':\n suites[0].afterEach(fn);\n break;\n default:\n var test = new Test(key, fn);\n test.file = file;\n suites[0].addTest(test);\n }\n } else {\n suite = Suite.create(suites[0], key);\n suites.unshift(suite);\n visit(obj[key], file);\n suites.shift();\n }\n }\n }\n};\n\nmodule.exports.description = 'Node.js module (\"exports\") style';\n","'use strict';\n\nexports.bdd = require('./bdd');\nexports.tdd = require('./tdd');\nexports.qunit = require('./qunit');\nexports.exports = require('./exports');\n","'use strict';\n/**\n * @module Context\n */\n/**\n * Expose `Context`.\n */\n\nmodule.exports = Context;\n\n/**\n * Initialize a new `Context`.\n *\n * @private\n */\nfunction Context() {}\n\n/**\n * Set or get the context `Runnable` to `runnable`.\n *\n * @private\n * @param {Runnable} runnable\n * @return {Context} context\n */\nContext.prototype.runnable = function(runnable) {\n if (!arguments.length) {\n return this._runnable;\n }\n this.test = this._runnable = runnable;\n return this;\n};\n\n/**\n * Set or get test timeout `ms`.\n *\n * @private\n * @param {number} ms\n * @return {Context} self\n */\nContext.prototype.timeout = function(ms) {\n if (!arguments.length) {\n return this.runnable().timeout();\n }\n this.runnable().timeout(ms);\n return this;\n};\n\n/**\n * Set or get test slowness threshold `ms`.\n *\n * @private\n * @param {number} ms\n * @return {Context} self\n */\nContext.prototype.slow = function(ms) {\n if (!arguments.length) {\n return this.runnable().slow();\n }\n this.runnable().slow(ms);\n return this;\n};\n\n/**\n * Mark a test as skipped.\n *\n * @private\n * @throws Pending\n */\nContext.prototype.skip = function() {\n this.runnable().skip();\n};\n\n/**\n * Set or get a number of allowed retries on failed tests\n *\n * @private\n * @param {number} n\n * @return {Context} self\n */\nContext.prototype.retries = function(n) {\n if (!arguments.length) {\n return this.runnable().retries();\n }\n this.runnable().retries(n);\n return this;\n};\n","'use strict';\n\n/*!\n * mocha\n * Copyright(c) 2011 TJ Holowaychuk <tj@vision-media.ca>\n * MIT Licensed\n */\n\nvar escapeRe = require('escape-string-regexp');\nvar path = require('path');\nvar builtinReporters = require('./reporters');\nvar growl = require('./nodejs/growl');\nvar utils = require('./utils');\nvar mocharc = require('./mocharc.json');\nvar Suite = require('./suite');\nvar esmUtils = utils.supportsEsModules(true)\n ? require('./esm-utils')\n : undefined;\nvar createStatsCollector = require('./stats-collector');\nconst {\n warn,\n createInvalidReporterError,\n createInvalidInterfaceError,\n createMochaInstanceAlreadyDisposedError,\n createMochaInstanceAlreadyRunningError,\n createUnsupportedError\n} = require('./errors');\nconst {\n EVENT_FILE_PRE_REQUIRE,\n EVENT_FILE_POST_REQUIRE,\n EVENT_FILE_REQUIRE\n} = Suite.constants;\nvar debug = require('debug')('mocha:mocha');\n\nexports = module.exports = Mocha;\n\n/**\n * A Mocha instance is a finite state machine.\n * These are the states it can be in.\n * @private\n */\nvar mochaStates = utils.defineConstants({\n /**\n * Initial state of the mocha instance\n * @private\n */\n INIT: 'init',\n /**\n * Mocha instance is running tests\n * @private\n */\n RUNNING: 'running',\n /**\n * Mocha instance is done running tests and references to test functions and hooks are cleaned.\n * You can reset this state by unloading the test files.\n * @private\n */\n REFERENCES_CLEANED: 'referencesCleaned',\n /**\n * Mocha instance is disposed and can no longer be used.\n * @private\n */\n DISPOSED: 'disposed'\n});\n\n/**\n * To require local UIs and reporters when running in node.\n */\n\nif (!utils.isBrowser() && typeof module.paths !== 'undefined') {\n var cwd = utils.cwd();\n module.paths.push(cwd, path.join(cwd, 'node_modules'));\n}\n\n/**\n * Expose internals.\n * @private\n */\n\nexports.utils = utils;\nexports.interfaces = require('./interfaces');\n/**\n * @public\n * @memberof Mocha\n */\nexports.reporters = builtinReporters;\nexports.Runnable = require('./runnable');\nexports.Context = require('./context');\n/**\n *\n * @memberof Mocha\n */\nexports.Runner = require('./runner');\nexports.Suite = Suite;\nexports.Hook = require('./hook');\nexports.Test = require('./test');\n\nlet currentContext;\nexports.afterEach = function(...args) {\n return (currentContext.afterEach || currentContext.teardown).apply(\n this,\n args\n );\n};\nexports.after = function(...args) {\n return (currentContext.after || currentContext.suiteTeardown).apply(\n this,\n args\n );\n};\nexports.beforeEach = function(...args) {\n return (currentContext.beforeEach || currentContext.setup).apply(this, args);\n};\nexports.before = function(...args) {\n return (currentContext.before || currentContext.suiteSetup).apply(this, args);\n};\nexports.describe = function(...args) {\n return (currentContext.describe || currentContext.suite).apply(this, args);\n};\nexports.describe.only = function(...args) {\n return (currentContext.describe || currentContext.suite).only.apply(\n this,\n args\n );\n};\nexports.describe.skip = function(...args) {\n return (currentContext.describe || currentContext.suite).skip.apply(\n this,\n args\n );\n};\nexports.it = function(...args) {\n return (currentContext.it || currentContext.test).apply(this, args);\n};\nexports.it.only = function(...args) {\n return (currentContext.it || currentContext.test).only.apply(this, args);\n};\nexports.it.skip = function(...args) {\n return (currentContext.it || currentContext.test).skip.apply(this, args);\n};\nexports.xdescribe = exports.describe.skip;\nexports.xit = exports.it.skip;\nexports.setup = exports.beforeEach;\nexports.suiteSetup = exports.before;\nexports.suiteTeardown = exports.after;\nexports.suite = exports.describe;\nexports.teardown = exports.afterEach;\nexports.test = exports.it;\nexports.run = function(...args) {\n return currentContext.run.apply(this, args);\n};\n\n/**\n * Constructs a new Mocha instance with `options`.\n *\n * @public\n * @class Mocha\n * @param {Object} [options] - Settings object.\n * @param {boolean} [options.allowUncaught] - Propagate uncaught errors?\n * @param {boolean} [options.asyncOnly] - Force `done` callback or promise?\n * @param {boolean} [options.bail] - Bail after first test failure?\n * @param {boolean} [options.checkLeaks] - Check for global variable leaks?\n * @param {boolean} [options.color] - Color TTY output from reporter?\n * @param {boolean} [options.delay] - Delay root suite execution?\n * @param {boolean} [options.diff] - Show diff on failure?\n * @param {boolean} [options.dryRun] - Report tests without running them?\n * @param {boolean} [options.failZero] - Fail test run if zero tests?\n * @param {string} [options.fgrep] - Test filter given string.\n * @param {boolean} [options.forbidOnly] - Tests marked `only` fail the suite?\n * @param {boolean} [options.forbidPending] - Pending tests fail the suite?\n * @param {boolean} [options.fullTrace] - Full stacktrace upon failure?\n * @param {string[]} [options.global] - Variables expected in global scope.\n * @param {RegExp|string} [options.grep] - Test filter given regular expression.\n * @param {boolean} [options.growl] - Enable desktop notifications?\n * @param {boolean} [options.inlineDiffs] - Display inline diffs?\n * @param {boolean} [options.invert] - Invert test filter matches?\n * @param {boolean} [options.noHighlighting] - Disable syntax highlighting?\n * @param {string|constructor} [options.reporter] - Reporter name or constructor.\n * @param {Object} [options.reporterOption] - Reporter settings object.\n * @param {number} [options.retries] - Number of times to retry failed tests.\n * @param {number} [options.slow] - Slow threshold value.\n * @param {number|string} [options.timeout] - Timeout threshold value.\n * @param {string} [options.ui] - Interface name.\n * @param {boolean} [options.parallel] - Run jobs in parallel.\n * @param {number} [options.jobs] - Max number of worker processes for parallel runs.\n * @param {MochaRootHookObject} [options.rootHooks] - Hooks to bootstrap the root suite with.\n * @param {string[]} [options.require] - Pathname of `rootHooks` plugin for parallel runs.\n * @param {boolean} [options.isWorker] - Should be `true` if `Mocha` process is running in a worker process.\n */\nfunction Mocha(options = {}) {\n options = {...mocharc, ...options};\n this.files = [];\n this.options = options;\n // root suite\n this.suite = new exports.Suite('', new exports.Context(), true);\n this._cleanReferencesAfterRun = true;\n this._state = mochaStates.INIT;\n\n this.grep(options.grep)\n .fgrep(options.fgrep)\n .ui(options.ui)\n .reporter(\n options.reporter,\n options.reporterOption || options.reporterOptions // for backwards compability\n )\n .slow(options.slow)\n .global(options.global);\n\n // this guard exists because Suite#timeout does not consider `undefined` to be valid input\n if (typeof options.timeout !== 'undefined') {\n this.timeout(options.timeout === false ? 0 : options.timeout);\n }\n\n if ('retries' in options) {\n this.retries(options.retries);\n }\n\n [\n 'allowUncaught',\n 'asyncOnly',\n 'bail',\n 'checkLeaks',\n 'color',\n 'delay',\n 'diff',\n 'dryRun',\n 'failZero',\n 'forbidOnly',\n 'forbidPending',\n 'fullTrace',\n 'growl',\n 'inlineDiffs',\n 'invert'\n ].forEach(function(opt) {\n if (options[opt]) {\n this[opt]();\n }\n }, this);\n\n if (options.rootHooks) {\n this.rootHooks(options.rootHooks);\n }\n\n /**\n * The class which we'll instantiate in {@link Mocha#run}. Defaults to\n * {@link Runner} in serial mode; changes in parallel mode.\n * @memberof Mocha\n * @private\n */\n this._runnerClass = exports.Runner;\n\n /**\n * Whether or not to call {@link Mocha#loadFiles} implicitly when calling\n * {@link Mocha#run}. If this is `true`, then it's up to the consumer to call\n * {@link Mocha#loadFiles} _or_ {@link Mocha#loadFilesAsync}.\n * @private\n * @memberof Mocha\n */\n this._lazyLoadFiles = false;\n\n /**\n * It's useful for a Mocha instance to know if it's running in a worker process.\n * We could derive this via other means, but it's helpful to have a flag to refer to.\n * @memberof Mocha\n * @private\n */\n this.isWorker = Boolean(options.isWorker);\n\n this.globalSetup(options.globalSetup)\n .globalTeardown(options.globalTeardown)\n .enableGlobalSetup(options.enableGlobalSetup)\n .enableGlobalTeardown(options.enableGlobalTeardown);\n\n if (\n options.parallel &&\n (typeof options.jobs === 'undefined' || options.jobs > 1)\n ) {\n debug('attempting to enable parallel mode');\n this.parallelMode(true);\n }\n}\n\n/**\n * Enables or disables bailing on the first failure.\n *\n * @public\n * @see [CLI option](../#-bail-b)\n * @param {boolean} [bail=true] - Whether to bail on first error.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.bail = function(bail) {\n this.suite.bail(bail !== false);\n return this;\n};\n\n/**\n * @summary\n * Adds `file` to be loaded for execution.\n *\n * @description\n * Useful for generic setup code that must be included within test suite.\n *\n * @public\n * @see [CLI option](../#-file-filedirectoryglob)\n * @param {string} file - Pathname of file to be loaded.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.addFile = function(file) {\n this.files.push(file);\n return this;\n};\n\n/**\n * Sets reporter to `reporter`, defaults to \"spec\".\n *\n * @public\n * @see [CLI option](../#-reporter-name-r-name)\n * @see [Reporters](../#reporters)\n * @param {String|Function} reporterName - Reporter name or constructor.\n * @param {Object} [reporterOptions] - Options used to configure the reporter.\n * @returns {Mocha} this\n * @chainable\n * @throws {Error} if requested reporter cannot be loaded\n * @example\n *\n * // Use XUnit reporter and direct its output to file\n * mocha.reporter('xunit', { output: '/path/to/testspec.xunit.xml' });\n */\nMocha.prototype.reporter = function(reporterName, reporterOptions) {\n if (typeof reporterName === 'function') {\n this._reporter = reporterName;\n } else {\n reporterName = reporterName || 'spec';\n var reporter;\n // Try to load a built-in reporter.\n if (builtinReporters[reporterName]) {\n reporter = builtinReporters[reporterName];\n }\n // Try to load reporters from process.cwd() and node_modules\n if (!reporter) {\n try {\n reporter = require(reporterName);\n } catch (err) {\n if (err.code === 'MODULE_NOT_FOUND') {\n // Try to load reporters from a path (absolute or relative)\n try {\n reporter = require(path.resolve(utils.cwd(), reporterName));\n } catch (_err) {\n _err.code === 'MODULE_NOT_FOUND'\n ? warn(`'${reporterName}' reporter not found`)\n : warn(\n `'${reporterName}' reporter blew up with error:\\n ${err.stack}`\n );\n }\n } else {\n warn(`'${reporterName}' reporter blew up with error:\\n ${err.stack}`);\n }\n }\n }\n if (!reporter) {\n throw createInvalidReporterError(\n `invalid reporter '${reporterName}'`,\n reporterName\n );\n }\n this._reporter = reporter;\n }\n this.options.reporterOption = reporterOptions;\n // alias option name is used in public reporters xunit/tap/progress\n this.options.reporterOptions = reporterOptions;\n return this;\n};\n\n/**\n * Sets test UI `name`, defaults to \"bdd\".\n *\n * @public\n * @see [CLI option](../#-ui-name-u-name)\n * @see [Interface DSLs](../#interfaces)\n * @param {string|Function} [ui=bdd] - Interface name or class.\n * @returns {Mocha} this\n * @chainable\n * @throws {Error} if requested interface cannot be loaded\n */\nMocha.prototype.ui = function(ui) {\n var bindInterface;\n if (typeof ui === 'function') {\n bindInterface = ui;\n } else {\n ui = ui || 'bdd';\n bindInterface = exports.interfaces[ui];\n if (!bindInterface) {\n try {\n bindInterface = require(ui);\n } catch (err) {\n throw createInvalidInterfaceError(`invalid interface '${ui}'`, ui);\n }\n }\n }\n bindInterface(this.suite);\n\n this.suite.on(EVENT_FILE_PRE_REQUIRE, function(context) {\n currentContext = context;\n });\n\n return this;\n};\n\n/**\n * Loads `files` prior to execution. Does not support ES Modules.\n *\n * @description\n * The implementation relies on Node's `require` to execute\n * the test interface functions and will be subject to its cache.\n * Supports only CommonJS modules. To load ES modules, use Mocha#loadFilesAsync.\n *\n * @private\n * @see {@link Mocha#addFile}\n * @see {@link Mocha#run}\n * @see {@link Mocha#unloadFiles}\n * @see {@link Mocha#loadFilesAsync}\n * @param {Function} [fn] - Callback invoked upon completion.\n */\nMocha.prototype.loadFiles = function(fn) {\n var self = this;\n var suite = this.suite;\n this.files.forEach(function(file) {\n file = path.resolve(file);\n suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self);\n suite.emit(EVENT_FILE_REQUIRE, require(file), file, self);\n suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self);\n });\n fn && fn();\n};\n\n/**\n * Loads `files` prior to execution. Supports Node ES Modules.\n *\n * @description\n * The implementation relies on Node's `require` and `import` to execute\n * the test interface functions and will be subject to its cache.\n * Supports both CJS and ESM modules.\n *\n * @public\n * @see {@link Mocha#addFile}\n * @see {@link Mocha#run}\n * @see {@link Mocha#unloadFiles}\n * @returns {Promise}\n * @example\n *\n * // loads ESM (and CJS) test files asynchronously, then runs root suite\n * mocha.loadFilesAsync()\n * .then(() => mocha.run(failures => process.exitCode = failures ? 1 : 0))\n * .catch(() => process.exitCode = 1);\n */\nMocha.prototype.loadFilesAsync = function() {\n var self = this;\n var suite = this.suite;\n this.lazyLoadFiles(true);\n\n if (!esmUtils) {\n return new Promise(function(resolve) {\n self.loadFiles(resolve);\n });\n }\n\n return esmUtils.loadFilesAsync(\n this.files,\n function(file) {\n suite.emit(EVENT_FILE_PRE_REQUIRE, global, file, self);\n },\n function(file, resultModule) {\n suite.emit(EVENT_FILE_REQUIRE, resultModule, file, self);\n suite.emit(EVENT_FILE_POST_REQUIRE, global, file, self);\n }\n );\n};\n\n/**\n * Removes a previously loaded file from Node's `require` cache.\n *\n * @private\n * @static\n * @see {@link Mocha#unloadFiles}\n * @param {string} file - Pathname of file to be unloaded.\n */\nMocha.unloadFile = function(file) {\n if (utils.isBrowser()) {\n throw createUnsupportedError(\n 'unloadFile() is only suported in a Node.js environment'\n );\n }\n return require('./nodejs/file-unloader').unloadFile(file);\n};\n\n/**\n * Unloads `files` from Node's `require` cache.\n *\n * @description\n * This allows required files to be \"freshly\" reloaded, providing the ability\n * to reuse a Mocha instance programmatically.\n * Note: does not clear ESM module files from the cache\n *\n * <strong>Intended for consumers &mdash; not used internally</strong>\n *\n * @public\n * @see {@link Mocha#run}\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.unloadFiles = function() {\n if (this._state === mochaStates.DISPOSED) {\n throw createMochaInstanceAlreadyDisposedError(\n 'Mocha instance is already disposed, it cannot be used again.',\n this._cleanReferencesAfterRun,\n this\n );\n }\n\n this.files.forEach(function(file) {\n Mocha.unloadFile(file);\n });\n this._state = mochaStates.INIT;\n return this;\n};\n\n/**\n * Sets `grep` filter after escaping RegExp special characters.\n *\n * @public\n * @see {@link Mocha#grep}\n * @param {string} str - Value to be converted to a regexp.\n * @returns {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title begins with `\"foo\"` followed by a period\n * mocha.fgrep('foo.');\n */\nMocha.prototype.fgrep = function(str) {\n if (!str) {\n return this;\n }\n return this.grep(new RegExp(escapeRe(str)));\n};\n\n/**\n * @summary\n * Sets `grep` filter used to select specific tests for execution.\n *\n * @description\n * If `re` is a regexp-like string, it will be converted to regexp.\n * The regexp is tested against the full title of each test (i.e., the\n * name of the test preceded by titles of each its ancestral suites).\n * As such, using an <em>exact-match</em> fixed pattern against the\n * test name itself will not yield any matches.\n * <br>\n * <strong>Previous filter value will be overwritten on each call!</strong>\n *\n * @public\n * @see [CLI option](../#-grep-regexp-g-regexp)\n * @see {@link Mocha#fgrep}\n * @see {@link Mocha#invert}\n * @param {RegExp|String} re - Regular expression used to select tests.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title contains `\"match\"`, ignoring case\n * mocha.grep(/match/i);\n * @example\n *\n * // Same as above but with regexp-like string argument\n * mocha.grep('/match/i');\n * @example\n *\n * // ## Anti-example\n * // Given embedded test `it('only-this-test')`...\n * mocha.grep('/^only-this-test$/'); // NO! Use `.only()` to do this!\n */\nMocha.prototype.grep = function(re) {\n if (utils.isString(re)) {\n // extract args if it's regex-like, i.e: [string, pattern, flag]\n var arg = re.match(/^\\/(.*)\\/([gimy]{0,4})$|.*/);\n this.options.grep = new RegExp(arg[1] || arg[0], arg[2]);\n } else {\n this.options.grep = re;\n }\n return this;\n};\n\n/**\n * Inverts `grep` matches.\n *\n * @public\n * @see {@link Mocha#grep}\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Select tests whose full title does *not* contain `\"match\"`, ignoring case\n * mocha.grep(/match/i).invert();\n */\nMocha.prototype.invert = function() {\n this.options.invert = true;\n return this;\n};\n\n/**\n * Enables or disables checking for global variables leaked while running tests.\n *\n * @public\n * @see [CLI option](../#-check-leaks)\n * @param {boolean} [checkLeaks=true] - Whether to check for global variable leaks.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.checkLeaks = function(checkLeaks) {\n this.options.checkLeaks = checkLeaks !== false;\n return this;\n};\n\n/**\n * Enables or disables whether or not to dispose after each test run.\n * Disable this to ensure you can run the test suite multiple times.\n * If disabled, be sure to dispose mocha when you're done to prevent memory leaks.\n * @public\n * @see {@link Mocha#dispose}\n * @param {boolean} cleanReferencesAfterRun\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.cleanReferencesAfterRun = function(cleanReferencesAfterRun) {\n this._cleanReferencesAfterRun = cleanReferencesAfterRun !== false;\n return this;\n};\n\n/**\n * Manually dispose this mocha instance. Mark this instance as `disposed` and unable to run more tests.\n * It also removes function references to tests functions and hooks, so variables trapped in closures can be cleaned by the garbage collector.\n * @public\n */\nMocha.prototype.dispose = function() {\n if (this._state === mochaStates.RUNNING) {\n throw createMochaInstanceAlreadyRunningError(\n 'Cannot dispose while the mocha instance is still running tests.'\n );\n }\n this.unloadFiles();\n this._previousRunner && this._previousRunner.dispose();\n this.suite.dispose();\n this._state = mochaStates.DISPOSED;\n};\n\n/**\n * Displays full stack trace upon test failure.\n *\n * @public\n * @see [CLI option](../#-full-trace)\n * @param {boolean} [fullTrace=true] - Whether to print full stacktrace upon failure.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.fullTrace = function(fullTrace) {\n this.options.fullTrace = fullTrace !== false;\n return this;\n};\n\n/**\n * Enables desktop notification support if prerequisite software installed.\n *\n * @public\n * @see [CLI option](../#-growl-g)\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.growl = function() {\n this.options.growl = this.isGrowlCapable();\n if (!this.options.growl) {\n var detail = utils.isBrowser()\n ? 'notification support not available in this browser...'\n : 'notification support prerequisites not installed...';\n console.error(detail + ' cannot enable!');\n }\n return this;\n};\n\n/**\n * @summary\n * Determines if Growl support seems likely.\n *\n * @description\n * <strong>Not available when run in browser.</strong>\n *\n * @private\n * @see {@link Growl#isCapable}\n * @see {@link Mocha#growl}\n * @return {boolean} whether Growl support can be expected\n */\nMocha.prototype.isGrowlCapable = growl.isCapable;\n\n/**\n * Implements desktop notifications using a pseudo-reporter.\n *\n * @private\n * @see {@link Mocha#growl}\n * @see {@link Growl#notify}\n * @param {Runner} runner - Runner instance.\n */\nMocha.prototype._growl = growl.notify;\n\n/**\n * Specifies whitelist of variable names to be expected in global scope.\n *\n * @public\n * @see [CLI option](../#-global-variable-name)\n * @see {@link Mocha#checkLeaks}\n * @param {String[]|String} global - Accepted global variable name(s).\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Specify variables to be expected in global scope\n * mocha.global(['jQuery', 'MyLib']);\n */\nMocha.prototype.global = function(global) {\n this.options.global = (this.options.global || [])\n .concat(global)\n .filter(Boolean)\n .filter(function(elt, idx, arr) {\n return arr.indexOf(elt) === idx;\n });\n return this;\n};\n// for backwards compability, 'globals' is an alias of 'global'\nMocha.prototype.globals = Mocha.prototype.global;\n\n/**\n * Enables or disables TTY color output by screen-oriented reporters.\n *\n * @public\n * @see [CLI option](../#-color-c-colors)\n * @param {boolean} [color=true] - Whether to enable color output.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.color = function(color) {\n this.options.color = color !== false;\n return this;\n};\n\n/**\n * Enables or disables reporter to use inline diffs (rather than +/-)\n * in test failure output.\n *\n * @public\n * @see [CLI option](../#-inline-diffs)\n * @param {boolean} [inlineDiffs=true] - Whether to use inline diffs.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.inlineDiffs = function(inlineDiffs) {\n this.options.inlineDiffs = inlineDiffs !== false;\n return this;\n};\n\n/**\n * Enables or disables reporter to include diff in test failure output.\n *\n * @public\n * @see [CLI option](../#-diff)\n * @param {boolean} [diff=true] - Whether to show diff on failure.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.diff = function(diff) {\n this.options.diff = diff !== false;\n return this;\n};\n\n/**\n * @summary\n * Sets timeout threshold value.\n *\n * @description\n * A string argument can use shorthand (such as \"2s\") and will be converted.\n * If the value is `0`, timeouts will be disabled.\n *\n * @public\n * @see [CLI option](../#-timeout-ms-t-ms)\n * @see [Timeouts](../#timeouts)\n * @param {number|string} msecs - Timeout threshold value.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Sets timeout to one second\n * mocha.timeout(1000);\n * @example\n *\n * // Same as above but using string argument\n * mocha.timeout('1s');\n */\nMocha.prototype.timeout = function(msecs) {\n this.suite.timeout(msecs);\n return this;\n};\n\n/**\n * Sets the number of times to retry failed tests.\n *\n * @public\n * @see [CLI option](../#-retries-n)\n * @see [Retry Tests](../#retry-tests)\n * @param {number} retry - Number of times to retry failed tests.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Allow any failed test to retry one more time\n * mocha.retries(1);\n */\nMocha.prototype.retries = function(retry) {\n this.suite.retries(retry);\n return this;\n};\n\n/**\n * Sets slowness threshold value.\n *\n * @public\n * @see [CLI option](../#-slow-ms-s-ms)\n * @param {number} msecs - Slowness threshold value.\n * @return {Mocha} this\n * @chainable\n * @example\n *\n * // Sets \"slow\" threshold to half a second\n * mocha.slow(500);\n * @example\n *\n * // Same as above but using string argument\n * mocha.slow('0.5s');\n */\nMocha.prototype.slow = function(msecs) {\n this.suite.slow(msecs);\n return this;\n};\n\n/**\n * Forces all tests to either accept a `done` callback or return a promise.\n *\n * @public\n * @see [CLI option](../#-async-only-a)\n * @param {boolean} [asyncOnly=true] - Whether to force `done` callback or promise.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.asyncOnly = function(asyncOnly) {\n this.options.asyncOnly = asyncOnly !== false;\n return this;\n};\n\n/**\n * Disables syntax highlighting (in browser).\n *\n * @public\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.noHighlighting = function() {\n this.options.noHighlighting = true;\n return this;\n};\n\n/**\n * Enables or disables uncaught errors to propagate.\n *\n * @public\n * @see [CLI option](../#-allow-uncaught)\n * @param {boolean} [allowUncaught=true] - Whether to propagate uncaught errors.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.allowUncaught = function(allowUncaught) {\n this.options.allowUncaught = allowUncaught !== false;\n return this;\n};\n\n/**\n * @summary\n * Delays root suite execution.\n *\n * @description\n * Used to perform async operations before any suites are run.\n *\n * @public\n * @see [delayed root suite](../#delayed-root-suite)\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.delay = function delay() {\n this.options.delay = true;\n return this;\n};\n\n/**\n * Enables or disables running tests in dry-run mode.\n *\n * @public\n * @see [CLI option](../#-dry-run)\n * @param {boolean} [dryRun=true] - Whether to activate dry-run mode.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.dryRun = function(dryRun) {\n this.options.dryRun = dryRun !== false;\n return this;\n};\n\n/**\n * Fails test run if no tests encountered with exit-code 1.\n *\n * @public\n * @see [CLI option](../#-fail-zero)\n * @param {boolean} [failZero=true] - Whether to fail test run.\n * @return {Mocha} this\n * @chainable\n */\nMocha.prototype.failZero = function(failZero) {\n this.options.failZero = failZero !== false;\n return this;\n};\n\n/**\n * Causes tests marked `only` to fail the suite.\n *\n * @public\n * @see [CLI option](../#-forbid-only)\n * @param {boolean} [forbidOnly=true] - Whether tests marked `only` fail the suite.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.forbidOnly = function(forbidOnly) {\n this.options.forbidOnly = forbidOnly !== false;\n return this;\n};\n\n/**\n * Causes pending tests and tests marked `skip` to fail the suite.\n *\n * @public\n * @see [CLI option](../#-forbid-pending)\n * @param {boolean} [forbidPending=true] - Whether pending tests fail the suite.\n * @returns {Mocha} this\n * @chainable\n */\nMocha.prototype.forbidPending = function(forbidPending) {\n this.options.forbidPending = forbidPending !== false;\n return this;\n};\n\n/**\n * Throws an error if mocha is in the wrong state to be able to transition to a \"running\" state.\n * @private\n */\nMocha.prototype._guardRunningStateTransition = function() {\n if (this._state === mochaStates.RUNNING) {\n throw createMochaInstanceAlreadyRunningError(\n 'Mocha instance is currently running tests, cannot start a next test run until this one is done',\n this\n );\n }\n if (\n this._state === mochaStates.DISPOSED ||\n this._state === mochaStates.REFERENCES_CLEANED\n ) {\n throw createMochaInstanceAlreadyDisposedError(\n 'Mocha instance is already disposed, cannot start a new test run. Please create a new mocha instance. Be sure to set disable `cleanReferencesAfterRun` when you want to reuse the same mocha instance for multiple test runs.',\n this._cleanReferencesAfterRun,\n this\n );\n }\n};\n\n/**\n * Mocha version as specified by \"package.json\".\n *\n * @name Mocha#version\n * @type string\n * @readonly\n */\nObject.defineProperty(Mocha.prototype, 'version', {\n value: require('../package.json').version,\n configurable: false,\n enumerable: true,\n writable: false\n});\n\n/**\n * Callback to be invoked when test execution is complete.\n *\n * @private\n * @callback DoneCB\n * @param {number} failures - Number of failures that occurred.\n */\n\n/**\n * Runs root suite and invokes `fn()` when complete.\n *\n * @description\n * To run tests multiple times (or to run tests in files that are\n * already in the `require` cache), make sure to clear them from\n * the cache first!\n *\n * @public\n * @see {@link Mocha#unloadFiles}\n * @see {@link Runner#run}\n * @param {DoneCB} [fn] - Callback invoked when test execution completed.\n * @returns {Runner} runner instance\n * @example\n *\n * // exit with non-zero status if there were test failures\n * mocha.run(failures => process.exitCode = failures ? 1 : 0);\n */\nMocha.prototype.run = function(fn) {\n this._guardRunningStateTransition();\n this._state = mochaStates.RUNNING;\n if (this._previousRunner) {\n this._previousRunner.dispose();\n this.suite.reset();\n }\n if (this.files.length && !this._lazyLoadFiles) {\n this.loadFiles();\n }\n var suite = this.suite;\n var options = this.options;\n options.files = this.files;\n const runner = new this._runnerClass(suite, {\n cleanReferencesAfterRun: this._cleanReferencesAfterRun,\n delay: options.delay,\n dryRun: options.dryRun,\n failZero: options.failZero\n });\n createStatsCollector(runner);\n var reporter = new this._reporter(runner, options);\n runner.checkLeaks = options.checkLeaks === true;\n runner.fullStackTrace = options.fullTrace;\n runner.asyncOnly = options.asyncOnly;\n runner.allowUncaught = options.allowUncaught;\n runner.forbidOnly = options.forbidOnly;\n runner.forbidPending = options.forbidPending;\n if (options.grep) {\n runner.grep(options.grep, options.invert);\n }\n if (options.global) {\n runner.globals(options.global);\n }\n if (options.growl) {\n this._growl(runner);\n }\n if (options.color !== undefined) {\n exports.reporters.Base.useColors = options.color;\n }\n exports.reporters.Base.inlineDiffs = options.inlineDiffs;\n exports.reporters.Base.hideDiff = !options.diff;\n\n const done = failures => {\n this._previousRunner = runner;\n this._state = this._cleanReferencesAfterRun\n ? mochaStates.REFERENCES_CLEANED\n : mochaStates.INIT;\n fn = fn || utils.noop;\n if (typeof reporter.done === 'function') {\n reporter.done(failures, fn);\n } else {\n fn(failures);\n }\n };\n\n const runAsync = async runner => {\n const context =\n this.options.enableGlobalSetup && this.hasGlobalSetupFixtures()\n ? await this.runGlobalSetup(runner)\n : {};\n const failureCount = await runner.runAsync({\n files: this.files,\n options\n });\n if (this.options.enableGlobalTeardown && this.hasGlobalTeardownFixtures()) {\n await this.runGlobalTeardown(runner, {context});\n }\n return failureCount;\n };\n\n // no \"catch\" here is intentional. errors coming out of\n // Runner#run are considered uncaught/unhandled and caught\n // by the `process` event listeners.\n // also: returning anything other than `runner` would be a breaking\n // change\n runAsync(runner).then(done);\n\n return runner;\n};\n\n/**\n * Assigns hooks to the root suite\n * @param {MochaRootHookObject} [hooks] - Hooks to assign to root suite\n * @chainable\n */\nMocha.prototype.rootHooks = function rootHooks({\n beforeAll = [],\n beforeEach = [],\n afterAll = [],\n afterEach = []\n} = {}) {\n beforeAll = utils.castArray(beforeAll);\n beforeEach = utils.castArray(beforeEach);\n afterAll = utils.castArray(afterAll);\n afterEach = utils.castArray(afterEach);\n beforeAll.forEach(hook => {\n this.suite.beforeAll(hook);\n });\n beforeEach.forEach(hook => {\n this.suite.beforeEach(hook);\n });\n afterAll.forEach(hook => {\n this.suite.afterAll(hook);\n });\n afterEach.forEach(hook => {\n this.suite.afterEach(hook);\n });\n return this;\n};\n\n/**\n * Toggles parallel mode.\n *\n * Must be run before calling {@link Mocha#run}. Changes the `Runner` class to\n * use; also enables lazy file loading if not already done so.\n *\n * Warning: when passed `false` and lazy loading has been enabled _via any means_ (including calling `parallelMode(true)`), this method will _not_ disable lazy loading. Lazy loading is a prerequisite for parallel\n * mode, but parallel mode is _not_ a prerequisite for lazy loading!\n * @param {boolean} [enable] - If `true`, enable; otherwise disable.\n * @throws If run in browser\n * @throws If Mocha not in `INIT` state\n * @returns {Mocha}\n * @chainable\n * @public\n */\nMocha.prototype.parallelMode = function parallelMode(enable = true) {\n if (utils.isBrowser()) {\n throw createUnsupportedError('parallel mode is only supported in Node.js');\n }\n const parallel = Boolean(enable);\n if (\n parallel === this.options.parallel &&\n this._lazyLoadFiles &&\n this._runnerClass !== exports.Runner\n ) {\n return this;\n }\n if (this._state !== mochaStates.INIT) {\n throw createUnsupportedError(\n 'cannot change parallel mode after having called run()'\n );\n }\n this.options.parallel = parallel;\n\n // swap Runner class\n this._runnerClass = parallel\n ? require('./nodejs/parallel-buffered-runner')\n : exports.Runner;\n\n // lazyLoadFiles may have been set `true` otherwise (for ESM loading),\n // so keep `true` if so.\n return this.lazyLoadFiles(this._lazyLoadFiles || parallel);\n};\n\n/**\n * Disables implicit call to {@link Mocha#loadFiles} in {@link Mocha#run}. This\n * setting is used by watch mode, parallel mode, and for loading ESM files.\n * @todo This should throw if we've already loaded files; such behavior\n * necessitates adding a new state.\n * @param {boolean} [enable] - If `true`, disable eager loading of files in\n * {@link Mocha#run}\n * @chainable\n * @public\n */\nMocha.prototype.lazyLoadFiles = function lazyLoadFiles(enable) {\n this._lazyLoadFiles = enable === true;\n debug('set lazy load to %s', enable);\n return this;\n};\n\n/**\n * Configures one or more global setup fixtures.\n *\n * If given no parameters, _unsets_ any previously-set fixtures.\n * @chainable\n * @public\n * @param {MochaGlobalFixture|MochaGlobalFixture[]} [setupFns] - Global setup fixture(s)\n * @returns {Mocha}\n */\nMocha.prototype.globalSetup = function globalSetup(setupFns = []) {\n setupFns = utils.castArray(setupFns);\n this.options.globalSetup = setupFns;\n debug('configured %d global setup functions', setupFns.length);\n return this;\n};\n\n/**\n * Configures one or more global teardown fixtures.\n *\n * If given no parameters, _unsets_ any previously-set fixtures.\n * @chainable\n * @public\n * @param {MochaGlobalFixture|MochaGlobalFixture[]} [teardownFns] - Global teardown fixture(s)\n * @returns {Mocha}\n */\nMocha.prototype.globalTeardown = function globalTeardown(teardownFns = []) {\n teardownFns = utils.castArray(teardownFns);\n this.options.globalTeardown = teardownFns;\n debug('configured %d global teardown functions', teardownFns.length);\n return this;\n};\n\n/**\n * Run any global setup fixtures sequentially, if any.\n *\n * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalSetup` option is `false`; see {@link Mocha#enableGlobalSetup}.\n *\n * The context object this function resolves with should be consumed by {@link Mocha#runGlobalTeardown}.\n * @param {object} [context] - Context object if already have one\n * @public\n * @returns {Promise<object>} Context object\n */\nMocha.prototype.runGlobalSetup = async function runGlobalSetup(context = {}) {\n const {globalSetup} = this.options;\n if (globalSetup && globalSetup.length) {\n debug('run(): global setup starting');\n await this._runGlobalFixtures(globalSetup, context);\n debug('run(): global setup complete');\n }\n return context;\n};\n\n/**\n * Run any global teardown fixtures sequentially, if any.\n *\n * This is _automatically called_ by {@link Mocha#run} _unless_ the `runGlobalTeardown` option is `false`; see {@link Mocha#enableGlobalTeardown}.\n *\n * Should be called with context object returned by {@link Mocha#runGlobalSetup}, if applicable.\n * @param {object} [context] - Context object if already have one\n * @public\n * @returns {Promise<object>} Context object\n */\nMocha.prototype.runGlobalTeardown = async function runGlobalTeardown(\n context = {}\n) {\n const {globalTeardown} = this.options;\n if (globalTeardown && globalTeardown.length) {\n debug('run(): global teardown starting');\n await this._runGlobalFixtures(globalTeardown, context);\n }\n debug('run(): global teardown complete');\n return context;\n};\n\n/**\n * Run global fixtures sequentially with context `context`\n * @private\n * @param {MochaGlobalFixture[]} [fixtureFns] - Fixtures to run\n * @param {object} [context] - context object\n * @returns {Promise<object>} context object\n */\nMocha.prototype._runGlobalFixtures = async function _runGlobalFixtures(\n fixtureFns = [],\n context = {}\n) {\n for await (const fixtureFn of fixtureFns) {\n await fixtureFn.call(context);\n }\n return context;\n};\n\n/**\n * Toggle execution of any global setup fixture(s)\n *\n * @chainable\n * @public\n * @param {boolean } [enabled=true] - If `false`, do not run global setup fixture\n * @returns {Mocha}\n */\nMocha.prototype.enableGlobalSetup = function enableGlobalSetup(enabled = true) {\n this.options.enableGlobalSetup = Boolean(enabled);\n return this;\n};\n\n/**\n * Toggle execution of any global teardown fixture(s)\n *\n * @chainable\n * @public\n * @param {boolean } [enabled=true] - If `false`, do not run global teardown fixture\n * @returns {Mocha}\n */\nMocha.prototype.enableGlobalTeardown = function enableGlobalTeardown(\n enabled = true\n) {\n this.options.enableGlobalTeardown = Boolean(enabled);\n return this;\n};\n\n/**\n * Returns `true` if one or more global setup fixtures have been supplied.\n * @public\n * @returns {boolean}\n */\nMocha.prototype.hasGlobalSetupFixtures = function hasGlobalSetupFixtures() {\n return Boolean(this.options.globalSetup.length);\n};\n\n/**\n * Returns `true` if one or more global teardown fixtures have been supplied.\n * @public\n * @returns {boolean}\n */\nMocha.prototype.hasGlobalTeardownFixtures = function hasGlobalTeardownFixtures() {\n return Boolean(this.options.globalTeardown.length);\n};\n\n/**\n * An alternative way to define root hooks that works with parallel runs.\n * @typedef {Object} MochaRootHookObject\n * @property {Function|Function[]} [beforeAll] - \"Before all\" hook(s)\n * @property {Function|Function[]} [beforeEach] - \"Before each\" hook(s)\n * @property {Function|Function[]} [afterAll] - \"After all\" hook(s)\n * @property {Function|Function[]} [afterEach] - \"After each\" hook(s)\n */\n\n/**\n * An function that returns a {@link MochaRootHookObject}, either sync or async.\n @callback MochaRootHookFunction\n * @returns {MochaRootHookObject|Promise<MochaRootHookObject>}\n */\n\n/**\n * A function that's invoked _once_ which is either sync or async.\n * Can be a \"teardown\" or \"setup\". These will all share the same context.\n * @callback MochaGlobalFixture\n * @returns {void|Promise<void>}\n */\n\n/**\n * An object making up all necessary parts of a plugin loader and aggregator\n * @typedef {Object} PluginDefinition\n * @property {string} exportName - Named export to use\n * @property {string} [optionName] - Option name for Mocha constructor (use `exportName` if omitted)\n * @property {PluginValidator} [validate] - Validator function\n * @property {PluginFinalizer} [finalize] - Finalizer/aggregator function\n */\n\n/**\n * A (sync) function to assert a user-supplied plugin implementation is valid.\n *\n * Defined in a {@link PluginDefinition}.\n\n * @callback PluginValidator\n * @param {*} value - Value to check\n * @this {PluginDefinition}\n * @returns {void}\n */\n\n/**\n * A function to finalize plugins impls of a particular ilk\n * @callback PluginFinalizer\n * @param {Array<*>} impls - User-supplied implementations\n * @returns {Promise<*>|*}\n */\n","'use strict';\n\n/* eslint no-unused-vars: off */\n/* eslint-env commonjs */\n\n/**\n * Shim process.stdout.\n */\n\nprocess.stdout = require('browser-stdout')({label: false});\n\nvar parseQuery = require('./lib/browser/parse-query');\nvar highlightTags = require('./lib/browser/highlight-tags');\nvar Mocha = require('./lib/mocha');\n\n/**\n * Create a Mocha instance.\n *\n * @return {undefined}\n */\n\nvar mocha = new Mocha({reporter: 'html'});\n\n/**\n * Save timer references to avoid Sinon interfering (see GH-237).\n */\n\nvar Date = global.Date;\nvar setTimeout = global.setTimeout;\nvar setInterval = global.setInterval;\nvar clearTimeout = global.clearTimeout;\nvar clearInterval = global.clearInterval;\n\nvar uncaughtExceptionHandlers = [];\n\nvar originalOnerrorHandler = global.onerror;\n\n/**\n * Remove uncaughtException listener.\n * Revert to original onerror handler if previously defined.\n */\n\nprocess.removeListener = function(e, fn) {\n if (e === 'uncaughtException') {\n if (originalOnerrorHandler) {\n global.onerror = originalOnerrorHandler;\n } else {\n global.onerror = function() {};\n }\n var i = uncaughtExceptionHandlers.indexOf(fn);\n if (i !== -1) {\n uncaughtExceptionHandlers.splice(i, 1);\n }\n }\n};\n\n/**\n * Implements listenerCount for 'uncaughtException'.\n */\n\nprocess.listenerCount = function(name) {\n if (name === 'uncaughtException') {\n return uncaughtExceptionHandlers.length;\n }\n return 0;\n};\n\n/**\n * Implements uncaughtException listener.\n */\n\nprocess.on = function(e, fn) {\n if (e === 'uncaughtException') {\n global.onerror = function(err, url, line) {\n fn(new Error(err + ' (' + url + ':' + line + ')'));\n return !mocha.options.allowUncaught;\n };\n uncaughtExceptionHandlers.push(fn);\n }\n};\n\nprocess.listeners = function(e) {\n if (e === 'uncaughtException') {\n return uncaughtExceptionHandlers;\n }\n return [];\n};\n\n// The BDD UI is registered by default, but no UI will be functional in the\n// browser without an explicit call to the overridden `mocha.ui` (see below).\n// Ensure that this default UI does not expose its methods to the global scope.\nmocha.suite.removeAllListeners('pre-require');\n\nvar immediateQueue = [];\nvar immediateTimeout;\n\nfunction timeslice() {\n var immediateStart = new Date().getTime();\n while (immediateQueue.length && new Date().getTime() - immediateStart < 100) {\n immediateQueue.shift()();\n }\n if (immediateQueue.length) {\n immediateTimeout = setTimeout(timeslice, 0);\n } else {\n immediateTimeout = null;\n }\n}\n\n/**\n * High-performance override of Runner.immediately.\n */\n\nMocha.Runner.immediately = function(callback) {\n immediateQueue.push(callback);\n if (!immediateTimeout) {\n immediateTimeout = setTimeout(timeslice, 0);\n }\n};\n\n/**\n * Function to allow assertion libraries to throw errors directly into mocha.\n * This is useful when running tests in a browser because window.onerror will\n * only receive the 'message' attribute of the Error.\n */\nmocha.throwError = function(err) {\n uncaughtExceptionHandlers.forEach(function(fn) {\n fn(err);\n });\n throw err;\n};\n\n/**\n * Override ui to ensure that the ui functions are initialized.\n * Normally this would happen in Mocha.prototype.loadFiles.\n */\n\nmocha.ui = function(ui) {\n Mocha.prototype.ui.call(this, ui);\n this.suite.emit('pre-require', global, null, this);\n return this;\n};\n\n/**\n * Setup mocha with the given setting options.\n */\n\nmocha.setup = function(opts) {\n if (typeof opts === 'string') {\n opts = {ui: opts};\n }\n if (opts.delay === true) {\n this.delay();\n }\n var self = this;\n Object.keys(opts)\n .filter(function(opt) {\n return opt !== 'delay';\n })\n .forEach(function(opt) {\n if (Object.prototype.hasOwnProperty.call(opts, opt)) {\n self[opt](opts[opt]);\n }\n });\n return this;\n};\n\n/**\n * Run mocha, returning the Runner.\n */\n\nmocha.run = function(fn) {\n var options = mocha.options;\n mocha.globals('location');\n\n var query = parseQuery(global.location.search || '');\n if (query.grep) {\n mocha.grep(query.grep);\n }\n if (query.fgrep) {\n mocha.fgrep(query.fgrep);\n }\n if (query.invert) {\n mocha.invert();\n }\n\n return Mocha.prototype.run.call(mocha, function(err) {\n // The DOM Document is not available in Web Workers.\n var document = global.document;\n if (\n document &&\n document.getElementById('mocha') &&\n options.noHighlighting !== true\n ) {\n highlightTags('code');\n }\n if (fn) {\n fn(err);\n }\n });\n};\n\n/**\n * Expose the process shim.\n * https://github.com/mochajs/mocha/pull/916\n */\n\nMocha.process = process;\n\n/**\n * Expose mocha.\n */\n\nglobal.Mocha = Mocha;\nglobal.mocha = mocha;\n\n// this allows test/acceptance/required-tokens.js to pass; thus,\n// you can now do `const describe = require('mocha').describe` in a\n// browser context (assuming browserification). should fix #880\nmodule.exports = Object.assign(mocha, global);\n"],"names":["global","$propertyIsEnumerable","getOwnPropertyDescriptor","toString","classof","IndexedObject","aFunction","process","versions","version","userAgent","V8_VERSION","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","isObject","store","hasOwnProperty","WellKnownSymbolsStore","Symbol","has","TO_PRIMITIVE","isSymbol","document","DESCRIPTORS","createElement","$getOwnPropertyDescriptor","IE8_DOM_DEFINE","propertyIsEnumerableModule","$defineProperty","definePropertyModule","WeakMap","keys","set","get","NATIVE_WEAK_MAP","shared","hiddenKeys","objectHas","InternalStateModule","floor","min","max","createMethod","indexOf","require$$0","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","normalize","isForced","SPECIES","isArray","HAS_SPECIES_SUPPORT","MAX_SAFE_INTEGER","$","bind","$forEach","STRICT_METHOD","COLLECTION_NAME","DOMIterables","Collection","CollectionPrototype","forEach","$filter","FAILS_ON_PRIMITIVES","nativeKeys","$RegExp","PROTOTYPE","IE_PROTO","html","defineProperties","getInternalState","UNSUPPORTED_Y","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","create","exec","RegExpPrototype","fixRegExpWellKnownSymbolLogic","regExpExec","defineProperty","assign","FORCED","self","window","defaultSetTimout","Error","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","setTimeout","clearTimeout","runTimeout","fun","e","call","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","i","push","Item","array","prototype","apply","title","platform","browser","env","argv","release","config","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","Date","getTime","hrtime","previousTimestamp","clocktime","seconds","Math","nanoseconds","startTime","uptime","currentTime","dif","TO_STRING_TAG","test","TO_STRING_TAG_SUPPORT","$toString","flags","ObjectPrototype","CORRECT_PROTOTYPE_GETTER","nativeGetPrototypeOf","NAME","domain","EventHandlers","Object","EventEmitter","init","usingDomains","undefined","_events","_maxListeners","defaultMaxListeners","active","getPrototypeOf","_eventsCount","setMaxListeners","n","isNaN","TypeError","$getMaxListeners","that","getMaxListeners","emitNone","handler","isFn","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","type","er","events","doError","error","domainEmitter","domainThrown","err","context","_addListener","target","listener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","emitWarning","console","warn","log","prependListener","_onceWrap","fired","g","prependOnceListener","list","position","originalListener","spliceOne","key","evlistener","ret","unwrapListeners","listenerCount","eventNames","Reflect","index","k","pop","arr","copy","charAt","setPrototypeOf","getOwnPropertyNames","require$$1","require$$2","require$$3","j","MATCH","isRegExp","getFlags","$getOwnPropertyNames","$map","nativeGetOwnPropertyDescriptor","callRegExpExec","ArrayPrototype","ITERATOR","BUGGY_SAFARI_ITERATORS","returnThis","IteratorPrototype","Iterators","IteratorsCore","setInternalState","Int8Array","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","NATIVE_ARRAY_BUFFER","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","ArrayBuffer","pow","ARRAY_BUFFER","NativeArrayBuffer","RangeError","IEEE754","ArrayBufferModule","ArrayBufferViewCore","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","createTypedArrayConstructor","$copyWithin","$fill","fromSpeciesAndList","$includes","Uint8Array","ArrayIterators","$lastIndexOf","$slice","UA","nativeSort","STABLE_SORT","V8","FF","IE_OR_EDGE","WEBKIT","getSortCompare","internalSort","arrayBufferModule","path","wrappedWellKnownSymbolModule","getOwnPropertyNamesExternal","nativeObjectCreate","fill","correctIsRegExpLogic","notARegExp","forcedStringTrimMethod","lookup","revLookup","Arr","inited","code","charCodeAt","toByteArray","b64","l","tmp","placeHolders","L","tripletToBase64","num","encodeChunk","uint8","start","end","output","join","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","write","value","c","rt","abs","LN2","INSPECT_MAX_BYTES","Buffer","TYPED_ARRAY_SUPPORT","kMaxLength","createBuffer","__proto__","arg","encodingOrOffset","allocUnsafe","from","poolSize","_augment","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","encoding","checked","allocUnsafeSlow","string","isEncoding","byteLength","actual","slice","fromArrayLike","byteOffset","obj","internalIsBuffer","isnan","data","isBuffer","b","_isBuffer","compare","a","x","y","String","toLowerCase","pos","buf","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","swap16","swap32","swap64","equals","inspect","str","match","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","includes","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","isFinite","toJSON","_arr","base64","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","out","toHex","bytes","newBuf","subarray","sliceLen","checkOffset","ext","readUIntLE","noAssert","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","ieee754","readFloatBE","readDoubleLE","readDoubleBE","checkInt","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","objectWriteUInt16","littleEndian","writeUInt16LE","writeUInt16BE","objectWriteUInt32","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","checkIEEE754","writeFloat","writeFloatLE","writeFloatBE","writeDouble","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","replace","trim","units","leadSurrogate","byteArray","hi","lo","src","dst","isFastBuffer","isSlowBuffer","constructor","browser$1","inherits","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor","formatRegExp","format","f","isString","objects","JSON","stringify","_","isNull","deprecate","fn","msg","isUndefined","noDeprecation","deprecated","throwDeprecation","traceDeprecation","trace","debugs","debugEnviron","debuglog","NODE_DEBUG","toUpperCase","RegExp","pid","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","idx","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","isError","formatError","isDate","base","braces","toUTCString","formatArray","map","formatProperty","reduceToSingleString","simple","isNumber","desc","split","line","reduce","prev","cur","numLinesEst","ar","isNullOrUndefined","re","objectToString","isPrimitive","maybeBuf","Buffer.isBuffer","o","pad","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","add","prop","BufferList","head","tail","v","entry","next","shift","clear","p","isBufferEncoding","assertEncoding","StringDecoder","surrogateSize","detectIncompleteChar","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charBuffer","charReceived","charLength","charStr","available","charCode","substring","cr","enc","Readable","ReadableState","debug","event","options","stream","objectMode","Duplex","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","ended","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","readable","_read","chunk","state","readableAddChunk","isPaused","addToFront","chunkInvalid","onEofChunk","_e","skipAdd","emitReadable","maybeReadMore","needMoreData","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","pipe","dest","pipeOpts","doEnd","endFn","onend","cleanup","onunpipe","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","_writableState","needDrain","increasedAwaitDrain","pause","unpipe","resume","dests","_i","splice","ev","nReadingNextTick","resume_","wrap","paused","method","_fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","endReadableNT","xs","Writable","WritableState","nop","WriteReq","cb","callback","getBuffer","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","CorkedRequest","writableStateGetBuffer","current","_write","writev","_writev","writeAfterEnd","validChunk","valid","writeOrBuffer","cork","uncork","clearBuffer","setDefaultEncoding","decodeChunk","last","doWrite","onwriteError","onwriteStateUpdate","needFinish","afterWrite","onwriteDrain","finishMaybe","holder","finish","endWritable","prefinish","need","_this","allowHalfOpen","onEndNT","Transform","TransformState","afterTransform","needTransform","transforming","writechunk","writeencoding","ts","_transformState","rs","transform","_transform","flush","_flush","done","ws","PassThrough","Stream","EE","source","_isStdio","didOnEnd","destroy","WritableStream","BrowserStdout","label","chunks","process.nextTick","parseQuery","qs","pair","decodeURIComponent","highlight","js","highlightTags","getElementById","getElementsByTagName","innerHTML","ArrayIteratorMethods","location","runner","IS_NODE","IS_IOS","Promise","notify","IS_WEBOS_WEBKIT","IS_IOS_PEBBLE","newPromiseCapability","NativePromise","newPromiseCapabilityModule","IS_BROWSER","INCORRECT_ITERATION","runtime","exports","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","values","Gp","displayName","defineIteratorMethods","isGeneratorFunction","genFun","mark","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","then","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","iter","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","object","reverse","iterable","iteratorMethod","skipTempReset","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","Function","normalizeArray","allowAboveRoot","up","splitPathRe","splitPath","filename","resolvedPath","resolvedAbsolute","filter","isPathAbsolute","isAbsolute","trailingSlash","paths","relative","to","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","root","basename","extname","factory","this","Diff","diff","oldString","newString","castInput","removeEmpty","tokenize","newLen","oldLen","editLength","maxEditLength","bestPath","newPos","components","oldPos","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","_oldPos","canAdd","canRemove","clonePath","pushComponent","buildValues","useLongestToken","added","removed","commonCount","left","right","comparator","ignoreCase","chars","componentPos","componentLen","component","oldValue","lastComponent","characterDiff","diffChars","oldStr","newStr","generateOptions","defaults","extendedWordChars","reWhitespace","wordDiff","ignoreWhitespace","tokens","diffWords","diffWordsWithSpace","lineDiff","retLines","linesAndNewlines","newlineIsToken","diffLines","diffTrimmedLines","sentenceDiff","diffSentences","cssDiff","diffCss","_typeof","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","minLen","arr2","objectPrototypeToString","jsonDiff","_this$options","undefinedReplacement","_this$options$stringi","stringifyReplacer","canonicalize","diffJson","oldObj","newObj","stack","replacementStack","replacer","canonicalizedObj","sortedKeys","_key","sort","arrayDiff","diffArrays","oldArr","newArr","parsePatch","uniDiff","diffstr","delimiters","parseIndex","header","parseFileHeader","hunks","_line","parseHunk","strict","fileHeader","keyPrefix","fileName","chunkHeaderIndex","chunkHeaderLine","chunkHeader","hunk","oldStart","oldLines","newStart","newLines","lines","linedelimiters","addCount","removeCount","operation","distanceIterator","minLine","maxLine","wantForward","backwardExhausted","forwardExhausted","localOffset","applyPatch","compareLine","lineNumber","patchContent","errorCount","fuzzFactor","removeEOFNL","addEOFNL","hunkFits","toPos","content","diffOffset","_hunk","_toPos","previousOperation","_k","applyPatches","currentIndex","processIndex","loadFile","updatedContent","patched","structuredPatch","oldFileName","newFileName","oldHeader","newHeader","contextLines","oldRangeStart","newRangeStart","curRange","oldLine","newLine","_loop","_curRange","_curRange2","_curRange3","contextSize","oldEOFNewline","newEOFNewline","noNlBeforeAdds","formatPatch","createTwoFilesPatch","createPatch","arrayEqual","arrayStartsWith","calcLineCount","_calcOldNewLineCount","calcOldNewLineCount","merge","mine","theirs","loadPatch","fileNameChanged","selectField","mineIndex","theirsIndex","mineOffset","theirsOffset","mineCurrent","theirsCurrent","hunkBefore","cloneHunk","mergedHunk","mergeLines","param","patch","conflict","check","mineLines","theirOffset","theirLines","their","insertLeading","theirCurrent","mutualChange","_hunk$lines","collectChange","_hunk$lines2","removal","insertTrailing","myChanges","theirChanges","allRemoves","skipRemoveSuperset","_hunk$lines3","_hunk$lines4","_hunk$lines5","collectContext","merged","_hunk$lines6","insert","matchChanges","changes","matchIndex","contextChanges","conflicted","change","removeChanges","delta","changeContent","myCount","theirCount","convertChangesToDMP","convertChangesToXML","escapeHTML","h","parse","fmtLong","fmtShort","parseFloat","ms","msAbs","round","plural","isPlural","FREEZING","getOwnPropertyNamesExternalModule","InternalMetadataModule","urlAlphabet","customAlphabet","alphabet","id","random","nanoid","freeExports","freeModule","freeGlobal","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","propertyName","contains","codePointToSymbol","parseError","hexEscape","decEscape","message","encode","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","symbol","$0","high","low","decode","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","isAttributeValue","escape","he","nodeType","MOCHA_ID_PROP_NAME","util","spaces","tabs","emptyRepresentation","typeHint","canonicalType","primitives","Set","_type","json","jsonStringify","acc","char","_stringify","space","repeat","sDate","toISOString","withStack","item","is","node","slash","href","isMochaInternal","isNodeInternal","isPromise","clamp","range","freeze","createMap","partialSupport","isBrowser","versionFields","major","minor","Boolean","process.browser","castArray","defineConstants","uniqueID","success","warning","Pending","setup","createDebug","coerce","disable","enable","enabled","humanize","names","skips","formatters","selectColor","namespace","prevTime","enableOverride","curr","formatter","formatArgs","logFn","useColors","color","extend","newDebug","namespaces","save","toNamespace","regexp","load","localstorage","__nwjs","navigator","documentElement","WebkitAppearance","firebug","table","lastC","storage","setItem","removeItem","r","getItem","DEBUG","localStorage","cache","constants","FATAL","INVALID_ARG_TYPE","INVALID_ARG_VALUE","INVALID_EXCEPTION","INVALID_INTERFACE","INVALID_REPORTER","MULTIPLE_DONE","NO_FILES_MATCH_PATTERN","UNSUPPORTED","INSTANCE_ALREADY_RUNNING","INSTANCE_ALREADY_DISPOSED","FORBIDDEN_EXCLUSIVITY","INVALID_PLUGIN_IMPLEMENTATION","INVALID_PLUGIN_DEFINITION","TIMEOUT","UNPARSABLE_FILE","MOCHA_ERRORS","createNoFilesMatchPatternError","pattern","createInvalidReporterError","reporter","createInvalidInterfaceError","ui","createUnsupportedError","createMissingArgumentError","argument","expected","createInvalidArgumentTypeError","createInvalidArgumentValueError","reason","createInvalidExceptionError","valueType","createFatalError","createInvalidLegacyPluginError","pluginType","pluginId","createInvalidPluginError","createMochaInstanceAlreadyDisposedError","cleanReferencesAfterRun","instance","createMochaInstanceAlreadyRunningError","createMultipleDoneError","runnable","originalErr","fullTitle","parent","ignored","file","createForbiddenExclusivityError","mocha","isWorker","createInvalidPluginDefinitionError","pluginDef","createInvalidPluginImplementationError","pluginImpl","createTimeoutError","createUnparsableFileError","isMochaError","Runnable","body","_timeout","_slow","_retries","utils","assignNewMochaID","getMochaID","timedOut","_currentRetry","pending","milliseconds","INT_MAX","timer","resetTimeout","slow","skip","isPending","isFailed","STATE_FAILED","isPassed","STATE_PASSED","retries","currentRetry","titlePath","_timeoutError","globals","_allowedGlobals","errorWasHandled","multiple","duration","asyncSkip","callFnAsync","allowUncaught","toValueOrError","callFn","asyncOnly","STATE_PENDING","Hook","_error","serialize","$$currentRetry","$$fullTitle","$$isPending","$$titlePath","currentTest","utilsConstants","Suite","suite","addSuite","parentContext","isRoot","errors","suites","tests","_beforeEach","_beforeAll","_afterEach","_afterAll","_bail","_onlyTests","_onlySuites","deprecatedEvents","delayed","doReset","thingToReset","clone","bail","_createHook","hook","beforeAll","EVENT_SUITE_ADD_HOOK_BEFORE_ALL","afterAll","EVENT_SUITE_ADD_HOOK_AFTER_ALL","beforeEach","EVENT_SUITE_ADD_HOOK_BEFORE_EACH","afterEach","EVENT_SUITE_ADD_HOOK_AFTER_EACH","EVENT_SUITE_ADD_SUITE","addTest","EVENT_SUITE_ADD_TEST","total","sum","eachTest","EVENT_ROOT_SUITE_RUN","hasOnly","some","filterOnly","onlySuite","onlySuites","childSuite","appendOnlySuite","markOnly","appendOnlyTest","getHooks","dispose","cleanReferences","cleanArrReferences","EVENT_FILE_POST_REQUIRE","EVENT_FILE_PRE_REQUIRE","EVENT_FILE_REQUIRE","HOOK_TYPE_AFTER_ALL","HOOK_TYPE_AFTER_EACH","HOOK_TYPE_BEFORE_ALL","HOOK_TYPE_BEFORE_EACH","constant","stackFilter","stackTraceFilter","errorConstants","EVENT_HOOK_BEGIN","EVENT_HOOK_END","EVENT_RUN_BEGIN","EVENT_DELAY_BEGIN","EVENT_DELAY_END","EVENT_RUN_END","EVENT_SUITE_BEGIN","EVENT_SUITE_END","EVENT_TEST_BEGIN","EVENT_TEST_END","EVENT_TEST_FAIL","EVENT_TEST_PASS","EVENT_TEST_PENDING","EVENT_TEST_RETRY","STATE_IDLE","STATE_RUNNING","STATE_STOPPED","Runner","_delay","delay","_globals","_abort","_opts","failures","_eventListeners","Map","retriedTest","checkGlobals","_defaultGrep","grep","globalProps","uncaught","_uncaught","unhandled","promise","_removeEventListener","_addEventListener","immediately","setImmediate","eventName","targetListeners","targetEventListeners","invert","_grep","_invert","grepTotal","props","checkLeaks","ok","leaks","prevGlobalsLength","filterLeaks","fail","force","thrown2Error","fullStackTrace","ignore","dryRun","hooks","currentRunnable","setHookTitle","cbHookRun","testError","errForbid","originalTitle","parentTitle","orig","errSuite","hookUp","parents","hookDown","runTest","runTests","hookErr","after","err2","errSuite2","forbidPending","origSuite","eSuite","retry","clonedTest","runSuite","nextSuite","abort","rootSuite","failZero","begin","prepare","linkPartialObjects","runAsync","isParallelMode","workerReporter","matched","getBrowserWindowSize","innerHeight","innerWidth","Base","isatty","stdout","isTTY","stderr","consoleLog","supportsColor","MOCHA_COLORS","pass","checkmark","fast","medium","green","light","symbols","dot","comma","bang","width","getWindowSize","hide","show","deleteLine","beginningOfLine","CR","cursor","showDiff","sameType","stringifyDiffObjs","generateDiff","diffSize","inlineDiffs","inlineDiff","unifiedDiff","multipleErr","multipleTest","fmt","hideDiff","testTitle","stats","speed","epilogue","passes","errorDiff","indent","cleanUp","colorLines","notBlank","objToString","Dot","description","Doc","indents","clean","sprintf","TAP","tapVersion","reporterOptions","_producer","createProducer","writeVersion","writePending","writePass","writeFail","writeEpilogue","println","varArgs","vargs","producers","TAP12Producer","TAP13Producer","producer","TAPProducer","writePlan","ntests","emitYamlBlock","level","JSONReporter","reporterOption","testResults","fs","mkdirSync","recursive","writeFileSync","errorJSON","cleanCycles","Progress","percent","fontSize","font","_size","text","_text","_fontSize","family","_font","update","draw","half","rad","angle","PI","clearRect","strokeStyle","beginPath","arc","stroke","measureText","fillText","HTML","statsTemplate","playIcon","stat","fragment","items","passesLink","failuresLink","canvas","report","progress","getContext","ratio","devicePixelRatio","height","scale","evt","preventDefault","unhide","className","hideSuitesWithout","appendChild","url","suiteURL","el","updateStats","testURL","markup","addCodeToggle","appendToStack","stackString","indexOfMessage","sourceURL","htmlMessage","toFixed","makeUrl","search","pathname","encodeURIComponent","escapeRe","contents","h2","pre","display","div","firstChild","classname","getElementsByClassName","els","textContent","innerText","addEventListener","attachEvent","browserOnly","List","Min","Spec","NyanCat","nyanCatWidth","colorIndex","numberOfLines","rainbowColors","generateColors","scoreboardWidth","tick","trajectories","trajectoryWidthMax","appendRainbow","drawScoreboard","drawRainbow","drawNyanCat","cursorUp","segment","rainbowified","rainbowify","trajectory","startWidth","dist","padding","face","cursorDown","pi3","sin","XUnit","suiteName","DEFAULT_SUITE_NAME","tag","skipped","t","fileStream","attrs","close","pairs","SUITE_PREFIX","Markdown","mapTOC","stringifyTOC","link","slug","generateTOC","lastN","open","incomplete","verbose","Landing","plane","runway","crashed","col","kill","JSONStream","writeEvent","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","hasNotificationSupport","hasPromiseSupport","isPermitted","sendNotification","race","canNotify","notPermitted","permitted","granted","allow","denied","deny","ask","Notification","requestPermission","permission","why","cross","logo","notifyLogo","_message","badge","icon","lang","requireInteraction","notification","FORCE_DURATION","createStatsCollector","Test","_retriedTest","$$retriedTest","$$slow","shouldBeTested","runWithSuite","before","only","forbidOnly","isOnly","bddInterface","common","describe","xdescribe","xcontext","it","specify","xit","xspecify","teardown","suiteSetup","suiteTeardown","qUnitInterface","visit","_runnable","esmUtils","supportsEsModules","Mocha","mochaStates","INIT","RUNNING","REFERENCES_CLEANED","DISPOSED","builtinReporters","currentContext","mocharc","files","_cleanReferencesAfterRun","_state","fgrep","opt","rootHooks","_runnerClass","_lazyLoadFiles","globalSetup","globalTeardown","enableGlobalSetup","enableGlobalTeardown","parallel","jobs","parallelMode","addFile","reporterName","_reporter","require","_err","bindInterface","interfaces","loadFiles","loadFilesAsync","lazyLoadFiles","resultModule","unloadFile","unloadFiles","_previousRunner","fullTrace","growl","isGrowlCapable","detail","isCapable","_growl","elt","msecs","noHighlighting","_guardRunningStateTransition","reporters","hasGlobalSetupFixtures","runGlobalSetup","failureCount","hasGlobalTeardownFixtures","runGlobalTeardown","setupFns","teardownFns","_runGlobalFixtures","fixtureFns","fixtureFn","setInterval","clearInterval","uncaughtExceptionHandlers","originalOnerrorHandler","immediateQueue","immediateTimeout","timeslice","immediateStart","throwError","query"],"mappings":"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CA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;CACAgkB,EAAAA,KAAK,CAACrxD,SAAN,CAAgBqhD,WAAhB,GAA8B,UAASA,WAAT,EAAsB;CAClD,SAAKn/B,OAAL,CAAam/B,WAAb,GAA2BA,WAAW,KAAK,KAA3C;CACA,WAAO,IAAP;CACD,GAHD;CAKA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;CACAgQ,EAAAA,KAAK,CAACrxD,SAAN,CAAgBo2B,IAAhB,GAAuB,UAASA,IAAT,EAAe;CACpC,SAAKlU,OAAL,CAAakU,IAAb,GAAoBA,IAAI,KAAK,KAA7B;CACA,WAAO,IAAP;CACD,GAHD;CAKA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;CACAi7B,EAAAA,KAAK,CAACrxD,SAAN,CAAgBX,OAAhB,GAA0B,UAAS60D,KAAT,EAAgB;CACxC,SAAK1e,KAAL,CAAWn2C,OAAX,CAAmB60D,KAAnB;CACA,WAAO,IAAP;CACD,GAHD;CAKA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;CACA7C,EAAAA,KAAK,CAACrxD,SAAN,CAAgB8zC,OAAhB,GAA0B,UAASuK,KAAT,EAAgB;CACxC,SAAK7I,KAAL,CAAW1B,OAAX,CAAmBuK,KAAnB;CACA,WAAO,IAAP;CACD,GAHD;CAKA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;CACAgT,EAAAA,KAAK,CAACrxD,SAAN,CAAgBuzC,IAAhB,GAAuB,UAAS2gB,KAAT,EAAgB;CACrC,SAAK1e,KAAL,CAAWjC,IAAX,CAAgB2gB,KAAhB;CACA,WAAO,IAAP;CACD,GAHD;CAKA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;CACA7C,EAAAA,KAAK,CAACrxD,SAAN,CAAgB40C,SAAhB,GAA4B,UAASA,SAAT,EAAoB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"} \ No newline at end of file
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/LICENSE b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/LICENSE
new file mode 100644
index 00000000000..fa9162b51ac
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the “Software”), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md
new file mode 100644
index 00000000000..8ec3deb5c1d
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md
@@ -0,0 +1,308 @@
+# Chokidar [![Weekly downloads](https://img.shields.io/npm/dw/chokidar.svg)](https://github.com/paulmillr/chokidar) [![Yearly downloads](https://img.shields.io/npm/dy/chokidar.svg)](https://github.com/paulmillr/chokidar)
+
+> Minimal and efficient cross-platform file watching library
+
+[![NPM](https://nodei.co/npm/chokidar.png)](https://www.npmjs.com/package/chokidar)
+
+## Why?
+
+Node.js `fs.watch`:
+
+* Doesn't report filenames on MacOS.
+* Doesn't report events at all when using editors like Sublime on MacOS.
+* Often reports events twice.
+* Emits most changes as `rename`.
+* Does not provide an easy way to recursively watch file trees.
+* Does not support recursive watching on Linux.
+
+Node.js `fs.watchFile`:
+
+* Almost as bad at event handling.
+* Also does not provide any recursive watching.
+* Results in high CPU utilization.
+
+Chokidar resolves these problems.
+
+Initially made for **[Brunch](https://brunch.io/)** (an ultra-swift web app build tool), it is now used in
+[Microsoft's Visual Studio Code](https://github.com/microsoft/vscode),
+[gulp](https://github.com/gulpjs/gulp/),
+[karma](https://karma-runner.github.io/),
+[PM2](https://github.com/Unitech/PM2),
+[browserify](http://browserify.org/),
+[webpack](https://webpack.github.io/),
+[BrowserSync](https://www.browsersync.io/),
+and [many others](https://www.npmjs.com/browse/depended/chokidar).
+It has proven itself in production environments.
+
+Version 3 is out! Check out our blog post about it: [Chokidar 3: How to save 32TB of traffic every week](https://paulmillr.com/posts/chokidar-3-save-32tb-of-traffic/)
+
+## How?
+
+Chokidar does still rely on the Node.js core `fs` module, but when using
+`fs.watch` and `fs.watchFile` for watching, it normalizes the events it
+receives, often checking for truth by getting file stats and/or dir contents.
+
+On MacOS, chokidar by default uses a native extension exposing the Darwin
+`FSEvents` API. This provides very efficient recursive watching compared with
+implementations like `kqueue` available on most \*nix platforms. Chokidar still
+does have to do some work to normalize the events received that way as well.
+
+On most other platforms, the `fs.watch`-based implementation is the default, which
+avoids polling and keeps CPU usage down. Be advised that chokidar will initiate
+watchers recursively for everything within scope of the paths that have been
+specified, so be judicious about not wasting system resources by watching much
+more than needed.
+
+## Getting started
+
+Install with npm:
+
+```sh
+npm install chokidar
+```
+
+Then `require` and use it in your code:
+
+```javascript
+const chokidar = require('chokidar');
+
+// One-liner for current directory
+chokidar.watch('.').on('all', (event, path) => {
+ console.log(event, path);
+});
+```
+
+## API
+
+```javascript
+// Example of a more typical implementation structure
+
+// Initialize watcher.
+const watcher = chokidar.watch('file, dir, glob, or array', {
+ ignored: /(^|[\/\\])\../, // ignore dotfiles
+ persistent: true
+});
+
+// Something to use when events are received.
+const log = console.log.bind(console);
+// Add event listeners.
+watcher
+ .on('add', path => log(`File ${path} has been added`))
+ .on('change', path => log(`File ${path} has been changed`))
+ .on('unlink', path => log(`File ${path} has been removed`));
+
+// More possible events.
+watcher
+ .on('addDir', path => log(`Directory ${path} has been added`))
+ .on('unlinkDir', path => log(`Directory ${path} has been removed`))
+ .on('error', error => log(`Watcher error: ${error}`))
+ .on('ready', () => log('Initial scan complete. Ready for changes'))
+ .on('raw', (event, path, details) => { // internal
+ log('Raw event info:', event, path, details);
+ });
+
+// 'add', 'addDir' and 'change' events also receive stat() results as second
+// argument when available: https://nodejs.org/api/fs.html#fs_class_fs_stats
+watcher.on('change', (path, stats) => {
+ if (stats) console.log(`File ${path} changed size to ${stats.size}`);
+});
+
+// Watch new files.
+watcher.add('new-file');
+watcher.add(['new-file-2', 'new-file-3', '**/other-file*']);
+
+// Get list of actual paths being watched on the filesystem
+var watchedPaths = watcher.getWatched();
+
+// Un-watch some files.
+await watcher.unwatch('new-file*');
+
+// Stop watching.
+// The method is async!
+watcher.close().then(() => console.log('closed'));
+
+// Full list of options. See below for descriptions.
+// Do not use this example!
+chokidar.watch('file', {
+ persistent: true,
+
+ ignored: '*.txt',
+ ignoreInitial: false,
+ followSymlinks: true,
+ cwd: '.',
+ disableGlobbing: false,
+
+ usePolling: false,
+ interval: 100,
+ binaryInterval: 300,
+ alwaysStat: false,
+ depth: 99,
+ awaitWriteFinish: {
+ stabilityThreshold: 2000,
+ pollInterval: 100
+ },
+
+ ignorePermissionErrors: false,
+ atomic: true // or a custom 'atomicity delay', in milliseconds (default 100)
+});
+
+```
+
+`chokidar.watch(paths, [options])`
+
+* `paths` (string or array of strings). Paths to files, dirs to be watched
+recursively, or glob patterns.
+ - Note: globs must not contain windows separators (`\`),
+ because that's how they work by the standard —
+ you'll need to replace them with forward slashes (`/`).
+ - Note 2: for additional glob documentation, check out low-level
+ library: [picomatch](https://github.com/micromatch/picomatch).
+* `options` (object) Options object as defined below:
+
+#### Persistence
+
+* `persistent` (default: `true`). Indicates whether the process
+should continue to run as long as files are being watched. If set to
+`false` when using `fsevents` to watch, no more events will be emitted
+after `ready`, even if the process continues to run.
+
+#### Path filtering
+
+* `ignored` ([anymatch](https://github.com/es128/anymatch)-compatible definition)
+Defines files/paths to be ignored. The whole relative or absolute path is
+tested, not just filename. If a function with two arguments is provided, it
+gets called twice per path - once with a single argument (the path), second
+time with two arguments (the path and the
+[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats)
+object of that path).
+* `ignoreInitial` (default: `false`). If set to `false` then `add`/`addDir` events are also emitted for matching paths while
+instantiating the watching as chokidar discovers these file paths (before the `ready` event).
+* `followSymlinks` (default: `true`). When `false`, only the
+symlinks themselves will be watched for changes instead of following
+the link references and bubbling events through the link's path.
+* `cwd` (no default). The base directory from which watch `paths` are to be
+derived. Paths emitted with events will be relative to this.
+* `disableGlobbing` (default: `false`). If set to `true` then the strings passed to `.watch()` and `.add()` are treated as
+literal path names, even if they look like globs.
+
+#### Performance
+
+* `usePolling` (default: `false`).
+Whether to use fs.watchFile (backed by polling), or fs.watch. If polling
+leads to high CPU utilization, consider setting this to `false`. It is
+typically necessary to **set this to `true` to successfully watch files over
+a network**, and it may be necessary to successfully watch files in other
+non-standard situations. Setting to `true` explicitly on MacOS overrides the
+`useFsEvents` default. You may also set the CHOKIDAR_USEPOLLING env variable
+to true (1) or false (0) in order to override this option.
+* _Polling-specific settings_ (effective when `usePolling: true`)
+ * `interval` (default: `100`). Interval of file system polling, in milliseconds. You may also
+ set the CHOKIDAR_INTERVAL env variable to override this option.
+ * `binaryInterval` (default: `300`). Interval of file system
+ polling for binary files.
+ ([see list of binary extensions](https://github.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json))
+* `useFsEvents` (default: `true` on MacOS). Whether to use the
+`fsevents` watching interface if available. When set to `true` explicitly
+and `fsevents` is available this supercedes the `usePolling` setting. When
+set to `false` on MacOS, `usePolling: true` becomes the default.
+* `alwaysStat` (default: `false`). If relying upon the
+[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats)
+object that may get passed with `add`, `addDir`, and `change` events, set
+this to `true` to ensure it is provided even in cases where it wasn't
+already available from the underlying watch events.
+* `depth` (default: `undefined`). If set, limits how many levels of
+subdirectories will be traversed.
+* `awaitWriteFinish` (default: `false`).
+By default, the `add` event will fire when a file first appears on disk, before
+the entire file has been written. Furthermore, in some cases some `change`
+events will be emitted while the file is being written. In some cases,
+especially when watching for large files there will be a need to wait for the
+write operation to finish before responding to a file creation or modification.
+Setting `awaitWriteFinish` to `true` (or a truthy value) will poll file size,
+holding its `add` and `change` events until the size does not change for a
+configurable amount of time. The appropriate duration setting is heavily
+dependent on the OS and hardware. For accurate detection this parameter should
+be relatively high, making file watching much less responsive.
+Use with caution.
+ * *`options.awaitWriteFinish` can be set to an object in order to adjust
+ timing params:*
+ * `awaitWriteFinish.stabilityThreshold` (default: 2000). Amount of time in
+ milliseconds for a file size to remain constant before emitting its event.
+ * `awaitWriteFinish.pollInterval` (default: 100). File size polling interval, in milliseconds.
+
+#### Errors
+
+* `ignorePermissionErrors` (default: `false`). Indicates whether to watch files
+that don't have read permissions if possible. If watching fails due to `EPERM`
+or `EACCES` with this set to `true`, the errors will be suppressed silently.
+* `atomic` (default: `true` if `useFsEvents` and `usePolling` are `false`).
+Automatically filters out artifacts that occur when using editors that use
+"atomic writes" instead of writing directly to the source file. If a file is
+re-added within 100 ms of being deleted, Chokidar emits a `change` event
+rather than `unlink` then `add`. If the default of 100 ms does not work well
+for you, you can override it by setting `atomic` to a custom value, in
+milliseconds.
+
+### Methods & Events
+
+`chokidar.watch()` produces an instance of `FSWatcher`. Methods of `FSWatcher`:
+
+* `.add(path / paths)`: Add files, directories, or glob patterns for tracking.
+Takes an array of strings or just one string.
+* `.on(event, callback)`: Listen for an FS event.
+Available events: `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `ready`,
+`raw`, `error`.
+Additionally `all` is available which gets emitted with the underlying event
+name and path for every event other than `ready`, `raw`, and `error`. `raw` is internal, use it carefully.
+* `.unwatch(path / paths)`: Stop watching files, directories, or glob patterns.
+Takes an array of strings or just one string.
+* `.close()`: **async** Removes all listeners from watched files. Asynchronous, returns Promise. Use with `await` to ensure bugs don't happen.
+* `.getWatched()`: Returns an object representing all the paths on the file
+system being watched by this `FSWatcher` instance. The object's keys are all the
+directories (using absolute paths unless the `cwd` option was used), and the
+values are arrays of the names of the items contained in each directory.
+
+## CLI
+
+If you need a CLI interface for your file watching, check out
+[chokidar-cli](https://github.com/kimmobrunfeldt/chokidar-cli), allowing you to
+execute a command on each change, or get a stdio stream of change events.
+
+## Install Troubleshooting
+
+* `npm WARN optional dep failed, continuing fsevents@n.n.n`
+ * This message is normal part of how `npm` handles optional dependencies and is
+ not indicative of a problem. Even if accompanied by other related error messages,
+ Chokidar should function properly.
+
+* `TypeError: fsevents is not a constructor`
+ * Update chokidar by doing `rm -rf node_modules package-lock.json yarn.lock && npm install`, or update your dependency that uses chokidar.
+
+* Chokidar is producing `ENOSP` error on Linux, like this:
+ * `bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell`
+ `Error: watch /home/ ENOSPC`
+ * This means Chokidar ran out of file handles and you'll need to increase their count by executing the following command in Terminal:
+ `echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p`
+
+## Changelog
+
+For more detailed changelog, see [`full_changelog.md`](.github/full_changelog.md).
+- **v3.5 (Jan 6, 2021):** Support for ARM Macs with Apple Silicon. Fixes for deleted symlinks.
+- **v3.4 (Apr 26, 2020):** Support for directory-based symlinks. Fixes for macos file replacement.
+- **v3.3 (Nov 2, 2019):** `FSWatcher#close()` method became async. That fixes IO race conditions related to close method.
+- **v3.2 (Oct 1, 2019):** Improve Linux RAM usage by 50%. Race condition fixes. Windows glob fixes. Improve stability by using tight range of dependency versions.
+- **v3.1 (Sep 16, 2019):** dotfiles are no longer filtered out by default. Use `ignored` option if needed. Improve initial Linux scan time by 50%.
+- **v3 (Apr 30, 2019):** massive CPU & RAM consumption improvements; reduces deps / package size by a factor of 17x and bumps Node.js requirement to v8.16 and higher.
+- **v2 (Dec 29, 2017):** Globs are now posix-style-only; without windows support. Tons of bugfixes.
+- **v1 (Apr 7, 2015):** Glob support, symlink support, tons of bugfixes. Node 0.8+ is supported
+- **v0.1 (Apr 20, 2012):** Initial release, extracted from [Brunch](https://github.com/brunch/brunch/blob/9847a065aea300da99bd0753f90354cde9de1261/src/helpers.coffee#L66)
+
+## Also
+
+Why was chokidar named this way? What's the meaning behind it?
+
+>Chowkidar is a transliteration of a Hindi word meaning 'watchman, gatekeeper', चौकीदार. This ultimately comes from Sanskrit _ चतुष्क_ (crossway, quadrangle, consisting-of-four).
+
+## License
+
+MIT (c) Paul Miller (<https://paulmillr.com>), see [LICENSE](LICENSE) file.
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js
new file mode 100644
index 00000000000..ed4b6d5b6cb
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js
@@ -0,0 +1,973 @@
+'use strict';
+
+const { EventEmitter } = require('events');
+const fs = require('fs');
+const sysPath = require('path');
+const { promisify } = require('util');
+const readdirp = require('readdirp');
+const anymatch = require('anymatch').default;
+const globParent = require('glob-parent');
+const isGlob = require('is-glob');
+const braces = require('braces');
+const normalizePath = require('normalize-path');
+
+const NodeFsHandler = require('./lib/nodefs-handler');
+const FsEventsHandler = require('./lib/fsevents-handler');
+const {
+ EV_ALL,
+ EV_READY,
+ EV_ADD,
+ EV_CHANGE,
+ EV_UNLINK,
+ EV_ADD_DIR,
+ EV_UNLINK_DIR,
+ EV_RAW,
+ EV_ERROR,
+
+ STR_CLOSE,
+ STR_END,
+
+ BACK_SLASH_RE,
+ DOUBLE_SLASH_RE,
+ SLASH_OR_BACK_SLASH_RE,
+ DOT_RE,
+ REPLACER_RE,
+
+ SLASH,
+ SLASH_SLASH,
+ BRACE_START,
+ BANG,
+ ONE_DOT,
+ TWO_DOTS,
+ GLOBSTAR,
+ SLASH_GLOBSTAR,
+ ANYMATCH_OPTS,
+ STRING_TYPE,
+ FUNCTION_TYPE,
+ EMPTY_STR,
+ EMPTY_FN,
+
+ isWindows,
+ isMacos,
+ isIBMi
+} = require('./lib/constants');
+
+const stat = promisify(fs.stat);
+const readdir = promisify(fs.readdir);
+
+/**
+ * @typedef {String} Path
+ * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName
+ * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType
+ */
+
+/**
+ *
+ * @typedef {Object} WatchHelpers
+ * @property {Boolean} followSymlinks
+ * @property {'stat'|'lstat'} statMethod
+ * @property {Path} path
+ * @property {Path} watchPath
+ * @property {Function} entryPath
+ * @property {Boolean} hasGlob
+ * @property {Object} globFilter
+ * @property {Function} filterPath
+ * @property {Function} filterDir
+ */
+
+const arrify = (value = []) => Array.isArray(value) ? value : [value];
+const flatten = (list, result = []) => {
+ list.forEach(item => {
+ if (Array.isArray(item)) {
+ flatten(item, result);
+ } else {
+ result.push(item);
+ }
+ });
+ return result;
+};
+
+const unifyPaths = (paths_) => {
+ /**
+ * @type {Array<String>}
+ */
+ const paths = flatten(arrify(paths_));
+ if (!paths.every(p => typeof p === STRING_TYPE)) {
+ throw new TypeError(`Non-string provided as watch path: ${paths}`);
+ }
+ return paths.map(normalizePathToUnix);
+};
+
+// If SLASH_SLASH occurs at the beginning of path, it is not replaced
+// because "//StoragePC/DrivePool/Movies" is a valid network path
+const toUnix = (string) => {
+ let str = string.replace(BACK_SLASH_RE, SLASH);
+ let prepend = false;
+ if (str.startsWith(SLASH_SLASH)) {
+ prepend = true;
+ }
+ while (str.match(DOUBLE_SLASH_RE)) {
+ str = str.replace(DOUBLE_SLASH_RE, SLASH);
+ }
+ if (prepend) {
+ str = SLASH + str;
+ }
+ return str;
+};
+
+// Our version of upath.normalize
+// TODO: this is not equal to path-normalize module - investigate why
+const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path)));
+
+const normalizeIgnored = (cwd = EMPTY_STR) => (path) => {
+ if (typeof path !== STRING_TYPE) return path;
+ return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path));
+};
+
+const getAbsolutePath = (path, cwd) => {
+ if (sysPath.isAbsolute(path)) {
+ return path;
+ }
+ if (path.startsWith(BANG)) {
+ return BANG + sysPath.join(cwd, path.slice(1));
+ }
+ return sysPath.join(cwd, path);
+};
+
+const undef = (opts, key) => opts[key] === undefined;
+
+/**
+ * Directory entry.
+ * @property {Path} path
+ * @property {Set<Path>} items
+ */
+class DirEntry {
+ /**
+ * @param {Path} dir
+ * @param {Function} removeWatcher
+ */
+ constructor(dir, removeWatcher) {
+ this.path = dir;
+ this._removeWatcher = removeWatcher;
+ /** @type {Set<Path>} */
+ this.items = new Set();
+ }
+
+ add(item) {
+ const {items} = this;
+ if (!items) return;
+ if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item);
+ }
+
+ async remove(item) {
+ const {items} = this;
+ if (!items) return;
+ items.delete(item);
+ if (items.size > 0) return;
+
+ const dir = this.path;
+ try {
+ await readdir(dir);
+ } catch (err) {
+ if (this._removeWatcher) {
+ this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir));
+ }
+ }
+ }
+
+ has(item) {
+ const {items} = this;
+ if (!items) return;
+ return items.has(item);
+ }
+
+ /**
+ * @returns {Array<String>}
+ */
+ getChildren() {
+ const {items} = this;
+ if (!items) return;
+ return [...items.values()];
+ }
+
+ dispose() {
+ this.items.clear();
+ delete this.path;
+ delete this._removeWatcher;
+ delete this.items;
+ Object.freeze(this);
+ }
+}
+
+const STAT_METHOD_F = 'stat';
+const STAT_METHOD_L = 'lstat';
+class WatchHelper {
+ constructor(path, watchPath, follow, fsw) {
+ this.fsw = fsw;
+ this.path = path = path.replace(REPLACER_RE, EMPTY_STR);
+ this.watchPath = watchPath;
+ this.fullWatchPath = sysPath.resolve(watchPath);
+ this.hasGlob = watchPath !== path;
+ /** @type {object|boolean} */
+ if (path === EMPTY_STR) this.hasGlob = false;
+ this.globSymlink = this.hasGlob && follow ? undefined : false;
+ this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false;
+ this.dirParts = this.getDirParts(path);
+ this.dirParts.forEach((parts) => {
+ if (parts.length > 1) parts.pop();
+ });
+ this.followSymlinks = follow;
+ this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L;
+ }
+
+ checkGlobSymlink(entry) {
+ // only need to resolve once
+ // first entry should always have entry.parentDir === EMPTY_STR
+ if (this.globSymlink === undefined) {
+ this.globSymlink = entry.fullParentDir === this.fullWatchPath ?
+ false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath};
+ }
+
+ if (this.globSymlink) {
+ return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath);
+ }
+
+ return entry.fullPath;
+ }
+
+ entryPath(entry) {
+ return sysPath.join(this.watchPath,
+ sysPath.relative(this.watchPath, this.checkGlobSymlink(entry))
+ );
+ }
+
+ filterPath(entry) {
+ const {stats} = entry;
+ if (stats && stats.isSymbolicLink()) return this.filterDir(entry);
+ const resolvedPath = this.entryPath(entry);
+ const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ?
+ this.globFilter(resolvedPath) : true;
+ return matchesGlob &&
+ this.fsw._isntIgnored(resolvedPath, stats) &&
+ this.fsw._hasReadPermissions(stats);
+ }
+
+ getDirParts(path) {
+ if (!this.hasGlob) return [];
+ const parts = [];
+ const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path];
+ expandedPath.forEach((path) => {
+ parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE));
+ });
+ return parts;
+ }
+
+ filterDir(entry) {
+ if (this.hasGlob) {
+ const entryParts = this.getDirParts(this.checkGlobSymlink(entry));
+ let globstar = false;
+ this.unmatchedGlob = !this.dirParts.some((parts) => {
+ return parts.every((part, i) => {
+ if (part === GLOBSTAR) globstar = true;
+ return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS);
+ });
+ });
+ }
+ return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats);
+ }
+}
+
+/**
+ * Watches files & directories for changes. Emitted events:
+ * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error`
+ *
+ * new FSWatcher()
+ * .add(directories)
+ * .on('add', path => log('File', path, 'was added'))
+ */
+class FSWatcher extends EventEmitter {
+// Not indenting methods for history sake; for now.
+constructor(_opts) {
+ super();
+
+ const opts = {};
+ if (_opts) Object.assign(opts, _opts); // for frozen objects
+
+ /** @type {Map<String, DirEntry>} */
+ this._watched = new Map();
+ /** @type {Map<String, Array>} */
+ this._closers = new Map();
+ /** @type {Set<String>} */
+ this._ignoredPaths = new Set();
+
+ /** @type {Map<ThrottleType, Map>} */
+ this._throttled = new Map();
+
+ /** @type {Map<Path, String|Boolean>} */
+ this._symlinkPaths = new Map();
+
+ this._streams = new Set();
+ this.closed = false;
+
+ // Set up default options.
+ if (undef(opts, 'persistent')) opts.persistent = true;
+ if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false;
+ if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false;
+ if (undef(opts, 'interval')) opts.interval = 100;
+ if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300;
+ if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false;
+ opts.enableBinaryInterval = opts.binaryInterval !== opts.interval;
+
+ // Enable fsevents on OS X when polling isn't explicitly enabled.
+ if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling;
+
+ // If we can't use fsevents, ensure the options reflect it's disabled.
+ const canUseFsEvents = FsEventsHandler.canUse();
+ if (!canUseFsEvents) opts.useFsEvents = false;
+
+ // Use polling on Mac if not using fsevents.
+ // Other platforms use non-polling fs_watch.
+ if (undef(opts, 'usePolling') && !opts.useFsEvents) {
+ opts.usePolling = isMacos;
+ }
+
+ // Always default to polling on IBM i because fs.watch() is not available on IBM i.
+ if(isIBMi) {
+ opts.usePolling = true;
+ }
+
+ // Global override (useful for end-developers that need to force polling for all
+ // instances of chokidar, regardless of usage/dependency depth)
+ const envPoll = process.env.CHOKIDAR_USEPOLLING;
+ if (envPoll !== undefined) {
+ const envLower = envPoll.toLowerCase();
+
+ if (envLower === 'false' || envLower === '0') {
+ opts.usePolling = false;
+ } else if (envLower === 'true' || envLower === '1') {
+ opts.usePolling = true;
+ } else {
+ opts.usePolling = !!envLower;
+ }
+ }
+ const envInterval = process.env.CHOKIDAR_INTERVAL;
+ if (envInterval) {
+ opts.interval = Number.parseInt(envInterval, 10);
+ }
+
+ // Editor atomic write normalization enabled by default with fs.watch
+ if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents;
+ if (opts.atomic) this._pendingUnlinks = new Map();
+
+ if (undef(opts, 'followSymlinks')) opts.followSymlinks = true;
+
+ if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false;
+ if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {};
+ const awf = opts.awaitWriteFinish;
+ if (awf) {
+ if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000;
+ if (!awf.pollInterval) awf.pollInterval = 100;
+ this._pendingWrites = new Map();
+ }
+ if (opts.ignored) opts.ignored = arrify(opts.ignored);
+
+ let readyCalls = 0;
+ this._emitReady = () => {
+ readyCalls++;
+ if (readyCalls >= this._readyCount) {
+ this._emitReady = EMPTY_FN;
+ this._readyEmitted = true;
+ // use process.nextTick to allow time for listener to be bound
+ process.nextTick(() => this.emit(EV_READY));
+ }
+ };
+ this._emitRaw = (...args) => this.emit(EV_RAW, ...args);
+ this._readyEmitted = false;
+ this.options = opts;
+
+ // Initialize with proper watcher.
+ if (opts.useFsEvents) {
+ this._fsEventsHandler = new FsEventsHandler(this);
+ } else {
+ this._nodeFsHandler = new NodeFsHandler(this);
+ }
+
+ // You’re frozen when your heart’s not open.
+ Object.freeze(opts);
+}
+
+// Public methods
+
+/**
+ * Adds paths to be watched on an existing FSWatcher instance
+ * @param {Path|Array<Path>} paths_
+ * @param {String=} _origAdd private; for handling non-existent paths to be watched
+ * @param {Boolean=} _internal private; indicates a non-user add
+ * @returns {FSWatcher} for chaining
+ */
+add(paths_, _origAdd, _internal) {
+ const {cwd, disableGlobbing} = this.options;
+ this.closed = false;
+ let paths = unifyPaths(paths_);
+ if (cwd) {
+ paths = paths.map((path) => {
+ const absPath = getAbsolutePath(path, cwd);
+
+ // Check `path` instead of `absPath` because the cwd portion can't be a glob
+ if (disableGlobbing || !isGlob(path)) {
+ return absPath;
+ }
+ return normalizePath(absPath);
+ });
+ }
+
+ // set aside negated glob strings
+ paths = paths.filter((path) => {
+ if (path.startsWith(BANG)) {
+ this._ignoredPaths.add(path.slice(1));
+ return false;
+ }
+
+ // if a path is being added that was previously ignored, stop ignoring it
+ this._ignoredPaths.delete(path);
+ this._ignoredPaths.delete(path + SLASH_GLOBSTAR);
+
+ // reset the cached userIgnored anymatch fn
+ // to make ignoredPaths changes effective
+ this._userIgnored = undefined;
+
+ return true;
+ });
+
+ if (this.options.useFsEvents && this._fsEventsHandler) {
+ if (!this._readyCount) this._readyCount = paths.length;
+ if (this.options.persistent) this._readyCount *= 2;
+ paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path));
+ } else {
+ if (!this._readyCount) this._readyCount = 0;
+ this._readyCount += paths.length;
+ Promise.all(
+ paths.map(async path => {
+ const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd);
+ if (res) this._emitReady();
+ return res;
+ })
+ ).then(results => {
+ if (this.closed) return;
+ results.filter(item => item).forEach(item => {
+ this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item));
+ });
+ });
+ }
+
+ return this;
+}
+
+/**
+ * Close watchers or start ignoring events from specified paths.
+ * @param {Path|Array<Path>} paths_ - string or array of strings, file/directory paths and/or globs
+ * @returns {FSWatcher} for chaining
+*/
+unwatch(paths_) {
+ if (this.closed) return this;
+ const paths = unifyPaths(paths_);
+ const {cwd} = this.options;
+
+ paths.forEach((path) => {
+ // convert to absolute path unless relative path already matches
+ if (!sysPath.isAbsolute(path) && !this._closers.has(path)) {
+ if (cwd) path = sysPath.join(cwd, path);
+ path = sysPath.resolve(path);
+ }
+
+ this._closePath(path);
+
+ this._ignoredPaths.add(path);
+ if (this._watched.has(path)) {
+ this._ignoredPaths.add(path + SLASH_GLOBSTAR);
+ }
+
+ // reset the cached userIgnored anymatch fn
+ // to make ignoredPaths changes effective
+ this._userIgnored = undefined;
+ });
+
+ return this;
+}
+
+/**
+ * Close watchers and remove all listeners from watched paths.
+ * @returns {Promise<void>}.
+*/
+close() {
+ if (this.closed) return this._closePromise;
+ this.closed = true;
+
+ // Memory management.
+ this.removeAllListeners();
+ const closers = [];
+ this._closers.forEach(closerList => closerList.forEach(closer => {
+ const promise = closer();
+ if (promise instanceof Promise) closers.push(promise);
+ }));
+ this._streams.forEach(stream => stream.destroy());
+ this._userIgnored = undefined;
+ this._readyCount = 0;
+ this._readyEmitted = false;
+ this._watched.forEach(dirent => dirent.dispose());
+ ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => {
+ this[`_${key}`].clear();
+ });
+
+ this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve();
+ return this._closePromise;
+}
+
+/**
+ * Expose list of watched paths
+ * @returns {Object} for chaining
+*/
+getWatched() {
+ const watchList = {};
+ this._watched.forEach((entry, dir) => {
+ const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir;
+ watchList[key || ONE_DOT] = entry.getChildren().sort();
+ });
+ return watchList;
+}
+
+emitWithAll(event, args) {
+ this.emit(...args);
+ if (event !== EV_ERROR) this.emit(EV_ALL, ...args);
+}
+
+// Common helpers
+// --------------
+
+/**
+ * Normalize and emit events.
+ * Calling _emit DOES NOT MEAN emit() would be called!
+ * @param {EventName} event Type of event
+ * @param {Path} path File or directory path
+ * @param {*=} val1 arguments to be passed with event
+ * @param {*=} val2
+ * @param {*=} val3
+ * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag
+ */
+async _emit(event, path, val1, val2, val3) {
+ if (this.closed) return;
+
+ const opts = this.options;
+ if (isWindows) path = sysPath.normalize(path);
+ if (opts.cwd) path = sysPath.relative(opts.cwd, path);
+ /** @type Array<any> */
+ const args = [event, path];
+ if (val3 !== undefined) args.push(val1, val2, val3);
+ else if (val2 !== undefined) args.push(val1, val2);
+ else if (val1 !== undefined) args.push(val1);
+
+ const awf = opts.awaitWriteFinish;
+ let pw;
+ if (awf && (pw = this._pendingWrites.get(path))) {
+ pw.lastChange = new Date();
+ return this;
+ }
+
+ if (opts.atomic) {
+ if (event === EV_UNLINK) {
+ this._pendingUnlinks.set(path, args);
+ setTimeout(() => {
+ this._pendingUnlinks.forEach((entry, path) => {
+ this.emit(...entry);
+ this.emit(EV_ALL, ...entry);
+ this._pendingUnlinks.delete(path);
+ });
+ }, typeof opts.atomic === 'number' ? opts.atomic : 100);
+ return this;
+ }
+ if (event === EV_ADD && this._pendingUnlinks.has(path)) {
+ event = args[0] = EV_CHANGE;
+ this._pendingUnlinks.delete(path);
+ }
+ }
+
+ if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) {
+ const awfEmit = (err, stats) => {
+ if (err) {
+ event = args[0] = EV_ERROR;
+ args[1] = err;
+ this.emitWithAll(event, args);
+ } else if (stats) {
+ // if stats doesn't exist the file must have been deleted
+ if (args.length > 2) {
+ args[2] = stats;
+ } else {
+ args.push(stats);
+ }
+ this.emitWithAll(event, args);
+ }
+ };
+
+ this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit);
+ return this;
+ }
+
+ if (event === EV_CHANGE) {
+ const isThrottled = !this._throttle(EV_CHANGE, path, 50);
+ if (isThrottled) return this;
+ }
+
+ if (opts.alwaysStat && val1 === undefined &&
+ (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE)
+ ) {
+ const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path;
+ let stats;
+ try {
+ stats = await stat(fullPath);
+ } catch (err) {}
+ // Suppress event when fs_stat fails, to avoid sending undefined 'stat'
+ if (!stats || this.closed) return;
+ args.push(stats);
+ }
+ this.emitWithAll(event, args);
+
+ return this;
+}
+
+/**
+ * Common handler for errors
+ * @param {Error} error
+ * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag
+ */
+_handleError(error) {
+ const code = error && error.code;
+ if (error && code !== 'ENOENT' && code !== 'ENOTDIR' &&
+ (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES'))
+ ) {
+ this.emit(EV_ERROR, error);
+ }
+ return error || this.closed;
+}
+
+/**
+ * Helper utility for throttling
+ * @param {ThrottleType} actionType type being throttled
+ * @param {Path} path being acted upon
+ * @param {Number} timeout duration of time to suppress duplicate actions
+ * @returns {Object|false} tracking object or false if action should be suppressed
+ */
+_throttle(actionType, path, timeout) {
+ if (!this._throttled.has(actionType)) {
+ this._throttled.set(actionType, new Map());
+ }
+
+ /** @type {Map<Path, Object>} */
+ const action = this._throttled.get(actionType);
+ /** @type {Object} */
+ const actionPath = action.get(path);
+
+ if (actionPath) {
+ actionPath.count++;
+ return false;
+ }
+
+ let timeoutObject;
+ const clear = () => {
+ const item = action.get(path);
+ const count = item ? item.count : 0;
+ action.delete(path);
+ clearTimeout(timeoutObject);
+ if (item) clearTimeout(item.timeoutObject);
+ return count;
+ };
+ timeoutObject = setTimeout(clear, timeout);
+ const thr = {timeoutObject, clear, count: 0};
+ action.set(path, thr);
+ return thr;
+}
+
+_incrReadyCount() {
+ return this._readyCount++;
+}
+
+/**
+ * Awaits write operation to finish.
+ * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback.
+ * @param {Path} path being acted upon
+ * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished
+ * @param {EventName} event
+ * @param {Function} awfEmit Callback to be called when ready for event to be emitted.
+ */
+_awaitWriteFinish(path, threshold, event, awfEmit) {
+ let timeoutHandler;
+
+ let fullPath = path;
+ if (this.options.cwd && !sysPath.isAbsolute(path)) {
+ fullPath = sysPath.join(this.options.cwd, path);
+ }
+
+ const now = new Date();
+
+ const awaitWriteFinish = (prevStat) => {
+ fs.stat(fullPath, (err, curStat) => {
+ if (err || !this._pendingWrites.has(path)) {
+ if (err && err.code !== 'ENOENT') awfEmit(err);
+ return;
+ }
+
+ const now = Number(new Date());
+
+ if (prevStat && curStat.size !== prevStat.size) {
+ this._pendingWrites.get(path).lastChange = now;
+ }
+ const pw = this._pendingWrites.get(path);
+ const df = now - pw.lastChange;
+
+ if (df >= threshold) {
+ this._pendingWrites.delete(path);
+ awfEmit(undefined, curStat);
+ } else {
+ timeoutHandler = setTimeout(
+ awaitWriteFinish,
+ this.options.awaitWriteFinish.pollInterval,
+ curStat
+ );
+ }
+ });
+ };
+
+ if (!this._pendingWrites.has(path)) {
+ this._pendingWrites.set(path, {
+ lastChange: now,
+ cancelWait: () => {
+ this._pendingWrites.delete(path);
+ clearTimeout(timeoutHandler);
+ return event;
+ }
+ });
+ timeoutHandler = setTimeout(
+ awaitWriteFinish,
+ this.options.awaitWriteFinish.pollInterval
+ );
+ }
+}
+
+_getGlobIgnored() {
+ return [...this._ignoredPaths.values()];
+}
+
+/**
+ * Determines whether user has asked to ignore this path.
+ * @param {Path} path filepath or dir
+ * @param {fs.Stats=} stats result of fs.stat
+ * @returns {Boolean}
+ */
+_isIgnored(path, stats) {
+ if (this.options.atomic && DOT_RE.test(path)) return true;
+ if (!this._userIgnored) {
+ const {cwd} = this.options;
+ const ign = this.options.ignored;
+
+ const ignored = ign && ign.map(normalizeIgnored(cwd));
+ const paths = arrify(ignored)
+ .filter((path) => typeof path === STRING_TYPE && !isGlob(path))
+ .map((path) => path + SLASH_GLOBSTAR);
+ const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths);
+ this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS);
+ }
+
+ return this._userIgnored([path, stats]);
+}
+
+_isntIgnored(path, stat) {
+ return !this._isIgnored(path, stat);
+}
+
+/**
+ * Provides a set of common helpers and properties relating to symlink and glob handling.
+ * @param {Path} path file, directory, or glob pattern being watched
+ * @param {Number=} depth at any depth > 0, this isn't a glob
+ * @returns {WatchHelper} object containing helpers for this path
+ */
+_getWatchHelpers(path, depth) {
+ const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path);
+ const follow = this.options.followSymlinks;
+
+ return new WatchHelper(path, watchPath, follow, this);
+}
+
+// Directory helpers
+// -----------------
+
+/**
+ * Provides directory tracking objects
+ * @param {String} directory path of the directory
+ * @returns {DirEntry} the directory's tracking object
+ */
+_getWatchedDir(directory) {
+ if (!this._boundRemove) this._boundRemove = this._remove.bind(this);
+ const dir = sysPath.resolve(directory);
+ if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove));
+ return this._watched.get(dir);
+}
+
+// File helpers
+// ------------
+
+/**
+ * Check for read permissions.
+ * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405
+ * @param {fs.Stats} stats - object, result of fs_stat
+ * @returns {Boolean} indicates whether the file can be read
+*/
+_hasReadPermissions(stats) {
+ if (this.options.ignorePermissionErrors) return true;
+
+ // stats.mode may be bigint
+ const md = stats && Number.parseInt(stats.mode, 10);
+ const st = md & 0o777;
+ const it = Number.parseInt(st.toString(8)[0], 10);
+ return Boolean(4 & it);
+}
+
+/**
+ * Handles emitting unlink events for
+ * files and directories, and via recursion, for
+ * files and directories within directories that are unlinked
+ * @param {String} directory within which the following item is located
+ * @param {String} item base path of item/directory
+ * @returns {void}
+*/
+_remove(directory, item, isDirectory) {
+ // if what is being deleted is a directory, get that directory's paths
+ // for recursive deleting and cleaning of watched object
+ // if it is not a directory, nestedDirectoryChildren will be empty array
+ const path = sysPath.join(directory, item);
+ const fullPath = sysPath.resolve(path);
+ isDirectory = isDirectory != null
+ ? isDirectory
+ : this._watched.has(path) || this._watched.has(fullPath);
+
+ // prevent duplicate handling in case of arriving here nearly simultaneously
+ // via multiple paths (such as _handleFile and _handleDir)
+ if (!this._throttle('remove', path, 100)) return;
+
+ // if the only watched file is removed, watch for its return
+ if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) {
+ this.add(directory, item, true);
+ }
+
+ // This will create a new entry in the watched object in either case
+ // so we got to do the directory check beforehand
+ const wp = this._getWatchedDir(path);
+ const nestedDirectoryChildren = wp.getChildren();
+
+ // Recursively remove children directories / files.
+ nestedDirectoryChildren.forEach(nested => this._remove(path, nested));
+
+ // Check if item was on the watched list and remove it
+ const parent = this._getWatchedDir(directory);
+ const wasTracked = parent.has(item);
+ parent.remove(item);
+
+ // Fixes issue #1042 -> Relative paths were detected and added as symlinks
+ // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612),
+ // but never removed from the map in case the path was deleted.
+ // This leads to an incorrect state if the path was recreated:
+ // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553
+ if (this._symlinkPaths.has(fullPath)) {
+ this._symlinkPaths.delete(fullPath);
+ }
+
+ // If we wait for this file to be fully written, cancel the wait.
+ let relPath = path;
+ if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path);
+ if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) {
+ const event = this._pendingWrites.get(relPath).cancelWait();
+ if (event === EV_ADD) return;
+ }
+
+ // The Entry will either be a directory that just got removed
+ // or a bogus entry to a file, in either case we have to remove it
+ this._watched.delete(path);
+ this._watched.delete(fullPath);
+ const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK;
+ if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path);
+
+ // Avoid conflicts if we later create another file with the same name
+ if (!this.options.useFsEvents) {
+ this._closePath(path);
+ }
+}
+
+/**
+ * Closes all watchers for a path
+ * @param {Path} path
+ */
+_closePath(path) {
+ this._closeFile(path)
+ const dir = sysPath.dirname(path);
+ this._getWatchedDir(dir).remove(sysPath.basename(path));
+}
+
+/**
+ * Closes only file-specific watchers
+ * @param {Path} path
+ */
+_closeFile(path) {
+ const closers = this._closers.get(path);
+ if (!closers) return;
+ closers.forEach(closer => closer());
+ this._closers.delete(path);
+}
+
+/**
+ *
+ * @param {Path} path
+ * @param {Function} closer
+ */
+_addPathCloser(path, closer) {
+ if (!closer) return;
+ let list = this._closers.get(path);
+ if (!list) {
+ list = [];
+ this._closers.set(path, list);
+ }
+ list.push(closer);
+}
+
+_readdirp(root, opts) {
+ if (this.closed) return;
+ const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts};
+ let stream = readdirp(root, options);
+ this._streams.add(stream);
+ stream.once(STR_CLOSE, () => {
+ stream = undefined;
+ });
+ stream.once(STR_END, () => {
+ if (stream) {
+ this._streams.delete(stream);
+ stream = undefined;
+ }
+ });
+ return stream;
+}
+
+}
+
+// Export FSWatcher class
+exports.FSWatcher = FSWatcher;
+
+/**
+ * Instantiates watcher with paths to be tracked.
+ * @param {String|Array<String>} paths file/directory paths and/or globs
+ * @param {Object=} options chokidar opts
+ * @returns an instance of FSWatcher for chaining.
+ */
+const watch = (paths, options) => {
+ const watcher = new FSWatcher(options);
+ watcher.add(paths);
+ return watcher;
+};
+
+exports.watch = watch;
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/constants.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/constants.js
new file mode 100644
index 00000000000..1454f85b544
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/constants.js
@@ -0,0 +1,65 @@
+'use strict';
+
+const {sep} = require('path');
+const {platform} = process;
+const os = require('os');
+
+exports.EV_ALL = 'all';
+exports.EV_READY = 'ready';
+exports.EV_ADD = 'add';
+exports.EV_CHANGE = 'change';
+exports.EV_ADD_DIR = 'addDir';
+exports.EV_UNLINK = 'unlink';
+exports.EV_UNLINK_DIR = 'unlinkDir';
+exports.EV_RAW = 'raw';
+exports.EV_ERROR = 'error';
+
+exports.STR_DATA = 'data';
+exports.STR_END = 'end';
+exports.STR_CLOSE = 'close';
+
+exports.FSEVENT_CREATED = 'created';
+exports.FSEVENT_MODIFIED = 'modified';
+exports.FSEVENT_DELETED = 'deleted';
+exports.FSEVENT_MOVED = 'moved';
+exports.FSEVENT_CLONED = 'cloned';
+exports.FSEVENT_UNKNOWN = 'unknown';
+exports.FSEVENT_TYPE_FILE = 'file';
+exports.FSEVENT_TYPE_DIRECTORY = 'directory';
+exports.FSEVENT_TYPE_SYMLINK = 'symlink';
+
+exports.KEY_LISTENERS = 'listeners';
+exports.KEY_ERR = 'errHandlers';
+exports.KEY_RAW = 'rawEmitters';
+exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW];
+
+exports.DOT_SLASH = `.${sep}`;
+
+exports.BACK_SLASH_RE = /\\/g;
+exports.DOUBLE_SLASH_RE = /\/\//;
+exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/;
+exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/;
+exports.REPLACER_RE = /^\.[/\\]/;
+
+exports.SLASH = '/';
+exports.SLASH_SLASH = '//';
+exports.BRACE_START = '{';
+exports.BANG = '!';
+exports.ONE_DOT = '.';
+exports.TWO_DOTS = '..';
+exports.STAR = '*';
+exports.GLOBSTAR = '**';
+exports.ROOT_GLOBSTAR = '/**/*';
+exports.SLASH_GLOBSTAR = '/**';
+exports.DIR_SUFFIX = 'Dir';
+exports.ANYMATCH_OPTS = {dot: true};
+exports.STRING_TYPE = 'string';
+exports.FUNCTION_TYPE = 'function';
+exports.EMPTY_STR = '';
+exports.EMPTY_FN = () => {};
+exports.IDENTITY_FN = val => val;
+
+exports.isWindows = platform === 'win32';
+exports.isMacos = platform === 'darwin';
+exports.isLinux = platform === 'linux';
+exports.isIBMi = os.type() === 'OS400';
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/fsevents-handler.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/fsevents-handler.js
new file mode 100644
index 00000000000..0f7f2cba857
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/fsevents-handler.js
@@ -0,0 +1,524 @@
+'use strict';
+
+const fs = require('fs');
+const sysPath = require('path');
+const { promisify } = require('util');
+
+let fsevents;
+try {
+ fsevents = require('fsevents');
+} catch (error) {
+ if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error);
+}
+
+if (fsevents) {
+ // TODO: real check
+ const mtch = process.version.match(/v(\d+)\.(\d+)/);
+ if (mtch && mtch[1] && mtch[2]) {
+ const maj = Number.parseInt(mtch[1], 10);
+ const min = Number.parseInt(mtch[2], 10);
+ if (maj === 8 && min < 16) {
+ fsevents = undefined;
+ }
+ }
+}
+
+const {
+ EV_ADD,
+ EV_CHANGE,
+ EV_ADD_DIR,
+ EV_UNLINK,
+ EV_ERROR,
+ STR_DATA,
+ STR_END,
+ FSEVENT_CREATED,
+ FSEVENT_MODIFIED,
+ FSEVENT_DELETED,
+ FSEVENT_MOVED,
+ // FSEVENT_CLONED,
+ FSEVENT_UNKNOWN,
+ FSEVENT_TYPE_FILE,
+ FSEVENT_TYPE_DIRECTORY,
+ FSEVENT_TYPE_SYMLINK,
+
+ ROOT_GLOBSTAR,
+ DIR_SUFFIX,
+ DOT_SLASH,
+ FUNCTION_TYPE,
+ EMPTY_FN,
+ IDENTITY_FN
+} = require('./constants');
+
+const Depth = (value) => isNaN(value) ? {} : {depth: value};
+
+const stat = promisify(fs.stat);
+const lstat = promisify(fs.lstat);
+const realpath = promisify(fs.realpath);
+
+const statMethods = { stat, lstat };
+
+/**
+ * @typedef {String} Path
+ */
+
+/**
+ * @typedef {Object} FsEventsWatchContainer
+ * @property {Set<Function>} listeners
+ * @property {Function} rawEmitter
+ * @property {{stop: Function}} watcher
+ */
+
+// fsevents instance helper functions
+/**
+ * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances)
+ * @type {Map<Path,FsEventsWatchContainer>}
+ */
+const FSEventsWatchers = new Map();
+
+// Threshold of duplicate path prefixes at which to start
+// consolidating going forward
+const consolidateThreshhold = 10;
+
+const wrongEventFlags = new Set([
+ 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912
+]);
+
+/**
+ * Instantiates the fsevents interface
+ * @param {Path} path path to be watched
+ * @param {Function} callback called when fsevents is bound and ready
+ * @returns {{stop: Function}} new fsevents instance
+ */
+const createFSEventsInstance = (path, callback) => {
+ const stop = fsevents.watch(path, callback);
+ return {stop};
+};
+
+/**
+ * Instantiates the fsevents interface or binds listeners to an existing one covering
+ * the same file tree.
+ * @param {Path} path - to be watched
+ * @param {Path} realPath - real path for symlinks
+ * @param {Function} listener - called when fsevents emits events
+ * @param {Function} rawEmitter - passes data to listeners of the 'raw' event
+ * @returns {Function} closer
+ */
+function setFSEventsListener(path, realPath, listener, rawEmitter) {
+ let watchPath = sysPath.extname(realPath) ? sysPath.dirname(realPath) : realPath;
+
+ const parentPath = sysPath.dirname(watchPath);
+ let cont = FSEventsWatchers.get(watchPath);
+
+ // If we've accumulated a substantial number of paths that
+ // could have been consolidated by watching one directory
+ // above the current one, create a watcher on the parent
+ // path instead, so that we do consolidate going forward.
+ if (couldConsolidate(parentPath)) {
+ watchPath = parentPath;
+ }
+
+ const resolvedPath = sysPath.resolve(path);
+ const hasSymlink = resolvedPath !== realPath;
+
+ const filteredListener = (fullPath, flags, info) => {
+ if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath);
+ if (
+ fullPath === resolvedPath ||
+ !fullPath.indexOf(resolvedPath + sysPath.sep)
+ ) listener(fullPath, flags, info);
+ };
+
+ // check if there is already a watcher on a parent path
+ // modifies `watchPath` to the parent path when it finds a match
+ let watchedParent = false;
+ for (const watchedPath of FSEventsWatchers.keys()) {
+ if (realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep) === 0) {
+ watchPath = watchedPath;
+ cont = FSEventsWatchers.get(watchPath);
+ watchedParent = true;
+ break;
+ }
+ }
+
+ if (cont || watchedParent) {
+ cont.listeners.add(filteredListener);
+ } else {
+ cont = {
+ listeners: new Set([filteredListener]),
+ rawEmitter,
+ watcher: createFSEventsInstance(watchPath, (fullPath, flags) => {
+ if (!cont.listeners.size) return;
+ const info = fsevents.getInfo(fullPath, flags);
+ cont.listeners.forEach(list => {
+ list(fullPath, flags, info);
+ });
+
+ cont.rawEmitter(info.event, fullPath, info);
+ })
+ };
+ FSEventsWatchers.set(watchPath, cont);
+ }
+
+ // removes this instance's listeners and closes the underlying fsevents
+ // instance if there are no more listeners left
+ return () => {
+ const lst = cont.listeners;
+
+ lst.delete(filteredListener);
+ if (!lst.size) {
+ FSEventsWatchers.delete(watchPath);
+ if (cont.watcher) return cont.watcher.stop().then(() => {
+ cont.rawEmitter = cont.watcher = undefined;
+ Object.freeze(cont);
+ });
+ }
+ };
+}
+
+// Decide whether or not we should start a new higher-level
+// parent watcher
+const couldConsolidate = (path) => {
+ let count = 0;
+ for (const watchPath of FSEventsWatchers.keys()) {
+ if (watchPath.indexOf(path) === 0) {
+ count++;
+ if (count >= consolidateThreshhold) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+};
+
+// returns boolean indicating whether fsevents can be used
+const canUse = () => fsevents && FSEventsWatchers.size < 128;
+
+// determines subdirectory traversal levels from root to path
+const calcDepth = (path, root) => {
+ let i = 0;
+ while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++;
+ return i;
+};
+
+// returns boolean indicating whether the fsevents' event info has the same type
+// as the one returned by fs.stat
+const sameTypes = (info, stats) => (
+ info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() ||
+ info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() ||
+ info.type === FSEVENT_TYPE_FILE && stats.isFile()
+)
+
+/**
+ * @mixin
+ */
+class FsEventsHandler {
+
+/**
+ * @param {import('../index').FSWatcher} fsw
+ */
+constructor(fsw) {
+ this.fsw = fsw;
+}
+checkIgnored(path, stats) {
+ const ipaths = this.fsw._ignoredPaths;
+ if (this.fsw._isIgnored(path, stats)) {
+ ipaths.add(path);
+ if (stats && stats.isDirectory()) {
+ ipaths.add(path + ROOT_GLOBSTAR);
+ }
+ return true;
+ }
+
+ ipaths.delete(path);
+ ipaths.delete(path + ROOT_GLOBSTAR);
+}
+
+addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) {
+ const event = watchedDir.has(item) ? EV_CHANGE : EV_ADD;
+ this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts);
+}
+
+async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) {
+ try {
+ const stats = await stat(path)
+ if (this.fsw.closed) return;
+ if (sameTypes(info, stats)) {
+ this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ } else {
+ this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ }
+ } catch (error) {
+ if (error.code === 'EACCES') {
+ this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ } else {
+ this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ }
+ }
+}
+
+handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) {
+ if (this.fsw.closed || this.checkIgnored(path)) return;
+
+ if (event === EV_UNLINK) {
+ const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY
+ // suppress unlink events on never before seen files
+ if (isDirectory || watchedDir.has(item)) {
+ this.fsw._remove(parent, item, isDirectory);
+ }
+ } else {
+ if (event === EV_ADD) {
+ // track new directories
+ if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path);
+
+ if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) {
+ // push symlinks back to the top of the stack to get handled
+ const curDepth = opts.depth === undefined ?
+ undefined : calcDepth(fullPath, realPath) + 1;
+ return this._addToFsEvents(path, false, true, curDepth);
+ }
+
+ // track new paths
+ // (other than symlinks being followed, which will be tracked soon)
+ this.fsw._getWatchedDir(parent).add(item);
+ }
+ /**
+ * @type {'add'|'addDir'|'unlink'|'unlinkDir'}
+ */
+ const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event;
+ this.fsw._emit(eventName, path);
+ if (eventName === EV_ADD_DIR) this._addToFsEvents(path, false, true);
+ }
+}
+
+/**
+ * Handle symlinks encountered during directory scan
+ * @param {String} watchPath - file/dir path to be watched with fsevents
+ * @param {String} realPath - real path (in case of symlinks)
+ * @param {Function} transform - path transformer
+ * @param {Function} globFilter - path filter in case a glob pattern was provided
+ * @returns {Function} closer for the watcher instance
+*/
+_watchWithFsEvents(watchPath, realPath, transform, globFilter) {
+ if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return;
+ const opts = this.fsw.options;
+ const watchCallback = async (fullPath, flags, info) => {
+ if (this.fsw.closed) return;
+ if (
+ opts.depth !== undefined &&
+ calcDepth(fullPath, realPath) > opts.depth
+ ) return;
+ const path = transform(sysPath.join(
+ watchPath, sysPath.relative(watchPath, fullPath)
+ ));
+ if (globFilter && !globFilter(path)) return;
+ // ensure directories are tracked
+ const parent = sysPath.dirname(path);
+ const item = sysPath.basename(path);
+ const watchedDir = this.fsw._getWatchedDir(
+ info.type === FSEVENT_TYPE_DIRECTORY ? path : parent
+ );
+
+ // correct for wrong events emitted
+ if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) {
+ if (typeof opts.ignored === FUNCTION_TYPE) {
+ let stats;
+ try {
+ stats = await stat(path);
+ } catch (error) {}
+ if (this.fsw.closed) return;
+ if (this.checkIgnored(path, stats)) return;
+ if (sameTypes(info, stats)) {
+ this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ } else {
+ this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ }
+ } else {
+ this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ }
+ } else {
+ switch (info.event) {
+ case FSEVENT_CREATED:
+ case FSEVENT_MODIFIED:
+ return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ case FSEVENT_DELETED:
+ case FSEVENT_MOVED:
+ return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts);
+ }
+ }
+ };
+
+ const closer = setFSEventsListener(
+ watchPath,
+ realPath,
+ watchCallback,
+ this.fsw._emitRaw
+ );
+
+ this.fsw._emitReady();
+ return closer;
+}
+
+/**
+ * Handle symlinks encountered during directory scan
+ * @param {String} linkPath path to symlink
+ * @param {String} fullPath absolute path to the symlink
+ * @param {Function} transform pre-existing path transformer
+ * @param {Number} curDepth level of subdirectories traversed to where symlink is
+ * @returns {Promise<void>}
+ */
+async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) {
+ // don't follow the same symlink more than once
+ if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return;
+
+ this.fsw._symlinkPaths.set(fullPath, true);
+ this.fsw._incrReadyCount();
+
+ try {
+ const linkTarget = await realpath(linkPath);
+ if (this.fsw.closed) return;
+ if (this.fsw._isIgnored(linkTarget)) {
+ return this.fsw._emitReady();
+ }
+
+ this.fsw._incrReadyCount();
+
+ // add the linkTarget for watching with a wrapper for transform
+ // that causes emitted paths to incorporate the link's path
+ this._addToFsEvents(linkTarget || linkPath, (path) => {
+ let aliasedPath = linkPath;
+ if (linkTarget && linkTarget !== DOT_SLASH) {
+ aliasedPath = path.replace(linkTarget, linkPath);
+ } else if (path !== DOT_SLASH) {
+ aliasedPath = sysPath.join(linkPath, path);
+ }
+ return transform(aliasedPath);
+ }, false, curDepth);
+ } catch(error) {
+ if (this.fsw._handleError(error)) {
+ return this.fsw._emitReady();
+ }
+ }
+}
+
+/**
+ *
+ * @param {Path} newPath
+ * @param {fs.Stats} stats
+ */
+emitAdd(newPath, stats, processPath, opts, forceAdd) {
+ const pp = processPath(newPath);
+ const isDir = stats.isDirectory();
+ const dirObj = this.fsw._getWatchedDir(sysPath.dirname(pp));
+ const base = sysPath.basename(pp);
+
+ // ensure empty dirs get tracked
+ if (isDir) this.fsw._getWatchedDir(pp);
+ if (dirObj.has(base)) return;
+ dirObj.add(base);
+
+ if (!opts.ignoreInitial || forceAdd === true) {
+ this.fsw._emit(isDir ? EV_ADD_DIR : EV_ADD, pp, stats);
+ }
+}
+
+initWatch(realPath, path, wh, processPath) {
+ if (this.fsw.closed) return;
+ const closer = this._watchWithFsEvents(
+ wh.watchPath,
+ sysPath.resolve(realPath || wh.watchPath),
+ processPath,
+ wh.globFilter
+ );
+ this.fsw._addPathCloser(path, closer);
+}
+
+/**
+ * Handle added path with fsevents
+ * @param {String} path file/dir path or glob pattern
+ * @param {Function|Boolean=} transform converts working path to what the user expects
+ * @param {Boolean=} forceAdd ensure add is emitted
+ * @param {Number=} priorDepth Level of subdirectories already traversed.
+ * @returns {Promise<void>}
+ */
+async _addToFsEvents(path, transform, forceAdd, priorDepth) {
+ if (this.fsw.closed) {
+ return;
+ }
+ const opts = this.fsw.options;
+ const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN;
+
+ const wh = this.fsw._getWatchHelpers(path);
+
+ // evaluate what is at the path we're being asked to watch
+ try {
+ const stats = await statMethods[wh.statMethod](wh.watchPath);
+ if (this.fsw.closed) return;
+ if (this.fsw._isIgnored(wh.watchPath, stats)) {
+ throw null;
+ }
+ if (stats.isDirectory()) {
+ // emit addDir unless this is a glob parent
+ if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd);
+
+ // don't recurse further if it would exceed depth setting
+ if (priorDepth && priorDepth > opts.depth) return;
+
+ // scan the contents of the dir
+ this.fsw._readdirp(wh.watchPath, {
+ fileFilter: entry => wh.filterPath(entry),
+ directoryFilter: entry => wh.filterDir(entry),
+ ...Depth(opts.depth - (priorDepth || 0))
+ }).on(STR_DATA, (entry) => {
+ // need to check filterPath on dirs b/c filterDir is less restrictive
+ if (this.fsw.closed) {
+ return;
+ }
+ if (entry.stats.isDirectory() && !wh.filterPath(entry)) return;
+
+ const joinedPath = sysPath.join(wh.watchPath, entry.path);
+ const {fullPath} = entry;
+
+ if (wh.followSymlinks && entry.stats.isSymbolicLink()) {
+ // preserve the current depth here since it can't be derived from
+ // real paths past the symlink
+ const curDepth = opts.depth === undefined ?
+ undefined : calcDepth(joinedPath, sysPath.resolve(wh.watchPath)) + 1;
+
+ this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth);
+ } else {
+ this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd);
+ }
+ }).on(EV_ERROR, EMPTY_FN).on(STR_END, () => {
+ this.fsw._emitReady();
+ });
+ } else {
+ this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd);
+ this.fsw._emitReady();
+ }
+ } catch (error) {
+ if (!error || this.fsw._handleError(error)) {
+ // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__-
+ this.fsw._emitReady();
+ this.fsw._emitReady();
+ }
+ }
+
+ if (opts.persistent && forceAdd !== true) {
+ if (typeof transform === FUNCTION_TYPE) {
+ // realpath has already been resolved
+ this.initWatch(undefined, path, wh, processPath);
+ } else {
+ let realPath;
+ try {
+ realPath = await realpath(wh.watchPath);
+ } catch (e) {}
+ this.initWatch(realPath, path, wh, processPath);
+ }
+ }
+}
+
+}
+
+module.exports = FsEventsHandler;
+module.exports.canUse = canUse;
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/nodefs-handler.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/nodefs-handler.js
new file mode 100644
index 00000000000..3a396430b79
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/nodefs-handler.js
@@ -0,0 +1,646 @@
+'use strict';
+
+const fs = require('fs');
+const sysPath = require('path');
+const { promisify } = require('util');
+const isBinaryPath = require('is-binary-path');
+const {
+ isWindows,
+ isLinux,
+ EMPTY_FN,
+ EMPTY_STR,
+ KEY_LISTENERS,
+ KEY_ERR,
+ KEY_RAW,
+ HANDLER_KEYS,
+ EV_CHANGE,
+ EV_ADD,
+ EV_ADD_DIR,
+ EV_ERROR,
+ STR_DATA,
+ STR_END,
+ BRACE_START,
+ STAR
+} = require('./constants');
+
+const THROTTLE_MODE_WATCH = 'watch';
+
+const open = promisify(fs.open);
+const stat = promisify(fs.stat);
+const lstat = promisify(fs.lstat);
+const close = promisify(fs.close);
+const fsrealpath = promisify(fs.realpath);
+
+const statMethods = { lstat, stat };
+
+// TODO: emit errors properly. Example: EMFILE on Macos.
+const foreach = (val, fn) => {
+ if (val instanceof Set) {
+ val.forEach(fn);
+ } else {
+ fn(val);
+ }
+};
+
+const addAndConvert = (main, prop, item) => {
+ let container = main[prop];
+ if (!(container instanceof Set)) {
+ main[prop] = container = new Set([container]);
+ }
+ container.add(item);
+};
+
+const clearItem = cont => key => {
+ const set = cont[key];
+ if (set instanceof Set) {
+ set.clear();
+ } else {
+ delete cont[key];
+ }
+};
+
+const delFromSet = (main, prop, item) => {
+ const container = main[prop];
+ if (container instanceof Set) {
+ container.delete(item);
+ } else if (container === item) {
+ delete main[prop];
+ }
+};
+
+const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val;
+
+/**
+ * @typedef {String} Path
+ */
+
+// fs_watch helpers
+
+// object to hold per-process fs_watch instances
+// (may be shared across chokidar FSWatcher instances)
+
+/**
+ * @typedef {Object} FsWatchContainer
+ * @property {Set} listeners
+ * @property {Set} errHandlers
+ * @property {Set} rawEmitters
+ * @property {fs.FSWatcher=} watcher
+ * @property {Boolean=} watcherUnusable
+ */
+
+/**
+ * @type {Map<String,FsWatchContainer>}
+ */
+const FsWatchInstances = new Map();
+
+/**
+ * Instantiates the fs_watch interface
+ * @param {String} path to be watched
+ * @param {Object} options to be passed to fs_watch
+ * @param {Function} listener main event handler
+ * @param {Function} errHandler emits info about errors
+ * @param {Function} emitRaw emits raw event data
+ * @returns {fs.FSWatcher} new fsevents instance
+ */
+function createFsWatchInstance(path, options, listener, errHandler, emitRaw) {
+ const handleEvent = (rawEvent, evPath) => {
+ listener(path);
+ emitRaw(rawEvent, evPath, {watchedPath: path});
+
+ // emit based on events occurring for files from a directory's watcher in
+ // case the file's watcher misses it (and rely on throttling to de-dupe)
+ if (evPath && path !== evPath) {
+ fsWatchBroadcast(
+ sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath)
+ );
+ }
+ };
+ try {
+ return fs.watch(path, options, handleEvent);
+ } catch (error) {
+ errHandler(error);
+ }
+}
+
+/**
+ * Helper for passing fs_watch event data to a collection of listeners
+ * @param {Path} fullPath absolute path bound to fs_watch instance
+ * @param {String} type listener type
+ * @param {*=} val1 arguments to be passed to listeners
+ * @param {*=} val2
+ * @param {*=} val3
+ */
+const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => {
+ const cont = FsWatchInstances.get(fullPath);
+ if (!cont) return;
+ foreach(cont[type], (listener) => {
+ listener(val1, val2, val3);
+ });
+};
+
+/**
+ * Instantiates the fs_watch interface or binds listeners
+ * to an existing one covering the same file system entry
+ * @param {String} path
+ * @param {String} fullPath absolute path
+ * @param {Object} options to be passed to fs_watch
+ * @param {Object} handlers container for event listener functions
+ */
+const setFsWatchListener = (path, fullPath, options, handlers) => {
+ const {listener, errHandler, rawEmitter} = handlers;
+ let cont = FsWatchInstances.get(fullPath);
+
+ /** @type {fs.FSWatcher=} */
+ let watcher;
+ if (!options.persistent) {
+ watcher = createFsWatchInstance(
+ path, options, listener, errHandler, rawEmitter
+ );
+ return watcher.close.bind(watcher);
+ }
+ if (cont) {
+ addAndConvert(cont, KEY_LISTENERS, listener);
+ addAndConvert(cont, KEY_ERR, errHandler);
+ addAndConvert(cont, KEY_RAW, rawEmitter);
+ } else {
+ watcher = createFsWatchInstance(
+ path,
+ options,
+ fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS),
+ errHandler, // no need to use broadcast here
+ fsWatchBroadcast.bind(null, fullPath, KEY_RAW)
+ );
+ if (!watcher) return;
+ watcher.on(EV_ERROR, async (error) => {
+ const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR);
+ cont.watcherUnusable = true; // documented since Node 10.4.1
+ // Workaround for https://github.com/joyent/node/issues/4337
+ if (isWindows && error.code === 'EPERM') {
+ try {
+ const fd = await open(path, 'r');
+ await close(fd);
+ broadcastErr(error);
+ } catch (err) {}
+ } else {
+ broadcastErr(error);
+ }
+ });
+ cont = {
+ listeners: listener,
+ errHandlers: errHandler,
+ rawEmitters: rawEmitter,
+ watcher
+ };
+ FsWatchInstances.set(fullPath, cont);
+ }
+ // const index = cont.listeners.indexOf(listener);
+
+ // removes this instance's listeners and closes the underlying fs_watch
+ // instance if there are no more listeners left
+ return () => {
+ delFromSet(cont, KEY_LISTENERS, listener);
+ delFromSet(cont, KEY_ERR, errHandler);
+ delFromSet(cont, KEY_RAW, rawEmitter);
+ if (isEmptySet(cont.listeners)) {
+ // Check to protect against issue gh-730.
+ // if (cont.watcherUnusable) {
+ cont.watcher.close();
+ // }
+ FsWatchInstances.delete(fullPath);
+ HANDLER_KEYS.forEach(clearItem(cont));
+ cont.watcher = undefined;
+ Object.freeze(cont);
+ }
+ };
+};
+
+// fs_watchFile helpers
+
+// object to hold per-process fs_watchFile instances
+// (may be shared across chokidar FSWatcher instances)
+const FsWatchFileInstances = new Map();
+
+/**
+ * Instantiates the fs_watchFile interface or binds listeners
+ * to an existing one covering the same file system entry
+ * @param {String} path to be watched
+ * @param {String} fullPath absolute path
+ * @param {Object} options options to be passed to fs_watchFile
+ * @param {Object} handlers container for event listener functions
+ * @returns {Function} closer
+ */
+const setFsWatchFileListener = (path, fullPath, options, handlers) => {
+ const {listener, rawEmitter} = handlers;
+ let cont = FsWatchFileInstances.get(fullPath);
+
+ /* eslint-disable no-unused-vars, prefer-destructuring */
+ let listeners = new Set();
+ let rawEmitters = new Set();
+
+ const copts = cont && cont.options;
+ if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) {
+ // "Upgrade" the watcher to persistence or a quicker interval.
+ // This creates some unlikely edge case issues if the user mixes
+ // settings in a very weird way, but solving for those cases
+ // doesn't seem worthwhile for the added complexity.
+ listeners = cont.listeners;
+ rawEmitters = cont.rawEmitters;
+ fs.unwatchFile(fullPath);
+ cont = undefined;
+ }
+
+ /* eslint-enable no-unused-vars, prefer-destructuring */
+
+ if (cont) {
+ addAndConvert(cont, KEY_LISTENERS, listener);
+ addAndConvert(cont, KEY_RAW, rawEmitter);
+ } else {
+ // TODO
+ // listeners.add(listener);
+ // rawEmitters.add(rawEmitter);
+ cont = {
+ listeners: listener,
+ rawEmitters: rawEmitter,
+ options,
+ watcher: fs.watchFile(fullPath, options, (curr, prev) => {
+ foreach(cont.rawEmitters, (rawEmitter) => {
+ rawEmitter(EV_CHANGE, fullPath, {curr, prev});
+ });
+ const currmtime = curr.mtimeMs;
+ if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) {
+ foreach(cont.listeners, (listener) => listener(path, curr));
+ }
+ })
+ };
+ FsWatchFileInstances.set(fullPath, cont);
+ }
+ // const index = cont.listeners.indexOf(listener);
+
+ // Removes this instance's listeners and closes the underlying fs_watchFile
+ // instance if there are no more listeners left.
+ return () => {
+ delFromSet(cont, KEY_LISTENERS, listener);
+ delFromSet(cont, KEY_RAW, rawEmitter);
+ if (isEmptySet(cont.listeners)) {
+ FsWatchFileInstances.delete(fullPath);
+ fs.unwatchFile(fullPath);
+ cont.options = cont.watcher = undefined;
+ Object.freeze(cont);
+ }
+ };
+};
+
+/**
+ * @mixin
+ */
+class NodeFsHandler {
+
+/**
+ * @param {import("../index").FSWatcher} fsW
+ */
+constructor(fsW) {
+ this.fsw = fsW;
+ this._boundHandleError = (error) => fsW._handleError(error);
+}
+
+/**
+ * Watch file for changes with fs_watchFile or fs_watch.
+ * @param {String} path to file or dir
+ * @param {Function} listener on fs change
+ * @returns {Function} closer for the watcher instance
+ */
+_watchWithNodeFs(path, listener) {
+ const opts = this.fsw.options;
+ const directory = sysPath.dirname(path);
+ const basename = sysPath.basename(path);
+ const parent = this.fsw._getWatchedDir(directory);
+ parent.add(basename);
+ const absolutePath = sysPath.resolve(path);
+ const options = {persistent: opts.persistent};
+ if (!listener) listener = EMPTY_FN;
+
+ let closer;
+ if (opts.usePolling) {
+ options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ?
+ opts.binaryInterval : opts.interval;
+ closer = setFsWatchFileListener(path, absolutePath, options, {
+ listener,
+ rawEmitter: this.fsw._emitRaw
+ });
+ } else {
+ closer = setFsWatchListener(path, absolutePath, options, {
+ listener,
+ errHandler: this._boundHandleError,
+ rawEmitter: this.fsw._emitRaw
+ });
+ }
+ return closer;
+}
+
+/**
+ * Watch a file and emit add event if warranted.
+ * @param {Path} file Path
+ * @param {fs.Stats} stats result of fs_stat
+ * @param {Boolean} initialAdd was the file added at watch instantiation?
+ * @returns {Function} closer for the watcher instance
+ */
+_handleFile(file, stats, initialAdd) {
+ if (this.fsw.closed) {
+ return;
+ }
+ const dirname = sysPath.dirname(file);
+ const basename = sysPath.basename(file);
+ const parent = this.fsw._getWatchedDir(dirname);
+ // stats is always present
+ let prevStats = stats;
+
+ // if the file is already being watched, do nothing
+ if (parent.has(basename)) return;
+
+ const listener = async (path, newStats) => {
+ if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return;
+ if (!newStats || newStats.mtimeMs === 0) {
+ try {
+ const newStats = await stat(file);
+ if (this.fsw.closed) return;
+ // Check that change event was not fired because of changed only accessTime.
+ const at = newStats.atimeMs;
+ const mt = newStats.mtimeMs;
+ if (!at || at <= mt || mt !== prevStats.mtimeMs) {
+ this.fsw._emit(EV_CHANGE, file, newStats);
+ }
+ if (isLinux && prevStats.ino !== newStats.ino) {
+ this.fsw._closeFile(path)
+ prevStats = newStats;
+ this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener));
+ } else {
+ prevStats = newStats;
+ }
+ } catch (error) {
+ // Fix issues where mtime is null but file is still present
+ this.fsw._remove(dirname, basename);
+ }
+ // add is about to be emitted if file not already tracked in parent
+ } else if (parent.has(basename)) {
+ // Check that change event was not fired because of changed only accessTime.
+ const at = newStats.atimeMs;
+ const mt = newStats.mtimeMs;
+ if (!at || at <= mt || mt !== prevStats.mtimeMs) {
+ this.fsw._emit(EV_CHANGE, file, newStats);
+ }
+ prevStats = newStats;
+ }
+ }
+ // kick off the watcher
+ const closer = this._watchWithNodeFs(file, listener);
+
+ // emit an add event if we're supposed to
+ if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) {
+ if (!this.fsw._throttle(EV_ADD, file, 0)) return;
+ this.fsw._emit(EV_ADD, file, stats);
+ }
+
+ return closer;
+}
+
+/**
+ * Handle symlinks encountered while reading a dir.
+ * @param {Object} entry returned by readdirp
+ * @param {String} directory path of dir being read
+ * @param {String} path of this item
+ * @param {String} item basename of this item
+ * @returns {Promise<Boolean>} true if no more processing is needed for this entry.
+ */
+async _handleSymlink(entry, directory, path, item) {
+ if (this.fsw.closed) {
+ return;
+ }
+ const full = entry.fullPath;
+ const dir = this.fsw._getWatchedDir(directory);
+
+ if (!this.fsw.options.followSymlinks) {
+ // watch symlink directly (don't follow) and detect changes
+ this.fsw._incrReadyCount();
+ const linkPath = await fsrealpath(path);
+ if (this.fsw.closed) return;
+ if (dir.has(item)) {
+ if (this.fsw._symlinkPaths.get(full) !== linkPath) {
+ this.fsw._symlinkPaths.set(full, linkPath);
+ this.fsw._emit(EV_CHANGE, path, entry.stats);
+ }
+ } else {
+ dir.add(item);
+ this.fsw._symlinkPaths.set(full, linkPath);
+ this.fsw._emit(EV_ADD, path, entry.stats);
+ }
+ this.fsw._emitReady();
+ return true;
+ }
+
+ // don't follow the same symlink more than once
+ if (this.fsw._symlinkPaths.has(full)) {
+ return true;
+ }
+
+ this.fsw._symlinkPaths.set(full, true);
+}
+
+_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) {
+ // Normalize the directory name on Windows
+ directory = sysPath.join(directory, EMPTY_STR);
+
+ if (!wh.hasGlob) {
+ throttler = this.fsw._throttle('readdir', directory, 1000);
+ if (!throttler) return;
+ }
+
+ const previous = this.fsw._getWatchedDir(wh.path);
+ const current = new Set();
+
+ let stream = this.fsw._readdirp(directory, {
+ fileFilter: entry => wh.filterPath(entry),
+ directoryFilter: entry => wh.filterDir(entry),
+ depth: 0
+ }).on(STR_DATA, async (entry) => {
+ if (this.fsw.closed) {
+ stream = undefined;
+ return;
+ }
+ const item = entry.path;
+ let path = sysPath.join(directory, item);
+ current.add(item);
+
+ if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) {
+ return;
+ }
+
+ if (this.fsw.closed) {
+ stream = undefined;
+ return;
+ }
+ // Files that present in current directory snapshot
+ // but absent in previous are added to watch list and
+ // emit `add` event.
+ if (item === target || !target && !previous.has(item)) {
+ this.fsw._incrReadyCount();
+
+ // ensure relativeness of path is preserved in case of watcher reuse
+ path = sysPath.join(dir, sysPath.relative(dir, path));
+
+ this._addToNodeFs(path, initialAdd, wh, depth + 1);
+ }
+ }).on(EV_ERROR, this._boundHandleError);
+
+ return new Promise(resolve =>
+ stream.once(STR_END, () => {
+ if (this.fsw.closed) {
+ stream = undefined;
+ return;
+ }
+ const wasThrottled = throttler ? throttler.clear() : false;
+
+ resolve();
+
+ // Files that absent in current directory snapshot
+ // but present in previous emit `remove` event
+ // and are removed from @watched[directory].
+ previous.getChildren().filter((item) => {
+ return item !== directory &&
+ !current.has(item) &&
+ // in case of intersecting globs;
+ // a path may have been filtered out of this readdir, but
+ // shouldn't be removed because it matches a different glob
+ (!wh.hasGlob || wh.filterPath({
+ fullPath: sysPath.resolve(directory, item)
+ }));
+ }).forEach((item) => {
+ this.fsw._remove(directory, item);
+ });
+
+ stream = undefined;
+
+ // one more time for any missed in case changes came in extremely quickly
+ if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler);
+ })
+ );
+}
+
+/**
+ * Read directory to add / remove files from `@watched` list and re-read it on change.
+ * @param {String} dir fs path
+ * @param {fs.Stats} stats
+ * @param {Boolean} initialAdd
+ * @param {Number} depth relative to user-supplied path
+ * @param {String} target child path targeted for watch
+ * @param {Object} wh Common watch helpers for this path
+ * @param {String} realpath
+ * @returns {Promise<Function>} closer for the watcher instance.
+ */
+async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) {
+ const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir));
+ const tracked = parentDir.has(sysPath.basename(dir));
+ if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) {
+ if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats);
+ }
+
+ // ensure dir is tracked (harmless if redundant)
+ parentDir.add(sysPath.basename(dir));
+ this.fsw._getWatchedDir(dir);
+ let throttler;
+ let closer;
+
+ const oDepth = this.fsw.options.depth;
+ if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) {
+ if (!target) {
+ await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler);
+ if (this.fsw.closed) return;
+ }
+
+ closer = this._watchWithNodeFs(dir, (dirPath, stats) => {
+ // if current directory is removed, do nothing
+ if (stats && stats.mtimeMs === 0) return;
+
+ this._handleRead(dirPath, false, wh, target, dir, depth, throttler);
+ });
+ }
+ return closer;
+}
+
+/**
+ * Handle added file, directory, or glob pattern.
+ * Delegates call to _handleFile / _handleDir after checks.
+ * @param {String} path to file or ir
+ * @param {Boolean} initialAdd was the file added at watch instantiation?
+ * @param {Object} priorWh depth relative to user-supplied path
+ * @param {Number} depth Child path actually targeted for watch
+ * @param {String=} target Child path actually targeted for watch
+ * @returns {Promise}
+ */
+async _addToNodeFs(path, initialAdd, priorWh, depth, target) {
+ const ready = this.fsw._emitReady;
+ if (this.fsw._isIgnored(path) || this.fsw.closed) {
+ ready();
+ return false;
+ }
+
+ const wh = this.fsw._getWatchHelpers(path, depth);
+ if (!wh.hasGlob && priorWh) {
+ wh.hasGlob = priorWh.hasGlob;
+ wh.globFilter = priorWh.globFilter;
+ wh.filterPath = entry => priorWh.filterPath(entry);
+ wh.filterDir = entry => priorWh.filterDir(entry);
+ }
+
+ // evaluate what is at the path we're being asked to watch
+ try {
+ const stats = await statMethods[wh.statMethod](wh.watchPath);
+ if (this.fsw.closed) return;
+ if (this.fsw._isIgnored(wh.watchPath, stats)) {
+ ready();
+ return false;
+ }
+
+ const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START);
+ let closer;
+ if (stats.isDirectory()) {
+ const absPath = sysPath.resolve(path);
+ const targetPath = follow ? await fsrealpath(path) : path;
+ if (this.fsw.closed) return;
+ closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath);
+ if (this.fsw.closed) return;
+ // preserve this symlink's target path
+ if (absPath !== targetPath && targetPath !== undefined) {
+ this.fsw._symlinkPaths.set(absPath, targetPath);
+ }
+ } else if (stats.isSymbolicLink()) {
+ const targetPath = follow ? await fsrealpath(path) : path;
+ if (this.fsw.closed) return;
+ const parent = sysPath.dirname(wh.watchPath);
+ this.fsw._getWatchedDir(parent).add(wh.watchPath);
+ this.fsw._emit(EV_ADD, wh.watchPath, stats);
+ closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath);
+ if (this.fsw.closed) return;
+
+ // preserve this symlink's target path
+ if (targetPath !== undefined) {
+ this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath);
+ }
+ } else {
+ closer = this._handleFile(wh.watchPath, stats, initialAdd);
+ }
+ ready();
+
+ this.fsw._addPathCloser(path, closer);
+ return false;
+
+ } catch (error) {
+ if (this.fsw._handleError(error)) {
+ ready();
+ return path;
+ }
+ }
+}
+
+}
+
+module.exports = NodeFsHandler;
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/package.json b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/package.json
new file mode 100644
index 00000000000..a1f3434f72d
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/package.json
@@ -0,0 +1,78 @@
+{
+ "name": "chokidar",
+ "description": "Minimal and efficient cross-platform file watching library",
+ "version": "3.5.2",
+ "homepage": "https://github.com/paulmillr/chokidar",
+ "author": "Paul Miller (https://paulmillr.com)",
+ "contributors": [
+ "Paul Miller (https://paulmillr.com)",
+ "Elan Shanker"
+ ],
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "main": "index.js",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "devDependencies": {
+ "@types/node": "^14",
+ "chai": "^4.3",
+ "dtslint": "^3.3.0",
+ "eslint": "^7.0.0",
+ "mocha": "^7.0.0",
+ "nyc": "^15.0.0",
+ "rimraf": "^3.0.0",
+ "sinon": "^9.0.1",
+ "sinon-chai": "^3.3.0",
+ "upath": "^1.2.0"
+ },
+ "files": [
+ "index.js",
+ "lib/*.js",
+ "types/index.d.ts"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/paulmillr/chokidar.git"
+ },
+ "bugs": {
+ "url": "https://github.com/paulmillr/chokidar/issues"
+ },
+ "license": "MIT",
+ "scripts": {
+ "dtslint": "dtslint types",
+ "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .",
+ "mocha": "mocha --exit --timeout 90000",
+ "test": "npm run lint && npm run mocha"
+ },
+ "keywords": [
+ "fs",
+ "watch",
+ "watchFile",
+ "watcher",
+ "watching",
+ "file",
+ "fsevents"
+ ],
+ "types": "./types/index.d.ts",
+ "nyc": {
+ "include": [
+ "index.js",
+ "lib/*.js"
+ ],
+ "reporter": [
+ "html",
+ "text"
+ ]
+ }
+}
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/types/index.d.ts b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/types/index.d.ts
new file mode 100644
index 00000000000..af0b5585e3c
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/types/index.d.ts
@@ -0,0 +1,187 @@
+// TypeScript Version: 3.0
+
+/// <reference types="node" />
+
+import * as fs from "fs";
+import { EventEmitter } from "events";
+
+export class FSWatcher extends EventEmitter implements fs.FSWatcher {
+ options: WatchOptions;
+
+ /**
+ * Constructs a new FSWatcher instance with optional WatchOptions parameter.
+ */
+ constructor(options?: WatchOptions);
+
+ /**
+ * Add files, directories, or glob patterns for tracking. Takes an array of strings or just one
+ * string.
+ */
+ add(paths: string | ReadonlyArray<string>): void;
+
+ /**
+ * Stop watching files, directories, or glob patterns. Takes an array of strings or just one
+ * string.
+ */
+ unwatch(paths: string | ReadonlyArray<string>): void;
+
+ /**
+ * Returns an object representing all the paths on the file system being watched by this
+ * `FSWatcher` instance. The object's keys are all the directories (using absolute paths unless
+ * the `cwd` option was used), and the values are arrays of the names of the items contained in
+ * each directory.
+ */
+ getWatched(): {
+ [directory: string]: string[];
+ };
+
+ /**
+ * Removes all listeners from watched files.
+ */
+ close(): Promise<void>;
+
+ on(event: 'add'|'addDir'|'change', listener: (path: string, stats?: fs.Stats) => void): this;
+
+ on(event: 'all', listener: (eventName: 'add'|'addDir'|'change'|'unlink'|'unlinkDir', path: string, stats?: fs.Stats) => void): this;
+
+ /**
+ * Error occurred
+ */
+ on(event: 'error', listener: (error: Error) => void): this;
+
+ /**
+ * Exposes the native Node `fs.FSWatcher events`
+ */
+ on(event: 'raw', listener: (eventName: string, path: string, details: any) => void): this;
+
+ /**
+ * Fires when the initial scan is complete
+ */
+ on(event: 'ready', listener: () => void): this;
+
+ on(event: 'unlink'|'unlinkDir', listener: (path: string) => void): this;
+
+ on(event: string, listener: (...args: any[]) => void): this;
+}
+
+export interface WatchOptions {
+ /**
+ * Indicates whether the process should continue to run as long as files are being watched. If
+ * set to `false` when using `fsevents` to watch, no more events will be emitted after `ready`,
+ * even if the process continues to run.
+ */
+ persistent?: boolean;
+
+ /**
+ * ([anymatch](https://github.com/micromatch/anymatch)-compatible definition) Defines files/paths to
+ * be ignored. The whole relative or absolute path is tested, not just filename. If a function
+ * with two arguments is provided, it gets called twice per path - once with a single argument
+ * (the path), second time with two arguments (the path and the
+ * [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object of that path).
+ */
+ ignored?: any;
+
+ /**
+ * If set to `false` then `add`/`addDir` events are also emitted for matching paths while
+ * instantiating the watching as chokidar discovers these file paths (before the `ready` event).
+ */
+ ignoreInitial?: boolean;
+
+ /**
+ * When `false`, only the symlinks themselves will be watched for changes instead of following
+ * the link references and bubbling events through the link's path.
+ */
+ followSymlinks?: boolean;
+
+ /**
+ * The base directory from which watch `paths` are to be derived. Paths emitted with events will
+ * be relative to this.
+ */
+ cwd?: string;
+
+ /**
+ * If set to true then the strings passed to .watch() and .add() are treated as literal path
+ * names, even if they look like globs. Default: false.
+ */
+ disableGlobbing?: boolean;
+
+ /**
+ * Whether to use fs.watchFile (backed by polling), or fs.watch. If polling leads to high CPU
+ * utilization, consider setting this to `false`. It is typically necessary to **set this to
+ * `true` to successfully watch files over a network**, and it may be necessary to successfully
+ * watch files in other non-standard situations. Setting to `true` explicitly on OS X overrides
+ * the `useFsEvents` default.
+ */
+ usePolling?: boolean;
+
+ /**
+ * Whether to use the `fsevents` watching interface if available. When set to `true` explicitly
+ * and `fsevents` is available this supercedes the `usePolling` setting. When set to `false` on
+ * OS X, `usePolling: true` becomes the default.
+ */
+ useFsEvents?: boolean;
+
+ /**
+ * If relying upon the [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object that
+ * may get passed with `add`, `addDir`, and `change` events, set this to `true` to ensure it is
+ * provided even in cases where it wasn't already available from the underlying watch events.
+ */
+ alwaysStat?: boolean;
+
+ /**
+ * If set, limits how many levels of subdirectories will be traversed.
+ */
+ depth?: number;
+
+ /**
+ * Interval of file system polling.
+ */
+ interval?: number;
+
+ /**
+ * Interval of file system polling for binary files. ([see list of binary extensions](https://gi
+ * thub.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json))
+ */
+ binaryInterval?: number;
+
+ /**
+ * Indicates whether to watch files that don't have read permissions if possible. If watching
+ * fails due to `EPERM` or `EACCES` with this set to `true`, the errors will be suppressed
+ * silently.
+ */
+ ignorePermissionErrors?: boolean;
+
+ /**
+ * `true` if `useFsEvents` and `usePolling` are `false`). Automatically filters out artifacts
+ * that occur when using editors that use "atomic writes" instead of writing directly to the
+ * source file. If a file is re-added within 100 ms of being deleted, Chokidar emits a `change`
+ * event rather than `unlink` then `add`. If the default of 100 ms does not work well for you,
+ * you can override it by setting `atomic` to a custom value, in milliseconds.
+ */
+ atomic?: boolean | number;
+
+ /**
+ * can be set to an object in order to adjust timing params:
+ */
+ awaitWriteFinish?: AwaitWriteFinishOptions | boolean;
+}
+
+export interface AwaitWriteFinishOptions {
+ /**
+ * Amount of time in milliseconds for a file size to remain constant before emitting its event.
+ */
+ stabilityThreshold?: number;
+
+ /**
+ * File size polling interval.
+ */
+ pollInterval?: number;
+}
+
+/**
+ * produces an instance of `FSWatcher`.
+ */
+export function watch(
+ paths: string | ReadonlyArray<string>,
+ options?: WatchOptions
+): FSWatcher;
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/LICENSE b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/LICENSE
new file mode 100644
index 00000000000..037cbb4e695
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/README.md b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/README.md
new file mode 100644
index 00000000000..465593c9d44
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/README.md
@@ -0,0 +1,122 @@
+# readdirp [![Weekly downloads](https://img.shields.io/npm/dw/readdirp.svg)](https://github.com/paulmillr/readdirp)
+
+Recursive version of [fs.readdir](https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback). Exposes a **stream API** and a **promise API**.
+
+
+```sh
+npm install readdirp
+```
+
+```javascript
+const readdirp = require('readdirp');
+
+// Use streams to achieve small RAM & CPU footprint.
+// 1) Streams example with for-await.
+for await (const entry of readdirp('.')) {
+ const {path} = entry;
+ console.log(`${JSON.stringify({path})}`);
+}
+
+// 2) Streams example, non for-await.
+// Print out all JS files along with their size within the current folder & subfolders.
+readdirp('.', {fileFilter: '*.js', alwaysStat: true})
+ .on('data', (entry) => {
+ const {path, stats: {size}} = entry;
+ console.log(`${JSON.stringify({path, size})}`);
+ })
+ // Optionally call stream.destroy() in `warn()` in order to abort and cause 'close' to be emitted
+ .on('warn', error => console.error('non-fatal error', error))
+ .on('error', error => console.error('fatal error', error))
+ .on('end', () => console.log('done'));
+
+// 3) Promise example. More RAM and CPU than streams / for-await.
+const files = await readdirp.promise('.');
+console.log(files.map(file => file.path));
+
+// Other options.
+readdirp('test', {
+ fileFilter: '*.js',
+ directoryFilter: ['!.git', '!*modules']
+ // directoryFilter: (di) => di.basename.length === 9
+ type: 'files_directories',
+ depth: 1
+});
+```
+
+For more examples, check out `examples` directory.
+
+## API
+
+`const stream = readdirp(root[, options])` — **Stream API**
+
+- Reads given root recursively and returns a `stream` of [entry infos](#entryinfo)
+- Optionally can be used like `for await (const entry of stream)` with node.js 10+ (`asyncIterator`).
+- `on('data', (entry) => {})` [entry info](#entryinfo) for every file / dir.
+- `on('warn', (error) => {})` non-fatal `Error` that prevents a file / dir from being processed. Example: inaccessible to the user.
+- `on('error', (error) => {})` fatal `Error` which also ends the stream. Example: illegal options where passed.
+- `on('end')` — we are done. Called when all entries were found and no more will be emitted.
+- `on('close')` — stream is destroyed via `stream.destroy()`.
+ Could be useful if you want to manually abort even on a non fatal error.
+ At that point the stream is no longer `readable` and no more entries, warning or errors are emitted
+- To learn more about streams, consult the very detailed [nodejs streams documentation](https://nodejs.org/api/stream.html)
+ or the [stream-handbook](https://github.com/substack/stream-handbook)
+
+`const entries = await readdirp.promise(root[, options])` — **Promise API**. Returns a list of [entry infos](#entryinfo).
+
+First argument is awalys `root`, path in which to start reading and recursing into subdirectories.
+
+### options
+
+- `fileFilter: ["*.js"]`: filter to include or exclude files. A `Function`, Glob string or Array of glob strings.
+ - **Function**: a function that takes an entry info as a parameter and returns true to include or false to exclude the entry
+ - **Glob string**: a string (e.g., `*.js`) which is matched using [picomatch](https://github.com/micromatch/picomatch), so go there for more
+ information. Globstars (`**`) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense. Negated globs (as explained in the minimatch documentation) are allowed, e.g., `!*.txt` matches everything but text files.
+ - **Array of glob strings**: either need to be all inclusive or all exclusive (negated) patterns otherwise an error is thrown.
+ `['*.json', '*.js']` includes all JavaScript and Json files.
+ `['!.git', '!node_modules']` includes all directories except the '.git' and 'node_modules'.
+ - Directories that do not pass a filter will not be recursed into.
+- `directoryFilter: ['!.git']`: filter to include/exclude directories found and to recurse into. Directories that do not pass a filter will not be recursed into.
+- `depth: 5`: depth at which to stop recursing even if more subdirectories are found
+- `type: 'files'`: determines if data events on the stream should be emitted for `'files'` (default), `'directories'`, `'files_directories'`, or `'all'`. Setting to `'all'` will also include entries for other types of file descriptors like character devices, unix sockets and named pipes.
+- `alwaysStat: false`: always return `stats` property for every file. Default is `false`, readdirp will return `Dirent` entries. Setting it to `true` can double readdir execution time - use it only when you need file `size`, `mtime` etc. Cannot be enabled on node <10.10.0.
+- `lstat: false`: include symlink entries in the stream along with files. When `true`, `fs.lstat` would be used instead of `fs.stat`
+
+### `EntryInfo`
+
+Has the following properties:
+
+- `path: 'assets/javascripts/react.js'`: path to the file/directory (relative to given root)
+- `fullPath: '/Users/dev/projects/app/assets/javascripts/react.js'`: full path to the file/directory found
+- `basename: 'react.js'`: name of the file/directory
+- `dirent: fs.Dirent`: built-in [dir entry object](https://nodejs.org/api/fs.html#fs_class_fs_dirent) - only with `alwaysStat: false`
+- `stats: fs.Stats`: built in [stat object](https://nodejs.org/api/fs.html#fs_class_fs_stats) - only with `alwaysStat: true`
+
+## Changelog
+
+- 3.5 (Oct 13, 2020) disallows recursive directory-based symlinks.
+ Before, it could have entered infinite loop.
+- 3.4 (Mar 19, 2020) adds support for directory-based symlinks.
+- 3.3 (Dec 6, 2019) stabilizes RAM consumption and enables perf management with `highWaterMark` option. Fixes race conditions related to `for-await` looping.
+- 3.2 (Oct 14, 2019) improves performance by 250% and makes streams implementation more idiomatic.
+- 3.1 (Jul 7, 2019) brings `bigint` support to `stat` output on Windows. This is backwards-incompatible for some cases. Be careful. It you use it incorrectly, you'll see "TypeError: Cannot mix BigInt and other types, use explicit conversions".
+- 3.0 brings huge performance improvements and stream backpressure support.
+- Upgrading 2.x to 3.x:
+ - Signature changed from `readdirp(options)` to `readdirp(root, options)`
+ - Replaced callback API with promise API.
+ - Renamed `entryType` option to `type`
+ - Renamed `entryType: 'both'` to `'files_directories'`
+ - `EntryInfo`
+ - Renamed `stat` to `stats`
+ - Emitted only when `alwaysStat: true`
+ - `dirent` is emitted instead of `stats` by default with `alwaysStat: false`
+ - Renamed `name` to `basename`
+ - Removed `parentDir` and `fullParentDir` properties
+- Supported node.js versions:
+ - 3.x: node 8+
+ - 2.x: node 0.6+
+
+## License
+
+Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (<https://paulmillr.com>)
+
+MIT License, see [LICENSE](LICENSE) file.
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.d.ts b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.d.ts
new file mode 100644
index 00000000000..cbbd76ca176
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.d.ts
@@ -0,0 +1,43 @@
+// TypeScript Version: 3.2
+
+/// <reference types="node" lib="esnext" />
+
+import * as fs from 'fs';
+import { Readable } from 'stream';
+
+declare namespace readdir {
+ interface EntryInfo {
+ path: string;
+ fullPath: string;
+ basename: string;
+ stats?: fs.Stats;
+ dirent?: fs.Dirent;
+ }
+
+ interface ReaddirpOptions {
+ root?: string;
+ fileFilter?: string | string[] | ((entry: EntryInfo) => boolean);
+ directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean);
+ type?: 'files' | 'directories' | 'files_directories' | 'all';
+ lstat?: boolean;
+ depth?: number;
+ alwaysStat?: boolean;
+ }
+
+ interface ReaddirpStream extends Readable, AsyncIterable<EntryInfo> {
+ read(): EntryInfo;
+ [Symbol.asyncIterator](): AsyncIterableIterator<EntryInfo>;
+ }
+
+ function promise(
+ root: string,
+ options?: ReaddirpOptions
+ ): Promise<EntryInfo[]>;
+}
+
+declare function readdir(
+ root: string,
+ options?: readdir.ReaddirpOptions
+): readdir.ReaddirpStream;
+
+export = readdir;
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.js
new file mode 100644
index 00000000000..cf739b2dc5f
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/index.js
@@ -0,0 +1,287 @@
+'use strict';
+
+const fs = require('fs');
+const { Readable } = require('stream');
+const sysPath = require('path');
+const { promisify } = require('util');
+const picomatch = require('picomatch');
+
+const readdir = promisify(fs.readdir);
+const stat = promisify(fs.stat);
+const lstat = promisify(fs.lstat);
+const realpath = promisify(fs.realpath);
+
+/**
+ * @typedef {Object} EntryInfo
+ * @property {String} path
+ * @property {String} fullPath
+ * @property {fs.Stats=} stats
+ * @property {fs.Dirent=} dirent
+ * @property {String} basename
+ */
+
+const BANG = '!';
+const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR';
+const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]);
+const FILE_TYPE = 'files';
+const DIR_TYPE = 'directories';
+const FILE_DIR_TYPE = 'files_directories';
+const EVERYTHING_TYPE = 'all';
+const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE];
+
+const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code);
+const [maj, min] = process.versions.node.split('.').slice(0, 2).map(n => Number.parseInt(n, 10));
+const wantBigintFsStats = process.platform === 'win32' && (maj > 10 || (maj === 10 && min >= 5));
+
+const normalizeFilter = filter => {
+ if (filter === undefined) return;
+ if (typeof filter === 'function') return filter;
+
+ if (typeof filter === 'string') {
+ const glob = picomatch(filter.trim());
+ return entry => glob(entry.basename);
+ }
+
+ if (Array.isArray(filter)) {
+ const positive = [];
+ const negative = [];
+ for (const item of filter) {
+ const trimmed = item.trim();
+ if (trimmed.charAt(0) === BANG) {
+ negative.push(picomatch(trimmed.slice(1)));
+ } else {
+ positive.push(picomatch(trimmed));
+ }
+ }
+
+ if (negative.length > 0) {
+ if (positive.length > 0) {
+ return entry =>
+ positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename));
+ }
+ return entry => !negative.some(f => f(entry.basename));
+ }
+ return entry => positive.some(f => f(entry.basename));
+ }
+};
+
+class ReaddirpStream extends Readable {
+ static get defaultOptions() {
+ return {
+ root: '.',
+ /* eslint-disable no-unused-vars */
+ fileFilter: (path) => true,
+ directoryFilter: (path) => true,
+ /* eslint-enable no-unused-vars */
+ type: FILE_TYPE,
+ lstat: false,
+ depth: 2147483648,
+ alwaysStat: false
+ };
+ }
+
+ constructor(options = {}) {
+ super({
+ objectMode: true,
+ autoDestroy: true,
+ highWaterMark: options.highWaterMark || 4096
+ });
+ const opts = { ...ReaddirpStream.defaultOptions, ...options };
+ const { root, type } = opts;
+
+ this._fileFilter = normalizeFilter(opts.fileFilter);
+ this._directoryFilter = normalizeFilter(opts.directoryFilter);
+
+ const statMethod = opts.lstat ? lstat : stat;
+ // Use bigint stats if it's windows and stat() supports options (node 10+).
+ if (wantBigintFsStats) {
+ this._stat = path => statMethod(path, { bigint: true });
+ } else {
+ this._stat = statMethod;
+ }
+
+ this._maxDepth = opts.depth;
+ this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type);
+ this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type);
+ this._wantsEverything = type === EVERYTHING_TYPE;
+ this._root = sysPath.resolve(root);
+ this._isDirent = ('Dirent' in fs) && !opts.alwaysStat;
+ this._statsProp = this._isDirent ? 'dirent' : 'stats';
+ this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent };
+
+ // Launch stream with one parent, the root dir.
+ this.parents = [this._exploreDir(root, 1)];
+ this.reading = false;
+ this.parent = undefined;
+ }
+
+ async _read(batch) {
+ if (this.reading) return;
+ this.reading = true;
+
+ try {
+ while (!this.destroyed && batch > 0) {
+ const { path, depth, files = [] } = this.parent || {};
+
+ if (files.length > 0) {
+ const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path));
+ for (const entry of await Promise.all(slice)) {
+ if (this.destroyed) return;
+
+ const entryType = await this._getEntryType(entry);
+ if (entryType === 'directory' && this._directoryFilter(entry)) {
+ if (depth <= this._maxDepth) {
+ this.parents.push(this._exploreDir(entry.fullPath, depth + 1));
+ }
+
+ if (this._wantsDir) {
+ this.push(entry);
+ batch--;
+ }
+ } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) {
+ if (this._wantsFile) {
+ this.push(entry);
+ batch--;
+ }
+ }
+ }
+ } else {
+ const parent = this.parents.pop();
+ if (!parent) {
+ this.push(null);
+ break;
+ }
+ this.parent = await parent;
+ if (this.destroyed) return;
+ }
+ }
+ } catch (error) {
+ this.destroy(error);
+ } finally {
+ this.reading = false;
+ }
+ }
+
+ async _exploreDir(path, depth) {
+ let files;
+ try {
+ files = await readdir(path, this._rdOptions);
+ } catch (error) {
+ this._onError(error);
+ }
+ return { files, depth, path };
+ }
+
+ async _formatEntry(dirent, path) {
+ let entry;
+ try {
+ const basename = this._isDirent ? dirent.name : dirent;
+ const fullPath = sysPath.resolve(sysPath.join(path, basename));
+ entry = { path: sysPath.relative(this._root, fullPath), fullPath, basename };
+ entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);
+ } catch (err) {
+ this._onError(err);
+ }
+ return entry;
+ }
+
+ _onError(err) {
+ if (isNormalFlowError(err) && !this.destroyed) {
+ this.emit('warn', err);
+ } else {
+ this.destroy(err);
+ }
+ }
+
+ async _getEntryType(entry) {
+ // entry may be undefined, because a warning or an error were emitted
+ // and the statsProp is undefined
+ const stats = entry && entry[this._statsProp];
+ if (!stats) {
+ return;
+ }
+ if (stats.isFile()) {
+ return 'file';
+ }
+ if (stats.isDirectory()) {
+ return 'directory';
+ }
+ if (stats && stats.isSymbolicLink()) {
+ const full = entry.fullPath;
+ try {
+ const entryRealPath = await realpath(full);
+ const entryRealPathStats = await lstat(entryRealPath);
+ if (entryRealPathStats.isFile()) {
+ return 'file';
+ }
+ if (entryRealPathStats.isDirectory()) {
+ const len = entryRealPath.length;
+ if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath.sep) {
+ const recursiveError = new Error(
+ `Circular symlink detected: "${full}" points to "${entryRealPath}"`
+ );
+ recursiveError.code = RECURSIVE_ERROR_CODE;
+ return this._onError(recursiveError);
+ }
+ return 'directory';
+ }
+ } catch (error) {
+ this._onError(error);
+ }
+ }
+ }
+
+ _includeAsFile(entry) {
+ const stats = entry && entry[this._statsProp];
+
+ return stats && this._wantsEverything && !stats.isDirectory();
+ }
+}
+
+/**
+ * @typedef {Object} ReaddirpArguments
+ * @property {Function=} fileFilter
+ * @property {Function=} directoryFilter
+ * @property {String=} type
+ * @property {Number=} depth
+ * @property {String=} root
+ * @property {Boolean=} lstat
+ * @property {Boolean=} bigint
+ */
+
+/**
+ * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.
+ * @param {String} root Root directory
+ * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth
+ */
+const readdirp = (root, options = {}) => {
+ let type = options.entryType || options.type;
+ if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility
+ if (type) options.type = type;
+ if (!root) {
+ throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)');
+ } else if (typeof root !== 'string') {
+ throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)');
+ } else if (type && !ALL_TYPES.includes(type)) {
+ throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);
+ }
+
+ options.root = root;
+ return new ReaddirpStream(options);
+};
+
+const readdirpPromise = (root, options = {}) => {
+ return new Promise((resolve, reject) => {
+ const files = [];
+ readdirp(root, options)
+ .on('data', entry => files.push(entry))
+ .on('end', () => resolve(files))
+ .on('error', error => reject(error));
+ });
+};
+
+readdirp.promise = readdirpPromise;
+readdirp.ReaddirpStream = ReaddirpStream;
+readdirp.default = readdirp;
+
+module.exports = readdirp;
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/package.json b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/package.json
new file mode 100644
index 00000000000..dba53888eab
--- /dev/null
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/readdirp/package.json
@@ -0,0 +1,122 @@
+{
+ "name": "readdirp",
+ "description": "Recursive version of fs.readdir with streaming API.",
+ "version": "3.6.0",
+ "homepage": "https://github.com/paulmillr/readdirp",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/paulmillr/readdirp.git"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/paulmillr/readdirp/issues"
+ },
+ "author": "Thorsten Lorenz <thlorenz@gmx.de> (thlorenz.com)",
+ "contributors": [
+ "Thorsten Lorenz <thlorenz@gmx.de> (thlorenz.com)",
+ "Paul Miller (https://paulmillr.com)"
+ ],
+ "main": "index.js",
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "files": [
+ "index.js",
+ "index.d.ts"
+ ],
+ "keywords": [
+ "recursive",
+ "fs",
+ "stream",
+ "streams",
+ "readdir",
+ "filesystem",
+ "find",
+ "filter"
+ ],
+ "scripts": {
+ "dtslint": "dtslint",
+ "nyc": "nyc",
+ "mocha": "mocha --exit",
+ "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .",
+ "test": "npm run lint && nyc npm run mocha"
+ },
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "devDependencies": {
+ "@types/node": "^14",
+ "chai": "^4.2",
+ "chai-subset": "^1.6",
+ "dtslint": "^3.3.0",
+ "eslint": "^7.0.0",
+ "mocha": "^7.1.1",
+ "nyc": "^15.0.0",
+ "rimraf": "^3.0.0",
+ "typescript": "^4.0.3"
+ },
+ "nyc": {
+ "reporter": [
+ "html",
+ "text"
+ ]
+ },
+ "eslintConfig": {
+ "root": true,
+ "extends": "eslint:recommended",
+ "parserOptions": {
+ "ecmaVersion": 9,
+ "sourceType": "script"
+ },
+ "env": {
+ "node": true,
+ "es6": true
+ },
+ "rules": {
+ "array-callback-return": "error",
+ "no-empty": [
+ "error",
+ {
+ "allowEmptyCatch": true
+ }
+ ],
+ "no-else-return": [
+ "error",
+ {
+ "allowElseIf": false
+ }
+ ],
+ "no-lonely-if": "error",
+ "no-var": "error",
+ "object-shorthand": "error",
+ "prefer-arrow-callback": [
+ "error",
+ {
+ "allowNamedFunctions": true
+ }
+ ],
+ "prefer-const": [
+ "error",
+ {
+ "ignoreReadBeforeAssign": true
+ }
+ ],
+ "prefer-destructuring": [
+ "error",
+ {
+ "object": true,
+ "array": false
+ }
+ ],
+ "prefer-spread": "error",
+ "prefer-template": "error",
+ "radix": "error",
+ "semi": "error",
+ "strict": "error",
+ "quotes": [
+ "error",
+ "single"
+ ]
+ }
+ }
+}
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/README.md b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/README.md
index 13394748d0e..8736fdb90a3 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/README.md
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/README.md
@@ -5,7 +5,7 @@ Serialize JavaScript to a _superset_ of JSON that includes regular expressions,
[![npm Version][npm-badge]][npm]
[![Dependency Status][david-badge]][david]
-[![Build Status][travis-badge]][travis]
+![Test](https://github.com/yahoo/serialize-javascript/workflows/Test/badge.svg)
## Overview
@@ -137,8 +137,6 @@ See the [LICENSE file][LICENSE] for license text and copyright information.
[npm-badge]: https://img.shields.io/npm/v/serialize-javascript.svg?style=flat-square
[david]: https://david-dm.org/yahoo/serialize-javascript
[david-badge]: https://img.shields.io/david/yahoo/serialize-javascript.svg?style=flat-square
-[travis]: https://travis-ci.org/yahoo/serialize-javascript
-[travis-badge]: https://img.shields.io/travis/yahoo/serialize-javascript.svg?style=flat-square
[express-state]: https://github.com/yahoo/express-state
[JSON.stringify]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
-[LICENSE]: https://github.com/yahoo/serialize-javascript/blob/master/LICENSE
+[LICENSE]: https://github.com/yahoo/serialize-javascript/blob/main/LICENSE
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/index.js b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/index.js
index 640db8f8a30..ab827422928 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/index.js
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/index.js
@@ -11,7 +11,7 @@ var randomBytes = require('randombytes');
// Generate an internal UID to make the regexp pattern harder to guess.
var UID_LENGTH = 16;
var UID = generateUID();
-var PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|A|U|I|B)-' + UID + '-(\\d+)__@"', 'g');
+var PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|A|U|I|B|L)-' + UID + '-(\\d+)__@"', 'g');
var IS_NATIVE_CODE_REGEXP = /\{\s*\[native code\]\s*\}/g;
var IS_PURE_FUNCTION = /function.*?\(/;
@@ -72,6 +72,7 @@ module.exports = function serialize(obj, options) {
var undefs = [];
var infinities= [];
var bigInts = [];
+ var urls = [];
// Returns placeholders for functions and regexps (identified by index)
// which are later replaced by their string representation.
@@ -114,6 +115,10 @@ module.exports = function serialize(obj, options) {
return '@__A-' + UID + '-' + (arrays.push(origValue) - 1) + '__@';
}
}
+
+ if(origValue instanceof URL) {
+ return '@__L-' + UID + '-' + (urls.push(origValue) - 1) + '__@';
+ }
}
if (type === 'function') {
@@ -205,7 +210,7 @@ module.exports = function serialize(obj, options) {
str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);
}
- if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0) {
+ if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0 && urls.length === 0) {
return str;
}
@@ -252,6 +257,10 @@ module.exports = function serialize(obj, options) {
return "BigInt(\"" + bigInts[valueIndex] + "\")";
}
+ if (type === 'L') {
+ return "new URL(\"" + urls[valueIndex].toString() + "\")";
+ }
+
var fn = functions[valueIndex];
return serializeFunc(fn);
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/package.json b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/package.json
index b6446e5226f..caacd5d4ae2 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/package.json
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/node_modules/serialize-javascript/package.json
@@ -1,6 +1,6 @@
{
"name": "serialize-javascript",
- "version": "5.0.1",
+ "version": "6.0.0",
"description": "Serialize JavaScript to a superset of JSON that includes regular expressions and functions.",
"main": "index.js",
"scripts": {
@@ -27,7 +27,7 @@
"devDependencies": {
"benchmark": "^2.1.4",
"chai": "^4.1.0",
- "mocha": "^8.0.1",
+ "mocha": "^9.0.0",
"nyc": "^15.0.0"
},
"dependencies": {
diff --git a/chromium/third_party/devtools-frontend/src/node_modules/mocha/package.json b/chromium/third_party/devtools-frontend/src/node_modules/mocha/package.json
index 86d052f7774..48f7a115958 100644
--- a/chromium/third_party/devtools-frontend/src/node_modules/mocha/package.json
+++ b/chromium/third_party/devtools-frontend/src/node_modules/mocha/package.json
@@ -1,6 +1,6 @@
{
"name": "mocha",
- "version": "9.0.0",
+ "version": "9.1.1",
"description": "simple, flexible, fun test framework",
"keywords": [
"mocha",
@@ -55,7 +55,7 @@
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
- "chokidar": "3.5.1",
+ "chokidar": "3.5.2",
"debug": "4.3.1",
"diff": "5.0.0",
"escape-string-regexp": "4.0.0",
@@ -68,12 +68,12 @@
"minimatch": "3.0.4",
"ms": "2.1.3",
"nanoid": "3.1.23",
- "serialize-javascript": "5.0.1",
+ "serialize-javascript": "6.0.0",
"strip-json-comments": "3.1.1",
"supports-color": "8.1.1",
"which": "2.0.2",
"wide-align": "1.1.3",
- "workerpool": "6.1.4",
+ "workerpool": "6.1.5",
"yargs": "16.2.0",
"yargs-parser": "20.2.4",
"yargs-unparser": "2.0.0"
@@ -81,26 +81,22 @@
"devDependencies": {
"@11ty/eleventy": "^0.11.0",
"@11ty/eleventy-plugin-inclusive-language": "^1.0.0",
- "@babel/preset-env": "7.12.17",
- "@babel/plugin-transform-regenerator": "7.12.1",
- "regenerator-transform": "0.14.5",
- "@babel/runtime": "7.12.5",
- "regenerator-runtime": "0.13.7",
+ "@babel/preset-env": "^7.14.8",
"@mocha/docdash": "^3.0.1",
"@rollup/plugin-babel": "^5.1.0",
"@rollup/plugin-commonjs": "^14.0.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-multi-entry": "^3.0.1",
"@rollup/plugin-node-resolve": "^8.4.0",
- "assetgraph-builder": "^8.1.0",
+ "assetgraph-builder": "^8.2.0",
"autoprefixer": "^9.8.6",
"babel-eslint": "^10.1.0",
- "canvas": "^2.6.1",
+ "canvas": "^2.8.0",
"chai": "^4.2.0",
"coffee-script": "^1.12.7",
"configstore": "^5.0.1",
- "core-js": "^3.6.5",
- "coveralls": "^3.1.0",
+ "core-js": "^3.16.3",
+ "coveralls": "^3.1.1",
"cross-env": "^7.0.2",
"cross-spawn": "^7.0.3",
"eslint": "^7.8.1",
@@ -115,15 +111,15 @@
"fail-on-errors-webpack-plugin": "^3.0.0",
"fs-extra": "^9.0.1",
"husky": "^4.2.5",
- "hyperlink": "^4.5.2",
+ "hyperlink": "^4.7.0",
"jsdoc": "^3.6.5",
"jsdoc-ts-utils": "^1.1.2",
- "karma": "^5.1.1",
+ "karma": "^6.3.4",
"karma-chrome-launcher": "^3.1.0",
"karma-mocha": "^2.0.1",
"karma-mocha-reporter": "^2.2.5",
"karma-requirejs": "^1.1.0",
- "karma-sauce-launcher": "^4.3.4",
+ "karma-sauce-launcher": "^4.3.6",
"lint-staged": "^10.2.11",
"markdown-it": "^11.0.0",
"markdown-it-anchor": "^5.3.0",
@@ -137,6 +133,7 @@
"nyc": "^15.1.0",
"pidtree": "^0.5.0",
"prettier": "^1.19.1",
+ "regenerator-runtime": "0.13.7",
"remark": "^12.0.1",
"remark-github": "^9.0.1",
"remark-inline-links": "^4.0.0",
@@ -161,7 +158,7 @@
"update-notifier": "^4.1.0",
"uslug": "^1.0.4",
"uuid": "^8.3.0",
- "watchify": "^3.11.1",
+ "watchify": "^4.0.0",
"webpack": "^4.44.1",
"webpack-cli": "^3.3.12"
},
@@ -173,6 +170,7 @@
"mocha.css",
"mocha.js",
"mocha.js.map",
+ "mocha-es2018.js",
"browser-entry.js"
],
"browser": {