UNPKG

74.5 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack://user-agents/webpack/universalModuleDefinition","webpack://user-agents/webpack/bootstrap","webpack://user-agents/./src/index.js","webpack://user-agents/./src/user-agent.js","webpack://user-agents/./node_modules/lodash.clonedeep/index.js","webpack://user-agents/(webpack)/buildin/module.js"],"names":["root","factory","exports","module","define","amd","global","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","UserAgent","makeCumulativeWeightIndexPairs","weightIndexPairs","totalWeight","reduce","sum","weight","map","index","defaultWeightIndexPairs","userAgents","defaultCumulativeWeightIndexPairs","constructFilter","filters","accessor","parentObject","childFilters","RegExp","userAgent","test","Array","childFilter","entries","valueFilter","every","error","constructCumulativeWeightIndexPairsFromFilters","filter","forEach","rawUserAgent","push","setCumulativeWeightIndexPairs","cumulativeWeightIndexPairs","configurable","writable","Function","constructor","super","_initialiseProps","this","length","Error","randomize","Proxy","apply","random","target","receiver","data","propertyIsEnumerable","undefined","Reflect","toPrimitive","toString","randomNumber","Math","find","cumulativeWeight","_lodash2","default","LARGE_ARRAY_SIZE","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","self","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","add","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","result","e","mapToArray","size","overArg","func","transform","arg","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","exec","keys","IE_PROTO","funcToString","objectToString","reIsNative","replace","Buffer","Uint8Array","getPrototype","getPrototypeOf","objectCreate","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","clear","entry","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isArray","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","baseTimes","String","skipIndexes","isIndex","assignValue","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","stack","isObject","isArr","input","initCloneArray","source","copyArray","tag","getTag","isFunc","buffer","slice","copy","cloneBuffer","isPrototype","proto","baseCreate","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","cloneSymbol","initCloneByTag","stacked","props","keysFunc","symbolsFunc","values","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isMasked","isFunction","arrayBuffer","newValue","getMapData","type","isKeyable","getValue","has","pop","hash","string","cache","pairs","other","ArrayBuffer","resolve","ctorString","isLength","baseKeys","webpackPolyfill","deprecate","paths","children"],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"user-agents\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"user-agents\"] = factory();\n\telse\n\t\troot[\"user-agents\"] = factory();\n})(global, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import UserAgent from './user-agent';\n\n\nmodule.exports = UserAgent;\n","import cloneDeep from 'lodash.clonedeep';\n\nimport userAgents from './user-agents.json';\n\n\n// Normalizes the total weight to 1 and constructs a cumulative distribution.\nconst makeCumulativeWeightIndexPairs = (weightIndexPairs) => {\n const totalWeight = weightIndexPairs.reduce((sum, [weight]) => sum + weight, 0);\n let sum = 0;\n return weightIndexPairs.map(([weight, index]) => {\n sum += weight / totalWeight;\n return [sum, index];\n });\n};\n\n// Precompute these so that we can quickly generate unfiltered user agents.\nconst defaultWeightIndexPairs = userAgents.map(({ weight }, index) => [weight, index]);\nconst defaultCumulativeWeightIndexPairs = makeCumulativeWeightIndexPairs(defaultWeightIndexPairs);\n\n\n// Turn the various filter formats into a single filter function that acts on raw user agents.\nconst constructFilter = (filters, accessor = parentObject => parentObject) => {\n let childFilters;\n if (typeof filters === 'function') {\n childFilters = [filters];\n } else if (filters instanceof RegExp) {\n childFilters = [\n value => (\n typeof value === 'object' && value && value.userAgent\n ? filters.test(value.userAgent)\n : filters.test(value)\n ),\n ];\n } else if (filters instanceof Array) {\n childFilters = filters.map(childFilter => constructFilter(childFilter));\n } else if (typeof filters === 'object') {\n childFilters = Object.entries(filters).map(([key, valueFilter]) => (\n constructFilter(valueFilter, parentObject => parentObject[key])\n ));\n } else {\n childFilters = [\n value => (\n typeof value === 'object' && value && value.userAgent\n ? filters === value.userAgent\n : filters === value\n ),\n ];\n }\n\n return (parentObject) => {\n try {\n const value = accessor(parentObject);\n return childFilters.every(childFilter => childFilter(value));\n } catch (error) {\n // This happens when a user-agent lacks a nested property.\n return false;\n }\n };\n};\n\n\n// Construct normalized cumulative weight index pairs given the filters.\nconst constructCumulativeWeightIndexPairsFromFilters = (filters) => {\n if (!filters) {\n return defaultCumulativeWeightIndexPairs;\n }\n\n const filter = constructFilter(filters);\n\n const weightIndexPairs = [];\n userAgents.forEach((rawUserAgent, index) => {\n if (filter(rawUserAgent)) {\n weightIndexPairs.push([rawUserAgent.weight, index]);\n }\n });\n return makeCumulativeWeightIndexPairs(weightIndexPairs);\n};\n\n\nconst setCumulativeWeightIndexPairs = (userAgent, cumulativeWeightIndexPairs) => {\n Object.defineProperty(userAgent, 'cumulativeWeightIndexPairs', {\n configurable: true,\n enumerable: false,\n writable: false,\n value: cumulativeWeightIndexPairs,\n });\n};\n\n\nexport default class UserAgent extends Function {\n constructor(filters) {\n super();\n setCumulativeWeightIndexPairs(this, constructCumulativeWeightIndexPairsFromFilters(filters));\n if (this.cumulativeWeightIndexPairs.length === 0) {\n throw new Error('No user agents matched your filters.');\n }\n\n this.randomize();\n\n return new Proxy(this, {\n apply: () => this.random(),\n get: (target, property, receiver) => {\n const dataCandidate = target.data && typeof property === 'string'\n && Object.prototype.hasOwnProperty.call(target.data, property)\n && Object.prototype.propertyIsEnumerable.call(target.data, property);\n if (dataCandidate) {\n const value = target.data[property];\n if (value !== undefined) {\n return value;\n }\n }\n\n return Reflect.get(target, property, receiver);\n },\n });\n }\n\n static random = (filters) => {\n try {\n return new UserAgent(filters);\n } catch (error) {\n return null;\n }\n };\n\n //\n // Standard Object Methods\n //\n\n [Symbol.toPrimitive] = () => (\n this.data.userAgent\n );\n\n toString = () => (\n this.data.userAgent\n );\n\n random = () => {\n const userAgent = new UserAgent();\n setCumulativeWeightIndexPairs(userAgent, this.cumulativeWeightIndexPairs);\n userAgent.randomize();\n return userAgent;\n };\n\n randomize = () => {\n // Find a random raw random user agent.\n const randomNumber = Math.random();\n const [, index] = this.cumulativeWeightIndexPairs\n .find(([cumulativeWeight]) => cumulativeWeight > randomNumber);\n const rawUserAgent = userAgents[index];\n\n this.data = cloneDeep(rawUserAgent);\n }\n}\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n"],"sourceRoot":""}
\No newline at end of file