{"version":3,"file":"js/chunk-vendors-1656f0b4.488bb2b1.js","mappings":"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","sources":["webpack://ouvidoria/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://ouvidoria/./node_modules/vue-router/dist/vue-router.esm.js","webpack://ouvidoria/./node_modules/vue-sanitize/dist/vue-sanitize.js","webpack://ouvidoria/./node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */,\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options =\n    typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) {\n    // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n          injectStyles.call(\n            this,\n            (options.functional ? this.parent : this).$root.$options.shadowRoot\n          )\n        }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection(h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","/*!\n  * vue-router v3.6.5\n  * (c) 2022 Evan You\n  * @license MIT\n  */\n/*  */\n\nfunction assert (condition, message) {\n  if (!condition) {\n    throw new Error((\"[vue-router] \" + message))\n  }\n}\n\nfunction warn (condition, message) {\n  if (!condition) {\n    typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n  }\n}\n\nfunction extend (a, b) {\n  for (var key in b) {\n    a[key] = b[key];\n  }\n  return a\n}\n\n/*  */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n    .replace(encodeReserveRE, encodeReserveReplacer)\n    .replace(commaRE, ','); };\n\nfunction decode (str) {\n  try {\n    return decodeURIComponent(str)\n  } catch (err) {\n    if (process.env.NODE_ENV !== 'production') {\n      warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n    }\n  }\n  return str\n}\n\nfunction resolveQuery (\n  query,\n  extraQuery,\n  _parseQuery\n) {\n  if ( extraQuery === void 0 ) extraQuery = {};\n\n  var parse = _parseQuery || parseQuery;\n  var parsedQuery;\n  try {\n    parsedQuery = parse(query || '');\n  } catch (e) {\n    process.env.NODE_ENV !== 'production' && warn(false, e.message);\n    parsedQuery = {};\n  }\n  for (var key in extraQuery) {\n    var value = extraQuery[key];\n    parsedQuery[key] = Array.isArray(value)\n      ? value.map(castQueryParamValue)\n      : castQueryParamValue(value);\n  }\n  return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n  var res = {};\n\n  query = query.trim().replace(/^(\\?|#|&)/, '');\n\n  if (!query) {\n    return res\n  }\n\n  query.split('&').forEach(function (param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = decode(parts.shift());\n    var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n    if (res[key] === undefined) {\n      res[key] = val;\n    } else if (Array.isArray(res[key])) {\n      res[key].push(val);\n    } else {\n      res[key] = [res[key], val];\n    }\n  });\n\n  return res\n}\n\nfunction stringifyQuery (obj) {\n  var res = obj\n    ? Object.keys(obj)\n      .map(function (key) {\n        var val = obj[key];\n\n        if (val === undefined) {\n          return ''\n        }\n\n        if (val === null) {\n          return encode(key)\n        }\n\n        if (Array.isArray(val)) {\n          var result = [];\n          val.forEach(function (val2) {\n            if (val2 === undefined) {\n              return\n            }\n            if (val2 === null) {\n              result.push(encode(key));\n            } else {\n              result.push(encode(key) + '=' + encode(val2));\n            }\n          });\n          return result.join('&')\n        }\n\n        return encode(key) + '=' + encode(val)\n      })\n      .filter(function (x) { return x.length > 0; })\n      .join('&')\n    : null;\n  return res ? (\"?\" + res) : ''\n}\n\n/*  */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n  record,\n  location,\n  redirectedFrom,\n  router\n) {\n  var stringifyQuery = router && router.options.stringifyQuery;\n\n  var query = location.query || {};\n  try {\n    query = clone(query);\n  } catch (e) {}\n\n  var route = {\n    name: location.name || (record && record.name),\n    meta: (record && record.meta) || {},\n    path: location.path || '/',\n    hash: location.hash || '',\n    query: query,\n    params: location.params || {},\n    fullPath: getFullPath(location, stringifyQuery),\n    matched: record ? formatMatch(record) : []\n  };\n  if (redirectedFrom) {\n    route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n  }\n  return Object.freeze(route)\n}\n\nfunction clone (value) {\n  if (Array.isArray(value)) {\n    return value.map(clone)\n  } else if (value && typeof value === 'object') {\n    var res = {};\n    for (var key in value) {\n      res[key] = clone(value[key]);\n    }\n    return res\n  } else {\n    return value\n  }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n  path: '/'\n});\n\nfunction formatMatch (record) {\n  var res = [];\n  while (record) {\n    res.unshift(record);\n    record = record.parent;\n  }\n  return res\n}\n\nfunction getFullPath (\n  ref,\n  _stringifyQuery\n) {\n  var path = ref.path;\n  var query = ref.query; if ( query === void 0 ) query = {};\n  var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n  var stringify = _stringifyQuery || stringifyQuery;\n  return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n  if (b === START) {\n    return a === b\n  } else if (!b) {\n    return false\n  } else if (a.path && b.path) {\n    return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n      a.hash === b.hash &&\n      isObjectEqual(a.query, b.query))\n  } else if (a.name && b.name) {\n    return (\n      a.name === b.name &&\n      (onlyPath || (\n        a.hash === b.hash &&\n      isObjectEqual(a.query, b.query) &&\n      isObjectEqual(a.params, b.params))\n      )\n    )\n  } else {\n    return false\n  }\n}\n\nfunction isObjectEqual (a, b) {\n  if ( a === void 0 ) a = {};\n  if ( b === void 0 ) b = {};\n\n  // handle null value #1566\n  if (!a || !b) { return a === b }\n  var aKeys = Object.keys(a).sort();\n  var bKeys = Object.keys(b).sort();\n  if (aKeys.length !== bKeys.length) {\n    return false\n  }\n  return aKeys.every(function (key, i) {\n    var aVal = a[key];\n    var bKey = bKeys[i];\n    if (bKey !== key) { return false }\n    var bVal = b[key];\n    // query values can be null and undefined\n    if (aVal == null || bVal == null) { return aVal === bVal }\n    // check nested equality\n    if (typeof aVal === 'object' && typeof bVal === 'object') {\n      return isObjectEqual(aVal, bVal)\n    }\n    return String(aVal) === String(bVal)\n  })\n}\n\nfunction isIncludedRoute (current, target) {\n  return (\n    current.path.replace(trailingSlashRE, '/').indexOf(\n      target.path.replace(trailingSlashRE, '/')\n    ) === 0 &&\n    (!target.hash || current.hash === target.hash) &&\n    queryIncludes(current.query, target.query)\n  )\n}\n\nfunction queryIncludes (current, target) {\n  for (var key in target) {\n    if (!(key in current)) {\n      return false\n    }\n  }\n  return true\n}\n\nfunction handleRouteEntered (route) {\n  for (var i = 0; i < route.matched.length; i++) {\n    var record = route.matched[i];\n    for (var name in record.instances) {\n      var instance = record.instances[name];\n      var cbs = record.enteredCbs[name];\n      if (!instance || !cbs) { continue }\n      delete record.enteredCbs[name];\n      for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n        if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n      }\n    }\n  }\n}\n\nvar View = {\n  name: 'RouterView',\n  functional: true,\n  props: {\n    name: {\n      type: String,\n      default: 'default'\n    }\n  },\n  render: function render (_, ref) {\n    var props = ref.props;\n    var children = ref.children;\n    var parent = ref.parent;\n    var data = ref.data;\n\n    // used by devtools to display a router-view badge\n    data.routerView = true;\n\n    // directly use parent context's createElement() function\n    // so that components rendered by router-view can resolve named slots\n    var h = parent.$createElement;\n    var name = props.name;\n    var route = parent.$route;\n    var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n    // determine current view depth, also check to see if the tree\n    // has been toggled inactive but kept-alive.\n    var depth = 0;\n    var inactive = false;\n    while (parent && parent._routerRoot !== parent) {\n      var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n      if (vnodeData.routerView) {\n        depth++;\n      }\n      if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n        inactive = true;\n      }\n      parent = parent.$parent;\n    }\n    data.routerViewDepth = depth;\n\n    // render previous view if the tree is inactive and kept-alive\n    if (inactive) {\n      var cachedData = cache[name];\n      var cachedComponent = cachedData && cachedData.component;\n      if (cachedComponent) {\n        // #2301\n        // pass props\n        if (cachedData.configProps) {\n          fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n        }\n        return h(cachedComponent, data, children)\n      } else {\n        // render previous empty view\n        return h()\n      }\n    }\n\n    var matched = route.matched[depth];\n    var component = matched && matched.components[name];\n\n    // render empty node if no matched route or no config component\n    if (!matched || !component) {\n      cache[name] = null;\n      return h()\n    }\n\n    // cache component\n    cache[name] = { component: component };\n\n    // attach instance registration hook\n    // this will be called in the instance's injected lifecycle hooks\n    data.registerRouteInstance = function (vm, val) {\n      // val could be undefined for unregistration\n      var current = matched.instances[name];\n      if (\n        (val && current !== vm) ||\n        (!val && current === vm)\n      ) {\n        matched.instances[name] = val;\n      }\n    }\n\n    // also register instance in prepatch hook\n    // in case the same component instance is reused across different routes\n    ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n      matched.instances[name] = vnode.componentInstance;\n    };\n\n    // register instance in init hook\n    // in case kept-alive component be actived when routes changed\n    data.hook.init = function (vnode) {\n      if (vnode.data.keepAlive &&\n        vnode.componentInstance &&\n        vnode.componentInstance !== matched.instances[name]\n      ) {\n        matched.instances[name] = vnode.componentInstance;\n      }\n\n      // if the route transition has already been confirmed then we weren't\n      // able to call the cbs during confirmation as the component was not\n      // registered yet, so we call it here.\n      handleRouteEntered(route);\n    };\n\n    var configProps = matched.props && matched.props[name];\n    // save route and configProps in cache\n    if (configProps) {\n      extend(cache[name], {\n        route: route,\n        configProps: configProps\n      });\n      fillPropsinData(component, data, route, configProps);\n    }\n\n    return h(component, data, children)\n  }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n  // resolve props\n  var propsToPass = data.props = resolveProps(route, configProps);\n  if (propsToPass) {\n    // clone to prevent mutation\n    propsToPass = data.props = extend({}, propsToPass);\n    // pass non-declared props as attrs\n    var attrs = data.attrs = data.attrs || {};\n    for (var key in propsToPass) {\n      if (!component.props || !(key in component.props)) {\n        attrs[key] = propsToPass[key];\n        delete propsToPass[key];\n      }\n    }\n  }\n}\n\nfunction resolveProps (route, config) {\n  switch (typeof config) {\n    case 'undefined':\n      return\n    case 'object':\n      return config\n    case 'function':\n      return config(route)\n    case 'boolean':\n      return config ? route.params : undefined\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        warn(\n          false,\n          \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n          \"expecting an object, function or boolean.\"\n        );\n      }\n  }\n}\n\n/*  */\n\nfunction resolvePath (\n  relative,\n  base,\n  append\n) {\n  var firstChar = relative.charAt(0);\n  if (firstChar === '/') {\n    return relative\n  }\n\n  if (firstChar === '?' || firstChar === '#') {\n    return base + relative\n  }\n\n  var stack = base.split('/');\n\n  // remove trailing segment if:\n  // - not appending\n  // - appending to trailing slash (last segment is empty)\n  if (!append || !stack[stack.length - 1]) {\n    stack.pop();\n  }\n\n  // resolve relative path\n  var segments = relative.replace(/^\\//, '').split('/');\n  for (var i = 0; i < segments.length; i++) {\n    var segment = segments[i];\n    if (segment === '..') {\n      stack.pop();\n    } else if (segment !== '.') {\n      stack.push(segment);\n    }\n  }\n\n  // ensure leading slash\n  if (stack[0] !== '') {\n    stack.unshift('');\n  }\n\n  return stack.join('/')\n}\n\nfunction parsePath (path) {\n  var hash = '';\n  var query = '';\n\n  var hashIndex = path.indexOf('#');\n  if (hashIndex >= 0) {\n    hash = path.slice(hashIndex);\n    path = path.slice(0, hashIndex);\n  }\n\n  var queryIndex = path.indexOf('?');\n  if (queryIndex >= 0) {\n    query = path.slice(queryIndex + 1);\n    path = path.slice(0, queryIndex);\n  }\n\n  return {\n    path: path,\n    query: query,\n    hash: hash\n  }\n}\n\nfunction cleanPath (path) {\n  return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = [];\n  var key = 0;\n  var index = 0;\n  var path = '';\n  var defaultDelimiter = options && options.delimiter || '/';\n  var res;\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0];\n    var escaped = res[1];\n    var offset = res.index;\n    path += str.slice(index, offset);\n    index = offset + m.length;\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1];\n      continue\n    }\n\n    var next = str[index];\n    var prefix = res[2];\n    var name = res[3];\n    var capture = res[4];\n    var group = res[5];\n    var modifier = res[6];\n    var asterisk = res[7];\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path);\n      path = '';\n    }\n\n    var partial = prefix != null && next != null && next !== prefix;\n    var repeat = modifier === '+' || modifier === '*';\n    var optional = modifier === '?' || modifier === '*';\n    var delimiter = res[2] || defaultDelimiter;\n    var pattern = capture || group;\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    });\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index);\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path);\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length);\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n    }\n  }\n\n  return function (obj, opts) {\n    var path = '';\n    var data = obj || {};\n    var options = opts || {};\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i];\n\n      if (typeof token === 'string') {\n        path += token;\n\n        continue\n      }\n\n      var value = data[token.name];\n      var segment;\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix;\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j]);\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment;\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment;\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys;\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g);\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      });\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = [];\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source);\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options);\n    keys = [];\n  }\n\n  options = options || {};\n\n  var strict = options.strict;\n  var end = options.end !== false;\n  var route = '';\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i];\n\n    if (typeof token === 'string') {\n      route += escapeString(token);\n    } else {\n      var prefix = escapeString(token.prefix);\n      var capture = '(?:' + token.pattern + ')';\n\n      keys.push(token);\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*';\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?';\n        } else {\n          capture = prefix + '(' + capture + ')?';\n        }\n      } else {\n        capture = prefix + '(' + capture + ')';\n      }\n\n      route += capture;\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/');\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n  }\n\n  if (end) {\n    route += '$';\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options);\n    keys = [];\n  }\n\n  options = options || {};\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/*  */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n  path,\n  params,\n  routeMsg\n) {\n  params = params || {};\n  try {\n    var filler =\n      regexpCompileCache[path] ||\n      (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n    // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n    // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n    if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n    return filler(params, { pretty: true })\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      // Fix #3072 no warn if `pathMatch` is string\n      warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n    }\n    return ''\n  } finally {\n    // delete the 0 if it was added\n    delete params[0];\n  }\n}\n\n/*  */\n\nfunction normalizeLocation (\n  raw,\n  current,\n  append,\n  router\n) {\n  var next = typeof raw === 'string' ? { path: raw } : raw;\n  // named target\n  if (next._normalized) {\n    return next\n  } else if (next.name) {\n    next = extend({}, raw);\n    var params = next.params;\n    if (params && typeof params === 'object') {\n      next.params = extend({}, params);\n    }\n    return next\n  }\n\n  // relative params\n  if (!next.path && next.params && current) {\n    next = extend({}, next);\n    next._normalized = true;\n    var params$1 = extend(extend({}, current.params), next.params);\n    if (current.name) {\n      next.name = current.name;\n      next.params = params$1;\n    } else if (current.matched.length) {\n      var rawPath = current.matched[current.matched.length - 1].path;\n      next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn(false, \"relative params navigation requires a current route.\");\n    }\n    return next\n  }\n\n  var parsedPath = parsePath(next.path || '');\n  var basePath = (current && current.path) || '/';\n  var path = parsedPath.path\n    ? resolvePath(parsedPath.path, basePath, append || next.append)\n    : basePath;\n\n  var query = resolveQuery(\n    parsedPath.query,\n    next.query,\n    router && router.options.parseQuery\n  );\n\n  var hash = next.hash || parsedPath.hash;\n  if (hash && hash.charAt(0) !== '#') {\n    hash = \"#\" + hash;\n  }\n\n  return {\n    _normalized: true,\n    path: path,\n    query: query,\n    hash: hash\n  }\n}\n\n/*  */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n  name: 'RouterLink',\n  props: {\n    to: {\n      type: toTypes,\n      required: true\n    },\n    tag: {\n      type: String,\n      default: 'a'\n    },\n    custom: Boolean,\n    exact: Boolean,\n    exactPath: Boolean,\n    append: Boolean,\n    replace: Boolean,\n    activeClass: String,\n    exactActiveClass: String,\n    ariaCurrentValue: {\n      type: String,\n      default: 'page'\n    },\n    event: {\n      type: eventTypes,\n      default: 'click'\n    }\n  },\n  render: function render (h) {\n    var this$1$1 = this;\n\n    var router = this.$router;\n    var current = this.$route;\n    var ref = router.resolve(\n      this.to,\n      current,\n      this.append\n    );\n    var location = ref.location;\n    var route = ref.route;\n    var href = ref.href;\n\n    var classes = {};\n    var globalActiveClass = router.options.linkActiveClass;\n    var globalExactActiveClass = router.options.linkExactActiveClass;\n    // Support global empty active class\n    var activeClassFallback =\n      globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n    var exactActiveClassFallback =\n      globalExactActiveClass == null\n        ? 'router-link-exact-active'\n        : globalExactActiveClass;\n    var activeClass =\n      this.activeClass == null ? activeClassFallback : this.activeClass;\n    var exactActiveClass =\n      this.exactActiveClass == null\n        ? exactActiveClassFallback\n        : this.exactActiveClass;\n\n    var compareTarget = route.redirectedFrom\n      ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n      : route;\n\n    classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n    classes[activeClass] = this.exact || this.exactPath\n      ? classes[exactActiveClass]\n      : isIncludedRoute(current, compareTarget);\n\n    var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n    var handler = function (e) {\n      if (guardEvent(e)) {\n        if (this$1$1.replace) {\n          router.replace(location, noop);\n        } else {\n          router.push(location, noop);\n        }\n      }\n    };\n\n    var on = { click: guardEvent };\n    if (Array.isArray(this.event)) {\n      this.event.forEach(function (e) {\n        on[e] = handler;\n      });\n    } else {\n      on[this.event] = handler;\n    }\n\n    var data = { class: classes };\n\n    var scopedSlot =\n      !this.$scopedSlots.$hasNormal &&\n      this.$scopedSlots.default &&\n      this.$scopedSlots.default({\n        href: href,\n        route: route,\n        navigate: handler,\n        isActive: classes[activeClass],\n        isExactActive: classes[exactActiveClass]\n      });\n\n    if (scopedSlot) {\n      if (process.env.NODE_ENV !== 'production' && !this.custom) {\n        !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an <a> element. Use the custom prop to remove this warning:\\n<router-link v-slot=\"{ navigate, href }\" custom></router-link>\\n');\n        warnedCustomSlot = true;\n      }\n      if (scopedSlot.length === 1) {\n        return scopedSlot[0]\n      } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\n            false,\n            (\"<router-link> with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n          );\n        }\n        return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if ('tag' in this.$options.propsData && !warnedTagProp) {\n        warn(\n          false,\n          \"<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n        );\n        warnedTagProp = true;\n      }\n      if ('event' in this.$options.propsData && !warnedEventProp) {\n        warn(\n          false,\n          \"<router-link>'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n        );\n        warnedEventProp = true;\n      }\n    }\n\n    if (this.tag === 'a') {\n      data.on = on;\n      data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n    } else {\n      // find the first <a> child and apply listener and href\n      var a = findAnchor(this.$slots.default);\n      if (a) {\n        // in case the <a> is a static node\n        a.isStatic = false;\n        var aData = (a.data = extend({}, a.data));\n        aData.on = aData.on || {};\n        // transform existing events in both objects into arrays so we can push later\n        for (var event in aData.on) {\n          var handler$1 = aData.on[event];\n          if (event in on) {\n            aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n          }\n        }\n        // append new listeners for router-link\n        for (var event$1 in on) {\n          if (event$1 in aData.on) {\n            // on[event] is always a function\n            aData.on[event$1].push(on[event$1]);\n          } else {\n            aData.on[event$1] = handler;\n          }\n        }\n\n        var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n        aAttrs.href = href;\n        aAttrs['aria-current'] = ariaCurrentValue;\n      } else {\n        // doesn't have <a> child, apply listener to self\n        data.on = on;\n      }\n    }\n\n    return h(this.tag, data, this.$slots.default)\n  }\n};\n\nfunction guardEvent (e) {\n  // don't redirect with control keys\n  if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n  // don't redirect when preventDefault called\n  if (e.defaultPrevented) { return }\n  // don't redirect on right click\n  if (e.button !== undefined && e.button !== 0) { return }\n  // don't redirect if `target=\"_blank\"`\n  if (e.currentTarget && e.currentTarget.getAttribute) {\n    var target = e.currentTarget.getAttribute('target');\n    if (/\\b_blank\\b/i.test(target)) { return }\n  }\n  // this may be a Weex event which doesn't have this method\n  if (e.preventDefault) {\n    e.preventDefault();\n  }\n  return true\n}\n\nfunction findAnchor (children) {\n  if (children) {\n    var child;\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      if (child.tag === 'a') {\n        return child\n      }\n      if (child.children && (child = findAnchor(child.children))) {\n        return child\n      }\n    }\n  }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n  if (install.installed && _Vue === Vue) { return }\n  install.installed = true;\n\n  _Vue = Vue;\n\n  var isDef = function (v) { return v !== undefined; };\n\n  var registerInstance = function (vm, callVal) {\n    var i = vm.$options._parentVnode;\n    if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n      i(vm, callVal);\n    }\n  };\n\n  Vue.mixin({\n    beforeCreate: function beforeCreate () {\n      if (isDef(this.$options.router)) {\n        this._routerRoot = this;\n        this._router = this.$options.router;\n        this._router.init(this);\n        Vue.util.defineReactive(this, '_route', this._router.history.current);\n      } else {\n        this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n      }\n      registerInstance(this, this);\n    },\n    destroyed: function destroyed () {\n      registerInstance(this);\n    }\n  });\n\n  Object.defineProperty(Vue.prototype, '$router', {\n    get: function get () { return this._routerRoot._router }\n  });\n\n  Object.defineProperty(Vue.prototype, '$route', {\n    get: function get () { return this._routerRoot._route }\n  });\n\n  Vue.component('RouterView', View);\n  Vue.component('RouterLink', Link);\n\n  var strats = Vue.config.optionMergeStrategies;\n  // use the same hook merging strategy for route hooks\n  strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/*  */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/*  */\n\nfunction createRouteMap (\n  routes,\n  oldPathList,\n  oldPathMap,\n  oldNameMap,\n  parentRoute\n) {\n  // the path list is used to control path matching priority\n  var pathList = oldPathList || [];\n  // $flow-disable-line\n  var pathMap = oldPathMap || Object.create(null);\n  // $flow-disable-line\n  var nameMap = oldNameMap || Object.create(null);\n\n  routes.forEach(function (route) {\n    addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n  });\n\n  // ensure wildcard routes are always at the end\n  for (var i = 0, l = pathList.length; i < l; i++) {\n    if (pathList[i] === '*') {\n      pathList.push(pathList.splice(i, 1)[0]);\n      l--;\n      i--;\n    }\n  }\n\n  if (process.env.NODE_ENV === 'development') {\n    // warn if routes do not include leading slashes\n    var found = pathList\n    // check for missing leading slash\n      .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n    if (found.length > 0) {\n      var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n      warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n    }\n  }\n\n  return {\n    pathList: pathList,\n    pathMap: pathMap,\n    nameMap: nameMap\n  }\n}\n\nfunction addRouteRecord (\n  pathList,\n  pathMap,\n  nameMap,\n  route,\n  parent,\n  matchAs\n) {\n  var path = route.path;\n  var name = route.name;\n  if (process.env.NODE_ENV !== 'production') {\n    assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n    assert(\n      typeof route.component !== 'string',\n      \"route config \\\"component\\\" for path: \" + (String(\n        path || name\n      )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n    );\n\n    warn(\n      // eslint-disable-next-line no-control-regex\n      !/[^\\u0000-\\u007F]+/.test(path),\n      \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n        \"your path is correctly encoded before passing it to the router. Use \" +\n        \"encodeURI to encode static segments of your path.\"\n    );\n  }\n\n  var pathToRegexpOptions =\n    route.pathToRegexpOptions || {};\n  var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n  if (typeof route.caseSensitive === 'boolean') {\n    pathToRegexpOptions.sensitive = route.caseSensitive;\n  }\n\n  var record = {\n    path: normalizedPath,\n    regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n    components: route.components || { default: route.component },\n    alias: route.alias\n      ? typeof route.alias === 'string'\n        ? [route.alias]\n        : route.alias\n      : [],\n    instances: {},\n    enteredCbs: {},\n    name: name,\n    parent: parent,\n    matchAs: matchAs,\n    redirect: route.redirect,\n    beforeEnter: route.beforeEnter,\n    meta: route.meta || {},\n    props:\n      route.props == null\n        ? {}\n        : route.components\n          ? route.props\n          : { default: route.props }\n  };\n\n  if (route.children) {\n    // Warn if route is named, does not redirect and has a default child route.\n    // If users navigate to this route by name, the default child will\n    // not be rendered (GH Issue #629)\n    if (process.env.NODE_ENV !== 'production') {\n      if (\n        route.name &&\n        !route.redirect &&\n        route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n      ) {\n        warn(\n          false,\n          \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n            \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n            \"the default child route will not be rendered. Remove the name from \" +\n            \"this route and use the name of the default child route for named \" +\n            \"links instead.\"\n        );\n      }\n    }\n    route.children.forEach(function (child) {\n      var childMatchAs = matchAs\n        ? cleanPath((matchAs + \"/\" + (child.path)))\n        : undefined;\n      addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n    });\n  }\n\n  if (!pathMap[record.path]) {\n    pathList.push(record.path);\n    pathMap[record.path] = record;\n  }\n\n  if (route.alias !== undefined) {\n    var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n    for (var i = 0; i < aliases.length; ++i) {\n      var alias = aliases[i];\n      if (process.env.NODE_ENV !== 'production' && alias === path) {\n        warn(\n          false,\n          (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n        );\n        // skip in dev to make it work\n        continue\n      }\n\n      var aliasRoute = {\n        path: alias,\n        children: route.children\n      };\n      addRouteRecord(\n        pathList,\n        pathMap,\n        nameMap,\n        aliasRoute,\n        parent,\n        record.path || '/' // matchAs\n      );\n    }\n  }\n\n  if (name) {\n    if (!nameMap[name]) {\n      nameMap[name] = record;\n    } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n      warn(\n        false,\n        \"Duplicate named routes definition: \" +\n          \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n      );\n    }\n  }\n}\n\nfunction compileRouteRegex (\n  path,\n  pathToRegexpOptions\n) {\n  var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n  if (process.env.NODE_ENV !== 'production') {\n    var keys = Object.create(null);\n    regex.keys.forEach(function (key) {\n      warn(\n        !keys[key.name],\n        (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n      );\n      keys[key.name] = true;\n    });\n  }\n  return regex\n}\n\nfunction normalizePath (\n  path,\n  parent,\n  strict\n) {\n  if (!strict) { path = path.replace(/\\/$/, ''); }\n  if (path[0] === '/') { return path }\n  if (parent == null) { return path }\n  return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/*  */\n\n\n\nfunction createMatcher (\n  routes,\n  router\n) {\n  var ref = createRouteMap(routes);\n  var pathList = ref.pathList;\n  var pathMap = ref.pathMap;\n  var nameMap = ref.nameMap;\n\n  function addRoutes (routes) {\n    createRouteMap(routes, pathList, pathMap, nameMap);\n  }\n\n  function addRoute (parentOrRoute, route) {\n    var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n    // $flow-disable-line\n    createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n    // add aliases of parent\n    if (parent && parent.alias.length) {\n      createRouteMap(\n        // $flow-disable-line route is defined if parent is\n        parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n        pathList,\n        pathMap,\n        nameMap,\n        parent\n      );\n    }\n  }\n\n  function getRoutes () {\n    return pathList.map(function (path) { return pathMap[path]; })\n  }\n\n  function match (\n    raw,\n    currentRoute,\n    redirectedFrom\n  ) {\n    var location = normalizeLocation(raw, currentRoute, false, router);\n    var name = location.name;\n\n    if (name) {\n      var record = nameMap[name];\n      if (process.env.NODE_ENV !== 'production') {\n        warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n      }\n      if (!record) { return _createRoute(null, location) }\n      var paramNames = record.regex.keys\n        .filter(function (key) { return !key.optional; })\n        .map(function (key) { return key.name; });\n\n      if (typeof location.params !== 'object') {\n        location.params = {};\n      }\n\n      if (currentRoute && typeof currentRoute.params === 'object') {\n        for (var key in currentRoute.params) {\n          if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n            location.params[key] = currentRoute.params[key];\n          }\n        }\n      }\n\n      location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n      return _createRoute(record, location, redirectedFrom)\n    } else if (location.path) {\n      location.params = {};\n      for (var i = 0; i < pathList.length; i++) {\n        var path = pathList[i];\n        var record$1 = pathMap[path];\n        if (matchRoute(record$1.regex, location.path, location.params)) {\n          return _createRoute(record$1, location, redirectedFrom)\n        }\n      }\n    }\n    // no match\n    return _createRoute(null, location)\n  }\n\n  function redirect (\n    record,\n    location\n  ) {\n    var originalRedirect = record.redirect;\n    var redirect = typeof originalRedirect === 'function'\n      ? originalRedirect(createRoute(record, location, null, router))\n      : originalRedirect;\n\n    if (typeof redirect === 'string') {\n      redirect = { path: redirect };\n    }\n\n    if (!redirect || typeof redirect !== 'object') {\n      if (process.env.NODE_ENV !== 'production') {\n        warn(\n          false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n        );\n      }\n      return _createRoute(null, location)\n    }\n\n    var re = redirect;\n    var name = re.name;\n    var path = re.path;\n    var query = location.query;\n    var hash = location.hash;\n    var params = location.params;\n    query = re.hasOwnProperty('query') ? re.query : query;\n    hash = re.hasOwnProperty('hash') ? re.hash : hash;\n    params = re.hasOwnProperty('params') ? re.params : params;\n\n    if (name) {\n      // resolved named direct\n      var targetRecord = nameMap[name];\n      if (process.env.NODE_ENV !== 'production') {\n        assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n      }\n      return match({\n        _normalized: true,\n        name: name,\n        query: query,\n        hash: hash,\n        params: params\n      }, undefined, location)\n    } else if (path) {\n      // 1. resolve relative redirect\n      var rawPath = resolveRecordPath(path, record);\n      // 2. resolve params\n      var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n      // 3. rematch with existing query and hash\n      return match({\n        _normalized: true,\n        path: resolvedPath,\n        query: query,\n        hash: hash\n      }, undefined, location)\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n      }\n      return _createRoute(null, location)\n    }\n  }\n\n  function alias (\n    record,\n    location,\n    matchAs\n  ) {\n    var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n    var aliasedMatch = match({\n      _normalized: true,\n      path: aliasedPath\n    });\n    if (aliasedMatch) {\n      var matched = aliasedMatch.matched;\n      var aliasedRecord = matched[matched.length - 1];\n      location.params = aliasedMatch.params;\n      return _createRoute(aliasedRecord, location)\n    }\n    return _createRoute(null, location)\n  }\n\n  function _createRoute (\n    record,\n    location,\n    redirectedFrom\n  ) {\n    if (record && record.redirect) {\n      return redirect(record, redirectedFrom || location)\n    }\n    if (record && record.matchAs) {\n      return alias(record, location, record.matchAs)\n    }\n    return createRoute(record, location, redirectedFrom, router)\n  }\n\n  return {\n    match: match,\n    addRoute: addRoute,\n    getRoutes: getRoutes,\n    addRoutes: addRoutes\n  }\n}\n\nfunction matchRoute (\n  regex,\n  path,\n  params\n) {\n  var m = path.match(regex);\n\n  if (!m) {\n    return false\n  } else if (!params) {\n    return true\n  }\n\n  for (var i = 1, len = m.length; i < len; ++i) {\n    var key = regex.keys[i - 1];\n    if (key) {\n      // Fix #1994: using * with props: true generates a param named 0\n      params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n    }\n  }\n\n  return true\n}\n\nfunction resolveRecordPath (path, record) {\n  return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/*  */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n  inBrowser && window.performance && window.performance.now\n    ? window.performance\n    : Date;\n\nfunction genStateKey () {\n  return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n  return _key\n}\n\nfunction setStateKey (key) {\n  return (_key = key)\n}\n\n/*  */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n  // Prevent browser scroll behavior on History popstate\n  if ('scrollRestoration' in window.history) {\n    window.history.scrollRestoration = 'manual';\n  }\n  // Fix for #1585 for Firefox\n  // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n  // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n  // window.location.protocol + '//' + window.location.host\n  // location.host contains the port and location.hostname doesn't\n  var protocolAndPath = window.location.protocol + '//' + window.location.host;\n  var absolutePath = window.location.href.replace(protocolAndPath, '');\n  // preserve existing history state as it could be overriden by the user\n  var stateCopy = extend({}, window.history.state);\n  stateCopy.key = getStateKey();\n  window.history.replaceState(stateCopy, '', absolutePath);\n  window.addEventListener('popstate', handlePopState);\n  return function () {\n    window.removeEventListener('popstate', handlePopState);\n  }\n}\n\nfunction handleScroll (\n  router,\n  to,\n  from,\n  isPop\n) {\n  if (!router.app) {\n    return\n  }\n\n  var behavior = router.options.scrollBehavior;\n  if (!behavior) {\n    return\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n  }\n\n  // wait until re-render finishes before scrolling\n  router.app.$nextTick(function () {\n    var position = getScrollPosition();\n    var shouldScroll = behavior.call(\n      router,\n      to,\n      from,\n      isPop ? position : null\n    );\n\n    if (!shouldScroll) {\n      return\n    }\n\n    if (typeof shouldScroll.then === 'function') {\n      shouldScroll\n        .then(function (shouldScroll) {\n          scrollToPosition((shouldScroll), position);\n        })\n        .catch(function (err) {\n          if (process.env.NODE_ENV !== 'production') {\n            assert(false, err.toString());\n          }\n        });\n    } else {\n      scrollToPosition(shouldScroll, position);\n    }\n  });\n}\n\nfunction saveScrollPosition () {\n  var key = getStateKey();\n  if (key) {\n    positionStore[key] = {\n      x: window.pageXOffset,\n      y: window.pageYOffset\n    };\n  }\n}\n\nfunction handlePopState (e) {\n  saveScrollPosition();\n  if (e.state && e.state.key) {\n    setStateKey(e.state.key);\n  }\n}\n\nfunction getScrollPosition () {\n  var key = getStateKey();\n  if (key) {\n    return positionStore[key]\n  }\n}\n\nfunction getElementPosition (el, offset) {\n  var docEl = document.documentElement;\n  var docRect = docEl.getBoundingClientRect();\n  var elRect = el.getBoundingClientRect();\n  return {\n    x: elRect.left - docRect.left - offset.x,\n    y: elRect.top - docRect.top - offset.y\n  }\n}\n\nfunction isValidPosition (obj) {\n  return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n  return {\n    x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n    y: isNumber(obj.y) ? obj.y : window.pageYOffset\n  }\n}\n\nfunction normalizeOffset (obj) {\n  return {\n    x: isNumber(obj.x) ? obj.x : 0,\n    y: isNumber(obj.y) ? obj.y : 0\n  }\n}\n\nfunction isNumber (v) {\n  return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n  var isObject = typeof shouldScroll === 'object';\n  if (isObject && typeof shouldScroll.selector === 'string') {\n    // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n    // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n    var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n      ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n      : document.querySelector(shouldScroll.selector);\n\n    if (el) {\n      var offset =\n        shouldScroll.offset && typeof shouldScroll.offset === 'object'\n          ? shouldScroll.offset\n          : {};\n      offset = normalizeOffset(offset);\n      position = getElementPosition(el, offset);\n    } else if (isValidPosition(shouldScroll)) {\n      position = normalizePosition(shouldScroll);\n    }\n  } else if (isObject && isValidPosition(shouldScroll)) {\n    position = normalizePosition(shouldScroll);\n  }\n\n  if (position) {\n    // $flow-disable-line\n    if ('scrollBehavior' in document.documentElement.style) {\n      window.scrollTo({\n        left: position.x,\n        top: position.y,\n        // $flow-disable-line\n        behavior: shouldScroll.behavior\n      });\n    } else {\n      window.scrollTo(position.x, position.y);\n    }\n  }\n}\n\n/*  */\n\nvar supportsPushState =\n  inBrowser &&\n  (function () {\n    var ua = window.navigator.userAgent;\n\n    if (\n      (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n      ua.indexOf('Mobile Safari') !== -1 &&\n      ua.indexOf('Chrome') === -1 &&\n      ua.indexOf('Windows Phone') === -1\n    ) {\n      return false\n    }\n\n    return window.history && typeof window.history.pushState === 'function'\n  })();\n\nfunction pushState (url, replace) {\n  saveScrollPosition();\n  // try...catch the pushState call to get around Safari\n  // DOM Exception 18 where it limits to 100 pushState calls\n  var history = window.history;\n  try {\n    if (replace) {\n      // preserve existing history state as it could be overriden by the user\n      var stateCopy = extend({}, history.state);\n      stateCopy.key = getStateKey();\n      history.replaceState(stateCopy, '', url);\n    } else {\n      history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n    }\n  } catch (e) {\n    window.location[replace ? 'replace' : 'assign'](url);\n  }\n}\n\nfunction replaceState (url) {\n  pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n  redirected: 2,\n  aborted: 4,\n  cancelled: 8,\n  duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n  return createRouterError(\n    from,\n    to,\n    NavigationFailureType.redirected,\n    (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n      to\n    )) + \"\\\" via a navigation guard.\")\n  )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n  var error = createRouterError(\n    from,\n    to,\n    NavigationFailureType.duplicated,\n    (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n  );\n  // backwards compatible with the first introduction of Errors\n  error.name = 'NavigationDuplicated';\n  return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n  return createRouterError(\n    from,\n    to,\n    NavigationFailureType.cancelled,\n    (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n  )\n}\n\nfunction createNavigationAbortedError (from, to) {\n  return createRouterError(\n    from,\n    to,\n    NavigationFailureType.aborted,\n    (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n  )\n}\n\nfunction createRouterError (from, to, type, message) {\n  var error = new Error(message);\n  error._isRouter = true;\n  error.from = from;\n  error.to = to;\n  error.type = type;\n\n  return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n  if (typeof to === 'string') { return to }\n  if ('path' in to) { return to.path }\n  var location = {};\n  propertiesToLog.forEach(function (key) {\n    if (key in to) { location[key] = to[key]; }\n  });\n  return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n  return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n  return (\n    isError(err) &&\n    err._isRouter &&\n    (errorType == null || err.type === errorType)\n  )\n}\n\n/*  */\n\nfunction runQueue (queue, fn, cb) {\n  var step = function (index) {\n    if (index >= queue.length) {\n      cb();\n    } else {\n      if (queue[index]) {\n        fn(queue[index], function () {\n          step(index + 1);\n        });\n      } else {\n        step(index + 1);\n      }\n    }\n  };\n  step(0);\n}\n\n/*  */\n\nfunction resolveAsyncComponents (matched) {\n  return function (to, from, next) {\n    var hasAsync = false;\n    var pending = 0;\n    var error = null;\n\n    flatMapComponents(matched, function (def, _, match, key) {\n      // if it's a function and doesn't have cid attached,\n      // assume it's an async component resolve function.\n      // we are not using Vue's default async resolving mechanism because\n      // we want to halt the navigation until the incoming component has been\n      // resolved.\n      if (typeof def === 'function' && def.cid === undefined) {\n        hasAsync = true;\n        pending++;\n\n        var resolve = once(function (resolvedDef) {\n          if (isESModule(resolvedDef)) {\n            resolvedDef = resolvedDef.default;\n          }\n          // save resolved on async factory in case it's used elsewhere\n          def.resolved = typeof resolvedDef === 'function'\n            ? resolvedDef\n            : _Vue.extend(resolvedDef);\n          match.components[key] = resolvedDef;\n          pending--;\n          if (pending <= 0) {\n            next();\n          }\n        });\n\n        var reject = once(function (reason) {\n          var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n          process.env.NODE_ENV !== 'production' && warn(false, msg);\n          if (!error) {\n            error = isError(reason)\n              ? reason\n              : new Error(msg);\n            next(error);\n          }\n        });\n\n        var res;\n        try {\n          res = def(resolve, reject);\n        } catch (e) {\n          reject(e);\n        }\n        if (res) {\n          if (typeof res.then === 'function') {\n            res.then(resolve, reject);\n          } else {\n            // new syntax in Vue 2.3\n            var comp = res.component;\n            if (comp && typeof comp.then === 'function') {\n              comp.then(resolve, reject);\n            }\n          }\n        }\n      }\n    });\n\n    if (!hasAsync) { next(); }\n  }\n}\n\nfunction flatMapComponents (\n  matched,\n  fn\n) {\n  return flatten(matched.map(function (m) {\n    return Object.keys(m.components).map(function (key) { return fn(\n      m.components[key],\n      m.instances[key],\n      m, key\n    ); })\n  }))\n}\n\nfunction flatten (arr) {\n  return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n  typeof Symbol === 'function' &&\n  typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n  return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n  var called = false;\n  return function () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    if (called) { return }\n    called = true;\n    return fn.apply(this, args)\n  }\n}\n\n/*  */\n\nvar History = function History (router, base) {\n  this.router = router;\n  this.base = normalizeBase(base);\n  // start with a route object that stands for \"nowhere\"\n  this.current = START;\n  this.pending = null;\n  this.ready = false;\n  this.readyCbs = [];\n  this.readyErrorCbs = [];\n  this.errorCbs = [];\n  this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n  this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n  if (this.ready) {\n    cb();\n  } else {\n    this.readyCbs.push(cb);\n    if (errorCb) {\n      this.readyErrorCbs.push(errorCb);\n    }\n  }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n  this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n  location,\n  onComplete,\n  onAbort\n) {\n    var this$1$1 = this;\n\n  var route;\n  // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n  try {\n    route = this.router.match(location, this.current);\n  } catch (e) {\n    this.errorCbs.forEach(function (cb) {\n      cb(e);\n    });\n    // Exception should still be thrown\n    throw e\n  }\n  var prev = this.current;\n  this.confirmTransition(\n    route,\n    function () {\n      this$1$1.updateRoute(route);\n      onComplete && onComplete(route);\n      this$1$1.ensureURL();\n      this$1$1.router.afterHooks.forEach(function (hook) {\n        hook && hook(route, prev);\n      });\n\n      // fire ready cbs once\n      if (!this$1$1.ready) {\n        this$1$1.ready = true;\n        this$1$1.readyCbs.forEach(function (cb) {\n          cb(route);\n        });\n      }\n    },\n    function (err) {\n      if (onAbort) {\n        onAbort(err);\n      }\n      if (err && !this$1$1.ready) {\n        // Initial redirection should not mark the history as ready yet\n        // because it's triggered by the redirection instead\n        // https://github.com/vuejs/vue-router/issues/3225\n        // https://github.com/vuejs/vue-router/issues/3331\n        if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n          this$1$1.ready = true;\n          this$1$1.readyErrorCbs.forEach(function (cb) {\n            cb(err);\n          });\n        }\n      }\n    }\n  );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n    var this$1$1 = this;\n\n  var current = this.current;\n  this.pending = route;\n  var abort = function (err) {\n    // changed after adding errors with\n    // https://github.com/vuejs/vue-router/pull/3047 before that change,\n    // redirect and aborted navigation would produce an err == null\n    if (!isNavigationFailure(err) && isError(err)) {\n      if (this$1$1.errorCbs.length) {\n        this$1$1.errorCbs.forEach(function (cb) {\n          cb(err);\n        });\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(false, 'uncaught error during route navigation:');\n        }\n        console.error(err);\n      }\n    }\n    onAbort && onAbort(err);\n  };\n  var lastRouteIndex = route.matched.length - 1;\n  var lastCurrentIndex = current.matched.length - 1;\n  if (\n    isSameRoute(route, current) &&\n    // in the case the route map has been dynamically appended to\n    lastRouteIndex === lastCurrentIndex &&\n    route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n  ) {\n    this.ensureURL();\n    if (route.hash) {\n      handleScroll(this.router, current, route, false);\n    }\n    return abort(createNavigationDuplicatedError(current, route))\n  }\n\n  var ref = resolveQueue(\n    this.current.matched,\n    route.matched\n  );\n    var updated = ref.updated;\n    var deactivated = ref.deactivated;\n    var activated = ref.activated;\n\n  var queue = [].concat(\n    // in-component leave guards\n    extractLeaveGuards(deactivated),\n    // global before hooks\n    this.router.beforeHooks,\n    // in-component update hooks\n    extractUpdateHooks(updated),\n    // in-config enter guards\n    activated.map(function (m) { return m.beforeEnter; }),\n    // async components\n    resolveAsyncComponents(activated)\n  );\n\n  var iterator = function (hook, next) {\n    if (this$1$1.pending !== route) {\n      return abort(createNavigationCancelledError(current, route))\n    }\n    try {\n      hook(route, current, function (to) {\n        if (to === false) {\n          // next(false) -> abort navigation, ensure current URL\n          this$1$1.ensureURL(true);\n          abort(createNavigationAbortedError(current, route));\n        } else if (isError(to)) {\n          this$1$1.ensureURL(true);\n          abort(to);\n        } else if (\n          typeof to === 'string' ||\n          (typeof to === 'object' &&\n            (typeof to.path === 'string' || typeof to.name === 'string'))\n        ) {\n          // next('/') or next({ path: '/' }) -> redirect\n          abort(createNavigationRedirectedError(current, route));\n          if (typeof to === 'object' && to.replace) {\n            this$1$1.replace(to);\n          } else {\n            this$1$1.push(to);\n          }\n        } else {\n          // confirm transition and pass on the value\n          next(to);\n        }\n      });\n    } catch (e) {\n      abort(e);\n    }\n  };\n\n  runQueue(queue, iterator, function () {\n    // wait until async components are resolved before\n    // extracting in-component enter guards\n    var enterGuards = extractEnterGuards(activated);\n    var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n    runQueue(queue, iterator, function () {\n      if (this$1$1.pending !== route) {\n        return abort(createNavigationCancelledError(current, route))\n      }\n      this$1$1.pending = null;\n      onComplete(route);\n      if (this$1$1.router.app) {\n        this$1$1.router.app.$nextTick(function () {\n          handleRouteEntered(route);\n        });\n      }\n    });\n  });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n  this.current = route;\n  this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n  // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n  // clean up event listeners\n  // https://github.com/vuejs/vue-router/issues/2341\n  this.listeners.forEach(function (cleanupListener) {\n    cleanupListener();\n  });\n  this.listeners = [];\n\n  // reset current history route\n  // https://github.com/vuejs/vue-router/issues/3294\n  this.current = START;\n  this.pending = null;\n};\n\nfunction normalizeBase (base) {\n  if (!base) {\n    if (inBrowser) {\n      // respect <base> tag\n      var baseEl = document.querySelector('base');\n      base = (baseEl && baseEl.getAttribute('href')) || '/';\n      // strip full URL origin\n      base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n    } else {\n      base = '/';\n    }\n  }\n  // make sure there's the starting slash\n  if (base.charAt(0) !== '/') {\n    base = '/' + base;\n  }\n  // remove trailing slash\n  return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n  current,\n  next\n) {\n  var i;\n  var max = Math.max(current.length, next.length);\n  for (i = 0; i < max; i++) {\n    if (current[i] !== next[i]) {\n      break\n    }\n  }\n  return {\n    updated: next.slice(0, i),\n    activated: next.slice(i),\n    deactivated: current.slice(i)\n  }\n}\n\nfunction extractGuards (\n  records,\n  name,\n  bind,\n  reverse\n) {\n  var guards = flatMapComponents(records, function (def, instance, match, key) {\n    var guard = extractGuard(def, name);\n    if (guard) {\n      return Array.isArray(guard)\n        ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n        : bind(guard, instance, match, key)\n    }\n  });\n  return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n  def,\n  key\n) {\n  if (typeof def !== 'function') {\n    // extend now so that global mixins are applied.\n    def = _Vue.extend(def);\n  }\n  return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n  return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n  return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n  if (instance) {\n    return function boundRouteGuard () {\n      return guard.apply(instance, arguments)\n    }\n  }\n}\n\nfunction extractEnterGuards (\n  activated\n) {\n  return extractGuards(\n    activated,\n    'beforeRouteEnter',\n    function (guard, _, match, key) {\n      return bindEnterGuard(guard, match, key)\n    }\n  )\n}\n\nfunction bindEnterGuard (\n  guard,\n  match,\n  key\n) {\n  return function routeEnterGuard (to, from, next) {\n    return guard(to, from, function (cb) {\n      if (typeof cb === 'function') {\n        if (!match.enteredCbs[key]) {\n          match.enteredCbs[key] = [];\n        }\n        match.enteredCbs[key].push(cb);\n      }\n      next(cb);\n    })\n  }\n}\n\n/*  */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n  function HTML5History (router, base) {\n    History.call(this, router, base);\n\n    this._startLocation = getLocation(this.base);\n  }\n\n  if ( History ) HTML5History.__proto__ = History;\n  HTML5History.prototype = Object.create( History && History.prototype );\n  HTML5History.prototype.constructor = HTML5History;\n\n  HTML5History.prototype.setupListeners = function setupListeners () {\n    var this$1$1 = this;\n\n    if (this.listeners.length > 0) {\n      return\n    }\n\n    var router = this.router;\n    var expectScroll = router.options.scrollBehavior;\n    var supportsScroll = supportsPushState && expectScroll;\n\n    if (supportsScroll) {\n      this.listeners.push(setupScroll());\n    }\n\n    var handleRoutingEvent = function () {\n      var current = this$1$1.current;\n\n      // Avoiding first `popstate` event dispatched in some browsers but first\n      // history route not updated since async guard at the same time.\n      var location = getLocation(this$1$1.base);\n      if (this$1$1.current === START && location === this$1$1._startLocation) {\n        return\n      }\n\n      this$1$1.transitionTo(location, function (route) {\n        if (supportsScroll) {\n          handleScroll(router, route, current, true);\n        }\n      });\n    };\n    window.addEventListener('popstate', handleRoutingEvent);\n    this.listeners.push(function () {\n      window.removeEventListener('popstate', handleRoutingEvent);\n    });\n  };\n\n  HTML5History.prototype.go = function go (n) {\n    window.history.go(n);\n  };\n\n  HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      pushState(cleanPath(this$1$1.base + route.fullPath));\n      handleScroll(this$1$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      replaceState(cleanPath(this$1$1.base + route.fullPath));\n      handleScroll(this$1$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HTML5History.prototype.ensureURL = function ensureURL (push) {\n    if (getLocation(this.base) !== this.current.fullPath) {\n      var current = cleanPath(this.base + this.current.fullPath);\n      push ? pushState(current) : replaceState(current);\n    }\n  };\n\n  HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n    return getLocation(this.base)\n  };\n\n  return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n  var path = window.location.pathname;\n  var pathLowerCase = path.toLowerCase();\n  var baseLowerCase = base.toLowerCase();\n  // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n  // https://github.com/vuejs/vue-router/issues/3555\n  // so we ensure the trailing slash in the base\n  if (base && ((pathLowerCase === baseLowerCase) ||\n    (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n    path = path.slice(base.length);\n  }\n  return (path || '/') + window.location.search + window.location.hash\n}\n\n/*  */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n  function HashHistory (router, base, fallback) {\n    History.call(this, router, base);\n    // check history fallback deeplinking\n    if (fallback && checkFallback(this.base)) {\n      return\n    }\n    ensureSlash();\n  }\n\n  if ( History ) HashHistory.__proto__ = History;\n  HashHistory.prototype = Object.create( History && History.prototype );\n  HashHistory.prototype.constructor = HashHistory;\n\n  // this is delayed until the app mounts\n  // to avoid the hashchange listener being fired too early\n  HashHistory.prototype.setupListeners = function setupListeners () {\n    var this$1$1 = this;\n\n    if (this.listeners.length > 0) {\n      return\n    }\n\n    var router = this.router;\n    var expectScroll = router.options.scrollBehavior;\n    var supportsScroll = supportsPushState && expectScroll;\n\n    if (supportsScroll) {\n      this.listeners.push(setupScroll());\n    }\n\n    var handleRoutingEvent = function () {\n      var current = this$1$1.current;\n      if (!ensureSlash()) {\n        return\n      }\n      this$1$1.transitionTo(getHash(), function (route) {\n        if (supportsScroll) {\n          handleScroll(this$1$1.router, route, current, true);\n        }\n        if (!supportsPushState) {\n          replaceHash(route.fullPath);\n        }\n      });\n    };\n    var eventType = supportsPushState ? 'popstate' : 'hashchange';\n    window.addEventListener(\n      eventType,\n      handleRoutingEvent\n    );\n    this.listeners.push(function () {\n      window.removeEventListener(eventType, handleRoutingEvent);\n    });\n  };\n\n  HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(\n      location,\n      function (route) {\n        pushHash(route.fullPath);\n        handleScroll(this$1$1.router, route, fromRoute, false);\n        onComplete && onComplete(route);\n      },\n      onAbort\n    );\n  };\n\n  HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(\n      location,\n      function (route) {\n        replaceHash(route.fullPath);\n        handleScroll(this$1$1.router, route, fromRoute, false);\n        onComplete && onComplete(route);\n      },\n      onAbort\n    );\n  };\n\n  HashHistory.prototype.go = function go (n) {\n    window.history.go(n);\n  };\n\n  HashHistory.prototype.ensureURL = function ensureURL (push) {\n    var current = this.current.fullPath;\n    if (getHash() !== current) {\n      push ? pushHash(current) : replaceHash(current);\n    }\n  };\n\n  HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n    return getHash()\n  };\n\n  return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n  var location = getLocation(base);\n  if (!/^\\/#/.test(location)) {\n    window.location.replace(cleanPath(base + '/#' + location));\n    return true\n  }\n}\n\nfunction ensureSlash () {\n  var path = getHash();\n  if (path.charAt(0) === '/') {\n    return true\n  }\n  replaceHash('/' + path);\n  return false\n}\n\nfunction getHash () {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var index = href.indexOf('#');\n  // empty path\n  if (index < 0) { return '' }\n\n  href = href.slice(index + 1);\n\n  return href\n}\n\nfunction getUrl (path) {\n  var href = window.location.href;\n  var i = href.indexOf('#');\n  var base = i >= 0 ? href.slice(0, i) : href;\n  return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n  if (supportsPushState) {\n    pushState(getUrl(path));\n  } else {\n    window.location.hash = path;\n  }\n}\n\nfunction replaceHash (path) {\n  if (supportsPushState) {\n    replaceState(getUrl(path));\n  } else {\n    window.location.replace(getUrl(path));\n  }\n}\n\n/*  */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n  function AbstractHistory (router, base) {\n    History.call(this, router, base);\n    this.stack = [];\n    this.index = -1;\n  }\n\n  if ( History ) AbstractHistory.__proto__ = History;\n  AbstractHistory.prototype = Object.create( History && History.prototype );\n  AbstractHistory.prototype.constructor = AbstractHistory;\n\n  AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n    this.transitionTo(\n      location,\n      function (route) {\n        this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n        this$1$1.index++;\n        onComplete && onComplete(route);\n      },\n      onAbort\n    );\n  };\n\n  AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n    this.transitionTo(\n      location,\n      function (route) {\n        this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n        onComplete && onComplete(route);\n      },\n      onAbort\n    );\n  };\n\n  AbstractHistory.prototype.go = function go (n) {\n    var this$1$1 = this;\n\n    var targetIndex = this.index + n;\n    if (targetIndex < 0 || targetIndex >= this.stack.length) {\n      return\n    }\n    var route = this.stack[targetIndex];\n    this.confirmTransition(\n      route,\n      function () {\n        var prev = this$1$1.current;\n        this$1$1.index = targetIndex;\n        this$1$1.updateRoute(route);\n        this$1$1.router.afterHooks.forEach(function (hook) {\n          hook && hook(route, prev);\n        });\n      },\n      function (err) {\n        if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n          this$1$1.index = targetIndex;\n        }\n      }\n    );\n  };\n\n  AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n    var current = this.stack[this.stack.length - 1];\n    return current ? current.fullPath : '/'\n  };\n\n  AbstractHistory.prototype.ensureURL = function ensureURL () {\n    // noop\n  };\n\n  return AbstractHistory;\n}(History));\n\n/*  */\n\n\n\nvar VueRouter = function VueRouter (options) {\n  if ( options === void 0 ) options = {};\n\n  if (process.env.NODE_ENV !== 'production') {\n    warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n  }\n  this.app = null;\n  this.apps = [];\n  this.options = options;\n  this.beforeHooks = [];\n  this.resolveHooks = [];\n  this.afterHooks = [];\n  this.matcher = createMatcher(options.routes || [], this);\n\n  var mode = options.mode || 'hash';\n  this.fallback =\n    mode === 'history' && !supportsPushState && options.fallback !== false;\n  if (this.fallback) {\n    mode = 'hash';\n  }\n  if (!inBrowser) {\n    mode = 'abstract';\n  }\n  this.mode = mode;\n\n  switch (mode) {\n    case 'history':\n      this.history = new HTML5History(this, options.base);\n      break\n    case 'hash':\n      this.history = new HashHistory(this, options.base, this.fallback);\n      break\n    case 'abstract':\n      this.history = new AbstractHistory(this, options.base);\n      break\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        assert(false, (\"invalid mode: \" + mode));\n      }\n  }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n  return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n  return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n    var this$1$1 = this;\n\n  process.env.NODE_ENV !== 'production' &&\n    assert(\n      install.installed,\n      \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n        \"before creating root instance.\"\n    );\n\n  this.apps.push(app);\n\n  // set up app destroyed handler\n  // https://github.com/vuejs/vue-router/issues/2639\n  app.$once('hook:destroyed', function () {\n    // clean out app from this.apps array once destroyed\n    var index = this$1$1.apps.indexOf(app);\n    if (index > -1) { this$1$1.apps.splice(index, 1); }\n    // ensure we still have a main app or null if no apps\n    // we do not release the router so it can be reused\n    if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n    if (!this$1$1.app) { this$1$1.history.teardown(); }\n  });\n\n  // main app previously initialized\n  // return as we don't need to set up new history listener\n  if (this.app) {\n    return\n  }\n\n  this.app = app;\n\n  var history = this.history;\n\n  if (history instanceof HTML5History || history instanceof HashHistory) {\n    var handleInitialScroll = function (routeOrError) {\n      var from = history.current;\n      var expectScroll = this$1$1.options.scrollBehavior;\n      var supportsScroll = supportsPushState && expectScroll;\n\n      if (supportsScroll && 'fullPath' in routeOrError) {\n        handleScroll(this$1$1, routeOrError, from, false);\n      }\n    };\n    var setupListeners = function (routeOrError) {\n      history.setupListeners();\n      handleInitialScroll(routeOrError);\n    };\n    history.transitionTo(\n      history.getCurrentLocation(),\n      setupListeners,\n      setupListeners\n    );\n  }\n\n  history.listen(function (route) {\n    this$1$1.apps.forEach(function (app) {\n      app._route = route;\n    });\n  });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n  return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n  return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n  return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n  this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n  this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n  // $flow-disable-line\n  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve, reject) {\n      this$1$1.history.push(location, resolve, reject);\n    })\n  } else {\n    this.history.push(location, onComplete, onAbort);\n  }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1$1 = this;\n\n  // $flow-disable-line\n  if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve, reject) {\n      this$1$1.history.replace(location, resolve, reject);\n    })\n  } else {\n    this.history.replace(location, onComplete, onAbort);\n  }\n};\n\nVueRouter.prototype.go = function go (n) {\n  this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n  this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n  this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n  var route = to\n    ? to.matched\n      ? to\n      : this.resolve(to).route\n    : this.currentRoute;\n  if (!route) {\n    return []\n  }\n  return [].concat.apply(\n    [],\n    route.matched.map(function (m) {\n      return Object.keys(m.components).map(function (key) {\n        return m.components[key]\n      })\n    })\n  )\n};\n\nVueRouter.prototype.resolve = function resolve (\n  to,\n  current,\n  append\n) {\n  current = current || this.history.current;\n  var location = normalizeLocation(to, current, append, this);\n  var route = this.match(location, current);\n  var fullPath = route.redirectedFrom || route.fullPath;\n  var base = this.history.base;\n  var href = createHref(base, fullPath, this.mode);\n  return {\n    location: location,\n    route: route,\n    href: href,\n    // for backwards compat\n    normalizedTo: location,\n    resolved: route\n  }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n  return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n  this.matcher.addRoute(parentOrRoute, route);\n  if (this.history.current !== START) {\n    this.history.transitionTo(this.history.getCurrentLocation());\n  }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n  }\n  this.matcher.addRoutes(routes);\n  if (this.history.current !== START) {\n    this.history.transitionTo(this.history.getCurrentLocation());\n  }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n  list.push(fn);\n  return function () {\n    var i = list.indexOf(fn);\n    if (i > -1) { list.splice(i, 1); }\n  }\n}\n\nfunction createHref (base, fullPath, mode) {\n  var path = mode === 'hash' ? '#' + fullPath : fullPath;\n  return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n  window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global['vue-sanitize'] = factory());\n}(this, (function () { 'use strict';\n\n  var sanitizeHtml = require(\"sanitize-html\");\n\n  var VueSanitize = {\n    install: function install(Vue, options) {\n      var defaultOptions = options;\n\n      Vue.prototype.$sanitize = function (dirty) {\n        var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n        return sanitizeHtml(dirty, opts || defaultOptions);\n      };\n    },\n\n\n    defaults: sanitizeHtml.defaults\n  };\n\n  return VueSanitize;\n\n})));\n","var r=function(r){return function(r){return!!r&&\"object\"==typeof r}(r)&&!function(r){var t=Object.prototype.toString.call(r);return\"[object RegExp]\"===t||\"[object Date]\"===t||function(r){return r.$$typeof===e}(r)}(r)},e=\"function\"==typeof Symbol&&Symbol.for?Symbol.for(\"react.element\"):60103;function t(r,e){return!1!==e.clone&&e.isMergeableObject(r)?u(Array.isArray(r)?[]:{},r,e):r}function n(r,e,n){return r.concat(e).map(function(r){return t(r,n)})}function o(r){return Object.keys(r).concat(function(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(e){return r.propertyIsEnumerable(e)}):[]}(r))}function c(r,e){try{return e in r}catch(r){return!1}}function u(e,i,a){(a=a||{}).arrayMerge=a.arrayMerge||n,a.isMergeableObject=a.isMergeableObject||r,a.cloneUnlessOtherwiseSpecified=t;var f=Array.isArray(i);return f===Array.isArray(e)?f?a.arrayMerge(e,i,a):function(r,e,n){var i={};return n.isMergeableObject(r)&&o(r).forEach(function(e){i[e]=t(r[e],n)}),o(e).forEach(function(o){(function(r,e){return c(r,e)&&!(Object.hasOwnProperty.call(r,e)&&Object.propertyIsEnumerable.call(r,e))})(r,o)||(i[o]=c(r,o)&&n.isMergeableObject(e[o])?function(r,e){if(!e.customMerge)return u;var t=e.customMerge(r);return\"function\"==typeof t?t:u}(o,n)(r[o],e[o],n):t(e[o],n))}),i}(e,i,a):t(i,a)}u.all=function(r,e){if(!Array.isArray(r))throw new Error(\"first argument should be an array\");return r.reduce(function(r,t){return u(r,t,e)},{})};var i=u;function a(r){var e=(r=r||{}).storage||window&&window.localStorage,t=r.key||\"vuex\";function n(r,e){var t=e.getItem(r);try{return\"string\"==typeof t?JSON.parse(t):\"object\"==typeof t?t:void 0}catch(r){}}function o(){return!0}function c(r,e,t){return t.setItem(r,JSON.stringify(e))}function u(r,e){return Array.isArray(e)?e.reduce(function(e,t){return function(r,e,t,n){return!/^(__proto__|constructor|prototype)$/.test(e)&&((e=e.split?e.split(\".\"):e.slice(0)).slice(0,-1).reduce(function(r,e){return r[e]=r[e]||{}},r)[e.pop()]=t),r}(e,t,(n=r,void 0===(n=((o=t).split?o.split(\".\"):o).reduce(function(r,e){return r&&r[e]},n))?void 0:n));var n,o},{}):r}function a(r){return function(e){return r.subscribe(e)}}(r.assertStorage||function(){e.setItem(\"@@\",1),e.removeItem(\"@@\")})(e);var f,s=function(){return(r.getState||n)(t,e)};return r.fetchBeforeUse&&(f=s()),function(n){r.fetchBeforeUse||(f=s()),\"object\"==typeof f&&null!==f&&(n.replaceState(r.overwrite?f:i(n.state,f,{arrayMerge:r.arrayMerger||function(r,e){return e},clone:!1})),(r.rehydrated||function(){})(n)),(r.subscriber||a)(n)(function(n,i){(r.filter||o)(n)&&(r.setState||c)(t,(r.reducer||u)(i,r.paths),e)})}}export default a;\n//# sourceMappingURL=vuex-persistedstate.es.js.map\n"],"names":["normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","exports","extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","e","value","Array","isArray","map","castQueryParamValue","String","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","push","stringifyQuery","obj","Object","keys","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","name","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","ref","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bKey","bVal","isIncludedRoute","current","target","indexOf","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","props","type","default","_","children","data","routerView","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","prototype","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","TypeError","JSON","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","install","Vue","installed","isDef","v","registerInstance","callVal","_parentVnode","mixin","_router","util","defineReactive","history","destroyed","defineProperty","get","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","document","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","message","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","apply","hasSymbol","Symbol","toStringTag","__esModule","called","args","arguments","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","Math","updated","activated","deactivated","extractGuards","records","bind","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","beforeHooks","iterator","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","$once","handleInitialScroll","routeOrError","beforeEach","registerHook","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","createHref","normalizedTo","defineProperties","VueRouter$1","list","version","START_LOCATION","use","global","factory","module","sanitizeHtml","VueSanitize","defaultOptions","$sanitize","dirty","defaults","r","t","$$typeof","for","isMergeableObject","u","o","getOwnPropertySymbols","propertyIsEnumerable","arrayMerge","cloneUnlessOtherwiseSpecified","f","customMerge","all","reduce","storage","localStorage","getItem","setItem","subscribe","assertStorage","removeItem","s","getState","fetchBeforeUse","overwrite","arrayMerger","rehydrated","subscriber","setState","reducer","paths"],"sourceRoot":""}