@aleen42/idea
Version:
The IDEA cypher implementation in JavaScript
1,857 lines (1,374 loc) • 153 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else {
var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(typeof window !== 'undefined' ? window : this, function() {
return /******/ (function() { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ 5241:
/***/ (function(module) {
/*
* Copyright (c) 1999-2003 AppGate Network Security AB. All Rights Reserved.
*
* This file contains Original Code and/or Modifications of Original Code as
* defined in and that are subject to the MindTerm Public Source License,
* Version 2.0, (the 'License'). You may not use this file except in compliance
* with the License.
*
* You should have received a copy of the MindTerm Public Source License
* along with this software; see the file LICENSE. If not, write to
* AppGate Network Security AB, Stora Badhusgatan 18-20, 41121 Goteborg, SWEDEN
*
*****************************************************************************/
/*
* Author's comment: The contents of this file is heavily based upon Bruce
* Schneier's c-code found in his book: Bruce Schneier: Applied Cryptography 2nd
* ed., John Wiley & Sons, 1996
*
* The IDEA mathematical formula may be covered by one or more of the following
* patents: PCT/CH91/00117, EP 0 482 154 B1, US Pat. 5,214,703.
* Hence it might be subject to licensing for commercial use.
*/
var DEFAULT_XOR_KEY = 197; // default xor key using by ENC3
var BLOCK_SIZE = 8; // bytes in a data-block
/**
* @param {Int8Array} key
* @param {number} xorKey
* @returns {exports}
*/
module.exports = function IDEA(key, xorKey) {
if (xorKey === void 0) {
xorKey = DEFAULT_XOR_KEY;
}
this.encryptor = new Engine();
this.decryptor = new Engine();
function Engine() {
var _this = this;
this.keySchedule = [];
this.getBlockSize = function () {
return BLOCK_SIZE;
};
this.processBlock = function (src, inOff, out, outOff) {
ideaCipher(src, inOff, out, outOff, _this.keySchedule);
return BLOCK_SIZE;
};
}
/**
* @param {Int8Array} key
* @param {number} xorKey
*/
this.setKey = function (key, xorKey) {
ideaExpandKey(key, this.encryptor.keySchedule);
ideaInvertKey(this.encryptor.keySchedule, this.decryptor.keySchedule);
xorKey && (this.xorKey = xorKey);
};
/**
* the method to encrypt
* @param {Int8Array | Uint8Array} src
* @returns {Int8Array}
*/
this.encrypt = function (src) {
var len = src.length,
out = new Int8Array(len),
srcOff = 0,
outOff = 0;
if (this.xorKey === -1) {
Padding.noPaddingFinal(this.encryptor, src, srcOff, out, outOff, len);
} else {
Padding.xorPaddingFinal(this.encryptor, this.xorKey, src, srcOff, out, outOff, len);
}
return out;
};
/**
* the method to decrypt
* @param {Int8Array | Uint8Array} src
* @returns {Int8Array}
*/
this.decrypt = function (src) {
var len = src.length,
out = new Int8Array(len),
srcOff = 0,
outOff = 0;
if (this.xorKey === -1) {
Padding.noPaddingFinal(this.decryptor, src, srcOff, out, outOff, len);
} else {
Padding.xorPaddingFinal(this.decryptor, this.xorKey, src, srcOff, out, outOff, len);
}
return out;
};
/**
* @param {Int8Array} key
* @param {int[]} keySchedule
*/
function ideaExpandKey(key, keySchedule) {
var i,
ki = 0,
j;
for (i = 0; i < 8; i++) {
keySchedule[i] = (key[2 * i] & 0xff) << 8 | key[2 * i + 1] & 0xff;
}
for (i = 8, j = 0; i < 52; i++) {
j++;
keySchedule[ki + j + 7] = (keySchedule[ki + (j & 7)] << 9 | keySchedule[ki + (j + 1 & 7)] >>> 7) & 0xffff;
ki += j & 8;
j &= 7;
}
}
/**
* @param {int[]} key
* @param {int[]} keySchedule
*/
function ideaInvertKey(key, keySchedule) {
var i, j, k, t1, t2, t3;
j = 0;
k = 51;
t1 = mulInv(key[j++]);
t2 = -key[j++] & 0xffff;
t3 = -key[j++] & 0xffff;
keySchedule[k--] = mulInv(key[j++]);
keySchedule[k--] = t3;
keySchedule[k--] = t2;
keySchedule[k--] = t1;
for (i = 1; i < 8; i++) {
t1 = key[j++];
keySchedule[k--] = key[j++];
keySchedule[k--] = t1;
t1 = mulInv(key[j++]);
t2 = -key[j++] & 0xffff;
t3 = -key[j++] & 0xffff;
keySchedule[k--] = mulInv(key[j++]);
keySchedule[k--] = t2;
keySchedule[k--] = t3;
keySchedule[k--] = t1;
}
t1 = key[j++];
keySchedule[k--] = key[j++];
keySchedule[k--] = t1;
t1 = mulInv(key[j++]);
t2 = -key[j++] & 0xffff;
t3 = -key[j++] & 0xffff; // noinspection UnusedAssignment
keySchedule[k--] = mulInv(key[j++]);
keySchedule[k--] = t3;
keySchedule[k--] = t2; // noinspection UnusedAssignment
keySchedule[k--] = t1;
}
function ideaCipher(src, srcOffset, out, outOffset, keySchedule) {
var t1 = 0,
t2,
x1,
x2,
x3,
x4,
ki = 0;
var l = getIntMSBO(src, srcOffset);
var r = getIntMSBO(src, srcOffset + 4);
x1 = l >>> 16;
x2 = l & 0xffff;
x3 = r >>> 16;
x4 = r & 0xffff;
for (var round = 0; round < 8; round++) {
x1 = mul(x1 & 0xffff, keySchedule[ki++]);
x2 = x2 + keySchedule[ki++];
x3 = x3 + keySchedule[ki++];
x4 = mul(x4 & 0xffff, keySchedule[ki++]);
t1 = x1 ^ x3;
t2 = x2 ^ x4;
t1 = mul(t1 & 0xffff, keySchedule[ki++]);
t2 = t1 + t2;
t2 = mul(t2 & 0xffff, keySchedule[ki++]);
t1 = t1 + t2;
x1 = x1 ^ t2;
x4 = x4 ^ t1;
t1 = t1 ^ x2;
x2 = t2 ^ x3;
x3 = t1;
}
t2 = x2;
x1 = mul(x1 & 0xffff, keySchedule[ki++]);
x2 = t1 + keySchedule[ki++];
x3 = t2 + keySchedule[ki++] & 0xffff;
x4 = mul(x4 & 0xffff, keySchedule[ki]);
putIntMSBO(x1 << 16 | x2 & 0xffff, out, outOffset);
putIntMSBO(x3 << 16 | x4 & 0xffff, out, outOffset + 4);
}
function mul(a, b) {
var ab = a * b;
if (ab !== 0) {
var lo = ab & 0xffff;
var hi = ab >>> 16 & 0xffff;
return lo - hi + (lo < hi ? 1 : 0);
}
if (a === 0) {
return 1 - b;
}
return 1 - a;
}
function mulInv(x) {
var t0, t1, q, y;
if (x <= 1) {
return x;
}
t1 = Math.floor(0x10001 / x);
y = 0x10001 % x;
if (y === 1) {
return 1 - t1 & 0xffff;
}
t0 = 1;
do {
q = Math.floor(x / y);
x = x % y;
t0 += q * t1;
if (x === 1) {
return t0;
}
q = Math.floor(y / x);
y = y % x;
t1 += q * t0;
} while (y !== 1);
return 1 - t1 & 0xffff;
}
function getIntMSBO(src, srcOffset) {
return (src[srcOffset] & 0xff) << 24 | (src[srcOffset + 1] & 0xff) << 16 | (src[srcOffset + 2] & 0xff) << 8 | src[srcOffset + 3] & 0xff;
}
function putIntMSBO(val, dest, destOffset) {
dest[destOffset] = val >>> 24 & 0xff;
dest[destOffset + 1] = val >>> 16 & 0xff;
dest[destOffset + 2] = val >>> 8 & 0xff;
dest[destOffset + 3] = val & 0xff;
}
this.setKey(key, xorKey);
return this;
};
/**
* @see org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher#engineSetPadding
* BaseBlockCipher.engineSetPadding("NOPADDING")
*/
var Padding = {
noPaddingFinal: function (cipher, src, inOff, out, outOff, len) {
doFinal(cipher, false, 0, src, inOff, out, outOff, len);
},
xorPaddingFinal: function (cipher, xorKey, src, inOff, out, outOff, len) {
doFinal(cipher, true, xorKey, src, inOff, out, outOff, len);
}
};
function doFinal(cipher, xorPadding, xorKey, src, inOff, out, outOff, len) {
var blockSize = cipher.getBlockSize(); // assert Integer.bitCount(blockSize) == 1;
var nBlocks = Math.floor(len / blockSize); // use the cipher algorithm for parts divided by the block size.
for (var i = 0; i < nBlocks; i++) {
cipher.processBlock(src, inOff, out, outOff);
inOff += blockSize;
outOff += blockSize;
len -= blockSize;
}
if (!xorPadding && len > 0) {
throw new Error('no padding, expecting more inputs');
} // use xor encryption for remain parts
for (var _i = 0; _i < len; _i++) {
out[outOff + _i] = src[inOff + _i] ^ xorKey;
}
}
/***/ }),
/***/ 9697:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
__webpack_require__(2409);
/***/ }),
/***/ 2409:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
__webpack_require__(6830);
__webpack_require__(6014);
__webpack_require__(7200);
__webpack_require__(7607);
__webpack_require__(4225);
__webpack_require__(1829);
__webpack_require__(3863);
__webpack_require__(7280);
__webpack_require__(9747);
__webpack_require__(8655);
module.exports = __webpack_require__(6121);
/***/ }),
/***/ 8655:
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
__webpack_require__(8465);
__webpack_require__(6307);
__webpack_require__(6562);
__webpack_require__(5167);
__webpack_require__(7984);
__webpack_require__(4062);
__webpack_require__(2980);
__webpack_require__(6991);
__webpack_require__(7629);
__webpack_require__(1708);
__webpack_require__(7529);
__webpack_require__(6444);
__webpack_require__(6897);
__webpack_require__(3196);
__webpack_require__(3811);
__webpack_require__(1274);
__webpack_require__(1010);
__webpack_require__(9313);
__webpack_require__(485);
__webpack_require__(8491);
__webpack_require__(4230);
__webpack_require__(2826);
__webpack_require__(70);
__webpack_require__(2376);
__webpack_require__(1095);
__webpack_require__(3888);
__webpack_require__(8509);
__webpack_require__(9491);
/***/ }),
/***/ 9257:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var isCallable = __webpack_require__(5222);
var tryToString = __webpack_require__(3120);
var TypeError = global.TypeError; // `Assert: IsCallable(argument) is true`
module.exports = function (argument) {
if (isCallable(argument)) return argument;
throw TypeError(tryToString(argument) + ' is not a function');
};
/***/ }),
/***/ 3834:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var isConstructor = __webpack_require__(3722);
var tryToString = __webpack_require__(3120);
var TypeError = global.TypeError; // `Assert: IsConstructor(argument) is true`
module.exports = function (argument) {
if (isConstructor(argument)) return argument;
throw TypeError(tryToString(argument) + ' is not a constructor');
};
/***/ }),
/***/ 2193:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var isCallable = __webpack_require__(5222);
var String = global.String;
var TypeError = global.TypeError;
module.exports = function (argument) {
if (typeof argument == 'object' || isCallable(argument)) return argument;
throw TypeError("Can't set " + String(argument) + ' as a prototype');
};
/***/ }),
/***/ 9690:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__(1386);
var create = __webpack_require__(3571);
var definePropertyModule = __webpack_require__(7455);
var UNSCOPABLES = wellKnownSymbol('unscopables');
var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables]
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
if (ArrayPrototype[UNSCOPABLES] == undefined) {
definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
configurable: true,
value: create(null)
});
} // add a key to Array.prototype[@@unscopables]
module.exports = function (key) {
ArrayPrototype[UNSCOPABLES][key] = true;
};
/***/ }),
/***/ 680:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var isPrototypeOf = __webpack_require__(8449);
var TypeError = global.TypeError;
module.exports = function (it, Prototype) {
if (isPrototypeOf(Prototype, it)) return it;
throw TypeError('Incorrect invocation');
};
/***/ }),
/***/ 6956:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var isObject = __webpack_require__(2521);
var String = global.String;
var TypeError = global.TypeError; // `Assert: Type(argument) is Object`
module.exports = function (argument) {
if (isObject(argument)) return argument;
throw TypeError(String(argument) + ' is not an object');
};
/***/ }),
/***/ 251:
/***/ (function(module) {
// eslint-disable-next-line es/no-typed-arrays -- safe
module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';
/***/ }),
/***/ 4162:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var NATIVE_ARRAY_BUFFER = __webpack_require__(251);
var DESCRIPTORS = __webpack_require__(7703);
var global = __webpack_require__(6121);
var isCallable = __webpack_require__(5222);
var isObject = __webpack_require__(2521);
var hasOwn = __webpack_require__(9146);
var classof = __webpack_require__(9538);
var tryToString = __webpack_require__(3120);
var createNonEnumerableProperty = __webpack_require__(1471);
var redefine = __webpack_require__(2327);
var defineProperty = (__webpack_require__(7455).f);
var isPrototypeOf = __webpack_require__(8449);
var getPrototypeOf = __webpack_require__(9366);
var setPrototypeOf = __webpack_require__(6594);
var wellKnownSymbol = __webpack_require__(1386);
var uid = __webpack_require__(1735);
var Int8Array = global.Int8Array;
var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
var Uint8ClampedArray = global.Uint8ClampedArray;
var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;
var TypedArray = Int8Array && getPrototypeOf(Int8Array);
var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);
var ObjectPrototype = Object.prototype;
var TypeError = global.TypeError;
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
var TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR'); // Fixing native typed arrays in Opera Presto crashes the browser, see #595
var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
var TYPED_ARRAY_TAG_REQUIRED = 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(it)) return false;
var klass = classof(it);
return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);
};
var isTypedArray = function (it) {
if (!isObject(it)) return false;
var klass = classof(it);
return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass);
};
var aTypedArray = function (it) {
if (isTypedArray(it)) return it;
throw TypeError('Target is not a typed array');
};
var aTypedArrayConstructor = function (C) {
if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;
throw TypeError(tryToString(C) + ' is not a typed array constructor');
};
var exportTypedArrayMethod = function (KEY, property, forced, options) {
if (!DESCRIPTORS) return;
if (forced) for (var ARRAY in TypedArrayConstructorsList) {
var TypedArrayConstructor = global[ARRAY];
if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {
delete TypedArrayConstructor.prototype[KEY];
} catch (error) {
/* empty */
}
}
if (!TypedArrayPrototype[KEY] || forced) {
redefine(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);
}
};
var exportTypedArrayStaticMethod = function (KEY, property, forced) {
var ARRAY, TypedArrayConstructor;
if (!DESCRIPTORS) return;
if (setPrototypeOf) {
if (forced) for (ARRAY in TypedArrayConstructorsList) {
TypedArrayConstructor = global[ARRAY];
if (TypedArrayConstructor && hasOwn(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 && TypedArray[KEY] || property);
} catch (error) {
/* empty */
}
} else return;
}
for (ARRAY in TypedArrayConstructorsList) {
TypedArrayConstructor = global[ARRAY];
if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
redefine(TypedArrayConstructor, KEY, property);
}
}
};
for (NAME in TypedArrayConstructorsList) {
Constructor = global[NAME];
Prototype = Constructor && Constructor.prototype;
if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);else NATIVE_ARRAY_BUFFER_VIEWS = false;
}
for (NAME in BigIntArrayConstructorsList) {
Constructor = global[NAME];
Prototype = Constructor && Constructor.prototype;
if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);
} // WebKit bug - typed arrays constructors prototype is Object.prototype
if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {
// eslint-disable-next-line no-shadow -- safe
TypedArray = function TypedArray() {
throw TypeError('Incorrect invocation');
};
if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);
}
}
if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {
TypedArrayPrototype = TypedArray.prototype;
if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);
}
} // WebKit bug - one more object in Uint8ClampedArray prototype chain
if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {
setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
}
if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
TYPED_ARRAY_TAG_REQUIRED = true;
defineProperty(TypedArrayPrototype, TO_STRING_TAG, {
get: function () {
return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
}
});
for (NAME in TypedArrayConstructorsList) {
if (global[NAME]) {
createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);
}
}
}
module.exports = {
NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,
TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,
aTypedArray: aTypedArray,
aTypedArrayConstructor: aTypedArrayConstructor,
exportTypedArrayMethod: exportTypedArrayMethod,
exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
isView: isView,
isTypedArray: isTypedArray,
TypedArray: TypedArray,
TypedArrayPrototype: TypedArrayPrototype
};
/***/ }),
/***/ 5117:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var uncurryThis = __webpack_require__(7585);
var DESCRIPTORS = __webpack_require__(7703);
var NATIVE_ARRAY_BUFFER = __webpack_require__(251);
var FunctionName = __webpack_require__(3343);
var createNonEnumerableProperty = __webpack_require__(1471);
var redefineAll = __webpack_require__(9757);
var fails = __webpack_require__(2763);
var anInstance = __webpack_require__(680);
var toIntegerOrInfinity = __webpack_require__(4725);
var toLength = __webpack_require__(8331);
var toIndex = __webpack_require__(5639);
var IEEE754 = __webpack_require__(6601);
var getPrototypeOf = __webpack_require__(9366);
var setPrototypeOf = __webpack_require__(6594);
var getOwnPropertyNames = (__webpack_require__(2042).f);
var defineProperty = (__webpack_require__(7455).f);
var arrayFill = __webpack_require__(6922);
var arraySlice = __webpack_require__(1280);
var setToStringTag = __webpack_require__(4849);
var InternalStateModule = __webpack_require__(2995);
var PROPER_FUNCTION_NAME = FunctionName.PROPER;
var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
var getInternalState = InternalStateModule.get;
var setInternalState = InternalStateModule.set;
var ARRAY_BUFFER = 'ArrayBuffer';
var DATA_VIEW = 'DataView';
var PROTOTYPE = 'prototype';
var WRONG_LENGTH = 'Wrong length';
var WRONG_INDEX = 'Wrong index';
var NativeArrayBuffer = global[ARRAY_BUFFER];
var $ArrayBuffer = NativeArrayBuffer;
var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];
var $DataView = global[DATA_VIEW];
var DataViewPrototype = $DataView && $DataView[PROTOTYPE];
var ObjectPrototype = Object.prototype;
var Array = global.Array;
var RangeError = global.RangeError;
var fill = uncurryThis(arrayFill);
var reverse = uncurryThis([].reverse);
var packIEEE754 = IEEE754.pack;
var unpackIEEE754 = IEEE754.unpack;
var packInt8 = function (number) {
return [number & 0xFF];
};
var packInt16 = function (number) {
return [number & 0xFF, number >> 8 & 0xFF];
};
var packInt32 = function (number) {
return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];
};
var unpackInt32 = function (buffer) {
return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];
};
var packFloat32 = function (number) {
return packIEEE754(number, 23, 4);
};
var packFloat64 = function (number) {
return packIEEE754(number, 52, 8);
};
var addGetter = function (Constructor, key) {
defineProperty(Constructor[PROTOTYPE], key, {
get: function () {
return getInternalState(this)[key];
}
});
};
var get = function (view, count, index, isLittleEndian) {
var intIndex = toIndex(index);
var store = getInternalState(view);
if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
var bytes = getInternalState(store.buffer).bytes;
var start = intIndex + store.byteOffset;
var pack = arraySlice(bytes, start, start + count);
return isLittleEndian ? pack : reverse(pack);
};
var set = function (view, count, index, conversion, value, isLittleEndian) {
var intIndex = toIndex(index);
var store = getInternalState(view);
if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
var bytes = getInternalState(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];
}
};
if (!NATIVE_ARRAY_BUFFER) {
$ArrayBuffer = function ArrayBuffer(length) {
anInstance(this, ArrayBufferPrototype);
var byteLength = toIndex(length);
setInternalState(this, {
bytes: fill(Array(byteLength), 0),
byteLength: byteLength
});
if (!DESCRIPTORS) this.byteLength = byteLength;
};
ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];
$DataView = function DataView(buffer, byteOffset, byteLength) {
anInstance(this, DataViewPrototype);
anInstance(buffer, ArrayBufferPrototype);
var bufferLength = getInternalState(buffer).byteLength;
var offset = toIntegerOrInfinity(byteOffset);
if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');
byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
setInternalState(this, {
buffer: buffer,
byteLength: byteLength,
byteOffset: offset
});
if (!DESCRIPTORS) {
this.buffer = buffer;
this.byteLength = byteLength;
this.byteOffset = offset;
}
};
DataViewPrototype = $DataView[PROTOTYPE];
if (DESCRIPTORS) {
addGetter($ArrayBuffer, 'byteLength');
addGetter($DataView, 'buffer');
addGetter($DataView, 'byteLength');
addGetter($DataView, 'byteOffset');
}
redefineAll(DataViewPrototype, {
getInt8: function getInt8(byteOffset) {
return get(this, 1, byteOffset)[0] << 24 >> 24;
},
getUint8: function getUint8(byteOffset) {
return get(this, 1, byteOffset)[0];
},
getInt16: function getInt16(byteOffset
/* , littleEndian */
) {
var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
},
getUint16: function getUint16(byteOffset
/* , littleEndian */
) {
var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
return bytes[1] << 8 | bytes[0];
},
getInt32: function getInt32(byteOffset
/* , littleEndian */
) {
return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));
},
getUint32: function getUint32(byteOffset
/* , littleEndian */
) {
return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;
},
getFloat32: function getFloat32(byteOffset
/* , littleEndian */
) {
return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);
},
getFloat64: function getFloat64(byteOffset
/* , littleEndian */
) {
return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);
},
setInt8: function setInt8(byteOffset, value) {
set(this, 1, byteOffset, packInt8, value);
},
setUint8: function setUint8(byteOffset, value) {
set(this, 1, byteOffset, packInt8, value);
},
setInt16: function setInt16(byteOffset, value
/* , littleEndian */
) {
set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
},
setUint16: function setUint16(byteOffset, value
/* , littleEndian */
) {
set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
},
setInt32: function setInt32(byteOffset, value
/* , littleEndian */
) {
set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
},
setUint32: function setUint32(byteOffset, value
/* , littleEndian */
) {
set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
},
setFloat32: function setFloat32(byteOffset, value
/* , littleEndian */
) {
set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);
},
setFloat64: function setFloat64(byteOffset, value
/* , littleEndian */
) {
set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);
}
});
} else {
var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;
/* eslint-disable no-new -- required for testing */
if (!fails(function () {
NativeArrayBuffer(1);
}) || !fails(function () {
new NativeArrayBuffer(-1);
}) || fails(function () {
new NativeArrayBuffer();
new NativeArrayBuffer(1.5);
new NativeArrayBuffer(NaN);
return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;
})) {
/* eslint-enable no-new -- required for testing */
$ArrayBuffer = function ArrayBuffer(length) {
anInstance(this, ArrayBufferPrototype);
return new NativeArrayBuffer(toIndex(length));
};
$ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;
for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {
if (!((key = keys[j++]) in $ArrayBuffer)) {
createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);
}
}
ArrayBufferPrototype.constructor = $ArrayBuffer;
} else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {
createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);
} // WebKit bug - the same parent prototype for typed arrays and data view
if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {
setPrototypeOf(DataViewPrototype, ObjectPrototype);
} // iOS Safari 7.x bug
var testView = new $DataView(new $ArrayBuffer(2));
var $setInt8 = uncurryThis(DataViewPrototype.setInt8);
testView.setInt8(0, 2147483648);
testView.setInt8(1, 2147483649);
if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(DataViewPrototype, {
setInt8: function setInt8(byteOffset, value) {
$setInt8(this, byteOffset, value << 24 >> 24);
},
setUint8: function setUint8(byteOffset, value) {
$setInt8(this, byteOffset, value << 24 >> 24);
}
}, {
unsafe: true
});
}
setToStringTag($ArrayBuffer, ARRAY_BUFFER);
setToStringTag($DataView, DATA_VIEW);
module.exports = {
ArrayBuffer: $ArrayBuffer,
DataView: $DataView
};
/***/ }),
/***/ 4579:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var toObject = __webpack_require__(4766);
var toAbsoluteIndex = __webpack_require__(1588);
var lengthOfArrayLike = __webpack_require__(5902);
var min = Math.min; // `Array.prototype.copyWithin` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.copywithin
// eslint-disable-next-line es/no-array-prototype-copywithin -- safe
module.exports = [].copyWithin || function copyWithin(target
/* = 0 */
, start
/* = 0, end = @length */
) {
var O = toObject(this);
var len = lengthOfArrayLike(O);
var to = toAbsoluteIndex(target, len);
var from = toAbsoluteIndex(start, len);
var end = arguments.length > 2 ? arguments[2] : undefined;
var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
var inc = 1;
if (from < to && to < from + count) {
inc = -1;
from += count - 1;
to += count - 1;
}
while (count-- > 0) {
if (from in O) O[to] = O[from];else delete O[to];
to += inc;
from += inc;
}
return O;
};
/***/ }),
/***/ 6922:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var toObject = __webpack_require__(4766);
var toAbsoluteIndex = __webpack_require__(1588);
var lengthOfArrayLike = __webpack_require__(5902); // `Array.prototype.fill` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.fill
module.exports = function fill(value
/* , start = 0, end = @length */
) {
var O = toObject(this);
var length = lengthOfArrayLike(O);
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;
};
/***/ }),
/***/ 5078:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var lengthOfArrayLike = __webpack_require__(5902);
module.exports = function (Constructor, list) {
var index = 0;
var length = lengthOfArrayLike(list);
var result = new Constructor(length);
while (length > index) {
result[index] = list[index++];
}
return result;
};
/***/ }),
/***/ 9729:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var toIndexedObject = __webpack_require__(9969);
var toAbsoluteIndex = __webpack_require__(1588);
var lengthOfArrayLike = __webpack_require__(5902); // `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = lengthOfArrayLike(O);
var index = toAbsoluteIndex(fromIndex, length);
var value; // Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare -- NaN check
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check
if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not
} else for (; length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
}
return !IS_INCLUDES && -1;
};
};
module.exports = {
// `Array.prototype.includes` method
// https://tc39.es/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.es/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
/***/ }),
/***/ 5097:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var bind = __webpack_require__(3322);
var uncurryThis = __webpack_require__(7585);
var IndexedObject = __webpack_require__(3169);
var toObject = __webpack_require__(4766);
var lengthOfArrayLike = __webpack_require__(5902);
var arraySpeciesCreate = __webpack_require__(8347);
var push = uncurryThis([].push); // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
var createMethod = 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_REJECT = TYPE == 7;
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
return function ($this, callbackfn, that, specificCreate) {
var O = toObject($this);
var self = IndexedObject(O);
var boundFunction = bind(callbackfn, that);
var length = lengthOfArrayLike(self);
var index = 0;
var create = specificCreate || arraySpeciesCreate;
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];
result = boundFunction(value, index, O);
if (TYPE) {
if (IS_MAP) target[index] = result; // map
else if (result) switch (TYPE) {
case 3:
return true;
// some
case 5:
return value;
// find
case 6:
return index;
// findIndex
case 2:
push(target, value);
// filter
} else switch (TYPE) {
case 4:
return false;
// every
case 7:
push(target, value);
// filterReject
}
}
}
}
return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
};
};
module.exports = {
// `Array.prototype.forEach` method
// https://tc39.es/ecma262/#sec-array.prototype.foreach
forEach: createMethod(0),
// `Array.prototype.map` method
// https://tc39.es/ecma262/#sec-array.prototype.map
map: createMethod(1),
// `Array.prototype.filter` method
// https://tc39.es/ecma262/#sec-array.prototype.filter
filter: createMethod(2),
// `Array.prototype.some` method
// https://tc39.es/ecma262/#sec-array.prototype.some
some: createMethod(3),
// `Array.prototype.every` method
// https://tc39.es/ecma262/#sec-array.prototype.every
every: createMethod(4),
// `Array.prototype.find` method
// https://tc39.es/ecma262/#sec-array.prototype.find
find: createMethod(5),
// `Array.prototype.findIndex` method
// https://tc39.es/ecma262/#sec-array.prototype.findIndex
findIndex: createMethod(6),
// `Array.prototype.filterReject` method
// https://github.com/tc39/proposal-array-filtering
filterReject: createMethod(7)
};
/***/ }),
/***/ 8139:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
/* eslint-disable es/no-array-prototype-lastindexof -- safe */
var apply = __webpack_require__(9102);
var toIndexedObject = __webpack_require__(9969);
var toIntegerOrInfinity = __webpack_require__(4725);
var lengthOfArrayLike = __webpack_require__(5902);
var arrayMethodIsStrict = __webpack_require__(9719);
var min = Math.min;
var $lastIndexOf = [].lastIndexOf;
var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; // `Array.prototype.lastIndexOf` method implementation
// https://tc39.es/ecma262/#sec-array.prototype.lastindexof
module.exports = FORCED ? function lastIndexOf(searchElement
/* , fromIndex = @[*-1] */
) {
// convert -0 to +0
if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;
var O = toIndexedObject(this);
var length = lengthOfArrayLike(O);
var index = length - 1;
if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));
if (index < 0) index = length + index;
for (; index >= 0; index--) {
if (index in O && O[index] === searchElement) return index || 0;
}
return -1;
} : $lastIndexOf;
/***/ }),
/***/ 9719:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var fails = __webpack_require__(2763);
module.exports = 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);
});
};
/***/ }),
/***/ 9856:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var aCallable = __webpack_require__(9257);
var toObject = __webpack_require__(4766);
var IndexedObject = __webpack_require__(3169);
var lengthOfArrayLike = __webpack_require__(5902);
var TypeError = global.TypeError; // `Array.prototype.{ reduce, reduceRight }` methods implementation
var createMethod = function (IS_RIGHT) {
return function (that, callbackfn, argumentsLength, memo) {
aCallable(callbackfn);
var O = toObject(that);
var self = IndexedObject(O);
var length = lengthOfArrayLike(O);
var index = IS_RIGHT ? length - 1 : 0;
var i = IS_RIGHT ? -1 : 1;
if (argumentsLength < 2) while (true) {
if (index in self) {
memo = self[index];
index += i;
break;
}
index += i;
if (IS_RIGHT ? index < 0 : length <= index) {
throw TypeError('Reduce of empty array with no initial value');
}
}
for (; IS_RIGHT ? index >= 0 : length > index; index += i) {
if (index in self) {
memo = callbackfn(memo, self[index], index, O);
}
}
return memo;
};
};
module.exports = {
// `Array.prototype.reduce` method
// https://tc39.es/ecma262/#sec-array.prototype.reduce
left: createMethod(false),
// `Array.prototype.reduceRight` method
// https://tc39.es/ecma262/#sec-array.prototype.reduceright
right: createMethod(true)
};
/***/ }),
/***/ 1280:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var toAbsoluteIndex = __webpack_require__(1588);
var lengthOfArrayLike = __webpack_require__(5902);
var createProperty = __webpack_require__(2385);
var Array = global.Array;
var max = Math.max;
module.exports = function (O, start, end) {
var length = lengthOfArrayLike(O);
var k = toAbsoluteIndex(start, length);
var fin = toAbsoluteIndex(end === undefined ? length : end, length);
var result = Array(max(fin - k, 0));
for (var n = 0; k < fin; k++, n++) {
createProperty(result, n, O[k]);
}
result.length = n;
return result;
};
/***/ }),
/***/ 1939:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var uncurryThis = __webpack_require__(7585);
module.exports = uncurryThis([].slice);
/***/ }),
/***/ 3407:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var arraySlice = __webpack_require__(1280);
var floor = Math.floor;
var mergeSort = function (array, comparefn) {
var length = array.length;
var middle = floor(length / 2);
return length < 8 ? insertionSort(array, comparefn) : merge(array, mergeSort(arraySlice(array, 0, middle), comparefn), mergeSort(arraySlice(array, middle), comparefn), comparefn);
};
var insertionSort = function (array, comparefn) {
var length = array.length;
var i = 1;
var element, j;
while (i < length) {
j = i;
element = array[i];
while (j && comparefn(array[j - 1], element) > 0) {
array[j] = array[--j];
}
if (j !== i++) array[j] = element;
}
return array;
};
var merge = function (array, left, right, comparefn) {
var llength = left.length;
var rlength = right.length;
var lindex = 0;
var rindex = 0;
while (lindex < llength || rindex < rlength) {
array[lindex + rindex] = lindex < llength && rindex < rlength ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] : lindex < llength ? left[lindex++] : right[rindex++];
}
return array;
};
module.exports = mergeSort;
/***/ }),
/***/ 2021:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var isArray = __webpack_require__(3964);
var isConstructor = __webpack_require__(3722);
var isObject = __webpack_require__(2521);
var wellKnownSymbol = __webpack_require__(1386);
var SPECIES = wellKnownSymbol('species');
var Array = global.Array; // a part of `ArraySpeciesCreate` abstract operation
// https://tc39.es/ecma262/#sec-arrayspeciescreate
module.exports = function (originalArray) {
var C;
if (isArray(originalArray)) {
C = originalArray.constructor; // cross-realm fallback
if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
}
return C === undefined ? Array : C;
};
/***/ }),
/***/ 8347:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var arraySpeciesConstructor = __webpack_require__(2021); // `ArraySpeciesCreate` abstract operation
// https://tc39.es/ecma262/#sec-arrayspeciescreate
module.exports = function (originalArray, length) {
return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
};
/***/ }),
/***/ 4684:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var wellKnownSymbol = __webpack_require__(1386);
var ITERATOR = wellKnownSymbol('iterator');
var SAFE_CLOSING = false;
try {
var called = 0;
var iteratorWithReturn = {
next: function () {
return {
done: !!called++
};
},
'return': function () {
SAFE_CLOSING = true;
}
};
iteratorWithReturn[ITERATOR] = 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 */
}
module.exports = function (exec, SKIP_CLOSING) {
if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
var ITERATION_SUPPORT = false;
try {
var object = {};
object[ITERATOR] = function () {
return {
next: function () {
return {
done: ITERATION_SUPPORT = true
};
}
};
};
exec(object);
} catch (error) {
/* empty */
}
return ITERATION_SUPPORT;
};
/***/ }),
/***/ 2849:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var uncurryThis = __webpack_require__(7585);
var toString = uncurryThis({}.toString);
var stringSlice = uncurryThis(''.slice);
module.exports = function (it) {
return stringSlice(toString(it), 8, -1);
};
/***/ }),
/***/ 9538:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var global = __webpack_require__(6121);
var TO_STRING_TAG_SUPPORT = __webpack_require__(6395);
var isCallable = __webpack_require__(5222);
var classofRaw = __webpack_require__(2849);
var wellKnownSymbol = __webpack_require__(1386);
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var Object = global.Object; // ES3 wrong here
var CORRECT_ARGUMENTS = classofRaw(function () {
return arguments;
}()) == 'Arguments'; // fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
try {
return it[key];
} catch (error) {
/* empty */
}
}; // getting tag from ES6+ `Object.prototype.toString`
module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
var O, tag, result;
return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case
: typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case
: CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback
: (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
};
/***/ }),
/***/ 4488:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var hasOwn = __webpack_require__(9146);
var ownKeys = __webpack_require__(9593);
var getOwnPropertyDescriptorModule = __webpack_require__(8769);
var definePropertyModule = __webpack_require__(7455);
module.exports = function (target, source, exceptions) {
var keys = ownKeys(source);
var defineProperty = definePropertyModule.f;
var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
}
};
/***/ }),
/***/ 4264:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var fails = __webpack_require__(2763);
module.exports = !fails(function () {
function F() {
/* empty */
}
F.prototype.constructor = null; // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
return Object.getPrototypeOf(new F()) !== F.prototype;
});
/***/ }),
/***/ 4427:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var IteratorPrototype = (__webpack_require__(4109).IteratorPrototype);
var create = __webpack_require__(3571);
var createPropertyDescriptor = __webpack_require__(5938);
var setToStringTag = __webpack_require__(4849);
var Iterators = __webpack_require__(3403);
var returnThis = function () {
return this;
};
module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {
var TO_STRING_TAG = NAME + ' Iterator';
IteratorConstructor.prototype = create(IteratorPrototype, {
next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next)
});
setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
Iterators[TO_STRING_TAG] = returnThis;
return IteratorConstructor;
};
/***/ }),
/***/ 1471:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var DESCRIPTORS = __webpack_require__(7703);
var definePropertyModule = __webpack_require__(7455);
var createPropertyDescriptor = __webpack_require__(5938);
module.exports = DESCRIPTORS ? function (object, key, value) {
return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
/***/ }),
/***/ 5938:
/***/ (function(module) {
module.exports = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
/***/ }),
/***/ 2385:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var toPropertyKey = __webpack_require__(5224);
var definePropertyModule = __webpack_require__(7455);
var createPropertyDescriptor = __webpack_require__(5938);
module.exports = function (object, key, value) {
var propertyKey = toPropertyKey(key);
if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));else object[propertyKey] = value;
};
/***/ }),
/***/ 4247:
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
var $ = __webpack_require__(7309);
var call = __webpack_require__(7702);
var IS_PURE = __webpack_require__(8451);
var FunctionName = __webpack_require__(3343);
var isCallable = __webpack_require__(5222);
var createIteratorConstructor = __webpack_require__(4427);
var getPrototypeOf = __webpack_require__(9366);
var setPrototypeOf = __webpack_require__(6594);
var setToStringTag = __webpack_require__(4849);
var createNonEnumerableProperty = __webpack_require__(1471);
var redefine = __webpack_require__(2327);
var wellKnownSymbol = __webpack_require__(1386);
var Iterators = __webpack_require__(3403);
var IteratorsCore = __webpack_require__(4109);
var PROPER_FUNCTION_NAME = FunctionName.PROPER;
var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
var IteratorPrototype = IteratorsCore.IteratorPrototype;
var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
var ITERATOR = wellKnownSymbol('iterator');
var KEYS = 'keys';
var VALUES = 'values';
var ENTRIES = 'entries';
var returnThis = function () {
return this;
};
module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
createIteratorConstructor(IteratorConstructor, NAME, next);
var getIterationMethod = function (KIND) {
if (KIND === DEFAULT && defaultIterator) return defaultIterato