{"version":3,"sources":["webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/path-browserify/index.js"],"names":["exports","nextTick","fn","args","Array","prototype","slice","call","arguments","shift","setTimeout","apply","platform","arch","execPath","title","pid","browser","env","argv","binding","name","Error","path","cwd","chdir","dir","resolve","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","factory","registeredInModuleLoader","module","OldCookies","window","Cookies","api","noConflict","extend","i","result","length","attributes","key","decode","s","replace","decodeURIComponent","init","converter","set","value","document","defaults","expires","Date","toUTCString","JSON","stringify","test","e","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","split","cookie","get","json","jar","cookies","parts","join","charAt","read","parse","getJSON","remove","withConverter","normalizeArray","allowAboveRoot","up","last","splice","unshift","basename","start","end","matchedSlash","charCodeAt","filter","xs","f","res","push","resolvedPath","resolvedAbsolute","process","TypeError","p","normalize","isAbsolute","trailingSlash","substr","paths","index","relative","from","to","trim","arr","fromParts","toParts","Math","min","samePartsLength","outputParts","concat","sep","delimiter","dirname","code","hasRoot","ext","extname","startDot","startPart","preDotState","str","len"],"mappings":"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","file":"js/chunk-vendors~70aabc29.93e0e216.js","sourcesContent":["exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n"],"sourceRoot":""}