{"version":3,"file":"app-0d11c38813967f59170e.js","mappings":"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","sources":["webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/extends.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/typeof.js","webpack://stamper-new-website/./node_modules/@babel/runtime/regenerator/index.js","webpack://stamper-new-website/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://stamper-new-website/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://stamper-new-website/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://stamper-new-website/./node_modules/react-axe/dist/after.js","webpack://stamper-new-website/./node_modules/react-axe/dist/index.js","webpack://stamper-new-website/./node_modules/requestidlecallback/index.js","webpack://stamper-new-website/./node_modules/core-js/internals/a-function.js","webpack://stamper-new-website/./node_modules/core-js/internals/an-object.js","webpack://stamper-new-website/./node_modules/core-js/internals/array-includes.js","webpack://stamper-new-website/./node_modules/core-js/internals/classof-raw.js","webpack://stamper-new-website/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://stamper-new-website/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://stamper-new-website/./node_modules/core-js/internals/create-property-descriptor.js","webpack://stamper-new-website/./node_modules/core-js/internals/descriptors.js","webpack://stamper-new-website/./node_modules/core-js/internals/document-create-element.js","webpack://stamper-new-website/./node_modules/core-js/internals/engine-user-agent.js","webpack://stamper-new-website/./node_modules/core-js/internals/engine-v8-version.js","webpack://stamper-new-website/./node_modules/core-js/internals/enum-bug-keys.js","webpack://stamper-new-website/./node_modules/core-js/internals/export.js","webpack://stamper-new-website/./node_modules/core-js/internals/fails.js","webpack://stamper-new-website/./node_modules/core-js/internals/get-built-in.js","webpack://stamper-new-website/./node_modules/core-js/internals/global.js","webpack://stamper-new-website/./node_modules/core-js/internals/has.js","webpack://stamper-new-website/./node_modules/core-js/internals/hidden-keys.js","webpack://stamper-new-website/./node_modules/core-js/internals/ie8-dom-define.js","webpack://stamper-new-website/./node_modules/core-js/internals/indexed-object.js","webpack://stamper-new-website/./node_modules/core-js/internals/inspect-source.js","webpack://stamper-new-website/./node_modules/core-js/internals/internal-state.js","webpack://stamper-new-website/./node_modules/core-js/internals/is-forced.js","webpack://stamper-new-website/./node_modules/core-js/internals/is-object.js","webpack://stamper-new-website/./node_modules/core-js/internals/is-pure.js","webpack://stamper-new-website/./node_modules/core-js/internals/is-symbol.js","webpack://stamper-new-website/./node_modules/core-js/internals/native-promise-constructor.js","webpack://stamper-new-website/./node_modules/core-js/internals/native-symbol.js","webpack://stamper-new-website/./node_modules/core-js/internals/native-weak-map.js","webpack://stamper-new-website/./node_modules/core-js/internals/new-promise-capability.js","webpack://stamper-new-website/./node_modules/core-js/internals/object-define-property.js","webpack://stamper-new-website/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://stamper-new-website/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://stamper-new-website/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://stamper-new-website/./node_modules/core-js/internals/object-keys-internal.js","webpack://stamper-new-website/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://stamper-new-website/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://stamper-new-website/./node_modules/core-js/internals/own-keys.js","webpack://stamper-new-website/./node_modules/core-js/internals/promise-resolve.js","webpack://stamper-new-website/./node_modules/core-js/internals/redefine.js","webpack://stamper-new-website/./node_modules/core-js/internals/require-object-coercible.js","webpack://stamper-new-website/./node_modules/core-js/internals/set-global.js","webpack://stamper-new-website/./node_modules/core-js/internals/shared-key.js","webpack://stamper-new-website/./node_modules/core-js/internals/shared-store.js","webpack://stamper-new-website/./node_modules/core-js/internals/shared.js","webpack://stamper-new-website/./node_modules/core-js/internals/species-constructor.js","webpack://stamper-new-website/./node_modules/core-js/internals/to-absolute-index.js","webpack://stamper-new-website/./node_modules/core-js/internals/to-indexed-object.js","webpack://stamper-new-website/./node_modules/core-js/internals/to-integer.js","webpack://stamper-new-website/./node_modules/core-js/internals/to-length.js","webpack://stamper-new-website/./node_modules/core-js/internals/to-object.js","webpack://stamper-new-website/./node_modules/core-js/internals/to-primitive.js","webpack://stamper-new-website/./node_modules/core-js/internals/to-property-key.js","webpack://stamper-new-website/./node_modules/core-js/internals/uid.js","webpack://stamper-new-website/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://stamper-new-website/./node_modules/core-js/internals/well-known-symbol.js","webpack://stamper-new-website/./node_modules/core-js/modules/es.promise.finally.js","webpack://stamper-new-website/./node_modules/gatsby-link/index.js","webpack://stamper-new-website/./node_modules/gatsby-link/parse-path.js","webpack://stamper-new-website/./node_modules/gatsby-react-router-scroll/index.js","webpack://stamper-new-website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://stamper-new-website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://stamper-new-website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://stamper-new-website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://stamper-new-website/./.cache/api-runner-browser-plugins.js","webpack://stamper-new-website/./.cache/api-runner-browser.js","webpack://stamper-new-website/./node_modules/mitt/dist/mitt.es.js","webpack://stamper-new-website/./.cache/emitter.js","webpack://stamper-new-website/./.cache/normalize-page-path.js","webpack://stamper-new-website/./.cache/find-path.js","webpack://stamper-new-website/./.cache/gatsby-browser-entry.js","webpack://stamper-new-website/./.cache/prefetch.js","webpack://stamper-new-website/./.cache/loader.js","webpack://stamper-new-website/./.cache/page-renderer.js","webpack://stamper-new-website/./.cache/route-announcer-props.js","webpack://stamper-new-website/./.cache/navigation.js","webpack://stamper-new-website/./node_modules/shallow-compare/es/index.js","webpack://stamper-new-website/./.cache/ensure-resources.js","webpack://stamper-new-website/./.cache/production-app.js","webpack://stamper-new-website/./.cache/public-page-renderer-prod.js","webpack://stamper-new-website/./.cache/public-page-renderer.js","webpack://stamper-new-website/./.cache/react-lifecycles-compat.js","webpack://stamper-new-website/./.cache/redirect-utils.js","webpack://stamper-new-website/./.cache/register-service-worker.js","webpack://stamper-new-website/./.cache/strip-prefix.js","webpack://stamper-new-website/./node_modules/gatsby-plugin-breakpoints/BreakpointProvider.js","webpack://stamper-new-website/./node_modules/gatsby-plugin-breakpoints/constants.js","webpack://stamper-new-website/./node_modules/gatsby-plugin-breakpoints/gatsby-browser.js","webpack://stamper-new-website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://stamper-new-website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://stamper-new-website/./node_modules/gatsby-plugin-offline/gatsby-browser.js","webpack://stamper-new-website/./node_modules/gatsby-plugin-react-axe/gatsby-browser.js","webpack://stamper-new-website/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://stamper-new-website/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://stamper-new-website/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://stamper-new-website/./node_modules/invariant/browser.js","webpack://stamper-new-website/./node_modules/regenerator-runtime/runtime.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://stamper-new-website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"],"sourcesContent":["function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","\"use strict\";\n\nmodule.exports = Object.assign;","\"use strict\";\n\nvar restoreFunctions = [];\n\nfunction after(host, name, cb) {\n var originalFn = host[name];\n var restoreFn;\n\n if (originalFn) {\n host[name] = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n originalFn.apply(this, args);\n cb(host);\n };\n\n restoreFn = function restoreFn() {\n host[name] = originalFn;\n };\n } else {\n host[name] = function () {\n cb(host);\n };\n\n restoreFn = function restoreFn() {\n delete host[name];\n };\n }\n\n restoreFunctions.push(restoreFn);\n}\n\nafter.restorePatchedMethods = function () {\n restoreFunctions.forEach(function (restoreFn) {\n return restoreFn();\n });\n restoreFunctions = [];\n};\n\nmodule.exports = after;","\"use strict\";\n/* global Promise */\n\nvar axeCore = require(\"axe-core\");\n\nvar rIC = require(\"requestidlecallback\");\n\nvar after = require(\"./after\");\n\nvar requestIdleCallback = rIC.request;\nvar cancelIdleCallback = rIC.cancel;\nvar React;\nvar ReactDOM; // contrasted against Chrome default color of #ffffff\n\nvar lightTheme = {\n serious: '#d93251',\n minor: '#d24700',\n text: 'black'\n}; // contrasted against Safari dark mode color of #535353\n\nvar darkTheme = {\n serious: '#ffb3b3',\n minor: '#ffd500',\n text: 'white'\n};\nvar theme = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? darkTheme : lightTheme;\nvar boldCourier = 'font-weight:bold;font-family:Courier;';\nvar critical = \"color:\" + theme.serious + \";font-weight:bold;\";\nvar serious = \"color:\" + theme.serious + \";font-weight:normal;\";\nvar moderate = \"color:\" + theme.minor + \";font-weight:bold;\";\nvar minor = \"color:\" + theme.minor + \";font-weight:normal;\";\nvar defaultReset = \"font-color:\" + theme.text + \";font-weight:normal;\";\nvar idleId;\nvar timeout;\nvar context;\n\nvar _createElement;\n\nvar components = {};\nvar nodes = [document.documentElement];\nvar cache = {}; // Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n// @see https://davidwalsh.name/javascript-debounce-function\n\nfunction debounce(func, wait, immediate) {\n var _timeout;\n\n return function () {\n var _this = this;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var later = function later() {\n _timeout = null;\n if (!immediate) func.apply(_this, args);\n };\n\n var callNow = immediate && !_timeout;\n clearTimeout(_timeout);\n _timeout = setTimeout(later, wait);\n if (callNow) func.apply(this, args);\n };\n}\n/**\n * Return the entire parent tree of a node (from HTML down).\n * @param {Node} node\n * @return {Node[]}\n */\n\n\nfunction getPath(node) {\n var path = [node];\n\n while (node && node.nodeName.toLowerCase() !== 'html') {\n path.push(node.parentNode);\n node = node.parentNode;\n }\n\n if (!node || !node.parentNode) {\n return null;\n }\n\n return path.reverse();\n}\n/**\n * Find the common parent of an array of nodes.\n * @param {Node[]} nodes\n * @return {Node}\n */\n\n\nfunction getCommonParent(nodes) {\n var path;\n var nextPath;\n\n if (nodes.length === 1) {\n return nodes.pop();\n }\n\n while (!path && nodes.length) {\n path = getPath(nodes.pop());\n }\n\n while (nodes.length) {\n nextPath = getPath(nodes.pop());\n\n if (nextPath) {\n path = path.filter(function (node, index) {\n return nextPath.length > index && nextPath[index] === node;\n });\n }\n }\n\n return path ? path[path.length - 1] : document;\n}\n/**\n * Log the axe result node to the console\n * @param {NodeResult} node\n * @param {Function} logFn console log function to use (error, warn, log, etc.)\n */\n\n\nfunction logElement(node, logFn) {\n var el = document.querySelector(node.target.toString());\n\n if (!el) {\n logFn('Selector: %c%s', boldCourier, node.target.toString());\n } else {\n logFn('Element: %o', el);\n }\n}\n/**\n * Log the axe result node html tot he console\n * @param {NodeResult} node\n */\n\n\nfunction logHtml(node) {\n console.log('HTML: %c%s', boldCourier, node.html);\n}\n/**\n * Log the failure message of a node result.\n * @param {NodeResult} node\n * @param {String} key which check array to log from (any, all, none)\n */\n\n\nfunction logFailureMessage(node, key) {\n // this exists on axe but we don't export it as part of the typescript\n // namespace, so just let me use it as I need\n var message = axeCore._audit.data.failureSummaries[key].failureMessage(node[key].map(function (check) {\n return check.message || '';\n }));\n\n console.error(message);\n}\n/**\n * Log as a group the node result and failure message.\n * @param {NodeResult} node\n * @param {String} key which check array to log from (any, all, none)\n */\n\n\nfunction failureSummary(node, key) {\n if (node[key].length > 0) {\n logElement(node, console.groupCollapsed);\n logHtml(node);\n logFailureMessage(node, key);\n var relatedNodes_1 = [];\n node[key].forEach(function (check) {\n relatedNodes_1 = relatedNodes_1.concat(check.relatedNodes);\n });\n\n if (relatedNodes_1.length > 0) {\n console.groupCollapsed('Related nodes');\n relatedNodes_1.forEach(function (relatedNode) {\n logElement(relatedNode, console.log);\n logHtml(relatedNode);\n });\n console.groupEnd();\n }\n\n console.groupEnd();\n }\n}\n/**\n * Run axe against the passed in node and report violations\n * @param {*} node\n * @param {Number} timeout force call of axe.run after the timeout has passed (if not called before)\n * @return {Promise}\n */\n\n\nfunction checkAndReport(node, timeout) {\n if (idleId) {\n cancelIdleCallback(idleId);\n idleId = undefined;\n }\n\n return new Promise(function (resolve, reject) {\n nodes.push(node);\n idleId = requestIdleCallback(function () {\n var n = context;\n\n if (n === undefined) {\n n = getCommonParent(nodes.filter(function (node) {\n return node.isConnected;\n }));\n\n if (n.nodeName.toLowerCase() === 'html') {\n // if the only common parent is the body, then analyze the whole page\n n = document;\n }\n }\n\n axeCore.run(n, {\n reporter: 'v2'\n }, function (error, results) {\n if (error) {\n return reject(error);\n }\n\n results.violations = results.violations.filter(function (result) {\n result.nodes = result.nodes.filter(function (node) {\n var key = node.target.toString() + result.id;\n var retVal = !cache[key];\n cache[key] = key;\n return retVal;\n });\n return !!result.nodes.length;\n });\n\n if (results.violations.length) {\n console.group('%cNew axe issues', serious);\n results.violations.forEach(function (result) {\n var fmt;\n\n switch (result.impact) {\n case 'critical':\n fmt = critical;\n break;\n\n case 'serious':\n fmt = serious;\n break;\n\n case 'moderate':\n fmt = moderate;\n break;\n\n case 'minor':\n fmt = minor;\n break;\n\n default:\n fmt = minor;\n break;\n }\n\n console.groupCollapsed('%c%s: %c%s %s', fmt, result.impact, defaultReset, result.help, result.helpUrl);\n result.nodes.forEach(function (node) {\n failureSummary(node, 'any');\n failureSummary(node, 'none');\n });\n console.groupEnd();\n });\n console.groupEnd();\n }\n\n resolve();\n });\n }, {\n timeout: timeout\n });\n });\n}\n/**\n * Check the node for violations.\n * @param {Component} component\n */\n\n\nfunction checkNode(component) {\n var node;\n\n try {\n node = ReactDOM.findDOMNode(component);\n } catch (e) {\n console.group('%caxe error: could not check node', critical);\n console.group('%cComponent', serious);\n console.error(component);\n console.groupEnd();\n console.group('%cError', serious);\n console.error(e);\n console.groupEnd();\n console.groupEnd();\n }\n\n if (node) {\n checkAndReport(node, timeout);\n }\n}\n/**\n * Check the component for violations whenever the DOM updates\n * @param {Component} component\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction componentAfterRender(component) {\n var debounceCheckNode = debounce(checkNode, timeout, true);\n after(component, 'componentDidMount', debounceCheckNode);\n after(component, 'componentDidUpdate', debounceCheckNode);\n}\n/**\n * Add a component to track.\n * @param {Component} component\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction addComponent(component) {\n var reactInstance = component._reactInternalInstance || {};\n var reactInstanceDebugID = reactInstance._debugID;\n var reactFiberInstance = component._reactInternalFiber || {};\n var reactFiberInstanceDebugID = reactFiberInstance._debugID;\n\n if (reactInstanceDebugID && !components[reactInstanceDebugID]) {\n components[reactInstanceDebugID] = component;\n componentAfterRender(component);\n } else if (reactFiberInstanceDebugID && !components[reactFiberInstanceDebugID]) {\n components[reactFiberInstanceDebugID] = component;\n componentAfterRender(component);\n }\n}\n/**\n * Run axe against all changes made in a React app.\n * @parma {React} _React React instance\n * @param {ReactDOM} _ReactDOM ReactDOM instance\n * @param {Number} _timeout debounce timeout in milliseconds\n * @parma {Spec} conf axe.configure Spec object\n * @param {ElementContext} _context axe ElementContent object\n */\n\n\nfunction reactAxe(_React, _ReactDOM, _timeout, conf, _context) {\n React = _React;\n ReactDOM = _ReactDOM;\n timeout = _timeout;\n context = _context;\n\n if (conf) {\n axeCore.configure(conf);\n }\n\n if (!_createElement) {\n _createElement = React.createElement;\n\n React.createElement = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var reactEl = _createElement.apply(this, args);\n\n if (reactEl._owner && reactEl._owner._instance) {\n addComponent(reactEl._owner._instance);\n } else if (reactEl._owner && reactEl._owner.stateNode) {\n addComponent(reactEl._owner.stateNode);\n }\n\n return reactEl;\n };\n }\n\n return checkAndReport(document.body, timeout);\n}\n\nmodule.exports = reactAxe;","(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n window.idleCallbackShim = factory();\n }\n})(function () {\n 'use strict';\n\n var scheduleStart, throttleDelay, lazytimer, lazyraf;\n var root = typeof window != 'undefined' ? window : typeof global != undefined ? global : this || {};\n var requestAnimationFrame = root.cancelRequestAnimationFrame && root.requestAnimationFrame || setTimeout;\n var cancelRequestAnimationFrame = root.cancelRequestAnimationFrame || clearTimeout;\n var tasks = [];\n var runAttempts = 0;\n var isRunning = false;\n var remainingTime = 7;\n var minThrottle = 35;\n var throttle = 125;\n var index = 0;\n var taskStart = 0;\n var tasklength = 0;\n var IdleDeadline = {\n get didTimeout() {\n return false;\n },\n\n timeRemaining: function timeRemaining() {\n var timeRemaining = remainingTime - (Date.now() - taskStart);\n return timeRemaining < 0 ? 0 : timeRemaining;\n }\n };\n var setInactive = debounce(function () {\n remainingTime = 22;\n throttle = 66;\n minThrottle = 0;\n });\n\n function debounce(fn) {\n var id, timestamp;\n var wait = 99;\n\n var check = function check() {\n var last = Date.now() - timestamp;\n\n if (last < wait) {\n id = setTimeout(check, wait - last);\n } else {\n id = null;\n fn();\n }\n };\n\n return function () {\n timestamp = Date.now();\n\n if (!id) {\n id = setTimeout(check, wait);\n }\n };\n }\n\n function abortRunning() {\n if (isRunning) {\n if (lazyraf) {\n cancelRequestAnimationFrame(lazyraf);\n }\n\n if (lazytimer) {\n clearTimeout(lazytimer);\n }\n\n isRunning = false;\n }\n }\n\n function onInputorMutation() {\n if (throttle != 125) {\n remainingTime = 7;\n throttle = 125;\n minThrottle = 35;\n\n if (isRunning) {\n abortRunning();\n scheduleLazy();\n }\n }\n\n setInactive();\n }\n\n function scheduleAfterRaf() {\n lazyraf = null;\n lazytimer = setTimeout(runTasks, 0);\n }\n\n function scheduleRaf() {\n lazytimer = null;\n requestAnimationFrame(scheduleAfterRaf);\n }\n\n function scheduleLazy() {\n if (isRunning) {\n return;\n }\n\n throttleDelay = throttle - (Date.now() - taskStart);\n scheduleStart = Date.now();\n isRunning = true;\n\n if (minThrottle && throttleDelay < minThrottle) {\n throttleDelay = minThrottle;\n }\n\n if (throttleDelay > 9) {\n lazytimer = setTimeout(scheduleRaf, throttleDelay);\n } else {\n throttleDelay = 0;\n scheduleRaf();\n }\n }\n\n function runTasks() {\n var task, i, len;\n var timeThreshold = remainingTime > 9 ? 9 : 1;\n taskStart = Date.now();\n isRunning = false;\n lazytimer = null;\n\n if (runAttempts > 2 || taskStart - throttleDelay - 50 < scheduleStart) {\n for (i = 0, len = tasks.length; i < len && IdleDeadline.timeRemaining() > timeThreshold; i++) {\n task = tasks.shift();\n tasklength++;\n\n if (task) {\n task(IdleDeadline);\n }\n }\n }\n\n if (tasks.length) {\n scheduleLazy();\n } else {\n runAttempts = 0;\n }\n }\n\n function requestIdleCallbackShim(task) {\n index++;\n tasks.push(task);\n scheduleLazy();\n return index;\n }\n\n function cancelIdleCallbackShim(id) {\n var index = id - 1 - tasklength;\n\n if (tasks[index]) {\n tasks[index] = null;\n }\n }\n\n if (!root.requestIdleCallback || !root.cancelIdleCallback) {\n root.requestIdleCallback = requestIdleCallbackShim;\n root.cancelIdleCallback = cancelIdleCallbackShim;\n\n if (root.document && document.addEventListener) {\n root.addEventListener('scroll', onInputorMutation, true);\n root.addEventListener('resize', onInputorMutation);\n document.addEventListener('focus', onInputorMutation, true);\n document.addEventListener('mouseover', onInputorMutation, true);\n ['click', 'keypress', 'touchstart', 'mousedown'].forEach(function (name) {\n document.addEventListener(name, onInputorMutation, {\n capture: true,\n passive: true\n });\n });\n\n if (root.MutationObserver) {\n new MutationObserver(onInputorMutation).observe(document.documentElement, {\n childList: true,\n subtree: true,\n attributes: true\n });\n }\n }\n } else {\n try {\n root.requestIdleCallback(function () {}, {\n timeout: 0\n });\n } catch (e) {\n (function (rIC) {\n var timeRemainingProto, timeRemaining;\n\n root.requestIdleCallback = function (fn, timeout) {\n if (timeout && typeof timeout.timeout == 'number') {\n return rIC(fn, timeout.timeout);\n }\n\n return rIC(fn);\n };\n\n if (root.IdleCallbackDeadline && (timeRemainingProto = IdleCallbackDeadline.prototype)) {\n timeRemaining = Object.getOwnPropertyDescriptor(timeRemainingProto, 'timeRemaining');\n\n if (!timeRemaining || !timeRemaining.configurable || !timeRemaining.get) {\n return;\n }\n\n Object.defineProperty(timeRemainingProto, 'timeRemaining', {\n value: function value() {\n return timeRemaining.get.call(this);\n },\n enumerable: true,\n configurable: true\n });\n }\n })(root.requestIdleCallback);\n }\n }\n\n return {\n request: requestIdleCallbackShim,\n cancel: cancelIdleCallbackShim\n };\n});","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && typeof NativePromise == 'function') {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---cache-caches-gatsby-plugin-offline-app-shell-js\": () => import(\"./../../caches/gatsby-plugin-offline/app-shell.js\" /* webpackChunkName: \"component---cache-caches-gatsby-plugin-offline-app-shell-js\" */),\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-about-tsx\": () => import(\"./../../../src/pages/about.tsx\" /* webpackChunkName: \"component---src-pages-about-tsx\" */),\n \"component---src-pages-contact-tsx\": () => import(\"./../../../src/pages/contact.tsx\" /* webpackChunkName: \"component---src-pages-contact-tsx\" */),\n \"component---src-pages-demo-tsx\": () => import(\"./../../../src/pages/demo.tsx\" /* webpackChunkName: \"component---src-pages-demo-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-merchants-tsx\": () => import(\"./../../../src/pages/merchants.tsx\" /* webpackChunkName: \"component---src-pages-merchants-tsx\" */),\n \"component---src-pages-users-tsx\": () => import(\"./../../../src/pages/users.tsx\" /* webpackChunkName: \"component---src-pages-users-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-react-axe/gatsby-browser.js'),\n options: {\"plugins\":[],\"showInProduction\":false,\"axeOptions\":{}},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Stamper - Program lojalnościowy z pieczątką na wynos\",\"short_name\":\"Stamper - Program lojalnościowy z pieczątką na wynos\",\"description\":\"Stamper to aplikacja, która zrzesza bardziej lojalnych klientów lubiących korzystać z kart lojalnościowych. Pozwala użytkownikom zbierać pieczątki z wielu programów w jednej aplikacji. Bez papierowych kart, zawsze pod ręką.\",\"start_url\":\"/\",\"background_color\":\"#663399\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"src/images/icon.png\",\"icons\":[{\"src\":\"icons/icon_512x512.png\",\"sizes\":\"512x512\"},{\"src\":\"icons/icon_192x192.png\",\"sizes\":\"192x192\"}],\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"a0a86d274f36494b16761bd9ed9686bd\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-breakpoints/gatsby-browser.js'),\n options: {\"plugins\":[],\"queries\":{\"xs\":\"(max-width: 360px)\",\"sm\":\"(max-width: 640px)\",\"md\":\"(max-width: 768px)\",\"lg\":\"(max-width: 1024px)\",\"xl\":\"(max-width: 1280px)\"}},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\n })\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n performance.mark(`onInitialClientRender`)\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrateRoot ? ReactDOM.hydrateRoot : ReactDOM.hydrate\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.hydrateRoot) {\n renderer(rootElement, )\n } else {\n renderer(, rootElement)\n }\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.useBreakpoint = useBreakpoint;\nexports.BreakpointContext = exports.BreakpointProvider = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nconst defaultValue = {};\nconst BreakpointContext = /*#__PURE__*/(0, _react.createContext)(defaultValue);\nexports.BreakpointContext = BreakpointContext;\n\nconst BreakpointProvider = ({\n children,\n queries\n}) => {\n const [queryMatch, setQueryMatch] = (0, _react.useState)({});\n (0, _react.useEffect)(() => {\n const mediaQueryLists = {};\n const keys = Object.keys(queries);\n let isAttached = false;\n\n const handleQueryListener = () => {\n const updatedMatches = keys.reduce((acc, media) => {\n acc[media] = !!(mediaQueryLists[media] && mediaQueryLists[media].matches);\n return acc;\n }, {});\n setQueryMatch(updatedMatches);\n };\n\n if (window && window.matchMedia) {\n const matches = {};\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media] = window.matchMedia(queries[media]);\n matches[media] = mediaQueryLists[media].matches;\n } else {\n matches[media] = false;\n }\n });\n setQueryMatch(matches);\n isAttached = true;\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media].addListener(handleQueryListener);\n }\n });\n }\n\n return () => {\n if (isAttached) {\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media].removeListener(handleQueryListener);\n }\n });\n }\n };\n }, [queries]);\n return /*#__PURE__*/_react.default.createElement(BreakpointContext.Provider, {\n value: queryMatch\n }, children);\n};\n\nexports.BreakpointProvider = BreakpointProvider;\nBreakpointProvider.propTypes = {\n children: _propTypes.default.element.isRequired,\n queries: _propTypes.default.object.isRequired\n};\n\nfunction useBreakpoint() {\n const context = (0, _react.useContext)(BreakpointContext);\n\n if (context === defaultValue) {\n throw new Error('useBreakpoint must be used within BreakpointProvider');\n }\n\n return context;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.defaultQueries = void 0;\nconst defaultQueries = {\n xs: '(max-width: 320px)',\n sm: '(max-width: 720px)',\n md: '(max-width: 1024px)',\n l: '(max-width: 1536px)'\n};\nexports.defaultQueries = defaultQueries;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.wrapRootElement = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _constants = require(\"./constants\");\n\nvar _BreakpointProvider = require(\"./BreakpointProvider\");\n\n// eslint-disable-next-line no-unused-vars\nconst wrapRootElement = ({\n element\n}, {\n queries = null\n}) => {\n return /*#__PURE__*/_react.default.createElement(_BreakpointProvider.BreakpointProvider, {\n queries: queries !== null ? queries : _constants.defaultQueries\n }, element);\n};\n\nexports.wrapRootElement = wrapRootElement;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return true;\n}; // only cache relevant resources for this page\n\n\nvar whiteListLinkRels = /^(stylesheet|preload)$/;\nvar prefetchedPathnames = [];\n\nexports.onServiceWorkerActive = function (_ref) {\n var getResourceURLsForPathname = _ref.getResourceURLsForPathname,\n serviceWorker = _ref.serviceWorker;\n\n // if the SW has just updated then clear the path dependencies and don't cache\n // stuff, since we're on the old revision until we navigate to another page\n if (window.___swUpdated) {\n serviceWorker.active.postMessage({\n gatsbyApi: \"clearPathResources\"\n });\n return;\n } // grab nodes from head of document\n\n\n var nodes = document.querySelectorAll(\"\\n head > script[src],\\n head > link[href],\\n head > style[data-href]\\n \"); // get all resource URLs\n\n var headerResources = [].slice.call(nodes) // don't include preconnect/prefetch/prerender resources\n .filter(function (node) {\n return node.tagName !== \"LINK\" || whiteListLinkRels.test(node.getAttribute(\"rel\"));\n }).map(function (node) {\n return node.src || node.href || node.getAttribute(\"data-href\");\n }); // Loop over prefetched pages and add their resources to an array,\n // plus specify which resources are required for those paths.\n\n var prefetchedResources = [];\n prefetchedPathnames.forEach(function (path) {\n var resources = getResourceURLsForPathname(path);\n prefetchedResources.push.apply(prefetchedResources, resources);\n serviceWorker.active.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }); // Loop over all resources and fetch the page component + JSON data\n // to add it to the SW cache.\n\n var resources = [].concat(headerResources, prefetchedResources);\n resources.forEach(function (resource) {\n // Create a prefetch link for each resource, so Workbox runtime-caches them\n var link = document.createElement(\"link\");\n link.rel = \"prefetch\";\n link.href = resource;\n link.onload = link.remove;\n link.onerror = link.remove;\n document.head.appendChild(link);\n });\n};\n\nfunction setPathResources(path, getResourceURLsForPathname) {\n // do nothing if the SW has just updated, since we still have old pages in\n // memory which we don't want to be whitelisted\n if (window.___swUpdated) return;\n\n if (\"serviceWorker\" in navigator) {\n var _navigator = navigator,\n serviceWorker = _navigator.serviceWorker;\n\n if (serviceWorker.controller === null) {\n // if SW is not installed, we need to record any prefetches\n // that happen so we can then add them to SW cache once installed\n prefetchedPathnames.push(path);\n } else {\n var resources = getResourceURLsForPathname(path);\n serviceWorker.controller.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }\n }\n}\n\nexports.onRouteUpdate = function (_ref2) {\n var location = _ref2.location,\n getResourceURLsForPathname = _ref2.getResourceURLsForPathname;\n var pathname = location.pathname.replace(__BASE_PATH__, \"\");\n setPathResources(pathname, getResourceURLsForPathname);\n\n if (\"serviceWorker\" in navigator && navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: \"enableOfflineShell\"\n });\n }\n};\n\nexports.onPostPrefetchPathname = function (_ref3) {\n var pathname = _ref3.pathname,\n getResourceURLsForPathname = _ref3.getResourceURLsForPathname;\n setPathResources(pathname, getResourceURLsForPathname);\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.onInitialClientRender = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _interopRequireWildcard2 = _interopRequireDefault(require(\"@babel/runtime/helpers/interopRequireWildcard\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar onInitialClientRender = /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(_) {\n var pluginOptions,\n _debounce$showInProdu,\n debounce,\n showInProduction,\n axeOptions,\n axeContext,\n _yield$import,\n axe,\n _args = arguments;\n\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n pluginOptions = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};\n _debounce$showInProdu = _objectSpread({\n debounce: 1000,\n showInProduction: false,\n axeOptions: {},\n axeContext: undefined\n }, pluginOptions), debounce = _debounce$showInProdu.debounce, showInProduction = _debounce$showInProdu.showInProduction, axeOptions = _debounce$showInProdu.axeOptions, axeContext = _debounce$showInProdu.axeContext;\n\n if (!(process.env.NODE_ENV === 'development' || showInProduction)) {\n _context.next = 8;\n break;\n }\n\n _context.next = 5;\n return Promise.resolve().then(function () {\n return (0, _interopRequireWildcard2[\"default\"])(require('react-axe'));\n });\n\n case 5:\n _yield$import = _context.sent;\n axe = _yield$import[\"default\"];\n axe(_react[\"default\"], _reactDom[\"default\"], debounce, axeOptions, axeContext);\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function onInitialClientRender(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nexports.onInitialClientRender = onInitialClientRender;","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}"],"names":["module","exports","self","ReferenceError","__esModule","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","obj","Object","defineProperty","enumerable","configurable","writable","_extends","assign","target","i","length","source","prototype","hasOwnProperty","call","setPrototypeOf","subClass","superClass","create","constructor","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","excluded","sourceKeys","keys","indexOf","_setPrototypeOf","o","p","__proto__","Symbol","iterator","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","push","popstateListener","action","addEventListener","removeEventListener","filter","navigate","to","_ref","_ref$replace","replace","go","Date","now","replaceState","pushState","e","transition","res","forEach","createMemorySource","initialPath","searchIndex","initialLocation","substr","index","stack","states","name","_","uri","_uri$split","split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","document","createElement","globalHistory","shallowCompare","validateRedirect","insertParams","match","pick","startsWith","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","params","routeSegments","path","max","Math","routeSegment","uriSegment","isSplat","slice","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","isDynamic","segment","test","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","a","b","addQuery","_len","query","Array","_key","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","concat","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","from","obj1","obj2","obj1Keys","every","restoreFunctions","after","cb","restoreFn","originalFn","_i","restorePatchedMethods","React","ReactDOM","idleId","timeout","context","_createElement","axeCore","rIC","requestIdleCallback","request","cancelIdleCallback","cancel","theme","matchMedia","matches","serious","minor","text","boldCourier","critical","moderate","defaultReset","components","nodes","documentElement","getPath","node","nodeName","toLowerCase","parentNode","reverse","logElement","logFn","el","querySelector","toString","logHtml","console","log","html","failureSummary","groupCollapsed","message","_audit","data","failureSummaries","failureMessage","check","logFailureMessage","relatedNodes_1","relatedNodes","relatedNode","groupEnd","checkAndReport","n","nextPath","getCommonParent","isConnected","run","reporter","results","violations","result","id","retVal","group","fmt","impact","help","helpUrl","checkNode","component","findDOMNode","componentAfterRender","func","wait","immediate","_timeout","debounceCheckNode","_this","later","callNow","clearTimeout","setTimeout","addComponent","reactInstanceDebugID","_reactInternalInstance","_debugID","reactFiberInstanceDebugID","_reactInternalFiber","_React","_ReactDOM","conf","_context","configure","reactEl","_owner","_instance","stateNode","body","scheduleStart","throttleDelay","lazytimer","lazyraf","root","g","requestAnimationFrame","cancelRequestAnimationFrame","tasks","runAttempts","isRunning","remainingTime","minThrottle","throttle","taskStart","tasklength","IdleDeadline","timeRemaining","setInactive","debounce","timestamp","last","abortRunning","onInputorMutation","scheduleLazy","scheduleAfterRaf","runTasks","scheduleRaf","task","len","timeThreshold","shift","requestIdleCallbackShim","cancelIdleCallbackShim","timeRemainingProto","IdleCallbackDeadline","capture","passive","MutationObserver","observe","childList","subtree","attributes","it","TypeError","String","isObject","toIndexedObject","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","O","includes","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","f","DESCRIPTORS","createPropertyDescriptor","object","bitmap","fails","global","EXISTS","getBuiltIn","version","userAgent","process","Deno","versions","v8","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","aFunction","variable","namespace","method","globalThis","Function","toObject","hasOwn","classof","propertyIsEnumerable","store","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","type","replacement","feature","detection","normalize","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","V8_VERSION","getOwnPropertySymbols","symbol","PromiseCapability","C","promise","$$resolve","$$reject","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","P","Attributes","propertyIsEnumerableModule","$getOwnPropertyDescriptor","internalObjectKeys","getOwnPropertyNames","names","$propertyIsEnumerable","NASHORN_BUG","V","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","newPromiseCapability","x","promiseCapability","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","uid","SHARED","IS_PURE","mode","copyright","SPECIES","wellKnownSymbol","defaultConstructor","S","toInteger","min","integer","IndexedObject","requireObjectCoercible","ceil","floor","argument","isNaN","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","NativePromise","speciesConstructor","promiseResolve","proto","real","onFinally","isFunction","_interopRequireDefault","withPrefix","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","_excluded","isAbsolutePath","prefix","_prefix","getGlobalBasePrefix","isLocalLink","endsWith","rewriteLinkPath","relativeTo","current","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","bool","GatsbyLinkLocationWrapper","props","Location","_ref2","GatsbyLink","_location","_React$Component","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","Boolean","style","IOSupported","IntersectionObserver","handleRef","bind","_proto","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","unobserve","disconnect","ref","_this2","innerRef","entries","entry","isIntersecting","intersectionRatio","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","___navigate","Component","propTypes","isRequired","_default","forwardRef","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","_interopRequireWildcard","_sessionStorage","createContext","SessionStorage","displayName","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","_saveScroll","windowScroll","position","shouldUpdateScroll","scrollTo","scrollToHash","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","save","scrollPosition","_this$props$location","read","_this$props$location2","Provider","children","element","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","storedValue","stringify","setItem","stateKeyBase","identifier","useLocation","useContext","useRef","useLayoutEffect","onScroll","scrollTop","plugin","require","plugins","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","previous","next","all","on","handler","off","splice","emit","evt","mitt","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","Consumer","useStaticQuery","Number","Error","graphql","supportedPrefetchStrategy","fakeLink","relList","supports","support","url","link","setAttribute","onload","onerror","getElementsByTagName","getElementsByName","appendChild","req","XMLHttpRequest","open","status","send","preFetched","catch","PageResourceStatus","Success","preferDefault","m","createPageDataUrl","s","__PATH_PREFIX__","doFetch","onreadystatechange","readyState","toPageResources","pageData","page","componentChunkName","webpackCompilationHash","staticQueryHashes","json","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","setApiRunner","apiRunner","prefetchDisabled","some","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","payload","notFound","loadPageDataJson","rawPath","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","navigator","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","add","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","top","width","height","padding","overflow","clip","whiteSpace","border","maybeRedirect","___replace","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","querySelectorAll","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","EnsureResources","getDerivedStateFromProps","loadResources","setState","nextState","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","browserLoc","SiteRoot","App","onClientEntryRanRef","performance","mark","renderer","runRender","rootElement","doc","doScroll","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","ignoreCase","fromPath","register","reg","installingWorker","installing","___failedResources","reload","str","useBreakpoint","BreakpointContext","defaultValue","BreakpointProvider","queries","useState","queryMatch","setQueryMatch","useEffect","mediaQueryLists","isAttached","handleQueryListener","updatedMatches","acc","media","addListener","removeListener","defaultQueries","xs","sm","md","wrapRootElement","_constants","_BreakpointProvider","localizedManifests","defaultFilename","isArray","localizedManifest","find","app","start_url","lang","registerServiceWorker","whiteListLinkRels","prefetchedPathnames","setPathResources","resources","onServiceWorkerActive","active","headerResources","tagName","getAttribute","src","prefetchedResources","resource","rel","remove","head","onPostPrefetchPathname","onInitialClientRender","_regenerator","_interopRequireWildcard2","_defineProperty2","_asyncToGenerator2","_reactDom","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","defineProperties","_callee","pluginOptions","_debounce$showInProdu","showInProduction","axeOptions","axeContext","_yield$import","_args","wrap","prev","sent","axe","stop","_x","_objectWithoutProperties","_classCallCheck","Constructor","_possibleConstructorReturn","_inherits","createNamedContext","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","array","child","createRoute","clone","FocusWrapper","FocusHandler","wrapperProps","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","_len2","_key2","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","k","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","event","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","condition","format","c","d","argIndex","framesToPop","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_inheritsLoose","_arrayLikeToArray","arr","arr2","_toConsumableArray","minLen"],"sourceRoot":""}