vendor: 4,306 bytes, lines 1-128
1var freeGlobal = typeof global == "object" && global && global.Object === Object && global; 2var freeSelf = typeof self == "object" && self && self.Object === Object && self; 3var root = freeGlobal || freeSelf || Function("return this")(); 4var Symbol$1 = root.Symbol; 5var objectProto$g = Object.prototype; 6var hasOwnProperty$d = objectProto$g.hasOwnProperty; 7var nativeObjectToString$1 = objectProto$g.toString; 8var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0; 9function getRawTag(value) { 10 var isOwn = hasOwnProperty$d.call(value, symToStringTag$1), tag = value[symToStringTag$1]; 11 try { 12 value[symToStringTag$1] = void 0; 13 var unmasked = true; 14 } catch (e) { 15 } 16 var result = nativeObjectToString$1.call(value); 17 if (unmasked) { 18 if (isOwn) { 19 value[symToStringTag$1] = tag; 20 } else { 21 delete value[symToStringTag$1]; 22 } 23 } 24 return result; 25} 26var objectProto$f = Object.prototype; 27var nativeObjectToString = objectProto$f.toString; 28function objectToString(value) { 29 return nativeObjectToString.call(value); 30} 31var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; 32var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0; 33function baseGetTag(value) { 34 if (value == null) { 35 return value === void 0 ? undefinedTag : nullTag; 36 } 37 return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); 38} 39function isObjectLike(value) { 40 return value != null && typeof value == "object"; 41} 42var symbolTag$3 = "[object Symbol]"; 43function isSymbol(value) { 44 return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3; 45} 46function arrayMap(array, iteratee) { 47 var index = -1, length = array == null ? 0 : array.length, result = Array(length); 48 while (++index < length) { 49 result[index] = iteratee(array[index], index, array); 50 } 51 return result; 52} 53var isArray = Array.isArray; 54var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0; 55function baseToString(value) { 56 if (typeof value == "string") { 57 return value; 58 } 59 if (isArray(value)) { 60 return arrayMap(value, baseToString) + ""; 61 } 62 if (isSymbol(value)) { 63 return symbolToString ? symbolToString.call(value) : ""; 64 } 65 var result = value + ""; 66 return result == "0" && 1 / value == -Infinity ? "-0" : result; 67} 68var reWhitespace = /\s/; 69function trimmedEndIndex(string) { 70 var index = string.length; 71 while (index-- && reWhitespace.test(string.charAt(index))) { 72 } 73 return index; 74} 75var reTrimStart = /^\s+/; 76function baseTrim(string) { 77 return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; 78} 79function isObject(value) { 80 var type = typeof value; 81 return value != null && (type == "object" || type == "function"); 82} 83var NAN = 0 / 0; 84var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 85var reIsBinary = /^0b[01]+$/i; 86var reIsOctal = /^0o[0-7]+$/i; 87var freeParseInt = parseInt; 88function toNumber(value) { 89 if (typeof value == "number") { 90 return value; 91 } 92 if (isSymbol(value)) { 93 return NAN; 94 } 95 if (isObject(value)) { 96 var other = typeof value.valueOf == "function" ? value.valueOf() : value; 97 value = isObject(other) ? other + "" : other; 98 } 99 if (typeof value != "string") { 100 return value === 0 ? value : +value; 101 } 102 value = baseTrim(value); 103 var isBinary = reIsBinary.test(value); 104 return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; 105} 106var INFINITY$1 = 1 / 0, MAX_INTEGER = 17976931348623157e292; 107function toFinite(value) { 108 if (!value) { 109 return value === 0 ? value : 0; 110 } 111 value = toNumber(value); 112 if (value === INFINITY$1 || value === -INFINITY$1) { 113 var sign = value < 0 ? -1 : 1; 114 return sign * MAX_INTEGER; 115 } 116 return value === value ? value : 0; 117} 118function toInteger(value) { 119 var result = toFinite(value), remainder = result % 1; 120 return result === result ? remainder ? result - remainder : result : 0; 121} 122function identity(value) { 123 return value; 124} 125var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]"; 126function isFunction(value) { 127 if (!isObject(value)) { 128 return false;
129 } 130 var tag = baseGetTag(value); 131 return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag; 132} 133var coreJsData = root["__core-js_shared__"]; 134var maskSrcKey = (function() { 135 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); 136 return uid ? "Symbol(src)_1." + uid : ""; 137})(); 138function isMasked(func) { 139 return !!maskSrcKey && maskSrcKey in func; 140} 141var funcProto$2 = Function.prototype; 142var funcToString$2 = funcProto$2.toString; 143function toSource(func) { 144 if (func != null) { 145 try { 146 return funcToString$2.call(func); 147 } catch (e) { 148 } 149 try { 150 return func + ""; 151 } catch (e) { 152 } 153 } 154 return ""; 155} 156var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 157var reIsHostCtor = /^\[object .+?Constructor\]$/; 158var funcProto$1 = Function.prototype, objectProto$e = Object.prototype; 159var funcToString$1 = funcProto$1.toString; 160var hasOwnProperty$c = objectProto$e.hasOwnProperty; 161var reIsNative = RegExp( 162 "^" + funcToString$1.call(hasOwnProperty$c).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" 163); 164function baseIsNative(value) { 165 if (!isObject(value) || isMasked(value)) { 166 return false; 167 } 168 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 169 return pattern.test(toSource(value)); 170} 171function getValue(object, key) { 172 return object == null ? void 0 : object[key]; 173} 174function getNative(object, key) { 175 var value = getValue(object, key); 176 return baseIsNative(value) ? value : void 0; 177} 178var WeakMap = getNative(root, "WeakMap"); 179var objectCreate = Object.create; 180var baseCreate = /* @__PURE__ */ (function() { 181 function object() { 182 } 183 return function(proto) { 184 if (!isObject(proto)) { 185 return {}; 186 } 187 if (objectCreate) { 188 return objectCreate(proto); 189 } 190 object.prototype = proto; 191 var result = new object(); 192 object.prototype = void 0; 193 return result; 194 }; 195})(); 196function apply(func, thisArg, args) { 197 switch (args.length) { 198 case 0: 199 return func.call(thisArg); 200 case 1: 201 return func.call(thisArg, args[0]); 202 case 2: 203 return func.call(thisArg, args[0], args[1]); 204 case 3: 205 return func.call(thisArg, args[0], args[1], args[2]); 206 } 207 return func.apply(thisArg, args); 208} 209function noop() { 210} 211function copyArray(source, array) { 212 var index = -1, length = source.length; 213 array || (array = Array(length)); 214 while (++index < length) { 215 array[index] = source[index]; 216 } 217 return array; 218} 219var HOT_COUNT = 800, HOT_SPAN = 16; 220var nativeNow = Date.now; 221function shortOut(func) { 222 var count = 0, lastCalled = 0; 223 return function() { 224 var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); 225 lastCalled = stamp; 226 if (remaining > 0) { 227 if (++count >= HOT_COUNT) { 228 return arguments[0]; 229 } 230 } else { 231 count = 0; 232 } 233 return func.apply(void 0, arguments); 234 }; 235} 236function constant(value) { 237 return function() { 238 return value; 239 }; 240} 241var defineProperty = (function() { 242 try { 243 var func = getNative(Object, "defineProperty"); 244 func({}, "", {}); 245 return func; 246 } catch (e) { 247 } 248})(); 249var baseSetToString = !defineProperty ? identity : function(func, string) { 250 return defineProperty(func, "toString", { 251 "configurable": true, 252 "enumerable": false, 253 "value": constant(string), 254 "writable": true 255 }); 256}; 257var setToString = shortOut(baseSetToString); 258function arrayEach(array, iteratee) { 259 var index = -1, length = array == null ? 0 : array.length; 260 while (++index < length) { 261 if (iteratee(array[index], index, array) === false) { 262 break; 263 } 264 } 265 return array; 266} 267function baseFindIndex(array, predicate, fromIndex, fromRight) { 268 var length = array.length, index = fromIndex + -1; 269 while (++index < length) { 270 if (predicate(array[index], index, array)) { 271 return index; 272 } 273 } 274 return -1; 275} 276function baseIsNaN(value) { 277 return value !== value; 278} 279function strictIndexOf(array, value, fromIndex) { 280 var index = fromIndex - 1, length = array.length; 281 while (++index < length) { 282 if (array[index] === value) { 283 return index; 284 } 285 } 286 return -1; 287} 288function baseIndexOf(array, value, fromIndex) {
289 return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); 290} 291function arrayIncludes(array, value) { 292 var length = array == null ? 0 : array.length; 293 return !!length && baseIndexOf(array, value, 0) > -1; 294} 295var MAX_SAFE_INTEGER$1 = 9007199254740991; 296var reIsUint = /^(?:0|[1-9]\d*)$/; 297function isIndex(value, length) { 298 var type = typeof value; 299 length = length == null ? MAX_SAFE_INTEGER$1 : length; 300 return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); 301} 302function baseAssignValue(object, key, value) { 303 if (key == "__proto__" && defineProperty) { 304 defineProperty(object, key, { 305 "configurable": true, 306 "enumerable": true, 307 "value": value, 308 "writable": true 309 }); 310 } else { 311 object[key] = value; 312 } 313} 314function eq(value, other) { 315 return value === other || value !== value && other !== other; 316} 317var objectProto$d = Object.prototype; 318var hasOwnProperty$b = objectProto$d.hasOwnProperty; 319function assignValue(object, key, value) { 320 var objValue = object[key]; 321 if (!(hasOwnProperty$b.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) { 322 baseAssignValue(object, key, value); 323 } 324} 325function copyObject(source, props, object, customizer) { 326 var isNew = !object; 327 object || (object = {}); 328 var index = -1, length = props.length; 329 while (++index < length) { 330 var key = props[index]; 331 var newValue = void 0; 332 if (newValue === void 0) { 333 newValue = source[key]; 334 } 335 if (isNew) { 336 baseAssignValue(object, key, newValue); 337 } else { 338 assignValue(object, key, newValue); 339 } 340 } 341 return object; 342} 343var nativeMax$3 = Math.max; 344function overRest(func, start, transform) { 345 start = nativeMax$3(start === void 0 ? func.length - 1 : start, 0); 346 return function() { 347 var args = arguments, index = -1, length = nativeMax$3(args.length - start, 0), array = Array(length); 348 while (++index < length) { 349 array[index] = args[start + index]; 350 } 351 index = -1; 352 var otherArgs = Array(start + 1); 353 while (++index < start) { 354 otherArgs[index] = args[index]; 355 } 356 otherArgs[start] = transform(array); 357 return apply(func, this, otherArgs); 358 }; 359} 360function baseRest(func, start) { 361 return setToString(overRest(func, start, identity), func + ""); 362} 363var MAX_SAFE_INTEGER = 9007199254740991; 364function isLength(value) { 365 return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 366} 367function isArrayLike(value) { 368 return value != null && isLength(value.length) && !isFunction(value); 369} 370function isIterateeCall(value, index, object) { 371 if (!isObject(object)) { 372 return false; 373 } 374 var type = typeof index; 375 if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) { 376 return eq(object[index], value); 377 } 378 return false; 379} 380function createAssigner(assigner) { 381 return baseRest(function(object, sources) { 382 var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0; 383 customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0; 384 if (guard && isIterateeCall(sources[0], sources[1], guard)) { 385 customizer = length < 3 ? void 0 : customizer; 386 length = 1; 387 } 388 object = Object(object); 389 while (++index < length) { 390 var source = sources[index]; 391 if (source) { 392 assigner(object, source, index, customizer); 393 } 394 } 395 return object; 396 }); 397} 398var objectProto$c = Object.prototype; 399function isPrototype(value) { 400 var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$c; 401 return value === proto; 402} 403function baseTimes(n, iteratee) { 404 var index = -1, result = Array(n); 405 while (++index < n) { 406 result[index] = iteratee(index); 407 } 408 return result; 409} 410var argsTag$3 = "[object Arguments]"; 411function baseIsArguments(value) { 412 return isObjectLike(value) && baseGetTag(value) == argsTag$3; 413} 414var objectProto$b = Object.prototype; 415var hasOwnProperty$a = objectProto$b.hasOwnProperty; 416var propertyIsEnumerable$1 = objectProto$b.propertyIsEnumerable; 417var isArguments = baseIsArguments(/* @__PURE__ */ (function() { 418 return arguments; 419})()) ? baseIsArguments : function(value) { 420 return isObjectLike(value) && hasOwnProperty$a.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee"); 421}; 422function stubFalse() { 423 return false;
vendor: 10,083 bytes, lines 424-687
424} 425var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports; 426var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module; 427var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2; 428var Buffer$1 = moduleExports$2 ? root.Buffer : void 0; 429var nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : void 0; 430var isBuffer = nativeIsBuffer || stubFalse; 431var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$5 = "[object Map]", numberTag$4 = "[object Number]", objectTag$4 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$5 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$2 = "[object WeakMap]"; 432var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$4 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]"; 433var typedArrayTags = {}; 434typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true; 435typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$5] = typedArrayTags[numberTag$4] = typedArrayTags[objectTag$4] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = false; 436function baseIsTypedArray(value) { 437 return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 438} 439function baseUnary(func) { 440 return function(value) { 441 return func(value); 442 }; 443} 444var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports; 445var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module; 446var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1; 447var freeProcess = moduleExports$1 && freeGlobal.process; 448var nodeUtil = (function() { 449 try { 450 var types = freeModule$1 && freeModule$1.require && freeModule$1.require("util").types; 451 if (types) { 452 return types; 453 } 454 return freeProcess && freeProcess.binding && freeProcess.binding("util"); 455 } catch (e) { 456 } 457})(); 458var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 459var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 460var objectProto$a = Object.prototype; 461var hasOwnProperty$9 = objectProto$a.hasOwnProperty; 462function arrayLikeKeys(value, inherited) { 463 var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; 464 for (var key in value) { 465 if ((inherited || hasOwnProperty$9.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. 466 (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. 467 isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. 468 isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. 469 isIndex(key, length)))) { 470 result.push(key); 471 } 472 } 473 return result; 474} 475function overArg(func, transform) { 476 return function(arg) { 477 return func(transform(arg)); 478 }; 479} 480var nativeKeys = overArg(Object.keys, Object); 481var objectProto$9 = Object.prototype; 482var hasOwnProperty$8 = objectProto$9.hasOwnProperty; 483function baseKeys(object) { 484 if (!isPrototype(object)) { 485 return nativeKeys(object); 486 } 487 var result = []; 488 for (var key in Object(object)) { 489 if (hasOwnProperty$8.call(object, key) && key != "constructor") { 490 result.push(key); 491 } 492 } 493 return result; 494} 495function keys(object) { 496 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 497} 498function nativeKeysIn(object) { 499 var result = []; 500 if (object != null) { 501 for (var key in Object(object)) { 502 result.push(key); 503 } 504 } 505 return result; 506} 507var objectProto$8 = Object.prototype; 508var hasOwnProperty$7 = objectProto$8.hasOwnProperty; 509function baseKeysIn(object) { 510 if (!isObject(object)) { 511 return nativeKeysIn(object); 512 } 513 var isProto = isPrototype(object), result = []; 514 for (var key in object) { 515 if (!(key == "constructor" && (isProto || !hasOwnProperty$7.call(object, key)))) { 516 result.push(key); 517 } 518 } 519 return result; 520} 521function keysIn(object) { 522 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 523} 524var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; 525function isKey(value, object) { 526 if (isArray(value)) { 527 return false; 528 } 529 var type = typeof value; 530 if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { 531 return true; 532 } 533 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); 534} 535var nativeCreate = getNative(Object, "create"); 536function hashClear() { 537 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 538 this.size = 0; 539} 540function hashDelete(key) { 541 var result = this.has(key) && delete this.__data__[key]; 542 this.size -= result ? 1 : 0; 543 return result; 544} 545var HASH_UNDEFINED$2 = "__lodash_hash_undefined__"; 546var objectProto$7 = Object.prototype; 547var hasOwnProperty$6 = objectProto$7.hasOwnProperty; 548function hashGet(key) { 549 var data = this.__data__; 550 if (nativeCreate) { 551 var result = data[key]; 552 return result === HASH_UNDEFINED$2 ? void 0 : result; 553 } 554 return hasOwnProperty$6.call(data, key) ? data[key] : void 0; 555} 556var objectProto$6 = Object.prototype; 557var hasOwnProperty$5 = objectProto$6.hasOwnProperty; 558function hashHas(key) { 559 var data = this.__data__; 560 return nativeCreate ? data[key] !== void 0 : hasOwnProperty$5.call(data, key); 561} 562var HASH_UNDEFINED$1 = "__lodash_hash_undefined__"; 563function hashSet(key, value) { 564 var data = this.__data__; 565 this.size += this.has(key) ? 0 : 1; 566 data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value; 567 return this; 568} 569function Hash(entries) { 570 var index = -1, length = entries == null ? 0 : entries.length; 571 this.clear(); 572 while (++index < length) { 573 var entry = entries[index]; 574 this.set(entry[0], entry[1]); 575 } 576} 577Hash.prototype.clear = hashClear; 578Hash.prototype["delete"] = hashDelete; 579Hash.prototype.get = hashGet; 580Hash.prototype.has = hashHas; 581Hash.prototype.set = hashSet; 582function listCacheClear() { 583 this.__data__ = []; 584 this.size = 0; 585} 586function assocIndexOf(array, key) { 587 var length = array.length; 588 while (length--) { 589 if (eq(array[length][0], key)) { 590 return length; 591 } 592 } 593 return -1; 594} 595var arrayProto$1 = Array.prototype; 596var splice$1 = arrayProto$1.splice; 597function listCacheDelete(key) { 598 var data = this.__data__, index = assocIndexOf(data, key); 599 if (index < 0) { 600 return false; 601 } 602 var lastIndex = data.length - 1; 603 if (index == lastIndex) { 604 data.pop(); 605 } else { 606 splice$1.call(data, index, 1); 607 } 608 --this.size; 609 return true; 610} 611function listCacheGet(key) { 612 var data = this.__data__, index = assocIndexOf(data, key); 613 return index < 0 ? void 0 : data[index][1]; 614} 615function listCacheHas(key) { 616 return assocIndexOf(this.__data__, key) > -1; 617} 618function listCacheSet(key, value) { 619 var data = this.__data__, index = assocIndexOf(data, key); 620 if (index < 0) { 621 ++this.size; 622 data.push([key, value]); 623 } else { 624 data[index][1] = value; 625 } 626 return this; 627} 628function ListCache(entries) { 629 var index = -1, length = entries == null ? 0 : entries.length; 630 this.clear(); 631 while (++index < length) { 632 var entry = entries[index]; 633 this.set(entry[0], entry[1]); 634 } 635} 636ListCache.prototype.clear = listCacheClear; 637ListCache.prototype["delete"] = listCacheDelete; 638ListCache.prototype.get = listCacheGet; 639ListCache.prototype.has = listCacheHas; 640ListCache.prototype.set = listCacheSet; 641var Map = getNative(root, "Map"); 642function mapCacheClear() { 643 this.size = 0; 644 this.__data__ = { 645 "hash": new Hash(), 646 "map": new (Map || ListCache)(), 647 "string": new Hash() 648 }; 649} 650function isKeyable(value) { 651 var type = typeof value; 652 return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; 653} 654function getMapData(map, key) { 655 var data = map.__data__; 656 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; 657} 658function mapCacheDelete(key) { 659 var result = getMapData(this, key)["delete"](key); 660 this.size -= result ? 1 : 0; 661 return result; 662} 663function mapCacheGet(key) { 664 return getMapData(this, key).get(key); 665} 666function mapCacheHas(key) { 667 return getMapData(this, key).has(key); 668} 669function mapCacheSet(key, value) { 670 var data = getMapData(this, key), size = data.size; 671 data.set(key, value); 672 this.size += data.size == size ? 0 : 1; 673 return this; 674} 675function MapCache(entries) { 676 var index = -1, length = entries == null ? 0 : entries.length; 677 this.clear(); 678 while (++index < length) { 679 var entry = entries[index]; 680 this.set(entry[0], entry[1]); 681 } 682} 683MapCache.prototype.clear = mapCacheClear; 684MapCache.prototype["delete"] = mapCacheDelete; 685MapCache.prototype.get = mapCacheGet; 686MapCache.prototype.has = mapCacheHas; 687MapCache.prototype.set = mapCacheSet;
688var FUNC_ERROR_TEXT$2 = "Expected a function"; 689function memoize(func, resolver) { 690 if (typeof func != "function" || resolver != null && typeof resolver != "function") { 691 throw new TypeError(FUNC_ERROR_TEXT$2); 692 } 693 var memoized = function() { 694 var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; 695 if (cache.has(key)) { 696 return cache.get(key); 697 } 698 var result = func.apply(this, args); 699 memoized.cache = cache.set(key, result) || cache; 700 return result; 701 }; 702 memoized.cache = new (memoize.Cache || MapCache)(); 703 return memoized; 704} 705memoize.Cache = MapCache; 706var MAX_MEMOIZE_SIZE = 500; 707function memoizeCapped(func) { 708 var result = memoize(func, function(key) { 709 if (cache.size === MAX_MEMOIZE_SIZE) { 710 cache.clear(); 711 } 712 return key; 713 }); 714 var cache = result.cache; 715 return result; 716} 717var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 718var reEscapeChar = /\\(\\)?/g; 719var stringToPath = memoizeCapped(function(string) { 720 var result = []; 721 if (string.charCodeAt(0) === 46) { 722 result.push(""); 723 } 724 string.replace(rePropName, function(match, number, quote, subString) { 725 result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); 726 }); 727 return result; 728}); 729function toString(value) { 730 return value == null ? "" : baseToString(value); 731} 732function castPath(value, object) { 733 if (isArray(value)) { 734 return value; 735 } 736 return isKey(value, object) ? [value] : stringToPath(toString(value)); 737} 738function toKey(value) { 739 if (typeof value == "string" || isSymbol(value)) { 740 return value; 741 } 742 var result = value + ""; 743 return result == "0" && 1 / value == -Infinity ? "-0" : result; 744} 745function baseGet(object, path) { 746 path = castPath(path, object); 747 var index = 0, length = path.length; 748 while (object != null && index < length) { 749 object = object[toKey(path[index++])]; 750 } 751 return index && index == length ? object : void 0; 752} 753function get(object, path, defaultValue) { 754 var result = object == null ? void 0 : baseGet(object, path); 755 return result === void 0 ? defaultValue : result; 756} 757function arrayPush(array, values) { 758 var index = -1, length = values.length, offset = array.length; 759 while (++index < length) { 760 array[offset + index] = values[index]; 761 } 762 return array; 763} 764var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0; 765function isFlattenable(value) { 766 return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); 767} 768function baseFlatten(array, depth, predicate, isStrict, result) { 769 var index = -1, length = array.length; 770 predicate || (predicate = isFlattenable); 771 result || (result = []); 772 while (++index < length) { 773 var value = array[index]; 774 if (predicate(value)) { 775 { 776 arrayPush(result, value); 777 } 778 } else { 779 result[result.length] = value; 780 } 781 } 782 return result; 783} 784function flatten(array) { 785 var length = array == null ? 0 : array.length; 786 return length ? baseFlatten(array) : []; 787} 788function flatRest(func) { 789 return setToString(overRest(func, void 0, flatten), func + ""); 790} 791var getPrototype = overArg(Object.getPrototypeOf, Object); 792var objectTag$3 = "[object Object]"; 793var funcProto = Function.prototype, objectProto$5 = Object.prototype; 794var funcToString = funcProto.toString; 795var hasOwnProperty$4 = objectProto$5.hasOwnProperty; 796var objectCtorString = funcToString.call(Object); 797function isPlainObject(value) { 798 if (!isObjectLike(value) || baseGetTag(value) != objectTag$3) { 799 return false; 800 } 801 var proto = getPrototype(value); 802 if (proto === null) { 803 return true; 804 } 805 var Ctor = hasOwnProperty$4.call(proto, "constructor") && proto.constructor; 806 return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; 807} 808function baseSlice(array, start, end) { 809 var index = -1, length = array.length; 810 if (start < 0) { 811 start = -start > length ? 0 : length + start; 812 } 813 end = end > length ? length : end; 814 if (end < 0) { 815 end += length; 816 } 817 length = start > end ? 0 : end - start >>> 0; 818 start >>>= 0; 819 var result = Array(length); 820 while (++index < length) { 821 result[index] = array[index + start]; 822 } 823 return result; 824} 825function castSlice(array, start, end) { 826 var length = array.length; 827 end = end === void 0 ? length : end; 828 return !start && end >= length ? array : baseSlice(array, start, end); 829} 830var rsAstralRange$2 = "\\ud800-\\udfff", rsComboMarksRange$3 = "\\u0300-\\u036f", reComboHalfMarksRange$3 = "\\ufe20-\\ufe2f", rsComboSymbol
vendor: 13,159 bytes, lines 830-1247
830sRange$3 = "\\u20d0-\\u20ff", rsComboRange$3 = rsComboMarksRange$3 + reComboHalfMarksRange$3 + rsComboSymbolsRange$3, rsVarRange$2 = "\\ufe0e\\ufe0f"; 831var rsZWJ$2 = "\\u200d"; 832var reHasUnicode = RegExp("[" + rsZWJ$2 + rsAstralRange$2 + rsComboRange$3 + rsVarRange$2 + "]"); 833function hasUnicode(string) { 834 return reHasUnicode.test(string); 835} 836function asciiToArray(string) { 837 return string.split(""); 838} 839var rsAstralRange$1 = "\\ud800-\\udfff", rsComboMarksRange$2 = "\\u0300-\\u036f", reComboHalfMarksRange$2 = "\\ufe20-\\ufe2f", rsComboSymbolsRange$2 = "\\u20d0-\\u20ff", rsComboRange$2 = rsComboMarksRange$2 + reComboHalfMarksRange$2 + rsComboSymbolsRange$2, rsVarRange$1 = "\\ufe0e\\ufe0f"; 840var rsAstral = "[" + rsAstralRange$1 + "]", rsCombo$2 = "[" + rsComboRange$2 + "]", rsFitz$1 = "\\ud83c[\\udffb-\\udfff]", rsModifier$1 = "(?:" + rsCombo$2 + "|" + rsFitz$1 + ")", rsNonAstral$1 = "[^" + rsAstralRange$1 + "]", rsRegional$1 = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair$1 = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsZWJ$1 = "\\u200d"; 841var reOptMod$1 = rsModifier$1 + "?", rsOptVar$1 = "[" + rsVarRange$1 + "]?", rsOptJoin$1 = "(?:" + rsZWJ$1 + "(?:" + [rsNonAstral$1, rsRegional$1, rsSurrPair$1].join("|") + ")" + rsOptVar$1 + reOptMod$1 + ")*", rsSeq$1 = rsOptVar$1 + reOptMod$1 + rsOptJoin$1, rsSymbol = "(?:" + [rsNonAstral$1 + rsCombo$2 + "?", rsCombo$2, rsRegional$1, rsSurrPair$1, rsAstral].join("|") + ")"; 842var reUnicode = RegExp(rsFitz$1 + "(?=" + rsFitz$1 + ")|" + rsSymbol + rsSeq$1, "g"); 843function unicodeToArray(string) { 844 return string.match(reUnicode) || []; 845} 846function stringToArray(string) { 847 return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); 848} 849function createCaseFirst(methodName) { 850 return function(string) { 851 string = toString(string); 852 var strSymbols = hasUnicode(string) ? stringToArray(string) : void 0; 853 var chr = strSymbols ? strSymbols[0] : string.charAt(0); 854 var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); 855 return chr[methodName]() + trailing; 856 }; 857} 858var upperFirst = createCaseFirst("toUpperCase"); 859function capitalize(string) { 860 return upperFirst(toString(string).toLowerCase()); 861} 862function arrayReduce(array, iteratee, accumulator, initAccum) { 863 var index = -1, length = array == null ? 0 : array.length; 864 while (++index < length) { 865 accumulator = iteratee(accumulator, array[index], index, array); 866 } 867 return accumulator; 868} 869function basePropertyOf(object) { 870 return function(key) { 871 return object == null ? void 0 : object[key]; 872 }; 873} 874var deburredLetters = { 875 // Latin-1 Supplement block. 876 "Ã": "A", 877 "Ã": "A", 878 "Ã": "A", 879 "Ã": "A", 880 "Ã": "A", 881 "à ": "A", 882 "à ": "a", 883 "á": "a", 884 "â": "a", 885 "ã": "a", 886 "ä": "a", 887 "Ã¥": "a", 888 "Ã": "C", 889 "ç": "c", 890 "Ã": "D", 891 "ð": "d", 892 "Ã": "E", 893 "Ã": "E", 894 "Ã": "E", 895 "Ã": "E", 896 "è": "e", 897 "é": "e", 898 "ê": "e", 899 "ë": "e", 900 "Ã": "I", 901 "Ã": "I", 902 "Ã": "I", 903 "Ã": "I", 904 "ì": "i", 905 "Ã": "i", 906 "î": "i", 907 "ï": "i", 908 "Ã": "N", 909 "ñ": "n", 910 "Ã": "O", 911 "Ã": "O", 912 "Ã": "O", 913 "Ã": "O", 914 "Ã": "O", 915 "Ã": "O", 916 "ò": "o", 917 "ó": "o", 918 "ô": "o", 919 "õ": "o", 920 "ö": "o", 921 "ø": "o", 922 "Ã": "U", 923 "Ã": "U", 924 "Ã": "U", 925 "Ã": "U", 926 "ù": "u", 927 "ú": "u", 928 "û": "u", 929 "ü": "u", 930 "Ã": "Y", 931 "ý": "y", 932 "ÿ": "y", 933 "Ã": "Ae", 934 "æ": "ae", 935 "Ã": "Th", 936 "þ": "th", 937 "Ã": "ss", 938 // Latin Extended-A block. 939 "Ä": "A", 940 "Ä": "A", 941 "Ä": "A", 942 "Ä": "a", 943 "Ä": "a", 944 "Ä ": "a", 945 "Ä": "C", 946 "Ä": "C", 947 "Ä": "C", 948 "Ä": "C", 949 "Ä": "c", 950 "Ä": "c", 951 "Ä": "c", 952 "Ä": "c", 953 "Ä": "D", 954 "Ä": "D", 955 "Ä": "d", 956 "Ä": "d", 957 "Ä": "E", 958 "Ä": "E", 959 "Ä": "E", 960 "Ä": "E", 961 "Ä": "E", 962 "Ä": "e", 963 "Ä": "e", 964 "Ä": "e", 965 "Ä": "e", 966 "Ä": "e", 967 "Ä": "G", 968 "Ä": "G", 969 "Ä ": "G", 970 "Ä¢": "G", 971 "Ä": "g", 972 "Ä": "g", 973 "Ä¡": "g", 974 "Ä£": "g", 975 "Ĥ": "H", 976 "Ħ": "H", 977 "Ä¥": "h", 978 "ħ": "h", 979 "Ĩ": "I", 980 "Ī": "I", 981 "Ĭ": "I", 982 "Ä®": "I", 983 "İ": "I", 984 "Ä©": "i", 985 "Ä«": "i", 986 "Ä": "i", 987 "į": "i", 988 "ı": "i", 989 "Ä´": "J", 990 "ĵ": "j", 991 "Ķ": "K", 992 "Ä·": "k", 993 "ĸ": "k", 994 "Ĺ": "L", 995 "Ä»": "L", 996 "Ľ": "L", 997 "Ä¿": "L", 998 "Å": "L", 999 "ĺ": "l", 1000 "ļ": "l", 1001 "ľ": "l", 1002 "Å": "l", 1003 "Å": "l", 1004 "Å": "N", 1005 "Å ": "N", 1006 "Å": "N", 1007 "Å": "N", 1008 "Å": "n", 1009 "Å": "n", 1010 "Å": "n", 1011 "Å": "n", 1012 "Å": "O", 1013 "Å": "O", 1014 "Å": "O", 1015 "Å": "o", 1016 "Å": "o", 1017 "Å": "o", 1018 "Å": "R", 1019 "Å": "R", 1020 "Å": "R", 1021 "Å": "r", 1022 "Å": "r", 1023 "Å": "r", 1024 "Å": "S", 1025 "Å": "S", 1026 "Å": "S", 1027 "Å ": "S", 1028 "Å": "s", 1029 "Å": "s", 1030 "Å": "s", 1031 "Å¡": "s", 1032 "Å¢": "T", 1033 "Ť": "T", 1034 "Ŧ": "T", 1035 "Å£": "t", 1036 "Å¥": "t", 1037 "ŧ": "t", 1038 "Ũ": "U", 1039 "Ū": "U", 1040 "Ŭ": "U", 1041 "Å®": "U", 1042 "Ű": "U", 1043 "Ų": "U", 1044 "Å©": "u", 1045 "Å«": "u", 1046 "Å": "u", 1047 "ů": "u", 1048 "ű": "u", 1049 "ų": "u", 1050 "Å´": "W", 1051 "ŵ": "w", 1052 "Ŷ": "Y", 1053 "Å·": "y", 1054 "Ÿ": "Y", 1055 "Ź": "Z", 1056 "Å»": "Z", 1057 "Ž": "Z", 1058 "ź": "z", 1059 "ż": "z", 1060 "ž": "z", 1061 "IJ": "IJ", 1062 "ij": "ij", 1063 "Å": "Oe", 1064 "Å": "oe", 1065 "Å": "'n", 1066 "Å¿": "s" 1067}; 1068var deburrLetter = basePropertyOf(deburredLetters); 1069var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; 1070var rsComboMarksRange$1 = "\\u0300-\\u036f", reComboHalfMarksRange$1 = "\\ufe20-\\ufe2f", rsComboSymbolsRange$1 = "\\u20d0-\\u20ff", rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1; 1071var rsCombo$1 = "[" + rsComboRange$1 + "]"; 1072var reComboMark = RegExp(rsCombo$1, "g"); 1073function deburr(string) { 1074 string = toString(string); 1075 return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); 1076} 1077var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; 1078function asciiWords(string) { 1079 return string.match(reAsciiWord) || []; 1080} 1081var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; 1082function hasUnicodeWord(string) { 1083 return reHasUnicodeWord.test(string); 1084} 1085var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; 1086var rsApos$1 = "['â]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; 1087var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos$1 + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos$1 + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq; 1088var reUnicodeWord = RegExp([ 1089 rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", 1090 rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", 1091 rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, 1092 rsUpper + "+" + rsOptContrUpper, 1093 rsOrdUpper, 1094 rsOrdLower, 1095 rsDigits, 1096 rsEmoji 1097].join("|"), "g"); 1098function unicodeWords(string) { 1099 return string.match(reUnicodeWord) || []; 1100} 1101function words(string, pattern, guard) { 1102 string = toString(string); 1103 pattern = pattern; 1104 if (pattern === void 0) { 1105 return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); 1106 } 1107 return string.match(pattern) || []; 1108} 1109var rsApos = "['â]"; 1110var reApos = RegExp(rsApos, "g"); 1111function createCompounder(callback) { 1112 return function(string) { 1113 return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); 1114 }; 1115} 1116var camelCase = createCompounder(function(result, word, index) { 1117 word = word.toLowerCase(); 1118 return result + (index ? capitalize(word) : word); 1119}); 1120function castArray() { 1121 if (!arguments.length) { 1122 return []; 1123 } 1124 var value = arguments[0]; 1125 return isArray(value) ? value : [value]; 1126} 1127var nativeIsFinite = root.isFinite, nativeMin$1 = Math.min; 1128function createRound(methodName) { 1129 var func = Math[methodName]; 1130 return function(number, precision) { 1131 number = toNumber(number); 1132 precision = precision == null ? 0 : nativeMin$1(toInteger(precision), 292); 1133 if (precision && nativeIsFinite(number)) { 1134 var pair = (toString(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); 1135 pair = (toString(value) + "e").split("e"); 1136 return +(pair[0] + "e" + (+pair[1] - precision)); 1137 } 1138 return func(number); 1139 }; 1140} 1141var nativeCeil = Math.ceil, nativeMax$2 = Math.max; 1142function chunk(array, size, guard) { 1143 if (size === void 0) { 1144 size = 1; 1145 } else { 1146 size = nativeMax$2(toInteger(size), 0); 1147 } 1148 var length = array == null ? 0 : array.length; 1149 if (!length || size < 1) { 1150 return []; 1151 } 1152 var index = 0, resIndex = 0, result = Array(nativeCeil(length / size)); 1153 while (index < length) { 1154 result[resIndex++] = baseSlice(array, index, index += size); 1155 } 1156 return result; 1157} 1158function stackClear() { 1159 this.__data__ = new ListCache(); 1160 this.size = 0; 1161} 1162function stackDelete(key) { 1163 var data = this.__data__, result = data["delete"](key); 1164 this.size = data.size; 1165 return result; 1166} 1167function stackGet(key) { 1168 return this.__data__.get(key); 1169} 1170function stackHas(key) { 1171 return this.__data__.has(key); 1172} 1173var LARGE_ARRAY_SIZE$1 = 200; 1174function stackSet(key, value) { 1175 var data = this.__data__; 1176 if (data instanceof ListCache) { 1177 var pairs = data.__data__; 1178 if (!Map || pairs.length < LARGE_ARRAY_SIZE$1 - 1) { 1179 pairs.push([key, value]); 1180 this.size = ++data.size; 1181 return this; 1182 } 1183 data = this.__data__ = new MapCache(pairs); 1184 } 1185 data.set(key, value); 1186 this.size = data.size; 1187 return this; 1188} 1189function Stack(entries) { 1190 var data = this.__data__ = new ListCache(entries); 1191 this.size = data.size; 1192} 1193Stack.prototype.clear = stackClear; 1194Stack.prototype["delete"] = stackDelete; 1195Stack.prototype.get = stackGet; 1196Stack.prototype.has = stackHas; 1197Stack.prototype.set = stackSet; 1198function baseAssign(object, source) { 1199 return object && copyObject(source, keys(source), object); 1200} 1201function baseAssignIn(object, source) { 1202 return object && copyObject(source, keysIn(source), object); 1203} 1204var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; 1205var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; 1206var moduleExports = freeModule && freeModule.exports === freeExports; 1207var Buffer = moduleExports ? root.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0; 1208function cloneBuffer(buffer, isDeep) { 1209 if (isDeep) { 1210 return buffer.slice(); 1211 } 1212 var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); 1213 buffer.copy(result); 1214 return result; 1215} 1216function arrayFilter(array, predicate) { 1217 var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; 1218 while (++index < length) { 1219 var value = array[index]; 1220 if (predicate(value, index, array)) { 1221 result[resIndex++] = value; 1222 } 1223 } 1224 return result; 1225} 1226function stubArray() { 1227 return []; 1228} 1229var objectProto$4 = Object.prototype; 1230var propertyIsEnumerable = objectProto$4.propertyIsEnumerable; 1231var nativeGetSymbols$1 = Object.getOwnPropertySymbols; 1232var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object) { 1233 if (object == null) { 1234 return []; 1235 } 1236 object = Object(object); 1237 return arrayFilter(nativeGetSymbols$1(object), function(symbol) { 1238 return propertyIsEnumerable.call(object, symbol); 1239 }); 1240}; 1241function copySymbols(source, object) { 1242 return copyObject(source, getSymbols(source), object); 1243} 1244var nativeGetSymbols = Object.getOwnPropertySymbols; 1245var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 1246 var result = []; 1247 while (object) {
vendor: 5,513 bytes, lines 1248-1377
1248 arrayPush(result, getSymbols(object)); 1249 object = getPrototype(object); 1250 } 1251 return result; 1252}; 1253function copySymbolsIn(source, object) { 1254 return copyObject(source, getSymbolsIn(source), object); 1255} 1256function baseGetAllKeys(object, keysFunc, symbolsFunc) { 1257 var result = keysFunc(object); 1258 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 1259} 1260function getAllKeys(object) { 1261 return baseGetAllKeys(object, keys, getSymbols); 1262} 1263function getAllKeysIn(object) { 1264 return baseGetAllKeys(object, keysIn, getSymbolsIn); 1265} 1266var DataView = getNative(root, "DataView"); 1267var Promise$1 = getNative(root, "Promise"); 1268var Set = getNative(root, "Set"); 1269var mapTag$4 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$4 = "[object Set]", weakMapTag$1 = "[object WeakMap]"; 1270var dataViewTag$3 = "[object DataView]"; 1271var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap); 1272var getTag = baseGetTag; 1273if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag$3 || Map && getTag(new Map()) != mapTag$4 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set && getTag(new Set()) != setTag$4 || WeakMap && getTag(new WeakMap()) != weakMapTag$1) { 1274 getTag = function(value) { 1275 var result = baseGetTag(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; 1276 if (ctorString) { 1277 switch (ctorString) { 1278 case dataViewCtorString: 1279 return dataViewTag$3; 1280 case mapCtorString: 1281 return mapTag$4; 1282 case promiseCtorString: 1283 return promiseTag; 1284 case setCtorString: 1285 return setTag$4; 1286 case weakMapCtorString: 1287 return weakMapTag$1; 1288 } 1289 } 1290 return result; 1291 }; 1292} 1293var objectProto$3 = Object.prototype; 1294var hasOwnProperty$3 = objectProto$3.hasOwnProperty; 1295function initCloneArray(array) { 1296 var length = array.length, result = new array.constructor(length); 1297 if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) { 1298 result.index = array.index; 1299 result.input = array.input; 1300 } 1301 return result; 1302} 1303var Uint8Array = root.Uint8Array; 1304function cloneArrayBuffer(arrayBuffer) { 1305 var result = new arrayBuffer.constructor(arrayBuffer.byteLength); 1306 new Uint8Array(result).set(new Uint8Array(arrayBuffer)); 1307 return result; 1308} 1309function cloneDataView(dataView, isDeep) { 1310 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; 1311 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); 1312} 1313var reFlags = /\w*$/; 1314function cloneRegExp(regexp) { 1315 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); 1316 result.lastIndex = regexp.lastIndex; 1317 return result; 1318} 1319var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0; 1320function cloneSymbol(symbol) { 1321 return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {}; 1322} 1323function cloneTypedArray(typedArray, isDeep) { 1324 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; 1325 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); 1326} 1327var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$3 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]"; 1328var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]"; 1329function initCloneByTag(object, tag, isDeep) { 1330 var Ctor = object.constructor; 1331 switch (tag) { 1332 case arrayBufferTag$2: 1333 return cloneArrayBuffer(object); 1334 case boolTag$2: 1335 case dateTag$2: 1336 return new Ctor(+object); 1337 case dataViewTag$2: 1338 return cloneDataView(object, isDeep); 1339 case float32Tag$1: 1340 case float64Tag$1: 1341 case int8Tag$1: 1342 case int16Tag$1: 1343 case int32Tag$1: 1344 case uint8Tag$1: 1345 case uint8ClampedTag$1: 1346 case uint16Tag$1: 1347 case uint32Tag$1: 1348 return cloneTypedArray(object, isDeep); 1349 case mapTag$3: 1350 return new Ctor(); 1351 case numberTag$3: 1352 case stringTag$2: 1353 return new Ctor(object); 1354 case regexpTag$2: 1355 return cloneRegExp(object); 1356 case setTag$3: 1357 return new Ctor(); 1358 case symbolTag$2: 1359 return cloneSymbol(object); 1360 } 1361} 1362function initCloneObject(object) { 1363 return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; 1364} 1365var mapTag$2 = "[object Map]"; 1366function baseIsMap(value) { 1367 return isObjectLike(value) && getTag(value) == mapTag$2; 1368} 1369var nodeIsMap = nodeUtil && nodeUtil.isMap; 1370var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; 1371var setTag$2 = "[object Set]"; 1372function baseIsSet(value) { 1373 return isObjectLike(value) && getTag(value) == setTag$2; 1374} 1375var nodeIsSet = nodeUtil && nodeUtil.isSet; 1376var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; 1377var CLONE_DEEP_FLAG$2 = 1, CLONE_FLAT_FLAG$1 = 2, CLONE_SYMBOLS_FLAG$2 = 4;
vendor: 4,168 bytes, lines 1378-1461
1378var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$2 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]"; 1379var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; 1380var cloneableTags = {}; 1381cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$2] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; 1382cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; 1383function baseClone(value, bitmask, customizer, key, object, stack) { 1384 var result, isDeep = bitmask & CLONE_DEEP_FLAG$2, isFlat = bitmask & CLONE_FLAT_FLAG$1, isFull = bitmask & CLONE_SYMBOLS_FLAG$2; 1385 if (customizer) { 1386 result = object ? customizer(value, key, object, stack) : customizer(value); 1387 } 1388 if (result !== void 0) { 1389 return result; 1390 } 1391 if (!isObject(value)) { 1392 return value; 1393 } 1394 var isArr = isArray(value); 1395 if (isArr) { 1396 result = initCloneArray(value); 1397 if (!isDeep) { 1398 return copyArray(value, result); 1399 } 1400 } else { 1401 var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; 1402 if (isBuffer(value)) { 1403 return cloneBuffer(value, isDeep); 1404 } 1405 if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) { 1406 result = isFlat || isFunc ? {} : initCloneObject(value); 1407 if (!isDeep) { 1408 return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value)); 1409 } 1410 } else { 1411 if (!cloneableTags[tag]) { 1412 return object ? value : {}; 1413 } 1414 result = initCloneByTag(value, tag, isDeep); 1415 } 1416 } 1417 stack || (stack = new Stack()); 1418 var stacked = stack.get(value); 1419 if (stacked) { 1420 return stacked; 1421 } 1422 stack.set(value, result); 1423 if (isSet(value)) { 1424 value.forEach(function(subValue) { 1425 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); 1426 }); 1427 } else if (isMap(value)) { 1428 value.forEach(function(subValue, key2) { 1429 result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); 1430 }); 1431 } 1432 var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; 1433 var props = isArr ? void 0 : keysFunc(value); 1434 arrayEach(props || value, function(subValue, key2) { 1435 if (props) { 1436 key2 = subValue; 1437 subValue = value[key2]; 1438 } 1439 assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); 1440 }); 1441 return result; 1442} 1443var CLONE_DEEP_FLAG$1 = 1, CLONE_SYMBOLS_FLAG$1 = 4; 1444function cloneDeep(value) { 1445 return baseClone(value, CLONE_DEEP_FLAG$1 | CLONE_SYMBOLS_FLAG$1); 1446} 1447var HASH_UNDEFINED = "__lodash_hash_undefined__"; 1448function setCacheAdd(value) { 1449 this.__data__.set(value, HASH_UNDEFINED); 1450 return this; 1451} 1452function setCacheHas(value) { 1453 return this.__data__.has(value); 1454} 1455function SetCache(values) { 1456 var index = -1, length = values == null ? 0 : values.length; 1457 this.__data__ = new MapCache(); 1458 while (++index < length) { 1459 this.add(values[index]); 1460 } 1461}
vendor: 1,419 bytes, lines 1462-1499
1462SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 1463SetCache.prototype.has = setCacheHas; 1464function arraySome(array, predicate) { 1465 var index = -1, length = array == null ? 0 : array.length; 1466 while (++index < length) { 1467 if (predicate(array[index], index, array)) { 1468 return true; 1469 } 1470 } 1471 return false; 1472} 1473function cacheHas(cache, key) { 1474 return cache.has(key); 1475} 1476var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2; 1477function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 1478 var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length; 1479 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 1480 return false; 1481 } 1482 var arrStacked = stack.get(array); 1483 var othStacked = stack.get(other); 1484 if (arrStacked && othStacked) { 1485 return arrStacked == other && othStacked == array; 1486 } 1487 var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0; 1488 stack.set(array, other); 1489 stack.set(other, array); 1490 while (++index < arrLength) { 1491 var arrValue = array[index], othValue = other[index]; 1492 if (customizer) { 1493 var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); 1494 } 1495 if (compared !== void 0) { 1496 if (compared) { 1497 continue; 1498 } 1499 result = false;
vendor: 4,223 bytes, lines 1500-1615
1500 break; 1501 } 1502 if (seen) { 1503 if (!arraySome(other, function(othValue2, othIndex) { 1504 if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { 1505 return seen.push(othIndex); 1506 } 1507 })) { 1508 result = false; 1509 break; 1510 } 1511 } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 1512 result = false; 1513 break; 1514 } 1515 } 1516 stack["delete"](array); 1517 stack["delete"](other); 1518 return result; 1519} 1520function mapToArray(map) { 1521 var index = -1, result = Array(map.size); 1522 map.forEach(function(value, key) { 1523 result[++index] = [key, value]; 1524 }); 1525 return result; 1526} 1527function setToArray(set2) { 1528 var index = -1, result = Array(set2.size); 1529 set2.forEach(function(value) { 1530 result[++index] = value; 1531 }); 1532 return result; 1533} 1534var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2; 1535var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag$1 = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]"; 1536var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]"; 1537var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; 1538function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 1539 switch (tag) { 1540 case dataViewTag: 1541 if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { 1542 return false; 1543 } 1544 object = object.buffer; 1545 other = other.buffer; 1546 case arrayBufferTag: 1547 if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { 1548 return false; 1549 } 1550 return true; 1551 case boolTag: 1552 case dateTag: 1553 case numberTag$1: 1554 return eq(+object, +other); 1555 case errorTag: 1556 return object.name == other.name && object.message == other.message; 1557 case regexpTag: 1558 case stringTag: 1559 return object == other + ""; 1560 case mapTag: 1561 var convert = mapToArray; 1562 case setTag: 1563 var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; 1564 convert || (convert = setToArray); 1565 if (object.size != other.size && !isPartial) { 1566 return false; 1567 } 1568 var stacked = stack.get(object); 1569 if (stacked) { 1570 return stacked == other; 1571 } 1572 bitmask |= COMPARE_UNORDERED_FLAG$2; 1573 stack.set(object, other); 1574 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 1575 stack["delete"](object); 1576 return result; 1577 case symbolTag: 1578 if (symbolValueOf) { 1579 return symbolValueOf.call(object) == symbolValueOf.call(other); 1580 } 1581 } 1582 return false; 1583} 1584var COMPARE_PARTIAL_FLAG$3 = 1; 1585var objectProto$2 = Object.prototype; 1586var hasOwnProperty$2 = objectProto$2.hasOwnProperty; 1587function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 1588 var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; 1589 if (objLength != othLength && !isPartial) { 1590 return false; 1591 } 1592 var index = objLength; 1593 while (index--) { 1594 var key = objProps[index]; 1595 if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) { 1596 return false; 1597 } 1598 } 1599 var objStacked = stack.get(object); 1600 var othStacked = stack.get(other); 1601 if (objStacked && othStacked) { 1602 return objStacked == other && othStacked == object; 1603 } 1604 var result = true; 1605 stack.set(object, other); 1606 stack.set(other, object); 1607 var skipCtor = isPartial; 1608 while (++index < objLength) { 1609 key = objProps[index]; 1610 var objValue = object[key], othValue = other[key]; 1611 if (customizer) { 1612 var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); 1613 } 1614 if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { 1615 result = false;
vendor: 4,479 bytes, lines 1616-1736
1616 break; 1617 } 1618 skipCtor || (skipCtor = key == "constructor"); 1619 } 1620 if (result && !skipCtor) { 1621 var objCtor = object.constructor, othCtor = other.constructor; 1622 if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { 1623 result = false; 1624 } 1625 } 1626 stack["delete"](object); 1627 stack["delete"](other); 1628 return result; 1629} 1630var COMPARE_PARTIAL_FLAG$2 = 1; 1631var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]"; 1632var objectProto$1 = Object.prototype; 1633var hasOwnProperty$1 = objectProto$1.hasOwnProperty; 1634function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 1635 var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); 1636 objTag = objTag == argsTag ? objectTag : objTag; 1637 othTag = othTag == argsTag ? objectTag : othTag; 1638 var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; 1639 if (isSameTag && isBuffer(object)) { 1640 if (!isBuffer(other)) { 1641 return false; 1642 } 1643 objIsArr = true; 1644 objIsObj = false; 1645 } 1646 if (isSameTag && !objIsObj) { 1647 stack || (stack = new Stack()); 1648 return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 1649 } 1650 if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { 1651 var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$1.call(other, "__wrapped__"); 1652 if (objIsWrapped || othIsWrapped) { 1653 var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; 1654 stack || (stack = new Stack()); 1655 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 1656 } 1657 } 1658 if (!isSameTag) { 1659 return false; 1660 } 1661 stack || (stack = new Stack()); 1662 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 1663} 1664function baseIsEqual(value, other, bitmask, customizer, stack) { 1665 if (value === other) { 1666 return true; 1667 } 1668 if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { 1669 return value !== value && other !== other; 1670 } 1671 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 1672} 1673var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2; 1674function baseIsMatch(object, source, matchData, customizer) { 1675 var index = matchData.length, length = index; 1676 if (object == null) { 1677 return !length; 1678 } 1679 object = Object(object); 1680 while (index--) { 1681 var data = matchData[index]; 1682 if (data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { 1683 return false; 1684 } 1685 } 1686 while (++index < length) { 1687 data = matchData[index]; 1688 var key = data[0], objValue = object[key], srcValue = data[1]; 1689 if (data[2]) { 1690 if (objValue === void 0 && !(key in object)) { 1691 return false; 1692 } 1693 } else { 1694 var stack = new Stack(); 1695 var result; 1696 if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) { 1697 return false; 1698 } 1699 } 1700 } 1701 return true; 1702} 1703function isStrictComparable(value) { 1704 return value === value && !isObject(value); 1705} 1706function getMatchData(object) { 1707 var result = keys(object), length = result.length; 1708 while (length--) { 1709 var key = result[length], value = object[key]; 1710 result[length] = [key, value, isStrictComparable(value)]; 1711 } 1712 return result; 1713} 1714function matchesStrictComparable(key, srcValue) { 1715 return function(object) { 1716 if (object == null) { 1717 return false; 1718 } 1719 return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); 1720 }; 1721} 1722function baseMatches(source) { 1723 var matchData = getMatchData(source); 1724 if (matchData.length == 1 && matchData[0][2]) { 1725 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 1726 } 1727 return function(object) { 1728 return object === source || baseIsMatch(object, source, matchData); 1729 }; 1730} 1731function baseHasIn(object, key) { 1732 return object != null && key in Object(object); 1733} 1734function hasPath(object, path, hasFunc) { 1735 path = castPath(path, object); 1736 var index = -1, length = path.length, result = false;
1737 while (++index < length) { 1738 var key = toKey(path[index]); 1739 if (!(result = object != null && hasFunc(object, key))) { 1740 break; 1741 } 1742 object = object[key]; 1743 } 1744 if (result || ++index != length) { 1745 return result; 1746 } 1747 length = object == null ? 0 : object.length; 1748 return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); 1749} 1750function hasIn(object, path) { 1751 return object != null && hasPath(object, path, baseHasIn); 1752} 1753var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; 1754function baseMatchesProperty(path, srcValue) { 1755 if (isKey(path) && isStrictComparable(srcValue)) { 1756 return matchesStrictComparable(toKey(path), srcValue); 1757 } 1758 return function(object) { 1759 var objValue = get(object, path); 1760 return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 1761 }; 1762} 1763function baseProperty(key) { 1764 return function(object) { 1765 return object == null ? void 0 : object[key]; 1766 }; 1767} 1768function basePropertyDeep(path) { 1769 return function(object) { 1770 return baseGet(object, path); 1771 }; 1772} 1773function property(path) { 1774 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 1775} 1776function baseIteratee(value) { 1777 if (typeof value == "function") { 1778 return value; 1779 } 1780 if (value == null) { 1781 return identity; 1782 } 1783 if (typeof value == "object") { 1784 return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); 1785 } 1786 return property(value); 1787} 1788function createBaseFor(fromRight) { 1789 return function(object, iteratee, keysFunc) { 1790 var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; 1791 while (length--) { 1792 var key = props[++index]; 1793 if (iteratee(iterable[key], key, iterable) === false) { 1794 break; 1795 } 1796 } 1797 return object; 1798 }; 1799} 1800var baseFor = createBaseFor(); 1801var now = function() { 1802 return root.Date.now(); 1803}; 1804var FUNC_ERROR_TEXT$1 = "Expected a function"; 1805var nativeMax$1 = Math.max, nativeMin = Math.min; 1806function debounce(func, wait, options) { 1807 var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; 1808 if (typeof func != "function") { 1809 throw new TypeError(FUNC_ERROR_TEXT$1); 1810 } 1811 wait = toNumber(wait) || 0; 1812 if (isObject(options)) { 1813 leading = !!options.leading; 1814 maxing = "maxWait" in options; 1815 maxWait = maxing ? nativeMax$1(toNumber(options.maxWait) || 0, wait) : maxWait; 1816 trailing = "trailing" in options ? !!options.trailing : trailing; 1817 } 1818 function invokeFunc(time) { 1819 var args = lastArgs, thisArg = lastThis; 1820 lastArgs = lastThis = void 0; 1821 lastInvokeTime = time; 1822 result = func.apply(thisArg, args); 1823 return result; 1824 } 1825 function leadingEdge(time) { 1826 lastInvokeTime = time; 1827 timerId = setTimeout(timerExpired, wait); 1828 return leading ? invokeFunc(time) : result; 1829 } 1830 function remainingWait(time) { 1831 var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; 1832 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; 1833 } 1834 function shouldInvoke(time) { 1835 var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; 1836 return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; 1837 } 1838 function timerExpired() { 1839 var time = now(); 1840 if (shouldInvoke(time)) { 1841 return trailingEdge(time); 1842 } 1843 timerId = setTimeout(timerExpired, remainingWait(time)); 1844 } 1845 function trailingEdge(time) { 1846 timerId = void 0; 1847 if (trailing && lastArgs) { 1848 return invokeFunc(time); 1849 } 1850 lastArgs = lastThis = void 0; 1851 return result; 1852 } 1853 function cancel() { 1854 if (timerId !== void 0) { 1855 clearTimeout(timerId); 1856 } 1857 lastInvokeTime = 0; 1858 lastArgs = lastCallTime = lastThis = timerId = void 0; 1859 } 1860 function flush() { 1861 return timerId === void 0 ? result : trailingEdge(now()); 1862 } 1863 function debounced() { 1864 var time = now(), isInvoking = shouldInvoke(time); 1865 lastArgs = arguments; 1866 lastThis = this; 1867 lastCallTime = time; 1868 if (isInvoking) { 1869 if (timerId === void 0) { 1870 return leadingEdge(lastCallTime); 1871 } 1872 if (maxing) { 1873 clearTimeout(timerId); 1874 timerId = setTimeout(timerExpired, wait); 1875 return invokeFunc(lastCallTime); 1876 } 1877 } 1878 if (timerId === void 0) { 1879 timerId = setTimeout(timerExpired, wait); 1880 } 1881 return result; 1882 } 1883 debounced.cancel = cancel; 1884 debounced.flush = flush; 1885 return debounced; 1886} 1887function assignMergeValue(object, key, value) { 1888 if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) { 1889 baseAssignValue(object, key, value); 1890 } 1891} 1892function isArrayLikeObject(value) { 1893 return isObjectLike(value) && isArrayLike(value); 1894} 1895function safeGet(object, key) { 1896 if (key === "constructor" && typeof object[key] === "function") { 1897 return; 1898 } 1899 if (key == "__proto__") { 1900 return; 1901 } 1902 return object[key]; 1903} 1904function toPlainObject(value) { 1905 return copyObject(value, keysIn(value)); 1906} 1907function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { 1908 var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); 1909 if (stacked) { 1910 assignMergeValue(object, key, stacked); 1911 return; 1912 } 1913 var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0; 1914 var isCommon = newValue === void 0; 1915 if (isCommon) { 1916 var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); 1917 newValue = srcValue; 1918 if (isArr || isBuff || isTyped) { 1919 if (isArray(objValue)) { 1920 newValue = objValue; 1921 } else if (isArrayLikeObject(objValue)) { 1922 newValue = copyArray(objValue); 1923 } else if (isBuff) { 1924 isCommon = false;
vendor: 6,373 bytes, lines 1925-2133
1925 newValue = cloneBuffer(srcValue, true); 1926 } else if (isTyped) { 1927 isCommon = false; 1928 newValue = cloneTypedArray(srcValue, true); 1929 } else { 1930 newValue = []; 1931 } 1932 } else if (isPlainObject(srcValue) || isArguments(srcValue)) { 1933 newValue = objValue; 1934 if (isArguments(objValue)) { 1935 newValue = toPlainObject(objValue); 1936 } else if (!isObject(objValue) || isFunction(objValue)) { 1937 newValue = initCloneObject(srcValue); 1938 } 1939 } else { 1940 isCommon = false; 1941 } 1942 } 1943 if (isCommon) { 1944 stack.set(srcValue, newValue); 1945 mergeFunc(newValue, srcValue, srcIndex, customizer, stack); 1946 stack["delete"](srcValue); 1947 } 1948 assignMergeValue(object, key, newValue); 1949} 1950function baseMerge(object, source, srcIndex, customizer, stack) { 1951 if (object === source) { 1952 return; 1953 } 1954 baseFor(source, function(srcValue, key) { 1955 stack || (stack = new Stack()); 1956 if (isObject(srcValue)) { 1957 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); 1958 } else { 1959 var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0; 1960 if (newValue === void 0) { 1961 newValue = srcValue; 1962 } 1963 assignMergeValue(object, key, newValue); 1964 } 1965 }, keysIn); 1966} 1967var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { 1968 baseMerge(object, source, srcIndex, customizer); 1969}); 1970function last(array) { 1971 var length = array == null ? 0 : array.length; 1972 return length ? array[length - 1] : void 0; 1973} 1974function createFind(findIndexFunc) { 1975 return function(collection, predicate, fromIndex) { 1976 var iterable = Object(collection); 1977 if (!isArrayLike(collection)) { 1978 var iteratee = baseIteratee(predicate); 1979 collection = keys(collection); 1980 predicate = function(key) { 1981 return iteratee(iterable[key], key, iterable); 1982 }; 1983 } 1984 var index = findIndexFunc(collection, predicate, fromIndex); 1985 return index > -1 ? iterable[iteratee ? collection[index] : index] : void 0; 1986 }; 1987} 1988var nativeMax = Math.max; 1989function findIndex(array, predicate, fromIndex) { 1990 var length = array == null ? 0 : array.length; 1991 if (!length) { 1992 return -1; 1993 } 1994 var index = fromIndex == null ? 0 : toInteger(fromIndex); 1995 if (index < 0) { 1996 index = nativeMax(length + index, 0); 1997 } 1998 return baseFindIndex(array, baseIteratee(predicate), index); 1999} 2000var find = createFind(findIndex); 2001function parent(object, path) { 2002 return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); 2003} 2004function isEqual(value, other) { 2005 return baseIsEqual(value, other); 2006} 2007var numberTag = "[object Number]"; 2008function isNumber(value) { 2009 return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; 2010} 2011var merge = createAssigner(function(object, source, srcIndex) { 2012 baseMerge(object, source, srcIndex); 2013}); 2014var objectProto = Object.prototype; 2015var hasOwnProperty = objectProto.hasOwnProperty; 2016function baseUnset(object, path) { 2017 path = castPath(path, object); 2018 var index = -1, length = path.length; 2019 if (!length) { 2020 return true; 2021 } 2022 while (++index < length) { 2023 var key = toKey(path[index]); 2024 if (key === "__proto__" && !hasOwnProperty.call(object, "__proto__")) { 2025 return false; 2026 } 2027 if ((key === "constructor" || key === "prototype") && index < length - 1) { 2028 return false; 2029 } 2030 } 2031 var obj = parent(object, path); 2032 return obj == null || delete obj[toKey(last(path))]; 2033} 2034function customOmitClone(value) { 2035 return isPlainObject(value) ? void 0 : value; 2036} 2037var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; 2038var omit = flatRest(function(object, paths) { 2039 var result = {}; 2040 if (object == null) { 2041 return result; 2042 } 2043 var isDeep = false; 2044 paths = arrayMap(paths, function(path) { 2045 path = castPath(path, object); 2046 isDeep || (isDeep = path.length > 1); 2047 return path; 2048 }); 2049 copyObject(object, getAllKeysIn(object), result); 2050 if (isDeep) { 2051 result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); 2052 } 2053 var length = paths.length; 2054 while (length--) { 2055 baseUnset(result, paths[length]); 2056 } 2057 return result; 2058}); 2059function baseSet(object, path, value, customizer) { 2060 if (!isObject(object)) { 2061 return object; 2062 } 2063 path = castPath(path, object); 2064 var index = -1, length = path.length, lastIndex = length - 1, nested = object; 2065 while (nested != null && ++index < length) { 2066 var key = toKey(path[index]), newValue = value; 2067 if (key === "__proto__" || key === "constructor" || key === "prototype") { 2068 return object; 2069 } 2070 if (index != lastIndex) { 2071 var objValue = nested[key]; 2072 newValue = void 0; 2073 if (newValue === void 0) { 2074 newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; 2075 } 2076 } 2077 assignValue(nested, key, newValue); 2078 nested = nested[key]; 2079 } 2080 return object; 2081} 2082function basePickBy(object, paths, predicate) { 2083 var index = -1, length = paths.length, result = {}; 2084 while (++index < length) { 2085 var path = paths[index], value = baseGet(object, path); 2086 if (predicate(value, path)) { 2087 baseSet(result, castPath(path, object), value); 2088 } 2089 } 2090 return result; 2091} 2092function basePick(object, paths) { 2093 return basePickBy(object, paths, function(value, path) { 2094 return hasIn(object, path); 2095 }); 2096} 2097var pick = flatRest(function(object, paths) { 2098 return object == null ? {} : basePick(object, paths); 2099}); 2100var arrayProto = Array.prototype; 2101var splice = arrayProto.splice; 2102function basePullAt(array, indexes) { 2103 var length = array ? indexes.length : 0, lastIndex = length - 1; 2104 while (length--) { 2105 var index = indexes[length]; 2106 if (length == lastIndex || index !== previous) { 2107 var previous = index; 2108 if (isIndex(index)) { 2109 splice.call(array, index, 1); 2110 } else { 2111 baseUnset(array, index); 2112 } 2113 } 2114 } 2115 return array; 2116} 2117function remove(array, predicate) { 2118 var result = []; 2119 if (!(array && array.length)) { 2120 return result; 2121 } 2122 var index = -1, indexes = [], length = array.length; 2123 predicate = baseIteratee(predicate); 2124 while (++index < length) { 2125 var value = array[index]; 2126 if (predicate(value, index, array)) { 2127 result.push(value); 2128 indexes.push(index); 2129 } 2130 } 2131 basePullAt(array, indexes); 2132 return result; 2133}
vendor: 7,446 bytes, lines 2134-2406
2134var round = createRound("round"); 2135function set(object, path, value) { 2136 return object == null ? object : baseSet(object, path, value); 2137} 2138var snakeCase = createCompounder(function(result, word, index) { 2139 return result + (index ? "_" : "") + word.toLowerCase(); 2140}); 2141var FUNC_ERROR_TEXT = "Expected a function"; 2142function throttle(func, wait, options) { 2143 var leading = true, trailing = true; 2144 if (typeof func != "function") { 2145 throw new TypeError(FUNC_ERROR_TEXT); 2146 } 2147 if (isObject(options)) { 2148 leading = "leading" in options ? !!options.leading : leading; 2149 trailing = "trailing" in options ? !!options.trailing : trailing; 2150 } 2151 return debounce(func, wait, { 2152 "leading": leading, 2153 "maxWait": wait, 2154 "trailing": trailing 2155 }); 2156} 2157var INFINITY = 1 / 0; 2158var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop : function(values) { 2159 return new Set(values); 2160}; 2161var LARGE_ARRAY_SIZE = 200; 2162function baseUniq(array, iteratee, comparator) { 2163 var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result; 2164 if (length >= LARGE_ARRAY_SIZE) { 2165 var set2 = iteratee ? null : createSet(array); 2166 if (set2) { 2167 return setToArray(set2); 2168 } 2169 isCommon = false; 2170 includes = cacheHas; 2171 seen = new SetCache(); 2172 } else { 2173 seen = iteratee ? [] : result; 2174 } 2175 outer: 2176 while (++index < length) { 2177 var value = array[index], computed = iteratee ? iteratee(value) : value; 2178 value = value !== 0 ? value : 0; 2179 if (isCommon && computed === computed) { 2180 var seenIndex = seen.length; 2181 while (seenIndex--) { 2182 if (seen[seenIndex] === computed) { 2183 continue outer; 2184 } 2185 } 2186 if (iteratee) { 2187 seen.push(computed); 2188 } 2189 result.push(value); 2190 } else if (!includes(seen, computed, comparator)) { 2191 if (seen !== result) { 2192 seen.push(computed); 2193 } 2194 result.push(value); 2195 } 2196 } 2197 return result; 2198} 2199function uniqBy(array, iteratee) { 2200 return array && array.length ? baseUniq(array, baseIteratee(iteratee)) : []; 2201} 2202const BROWSER_ALIASES_MAP = { 2203 AmazonBot: "amazonbot", 2204 "Amazon Silk": "amazon_silk", 2205 "Android Browser": "android", 2206 BaiduSpider: "baiduspider", 2207 Bada: "bada", 2208 BingCrawler: "bingcrawler", 2209 Brave: "brave", 2210 BlackBerry: "blackberry", 2211 "ChatGPT-User": "chatgpt_user", 2212 Chrome: "chrome", 2213 ClaudeBot: "claudebot", 2214 Chromium: "chromium", 2215 Diffbot: "diffbot", 2216 DuckDuckBot: "duckduckbot", 2217 DuckDuckGo: "duckduckgo", 2218 Electron: "electron", 2219 Epiphany: "epiphany", 2220 FacebookExternalHit: "facebookexternalhit", 2221 Firefox: "firefox", 2222 Focus: "focus", 2223 Generic: "generic", 2224 "Google Search": "google_search", 2225 Googlebot: "googlebot", 2226 GPTBot: "gptbot", 2227 "Internet Explorer": "ie", 2228 InternetArchiveCrawler: "internetarchivecrawler", 2229 "K-Meleon": "k_meleon", 2230 LibreWolf: "librewolf", 2231 Linespider: "linespider", 2232 Maxthon: "maxthon", 2233 "Meta-ExternalAds": "meta_externalads", 2234 "Meta-ExternalAgent": "meta_externalagent", 2235 "Meta-ExternalFetcher": "meta_externalfetcher", 2236 "Meta-WebIndexer": "meta_webindexer", 2237 "Microsoft Edge": "edge", 2238 "MZ Browser": "mz", 2239 "NAVER Whale Browser": "naver", 2240 "OAI-SearchBot": "oai_searchbot", 2241 Omgilibot: "omgilibot", 2242 Opera: "opera", 2243 "Opera Coast": "opera_coast", 2244 "Pale Moon": "pale_moon", 2245 PerplexityBot: "perplexitybot", 2246 "Perplexity-User": "perplexity_user", 2247 PhantomJS: "phantomjs", 2248 PingdomBot: "pingdombot", 2249 Puffin: "puffin", 2250 QQ: "qq", 2251 QQLite: "qqlite", 2252 QupZilla: "qupzilla", 2253 Roku: "roku", 2254 Safari: "safari", 2255 Sailfish: "sailfish", 2256 "Samsung Internet for Android": "samsung_internet", 2257 SlackBot: "slackbot", 2258 SeaMonkey: "seamonkey", 2259 Sleipnir: "sleipnir", 2260 "Sogou Browser": "sogou", 2261 Swing: "swing", 2262 Tizen: "tizen", 2263 "UC Browser": "uc", 2264 Vivaldi: "vivaldi", 2265 "WebOS Browser": "webos", 2266 WeChat: "wechat", 2267 YahooSlurp: "yahooslurp", 2268 "Yandex Browser": "yandex", 2269 YandexBot: "yandexbot", 2270 YouBot: "youbot" 2271}; 2272const BROWSER_MAP = { 2273 amazonbot: "AmazonBot", 2274 amazon_silk: "Amazon Silk", 2275 android: "Android Browser", 2276 baiduspider: "BaiduSpider", 2277 bada: "Bada", 2278 bingcrawler: "BingCrawler", 2279 blackberry: "BlackBerry", 2280 brave: "Brave", 2281 chatgpt_user: "ChatGPT-User", 2282 chrome: "Chrome", 2283 claudebot: "ClaudeBot", 2284 chromium: "Chromium", 2285 diffbot: "Diffbot", 2286 duckduckbot: "DuckDuckBot", 2287 duckduckgo: "DuckDuckGo", 2288 edge: "Microsoft Edge", 2289 electron: "Electron", 2290 epiphany: "Epiphany", 2291 facebookexternalhit: "FacebookExternalHit", 2292 firefox: "Firefox", 2293 focus: "Focus", 2294 generic: "Generic", 2295 google_search: "Google Search", 2296 googlebot: "Googlebot", 2297 gptbot: "GPTBot", 2298 ie: "Internet Explorer", 2299 internetarchivecrawler: "InternetArchiveCrawler", 2300 k_meleon: "K-Meleon", 2301 librewolf: "LibreWolf", 2302 linespider: "Linespider", 2303 maxthon: "Maxthon", 2304 meta_externalads: "Meta-ExternalAds", 2305 meta_externalagent: "Meta-ExternalAgent", 2306 meta_externalfetcher: "Meta-ExternalFetcher", 2307 meta_webindexer: "Meta-WebIndexer", 2308 mz: "MZ Browser", 2309 naver: "NAVER Whale Browser", 2310 oai_searchbot: "OAI-SearchBot", 2311 omgilibot: "Omgilibot", 2312 opera: "Opera", 2313 opera_coast: "Opera Coast", 2314 pale_moon: "Pale Moon", 2315 perplexitybot: "PerplexityBot", 2316 perplexity_user: "Perplexity-User", 2317 phantomjs: "PhantomJS", 2318 pingdombot: "PingdomBot", 2319 puffin: "Puffin", 2320 qq: "QQ Browser", 2321 qqlite: "QQ Browser Lite", 2322 qupzilla: "QupZilla", 2323 roku: "Roku", 2324 safari: "Safari", 2325 sailfish: "Sailfish", 2326 samsung_internet: "Samsung Internet for Android", 2327 seamonkey: "SeaMonkey", 2328 slackbot: "SlackBot", 2329 sleipnir: "Sleipnir", 2330 sogou: "Sogou Browser", 2331 swing: "Swing", 2332 tizen: "Tizen", 2333 uc: "UC Browser", 2334 vivaldi: "Vivaldi", 2335 webos: "WebOS Browser", 2336 wechat: "WeChat", 2337 yahooslurp: "YahooSlurp", 2338 yandex: "Yandex Browser", 2339 yandexbot: "YandexBot", 2340 youbot: "YouBot" 2341}; 2342const PLATFORMS_MAP = { 2343 bot: "bot", 2344 desktop: "desktop", 2345 mobile: "mobile", 2346 tablet: "tablet", 2347 tv: "tv" 2348}; 2349const OS_MAP = { 2350 Android: "Android", 2351 Bada: "Bada", 2352 BlackBerry: "BlackBerry", 2353 ChromeOS: "Chrome OS", 2354 HarmonyOS: "HarmonyOS", 2355 iOS: "iOS", 2356 Linux: "Linux", 2357 MacOS: "macOS", 2358 PlayStation4: "PlayStation 4", 2359 Roku: "Roku", 2360 Tizen: "Tizen", 2361 WebOS: "WebOS", 2362 Windows: "Windows", 2363 WindowsPhone: "Windows Phone" 2364}; 2365const ENGINE_MAP = { 2366 Blink: "Blink", 2367 EdgeHTML: "EdgeHTML", 2368 Gecko: "Gecko", 2369 Presto: "Presto", 2370 Trident: "Trident", 2371 WebKit: "WebKit" 2372}; 2373class Utils { 2374 /** 2375 * Get first matched item for a string 2376 * @param {RegExp} regexp 2377 * @param {String} ua 2378 * @return {Array|{index: number, input: string}|*|boolean|string} 2379 */ 2380 static getFirstMatch(regexp, ua) { 2381 const match = ua.match(regexp); 2382 return match && match.length > 0 && match[1] || ""; 2383 } 2384 /** 2385 * Get second matched item for a string 2386 * @param regexp 2387 * @param {String} ua 2388 * @return {Array|{index: number, input: string}|*|boolean|string} 2389 */ 2390 static getSecondMatch(regexp, ua) { 2391 const match = ua.match(regexp); 2392 return match && match.length > 1 && match[2] || ""; 2393 } 2394 /** 2395 * Match a regexp and return a constant or undefined 2396 * @param {RegExp} regexp 2397 * @param {String} ua 2398 * @param {*} _const Any const that will be returned if regexp matches the string 2399 * @return {*} 2400 */ 2401 static matchAndReturnConst(regexp, ua, _const) { 2402 if (regexp.test(ua)) { 2403 return _const; 2404 } 2405 return void 0; 2406 }
2407 static getWindowsVersionName(version) { 2408 switch (version) { 2409 case "NT": 2410 return "NT"; 2411 case "XP": 2412 return "XP"; 2413 case "NT 5.0": 2414 return "2000"; 2415 case "NT 5.1": 2416 return "XP"; 2417 case "NT 5.2": 2418 return "2003"; 2419 case "NT 6.0": 2420 return "Vista"; 2421 case "NT 6.1": 2422 return "7"; 2423 case "NT 6.2": 2424 return "8"; 2425 case "NT 6.3": 2426 return "8.1"; 2427 case "NT 10.0": 2428 return "10"; 2429 default: 2430 return void 0; 2431 } 2432 } 2433 /** 2434 * Get macOS version name 2435 * 10.5 - Leopard 2436 * 10.6 - Snow Leopard 2437 * 10.7 - Lion 2438 * 10.8 - Mountain Lion 2439 * 10.9 - Mavericks 2440 * 10.10 - Yosemite 2441 * 10.11 - El Capitan 2442 * 10.12 - Sierra 2443 * 10.13 - High Sierra 2444 * 10.14 - Mojave 2445 * 10.15 - Catalina 2446 * 11 - Big Sur 2447 * 12 - Monterey 2448 * 13 - Ventura 2449 * 14 - Sonoma 2450 * 15 - Sequoia 2451 * 2452 * @example 2453 * getMacOSVersionName("10.14") // 'Mojave' 2454 * 2455 * @param {string} version 2456 * @return {string} versionName 2457 */ 2458 static getMacOSVersionName(version) { 2459 const v = version.split(".").splice(0, 2).map((s) => parseInt(s, 10) || 0); 2460 v.push(0); 2461 const major = v[0]; 2462 const minor = v[1]; 2463 if (major === 10) { 2464 switch (minor) { 2465 case 5: 2466 return "Leopard"; 2467 case 6: 2468 return "Snow Leopard"; 2469 case 7: 2470 return "Lion"; 2471 case 8: 2472 return "Mountain Lion"; 2473 case 9: 2474 return "Mavericks"; 2475 case 10: 2476 return "Yosemite"; 2477 case 11: 2478 return "El Capitan"; 2479 case 12: 2480 return "Sierra"; 2481 case 13: 2482 return "High Sierra"; 2483 case 14: 2484 return "Mojave"; 2485 case 15: 2486 return "Catalina"; 2487 default: 2488 return void 0; 2489 } 2490 } 2491 switch (major) { 2492 case 11: 2493 return "Big Sur"; 2494 case 12: 2495 return "Monterey"; 2496 case 13: 2497 return "Ventura"; 2498 case 14: 2499 return "Sonoma"; 2500 case 15: 2501 return "Sequoia"; 2502 default: 2503 return void 0; 2504 } 2505 } 2506 /** 2507 * Get Android version name 2508 * 1.5 - Cupcake 2509 * 1.6 - Donut 2510 * 2.0 - Eclair 2511 * 2.1 - Eclair 2512 * 2.2 - Froyo 2513 * 2.x - Gingerbread 2514 * 3.x - Honeycomb 2515 * 4.0 - Ice Cream Sandwich 2516 * 4.1 - Jelly Bean 2517 * 4.4 - KitKat 2518 * 5.x - Lollipop 2519 * 6.x - Marshmallow 2520 * 7.x - Nougat 2521 * 8.x - Oreo 2522 * 9.x - Pie 2523 * 2524 * @example 2525 * getAndroidVersionName("7.0") // 'Nougat' 2526 * 2527 * @param {string} version 2528 * @return {string} versionName 2529 */ 2530 static getAndroidVersionName(version) { 2531 const v = version.split(".").splice(0, 2).map((s) => parseInt(s, 10) || 0); 2532 v.push(0); 2533 if (v[0] === 1 && v[1] < 5) return void 0; 2534 if (v[0] === 1 && v[1] < 6) return "Cupcake"; 2535 if (v[0] === 1 && v[1] >= 6) return "Donut"; 2536 if (v[0] === 2 && v[1] < 2) return "Eclair"; 2537 if (v[0] === 2 && v[1] === 2) return "Froyo"; 2538 if (v[0] === 2 && v[1] > 2) return "Gingerbread"; 2539 if (v[0] === 3) return "Honeycomb"; 2540 if (v[0] === 4 && v[1] < 1) return "Ice Cream Sandwich"; 2541 if (v[0] === 4 && v[1] < 4) return "Jelly Bean"; 2542 if (v[0] === 4 && v[1] >= 4) return "KitKat"; 2543 if (v[0] === 5) return "Lollipop"; 2544 if (v[0] === 6) return "Marshmallow"; 2545 if (v[0] === 7) return "Nougat"; 2546 if (v[0] === 8) return "Oreo"; 2547 if (v[0] === 9) return "Pie"; 2548 return void 0; 2549 } 2550 /** 2551 * Get version precisions count 2552 * 2553 * @example 2554 * getVersionPrecision("1.10.3") // 3 2555 * 2556 * @param {string} version 2557 * @return {number} 2558 */ 2559 static getVersionPrecision(version) { 2560 return version.split(".").length; 2561 } 2562 /** 2563 * Calculate browser version weight 2564 * 2565 * @example 2566 * compareVersions('1.10.2.1', '1.8.2.1.90') // 1 2567 * compareVersions('1.010.2.1', '1.09.2.1.90'); // 1 2568 * compareVersions('1.10.2.1', '1.10.2.1'); // 0 2569 * compareVersions('1.10.2.1', '1.0800.2'); // -1 2570 * compareVersions('1.10.2.1', '1.10', true); // 0 2571 * 2572 * @param {String} versionA versions versions to compare 2573 * @param {String} versionB versions versions to compare 2574 * @param {boolean} [isLoose] enable loose comparison 2575 * @return {Number}
2575 comparison result: -1 when versionA is lower, 2576 * 1 when versionA is bigger, 0 when both equal 2577 */ 2578 /* eslint consistent-return: 1 */ 2579 static compareVersions(versionA, versionB, isLoose = false) { 2580 const versionAPrecision = Utils.getVersionPrecision(versionA); 2581 const versionBPrecision = Utils.getVersionPrecision(versionB); 2582 let precision = Math.max(versionAPrecision, versionBPrecision); 2583 let lastPrecision = 0; 2584 const chunks = Utils.map([versionA, versionB], (version) => { 2585 const delta = precision - Utils.getVersionPrecision(version); 2586 const _version = version + new Array(delta + 1).join(".0"); 2587 return Utils.map(_version.split("."), (chunk2) => new Array(20 - chunk2.length).join("0") + chunk2).reverse(); 2588 }); 2589 if (isLoose) { 2590 lastPrecision = precision - Math.min(versionAPrecision, versionBPrecision); 2591 } 2592 precision -= 1; 2593 while (precision >= lastPrecision) { 2594 if (chunks[0][precision] > chunks[1][precision]) { 2595 return 1; 2596 } 2597 if (chunks[0][precision] === chunks[1][precision]) { 2598 if (precision === lastPrecision) { 2599 return 0; 2600 } 2601 precision -= 1; 2602 } else if (chunks[0][precision] < chunks[1][precision]) { 2603 return -1; 2604 } 2605 } 2606 return void 0; 2607 } 2608 /** 2609 * Array::map polyfill 2610 * 2611 * @param {Array} arr 2612 * @param {Function} iterator 2613 * @return {Array} 2614 */ 2615 static map(arr, iterator) { 2616 const result = []; 2617 let i; 2618 if (Array.prototype.map) { 2619 return Array.prototype.map.call(arr, iterator); 2620 } 2621 for (i = 0; i < arr.length; i += 1) { 2622 result.push(iterator(arr[i])); 2623 } 2624 return result; 2625 } 2626 /** 2627 * Array::find polyfill 2628 * 2629 * @param {Array} arr 2630 * @param {Function} predicate 2631 * @return {Array} 2632 */ 2633 static find(arr, predicate) { 2634 let i; 2635 let l; 2636 if (Array.prototype.find) { 2637 return Array.prototype.find.call(arr, predicate); 2638 } 2639 for (i = 0, l = arr.length; i < l; i += 1) { 2640 const value = arr[i]; 2641 if (predicate(value, i)) { 2642 return value; 2643 } 2644 } 2645 return void 0; 2646 } 2647 /** 2648 * Object::assign polyfill 2649 * 2650 * @param {Object} obj 2651 * @param {Object} ...objs 2652 * @return {Object} 2653 */ 2654 static assign(obj, ...assigners) { 2655 const result = obj; 2656 let i; 2657 let l; 2658 if (Object.assign) { 2659 return Object.assign(obj, ...assigners); 2660 } 2661 for (i = 0, l = assigners.length; i < l; i += 1) { 2662 const assigner = assigners[i]; 2663 if (typeof assigner === "object" && assigner !== null) { 2664 const keys2 = Object.keys(assigner); 2665 keys2.forEach((key) => { 2666 result[key] = assigner[key]; 2667 }); 2668 } 2669 } 2670 return obj; 2671 } 2672 /** 2673 * Get short version/alias for a browser name 2674 * 2675 * @example 2676 * getBrowserAlias('Microsoft Edge') // edge 2677 * 2678 * @param {string} browserName 2679 * @return {string} 2680 */ 2681 static getBrowserAlias(browserName) { 2682 return BROWSER_ALIASES_MAP[browserName]; 2683 } 2684 /** 2685 * Get browser name for a short version/alias 2686 * 2687 * @example 2688 * getBrowserTypeByAlias('edge') // Microsoft Edge 2689 * 2690 * @param {string} browserAlias 2691 * @return {string} 2692 */ 2693 static getBrowserTypeByAlias(browserAlias) { 2694 return BROWSER_MAP[browserAlias] || ""; 2695 } 2696} 2697export { 2698 BROWSER_MAP as B, 2699 ENGINE_MAP as E, 2700 OS_MAP as O, 2701 PLATFORMS_MAP as P, 2702 Utils as U, 2703 snakeCase as a, 2704 cloneDeep as b, 2705 chunk as c, 2706 debounce as d, 2707 mergeWith as e, 2708 isEqual as f, 2709 get as g, 2710 round as h, 2711 isNumber as i, 2712 castArray as j, 2713 camelCase as k, 2714 find as l, 2715 merge as m, 2716 omit as o, 2717 pick as p, 2718 remove as r, 2719 set as s, 2720 throttle as t, 2721 uniqBy as u 2722}; 2723//# sourceMappingURL=vendor-utils-j6SE9MGc.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.