-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp-0dde59dc9d967c9eebd0.js.map
1 lines (1 loc) · 368 KB
/
app-0dde59dc9d967c9eebd0.js.map
1
{"version":3,"file":"app-0dde59dc9d967c9eebd0.js","mappings":"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","sources":["webpack://gatsby-starter-blog/./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack://gatsby-starter-blog/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://gatsby-starter-blog/./node_modules/gatsby-react-router-scroll/index.js","webpack://gatsby-starter-blog/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://gatsby-starter-blog/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://gatsby-starter-blog/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://gatsby-starter-blog/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://gatsby-starter-blog/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://gatsby-starter-blog/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://gatsby-starter-blog/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://gatsby-starter-blog/./.cache/api-runner-browser-plugins.js","webpack://gatsby-starter-blog/./.cache/api-runner-browser.js","webpack://gatsby-starter-blog/./.cache/create-content-digest-browser-shim.js","webpack://gatsby-starter-blog/./.cache/emitter.js","webpack://gatsby-starter-blog/./node_modules/mitt/dist/mitt.es.js","webpack://gatsby-starter-blog/./.cache/normalize-page-path.js","webpack://gatsby-starter-blog/./.cache/find-path.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://gatsby-starter-blog/./.cache/slice/server-slice-renderer.js","webpack://gatsby-starter-blog/./.cache/slice/server-slice.js","webpack://gatsby-starter-blog/./.cache/slice/inline-slice.js","webpack://gatsby-starter-blog/./.cache/slice.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://gatsby-starter-blog/./.cache/gatsby-browser-entry.js","webpack://gatsby-starter-blog/./.cache/prefetch.js","webpack://gatsby-starter-blog/./.cache/loader.js","webpack://gatsby-starter-blog/./.cache/head/components/fire-callback-in-effect.js","webpack://gatsby-starter-blog/./.cache/head/constants.js","webpack://gatsby-starter-blog/./.cache/head/utils.js","webpack://gatsby-starter-blog/./.cache/head/head-export-handler-for-browser.js","webpack://gatsby-starter-blog/./.cache/page-renderer.js","webpack://gatsby-starter-blog/./.cache/route-announcer-props.js","webpack://gatsby-starter-blog/./.cache/navigation.js","webpack://gatsby-starter-blog/./node_modules/shallow-compare/es/index.js","webpack://gatsby-starter-blog/./.cache/ensure-resources.js","webpack://gatsby-starter-blog/./.cache/production-app.js","webpack://gatsby-starter-blog/./.cache/public-page-renderer-prod.js","webpack://gatsby-starter-blog/./.cache/public-page-renderer.js","webpack://gatsby-starter-blog/./.cache/react-dom-utils.js","webpack://gatsby-starter-blog/./.cache/redirect-utils.js","webpack://gatsby-starter-blog/./.cache/register-service-worker.js","webpack://gatsby-starter-blog/./.cache/slice/context.js","webpack://gatsby-starter-blog/./.cache/static-query.js","webpack://gatsby-starter-blog/./.cache/context-utils.js","webpack://gatsby-starter-blog/./.cache/strip-prefix.js","webpack://gatsby-starter-blog/./node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js","webpack://gatsby-starter-blog/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://gatsby-starter-blog/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://gatsby-starter-blog/./node_modules/gatsby-plugin-offline/gatsby-browser.js","webpack://gatsby-starter-blog/./node_modules/gatsby-remark-images/constants.js","webpack://gatsby-starter-blog/./node_modules/gatsby-remark-images/gatsby-browser.js","webpack://gatsby-starter-blog/./node_modules/invariant/browser.js","webpack://gatsby-starter-blog/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://gatsby-starter-blog/./node_modules/react-server-dom-webpack/index.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gatsby-starter-blog/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://gatsby-starter-blog/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gatsby-starter-blog/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://gatsby-starter-blog/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://gatsby-starter-blog/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\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 _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _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\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example <script data-search-pseudo-elements src=\"...\"></script>\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.4\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"<!-- \".concat(node.outerHTML, \" Font Awesome fontawesome.com -->\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\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); }\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; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\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 _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\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 if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\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 if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\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 if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\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\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\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 if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\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 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 _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 return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\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}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.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-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-tags-js\": () => import(\"./../../../src/pages/tags.js\" /* webpackChunkName: \"component---src-pages-tags-js\" */),\n \"component---src-pages-using-typescript-tsx\": () => import(\"./../../../src/pages/using-typescript.tsx\" /* webpackChunkName: \"component---src-pages-using-typescript-tsx\" */),\n \"component---src-templates-blog-post-js\": () => import(\"./../../../src/templates/blog-post.js\" /* webpackChunkName: \"component---src-templates-blog-post-js\" */),\n \"component---src-templates-tags-js\": () => import(\"./../../../src/templates/tags.js\" /* webpackChunkName: \"component---src-templates-tags-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":590,\"linkImagesToOriginal\":true,\"showCaptions\":false,\"markdownCaptions\":false,\"backgroundColor\":\"white\",\"quality\":50,\"withWebp\":false,\"withAvif\":false,\"loading\":\"lazy\",\"decoding\":\"async\",\"disableBgImageOnAlpha\":false,\"disableBgImage\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Gatsby Starter Blog\",\"short_name\":\"GatsbyJS\",\"start_url\":\"/\",\"background_color\":\"#ffffff\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"content/assets/gatsby-icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"1f7576b77e4cde4c0f8fa6059c912d52\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-typography/gatsby-browser.js'),\n options: {\"plugins\":[],\"pathToConfigModule\":\"src/utils/typography\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, 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","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\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","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\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 let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\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\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","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return <ServerSliceRenderer sliceId={sliceId}>{children}</ServerSliceRenderer>\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n <slice.component\n sliceContext={slice.sliceContext}\n data={slice.data}\n {...sliceProps}\n >\n {children}\n </slice.component>\n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return <ServerSlice {...internalProps} />\n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return <InlineSlice {...internalProps} />\n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return <InlineSlice {...internalProps} />\n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render <Slice alias=\"${props.alias}\"/>`\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\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 { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\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 { createFromReadableStream } from \"react-server-dom-webpack\"\nimport 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 = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\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\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\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.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\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 const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\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/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.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 this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\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 fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\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/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.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.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\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 loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\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 Promise.resolve({\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 loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.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([componentChunkPromises, 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\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 // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\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 {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\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 dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n 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 prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\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.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\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\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, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][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[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\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 if (shouldAbortFetch(rawPath)) {\n return data\n }\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 loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\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\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // <html> and <body> tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... <html> and <body> elements are not valid descedents of <div> (our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to <div>, and just silence warnings for <html> and <body> elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `<html>` || args[1] === `<body>`)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate <head> after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n <pageComponent.Head {...filterHeadProps(pageComponentProps)} />\n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n <FireCallbackInEffect callback={onHeadRendered}>\n <StaticQueryContext.Provider value={staticQueryResults}>\n <LocationProvider>{WrapHeadElement}</LocationProvider>\n </StaticQueryContext.Provider>\n </FireCallbackInEffect>,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\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 {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\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\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = 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_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 + search).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 + search + hash\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\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 <div {...RouteAnnouncerProps} ref={this.announcementRef}></div>\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(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.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 <React.Fragment>\n {this.props.children}\n <RouteAnnouncer location={location} />\n </React.Fragment>\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 + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\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(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\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 { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\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 getSliceResults,\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\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\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 <BaseContext.Provider\n value={{\n baseuri: `/`,\n basepath: `/`,\n }}\n >\n <PageRenderer {...props} />\n </BaseContext.Provider>\n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n <Location>\n {({ location }) => (\n <EnsureResources location={location}>\n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n <StaticQueryContext.Provider value={staticQueryResults}>\n <SlicesContext.Provider value={slicesContext}>\n <SlicesResultsContext.Provider value={sliceResults}>\n <SlicesMapContext.Provider\n value={pageResources.page.slicesMap}\n >\n <DataContext.Provider\n value={{ pageResources, location }}\n >\n {children}\n </DataContext.Provider>\n </SlicesMapContext.Provider>\n </SlicesResultsContext.Provider>\n </SlicesContext.Provider>\n </StaticQueryContext.Provider>\n )\n }}\n </EnsureResources>\n )}\n </Location>\n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n <DataContext.Consumer>\n {({ pageResources, location }) => (\n <RouteUpdates location={location}>\n <ScrollContext\n location={location}\n shouldUpdateScroll={shouldUpdateScroll}\n >\n <Router\n basepath={__BASE_PATH__}\n location={location}\n id=\"gatsby-focus-wrapper\"\n >\n <RouteHandler\n path={\n pageResources.page.path === `/404.html` ||\n pageResources.page.path === `/500.html`\n ? stripPrefix(location.pathname, __BASE_PATH__)\n : encodeURI(\n (\n pageResources.page.matchPath ||\n pageResources.page.path\n ).split(`?`)[0]\n )\n }\n {...this.props}\n location={location}\n pageResources={pageResources}\n {...pageResources.json}\n />\n </Router>\n </ScrollContext>\n </RouteUpdates>\n )}\n </DataContext.Consumer>\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). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But 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 !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== 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 // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\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 const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: <LocationHandler /> },\n <LocationHandler />,\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 if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return <GatsbyRoot>{SiteRoot}</GatsbyRoot>\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(<App />, rootElement)\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 return\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","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\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","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n <React.Fragment>\n {finalData && render(finalData)}\n {!finalData && <div>Loading (StaticQuery)</div>}\n </React.Fragment>\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The <StaticQuery /> component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n <StaticQueryContext.Consumer>\n {staticQueryData => (\n <StaticQueryDataRenderer\n data={data}\n query={query}\n render={render || children}\n staticQueryData={staticQueryData}\n />\n )}\n </StaticQueryContext.Consumer>\n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\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\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\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\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","const { config } = require('@fortawesome/fontawesome-svg-core')\n\nexports.onClientEntry = () => {\n /* Prevents fontawesome auto css insertion */\n config.autoAddCss = false\n}\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\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 * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return process.env.GATSBY_IS_PREVIEW !== \"true\";\n};\n\n// only cache relevant resources for this page\nvar whiteListLinkRels = /^(stylesheet|preload)$/;\nvar prefetchedPathnames = [];\nexports.onServiceWorkerActive = function (_ref) {\n var getResourceURLsForPathname = _ref.getResourceURLsForPathname,\n serviceWorker = _ref.serviceWorker;\n if (process.env.GATSBY_IS_PREVIEW === \"true\") {\n return;\n }\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 }\n\n // grab nodes from head of document\n var nodes = document.querySelectorAll(\"\\n head > script[src],\\n head > link[href],\\n head > style[data-href]\\n \");\n\n // get all resource URLs\n var headerResources = [].slice.call(nodes)\n // 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 });\n\n // Loop over prefetched pages and add their resources to an array,\n // plus specify which resources are required for those paths.\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 });\n\n // Loop over all resources and fetch the page component + JSON data\n // to add it to the SW cache.\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};\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 if (\"serviceWorker\" in navigator) {\n var _navigator = navigator,\n serviceWorker = _navigator.serviceWorker;\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}\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 if (\"serviceWorker\" in navigator && navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: \"enableOfflineShell\"\n });\n }\n};\nexports.onPostPrefetchPathname = function (_ref3) {\n var pathname = _ref3.pathname,\n getResourceURLsForPathname = _ref3.getResourceURLsForPathname;\n setPathResources(pathname, getResourceURLsForPathname);\n};","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n withAvif: false,\n tracedSVG: false,\n loading: \"lazy\",\n decoding: \"async\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.EMPTY_ALT = \"GATSBY_EMPTY_ALT\";\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass);\n\n // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n var _loop = function _loop() {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop();\n }\n};","/**\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 * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d<c.length;d++){var e=n.get(c[d]);if(null!==e)throw e;}c=__webpack_require__(b.id);b=\"*\"===b.name?c:\"\"===b.name?c.__esModule?c.default:c:c[b.name];a._status=3;return a._value=b;case 0:throw a;default:throw a._value;}}function x(){var a=y(this,0);return w(a)}function z(a,b){return new v(3,b,a)}\nfunction A(a){if(null!==a)for(var b=0;b<a.length;b++)(0,a[b])()}function C(a,b){if(0===a._status){var c=a._value;a._status=4;a._value=b;A(c)}}function D(a,b){a._chunks.forEach(function(a){C(a,b)})}function y(a,b){var c=a._chunks,d=c.get(b);d||(d=new v(0,null,a),c.set(b,d));return d}\nfunction E(a,b,c){switch(c[0]){case \"$\":if(\"$\"===c)return p;if(\"$\"===c[1]||\"@\"===c[1])return c.substring(1);b=parseInt(c.substring(1),16);a=y(a,b);return w(a);case \"@\":return b=parseInt(c.substring(1),16),a=y(a,b),{$$typeof:q,_payload:a,_init:w}}return c}function F(a){D(a,Error(\"Connection closed.\"))}\nfunction G(a,b){if(\"\"!==b){var c=b[0],d=b.indexOf(\":\",1),e=parseInt(b.substring(1,d),16);d=b.substring(d+1);switch(c){case \"J\":b=a._chunks;(c=b.get(e))?0===c._status&&(a=c._value,c._status=1,c._value=d,A(a)):b.set(e,new v(1,d,a));break;case \"M\":b=a._chunks;c=b.get(e);d=JSON.parse(d,a._fromJSON);var f=a._bundlerConfig;d=f?f[d.id][d.name]:d;f=d.chunks;for(var h=0;h<f.length;h++){var g=f[h];if(void 0===n.get(g)){var B=__webpack_chunk_load__(g),m=n.set.bind(n,g,null),J=n.set.bind(n,g);B.then(m,J);n.set(g,\nB)}}c?0===c._status&&(a=c._value,c._status=2,c._value=d,A(a)):b.set(e,new v(2,d,a));break;case \"P\":a._chunks.set(e,z(a,u(d).Provider));break;case \"S\":c=JSON.parse(d);a._chunks.set(e,z(a,Symbol.for(c)));break;case \"E\":b=JSON.parse(d);c=Error(b.message);c.stack=b.stack;b=a._chunks;(d=b.get(e))?C(d,c):b.set(e,new v(4,c,a));break;default:throw Error(\"Error parsing the data. It's probably an error code or network corruption.\");}}}\nfunction H(a){return function(b,c){return\"string\"===typeof c?E(a,this,c):\"object\"===typeof c&&null!==c?(b=c[0]===p?{$$typeof:p,type:c[1],key:c[2],ref:null,props:c[3],_owner:null}:c,b):c}}function I(a){var b=new TextDecoder,c=new Map;a={_bundlerConfig:a,_chunks:c,readRoot:x,_partialRow:\"\",_stringDecoder:b};a._fromJSON=H(a);return a}\nfunction K(a,b){function c(b){var h=b.value;if(b.done)F(a);else{b=h;h=a._stringDecoder;for(var g=b.indexOf(10);-1<g;){var f=a._partialRow;var m=b.subarray(0,g);m=h.decode(m);G(a,f+m);a._partialRow=\"\";b=b.subarray(g+1);g=b.indexOf(10)}a._partialRow+=h.decode(b,l);return e.read().then(c,d)}}function d(b){D(a,b)}var e=b.getReader();e.read().then(c,d)}exports.createFromFetch=function(a,b){var c=I(b&&b.moduleMap?b.moduleMap:null);a.then(function(a){K(c,a.body)},function(a){D(c,a)});return c};\nexports.createFromReadableStream=function(a,b){b=I(b&&b.moduleMap?b.moduleMap:null);K(b,a);return b};\nexports.createFromXHR=function(a,b){function c(){for(var b=a.responseText,c=f,d=b.indexOf(\"\\n\",c);-1<d;)c=e._partialRow+b.substring(c,d),G(e,c),e._partialRow=\"\",c=d+1,d=b.indexOf(\"\\n\",c);e._partialRow+=b.substring(c);f=b.length}function d(){D(e,new TypeError(\"Network error\"))}var e=I(b&&b.moduleMap?b.moduleMap:null),f=0;a.addEventListener(\"progress\",c);a.addEventListener(\"load\",function(){c();F(e)});a.addEventListener(\"error\",d);a.addEventListener(\"abort\",d);a.addEventListener(\"timeout\",d);return e};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-server-dom-webpack.production.min.js');\n} else {\n module.exports = require('./cjs/react-server-dom-webpack.development.js');\n}\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n<s.length;n++)(r=e.createElement(\\\"script\\\")).innerHTML=s[n].innerHTML,e.head.appendChild(r);c&&c.parentNode.removeChild(c)}function w(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\\\".\\\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\\\"push\\\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\\\"complete\\\"==e.readyState?u():(t.addEventListener(\\\"DOMContentLoaded\\\",u),t.addEventListener(\\\"load\\\",u))}(window,document,navigator,top,window.crossOriginIsolated);\";\n\nconst createSnippet = (config, snippetCode) => {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `<script>` from executing on the main thread.\n * 2. Is used as a selector so the Partytown library can find all scripts to execute in a web worker.\n *\n * @public\n */\nconst SCRIPT_TYPE = `text/partytown`;\n\n/**\n * Function that returns the Partytown snippet as a string, which can be\n * used as the innerHTML of the inlined Partytown script in the head.\n *\n * @public\n */\nconst partytownSnippet = (config) => createSnippet(config, PartytownSnippet);\n\nexports.SCRIPT_TYPE = SCRIPT_TYPE;\nexports.partytownSnippet = partytownSnippet;\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 ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\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}","import*as e from\"react\";import t from\"react\";import r from\"prop-types\";import n from\"invariant\";function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}function a(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t.indexOf(r=a[n])>=0||(o[r]=e[r]);return o}const s=e=>{const{search:t,hash:r,href:n,origin:o,protocol:a,host:s,hostname:i,port:c}=e.location;let{pathname:l}=e.location;return!l&&n&&u&&(l=new URL(n).pathname),{pathname:encodeURI(decodeURI(l)),search:t,hash:r,href:n,origin:o,protocol:a,host:s,hostname:i,port:c,state:e.history.state,key:e.history.state&&e.history.state.key||\"initial\"}},i=(e,t)=>{let r=[],n=s(e),a=!1,i=()=>{};return{get location(){return n},get transitioning(){return a},_onTransitionComplete(){a=!1,i()},listen(t){r.push(t);const o=()=>{n=s(e),t({location:n,action:\"POP\"})};return e.addEventListener(\"popstate\",o),()=>{e.removeEventListener(\"popstate\",o),r=r.filter(e=>e!==t)}},navigate(t,{state:c,replace:u=!1}={}){if(\"number\"==typeof t)e.history.go(t);else{c=o({},c,{key:Date.now()+\"\"});try{a||u?e.history.replaceState(c,null,t):e.history.pushState(c,null,t)}catch(r){e.location[u?\"replace\":\"assign\"](t)}}n=s(e),a=!0;const l=new Promise(e=>i=e);return r.forEach(e=>e({location:n,action:\"PUSH\"})),l}}},c=(e=\"/\")=>{const t=e.indexOf(\"?\"),r={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):\"\"};let n=0;const o=[r],a=[null];return{get location(){return o[n]},addEventListener(e,t){},removeEventListener(e,t){},history:{get entries(){return o},get index(){return n},get state(){return a[n]},pushState(e,t,r){const[s,i=\"\"]=r.split(\"?\");n++,o.push({pathname:s,search:i.length?`?${i}`:i}),a.push(e)},replaceState(e,t,r){const[s,i=\"\"]=r.split(\"?\");o[n]={pathname:s,search:i},a[n]=e},go(e){const t=n+e;t<0||t>a.length-1||(n=t)}}}},u=!(\"undefined\"==typeof window||!window.document||!window.document.createElement),l=i(u?window:c()),{navigate:p}=l;function h(e,r){return t.createServerContext?((e,r=null)=>(globalThis.__SERVER_CONTEXT||(globalThis.__SERVER_CONTEXT={}),globalThis.__SERVER_CONTEXT[e]||(globalThis.__SERVER_CONTEXT[e]=t.createServerContext(e,r)),globalThis.__SERVER_CONTEXT[e]))(e,r):t.createContext(r)}const m=h(\"Base\",{baseuri:\"/\",basepath:\"/\"}),d=h(\"Location\"),f=()=>e.useContext(m),y=()=>e.useContext(d);function E(e){this.uri=e}const g=e=>e instanceof E,v=e=>{throw new E(e)};function b(t){const{to:r,replace:n=!0,state:o,noThrow:a,baseuri:s}=t;e.useEffect(()=>{Promise.resolve().then(()=>{const e=k(r,s);p(P(e,t),{replace:n,state:o})})},[]);const i=k(r,s);return a||v(P(i,t)),null}const R=t=>{const r=y(),{baseuri:n}=f();/*#__PURE__*/return e.createElement(b,o({},r,{baseuri:n},t))};R.propTypes={from:r.string,to:r.string.isRequired};const C=(e,t)=>e.substr(0,t.length)===t,w=(e,t)=>{let r,o;const[a]=t.split(\"?\"),s=N(a),i=\"\"===s[0],c=j(e);for(let e=0,a=c.length;e<a;e++){let a=!1;const u=c[e].route;if(u.default){o={route:u,params:{},uri:t};continue}const l=N(u.path),p={},h=Math.max(s.length,l.length);let m=0;for(;m<h;m++){const e=l[m],t=s[m];if($(e)){p[e.slice(1)||\"*\"]=s.slice(m).map(decodeURIComponent).join(\"/\");break}if(void 0===t){a=!0;break}const r=O.exec(e);if(r&&!i){const e=-1===U.indexOf(r[1]);n(e,`<Router> dynamic segment \"${r[1]}\" is a reserved name. Please use a different name in path \"${u.path}\".`);const o=decodeURIComponent(t);p[r[1]]=o}else if(e!==t){a=!0;break}}if(!a){r={route:u,params:p,uri:\"/\"+s.slice(0,m).join(\"/\")};break}}return r||o||null},x=(e,t)=>w([{path:e}],t),k=(e,t)=>{if(C(e,\"/\"))return e;const[r,n]=e.split(\"?\"),[o]=t.split(\"?\"),a=N(r),s=N(o);if(\"\"===a[0])return L(o,n);if(!C(a[0],\".\")){const e=s.concat(a).join(\"/\");return L((\"/\"===o?\"\":\"/\")+e,n)}const i=s.concat(a),c=[];for(let e=0,t=i.length;e<t;e++){const t=i[e];\"..\"===t?c.pop():\".\"!==t&&c.push(t)}return L(\"/\"+c.join(\"/\"),n)},P=(e,t)=>{const[r,n=\"\"]=e.split(\"?\");let o=\"/\"+N(r).map(e=>{const r=O.exec(e);return r?t[r[1]]:e}).join(\"/\");const{location:{search:a=\"\"}={}}=t,s=a.split(\"?\")[1]||\"\";return o=L(o,n,s),o},T=(e,t)=>{const r=e=>_(e);return N(e).filter(r).sort().join(\"/\")===N(t).filter(r).sort().join(\"/\")},O=/^:(.+)/,_=e=>O.test(e),$=e=>e&&\"*\"===e[0],S=(e,t)=>({route:e,score:e.default?0:N(e.path).reduce((e,t)=>(e+=4,(e=>\"\"===e)(t)?e+=1:_(t)?e+=2:$(t)?e-=5:e+=3,e),0),index:t}),j=e=>e.map(S).sort((e,t)=>e.score<t.score?1:e.score>t.score?-1:e.index-t.index),N=e=>e.replace(/(^\\/+|\\/+$)/g,\"\").split(\"/\"),L=(e,...t)=>e+((t=t.filter(e=>e&&e.length>0))&&t.length>0?`?${t.join(\"&\")}`:\"\"),U=[\"uri\",\"path\"],D=(e,t)=>{const r=Object.keys(e);return r.length===Object.keys(t).length&&r.every(r=>t.hasOwnProperty(r)&&e[r]===t[r])},M=e=>e.replace(/(^\\/+|\\/+$)/g,\"\"),I=t=>r=>{if(!r)return null;if(r.type===e.Fragment&&r.props.children)return e.Children.map(r.props.children,I(t));if(n(r.props.path||r.props.default||r.type===R,`<Router>: Children of <Router> must have a \\`path\\` or \\`default\\` prop, or be a \\`<Redirect>\\`. None found on element type \\`${r.type}\\``),n(!!(r.type!==R||r.props.from&&r.props.to),`<Redirect from=\"${r.props.from}\" to=\"${r.props.to}\"/> requires both \"from\" and \"to\" props when inside a <Router>.`),n(!(r.type===R&&!T(r.props.from,r.props.to)),`<Redirect from=\"${r.props.from} to=\"${r.props.to}\"/> has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.`),r.props.default)return{value:r,default:!0};const o=r.type===R?r.props.from:r.props.path,a=\"/\"===o?t:`${M(t)}/${M(o)}`;return{value:r,default:r.props.default,path:r.props.children?`${M(a)}/*`:a}},V=[\"innerRef\"],q=[\"to\",\"state\",\"replace\",\"getProps\"],X=[\"key\"];let{forwardRef:B}=e;void 0===B&&(B=e=>e);const K=()=>{},A=B((t,r)=>{let{innerRef:n}=t,s=a(t,V);const{baseuri:i}=f(),{location:c}=y(),{to:u,state:l,replace:h,getProps:m=K}=s,d=a(s,q),E=k(u,i),g=encodeURI(E),v=c.pathname===g,b=C(c.pathname,g);/*#__PURE__*/return e.createElement(\"a\",o({ref:r||n,\"aria-current\":v?\"page\":void 0},d,m({isCurrent:v,isPartiallyCurrent:b,href:E,location:c}),{href:E,onClick:e=>{if(d.onClick&&d.onClick(e),(e=>!e.defaultPrevented&&0===e.button&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey))(e)){e.preventDefault();let t=h;if(\"boolean\"!=typeof h&&v){const e=a(o({},c.state),X);t=D(o({},l),e)}p(E,{state:l,replace:t})}}}))});A.displayName=\"Link\",A.propTypes={to:r.string.isRequired};class F extends e.Component{constructor(...e){super(...e),this.displayName=\"ReactUseErrorBoundary\"}componentDidCatch(...e){this.setState({}),this.props.onError(...e)}render(){return this.props.children}}const W=e.createContext({componentDidCatch:{current:void 0},error:void 0,setError:()=>!1});function H({children:t}){const[r,n]=e.useState(),o=e.useRef(),a=e.useMemo(()=>({componentDidCatch:o,error:r,setError:n}),[r]);/*#__PURE__*/return e.createElement(W.Provider,{value:a},/*#__PURE__*/e.createElement(F,{error:r,onError:(e,t)=>{n(e),null==o.current||o.current(e,t)}},t))}H.displayName=\"ReactUseErrorBoundaryContext\";const z=function(t){var r,n;function a(r){/*#__PURE__*/return e.createElement(H,null,/*#__PURE__*/e.createElement(t,o({key:\"WrappedComponent\"},r)))}return a.displayName=`WithErrorBoundary(${null!=(r=null!=(n=t.displayName)?n:t.name)?r:\"Component\"})`,a}(({history:t=l,children:r})=>{const{location:n}=t,[o,a]=e.useState({location:n}),[s]=function(t){const r=e.useContext(W);r.componentDidCatch.current=void 0;const n=e.useCallback(()=>{r.setError(void 0)},[]);return[r.error,n]}();if(e.useEffect(()=>{t._onTransitionComplete()},[o.location]),e.useEffect(()=>{let e=!1;const r=t.listen(({location:t})=>{Promise.resolve().then(()=>{requestAnimationFrame(()=>{e||a({location:t})})})});return()=>{e=!0,r()}},[]),s){if(!g(s))throw s;p(s.uri,{replace:!0})}/*#__PURE__*/return e.createElement(d.Provider,{value:o},\"function\"==typeof r?r(o):r||null)}),G=({children:t})=>{const r=y();return r?t(r):/*#__PURE__*/e.createElement(z,null,t)},J=({url:t,children:r})=>{const n=t.indexOf(\"?\");let o,a=\"\";return n>-1?(o=t.substring(0,n),a=t.substring(n)):o=t,/*#__PURE__*/e.createElement(d.Provider,{value:{location:{pathname:o,search:a,hash:\"\"}}},r)},Q=({path:e,children:t})=>{const{baseuri:r}=f(),{location:n}=y(),a=k(e,r),s=x(a,n.pathname);return t({location:n,match:s?o({},s.params,{uri:s.uri,path:e}):null})},Y=[\"uri\",\"location\",\"component\"],Z=[\"children\",\"style\",\"component\",\"uri\",\"location\"],ee=t=>{let{uri:r,location:n,component:s}=t,i=a(t,Y);/*#__PURE__*/return e.createElement(re,o({},i,{component:s,uri:r,location:n}))};let te=0;const re=t=>{let{children:r,style:n,component:s=\"div\",uri:i,location:c}=t,u=a(t,Z);const l=e.useRef(),p=e.useRef(!0),h=e.useRef(i),m=e.useRef(c.pathname),d=e.useRef(!1);e.useEffect(()=>(te++,f(),()=>{te--,0===te&&(p.current=!0)}),[]),e.useEffect(()=>{let e=!1,t=!1;i!==h.current&&(h.current=i,e=!0),c.pathname!==m.current&&(m.current=c.pathname,t=!0),d.current=e||t&&c.pathname===i,d.current&&f()},[i,c]);const f=e.useCallback(()=>{var e;\"test\"!==process.env.NODE_ENV&&(p.current?p.current=!1:(e=l.current,d.current&&e&&e.focus()))},[]);/*#__PURE__*/return e.createElement(s,o({style:o({outline:\"none\"},n),tabIndex:\"-1\",ref:l},u),r)},ne=[\"location\",\"primary\",\"children\",\"basepath\",\"baseuri\",\"component\"],oe=t=>{const r=f(),n=y();/*#__PURE__*/return e.createElement(ae,o({},r,n,t))};function ae(t){const{location:r,primary:n=!0,children:s,basepath:i,component:c=\"div\"}=t,u=a(t,ne),l=e.Children.toArray(s).reduce((e,t)=>{const r=I(i)(t);return e.concat(r)},[]),{pathname:p}=r,h=w(l,p);if(h){const{params:t,uri:a,route:s,route:{value:l}}=h,p=s.default?i:s.path.replace(/\\*$/,\"\"),d=o({},t,{uri:a,location:r}),f=e.cloneElement(l,d,l.props.children?/*#__PURE__*/e.createElement(oe,{location:r,primary:n},l.props.children):void 0),y=n?ee:c,E=n?o({uri:a,location:r,component:c},u):u;/*#__PURE__*/return e.createElement(m.Provider,{value:{baseuri:a,basepath:p}},/*#__PURE__*/e.createElement(y,E,f))}return null}const se=()=>{const e=y();if(!e)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\");return e.location},ie=()=>{throw new Error(\"useNavigate is removed. Use import { navigate } from 'gatsby' instead\")},ce=()=>{const e=f();if(!e)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\");const t=se(),r=x(e.basepath,t.pathname);return r?r.params:null},ue=e=>{if(!e)throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");const t=f();if(!t)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\");const r=se(),n=k(e,t.baseuri),a=x(n,r.pathname);return a?o({},a.params,{uri:a.uri,path:e}):null};export{m as BaseContext,A as Link,G as Location,d as LocationContext,z as LocationProvider,Q as Match,R as Redirect,oe as Router,J as ServerLocation,i as createHistory,c as createMemorySource,l as globalHistory,P as insertParams,g as isRedirect,x as match,p as navigate,w as pick,v as redirectTo,k as resolve,D as shallowCompare,C as startsWith,f as useBaseContext,se as useLocation,y as useLocationContext,ue as useMatch,ie as useNavigate,ce as useParams,T as validateRedirect};\n//# sourceMappingURL=index.modern.mjs.map\n","\"use client\"\nimport t from\"prop-types\";import e from\"react\";import{resolve as n,Location as r,Link as o}from\"@gatsbyjs/reach-router\";import{applyTrailingSlashOption as s}from\"gatsby-page-utils/apply-trailing-slash-option\";function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},i.apply(this,arguments)}function a(t){let e=t||\"/\",n=\"\",r=\"\";const o=e.indexOf(\"#\");-1!==o&&(r=e.slice(o),e=e.slice(0,o));const s=e.indexOf(\"?\");return-1!==s&&(n=e.slice(s),e=e.slice(0,s)),{pathname:e,search:\"?\"===n?\"\":n,hash:\"#\"===r?\"\":r}}const c=/^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/,l=t=>{if(\"string\"==typeof t)return!(t=>c.test(t))(t)},p=()=>\"production\"!==process.env.NODE_ENV?\"undefined\"!=typeof __BASE_PATH__?__BASE_PATH__:void 0:__BASE_PATH__,h=()=>\"production\"!==process.env.NODE_ENV?\"undefined\"!=typeof __PATH_PREFIX__?__PATH_PREFIX__:void 0:__PATH_PREFIX__;function f(t,e=p()){var n;if(!l(t))return t;if(t.startsWith(\"./\")||t.startsWith(\"../\"))return t;const r=null!=(n=null!=e?e:h())?n:\"/\";return`${null!=r&&r.endsWith(\"/\")?r.slice(0,-1):r}${t.startsWith(\"/\")?t:`/${t}`}`}const u=t=>null==t?void 0:t.startsWith(\"/\"),_=()=>\"undefined\"!=typeof __TRAILING_SLASH__?__TRAILING_SLASH__:void 0;function d(t,e){const{pathname:n,search:r,hash:o}=a(t);return`${s(n,e)}${r}${o}`}const m=(t,e)=>\"number\"==typeof t?t:l(t)?u(t)?function(t){const e=f(t),n=_();return\"always\"===n||\"never\"===n?d(e,n):e}(t):function(t,e){if(u(t))return t;const r=_(),o=n(t,e);return\"always\"===r||\"never\"===r?d(o,r):o}(t,e):t,y=[\"to\",\"getProps\",\"onClick\",\"onMouseEnter\",\"activeClassName\",\"activeStyle\",\"innerRef\",\"partiallyActive\",\"state\",\"replace\",\"_location\"];function v(t){return f(t,h())}const b={activeClassName:t.string,activeStyle:t.object,partiallyActive:t.bool};function w(t){/*#__PURE__*/return e.createElement(r,null,({location:n})=>/*#__PURE__*/e.createElement(P,i({},t,{_location:n})))}class P extends e.Component{constructor(t){super(t),this.defaultGetProps=({isPartiallyCurrent:t,isCurrent:e})=>(this.props.partiallyActive?t:e)?{className:[this.props.className,this.props.activeClassName].filter(Boolean).join(\" \"),style:i({},this.props.style,this.props.activeStyle)}:null;let e=!1;\"undefined\"!=typeof window&&window.IntersectionObserver&&(e=!0),this.state={IOSupported:e},this.abortPrefetch=null,this.handleRef=this.handleRef.bind(this)}_prefetch(){let t=window.location.pathname+window.location.search;this.props._location&&this.props._location.pathname&&(t=this.props._location.pathname+this.props._location.search);const e=a(m(this.props.to,t)),n=e.pathname+e.search;if(t!==n)return ___loader.enqueue(n)}componentWillUnmount(){if(!this.io)return;const{instance:t,el:e}=this.io;this.abortPrefetch&&this.abortPrefetch.abort(),t.unobserve(e),t.disconnect()}handleRef(t){this.props.innerRef&&Object.prototype.hasOwnProperty.call(this.props.innerRef,\"current\")?this.props.innerRef.current=t:this.props.innerRef&&this.props.innerRef(t),this.state.IOSupported&&t&&(this.io=((t,e)=>{const n=new window.IntersectionObserver(n=>{n.forEach(n=>{t===n.target&&e(n.isIntersecting||n.intersectionRatio>0)})});return n.observe(t),{instance:n,el:t}})(t,t=>{t?this.abortPrefetch=this._prefetch():this.abortPrefetch&&this.abortPrefetch.abort()}))}render(){const t=this.props,{to:n,getProps:r=this.defaultGetProps,onClick:s,onMouseEnter:c,state:p,replace:h,_location:f}=t,u=function(t,e){if(null==t)return{};var n,r,o={},s=Object.keys(t);for(r=0;r<s.length;r++)e.indexOf(n=s[r])>=0||(o[n]=t[n]);return o}(t,y);\"production\"===process.env.NODE_ENV||l(n)||console.warn(`External link ${n} was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links`);const _=m(n,f.pathname);return l(_)?/*#__PURE__*/e.createElement(o,i({to:_,state:p,getProps:r,innerRef:this.handleRef,onMouseEnter:t=>{c&&c(t);const e=a(_);___loader.hovering(e.pathname+e.search)},onClick:t=>{if(s&&s(t),!(0!==t.button||this.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)){t.preventDefault();let e=h;const n=encodeURI(_)===f.pathname;\"boolean\"!=typeof h&&n&&(e=!0),window.___navigate(_,{state:p,replace:e})}return!0}},u)):/*#__PURE__*/e.createElement(\"a\",i({href:_},u))}}P.propTypes=i({},b,{onClick:t.func,to:t.string.isRequired,replace:t.bool,state:t.object});const E=e.forwardRef((t,n)=>/*#__PURE__*/e.createElement(w,i({innerRef:n},t))),g=(t,e)=>{window.___navigate(m(t,window.location.pathname),e)};export{E as Link,g as navigate,a as parsePath,v as withAssetPrefix,f as withPrefix};\n//# sourceMappingURL=index.modern.mjs.map\n","\"use client\"\nimport t,{useEffect as e}from\"react\";import{Location as n,useLocation as r}from\"@gatsbyjs/reach-router\";function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},o.apply(this,arguments)}const a=new Map,l={get:t=>a.get(t)||[],set(t,e){const n=a.get(t)||[];n.push(e),a.set(t,n)},delete(t){a.delete(t)}},s=\"undefined\"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(t){const e=Date.now();return setTimeout(function(){t({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-e))}})},1)};var c;!function(t){t.postHydrate=\"post-hydrate\",t.idle=\"idle\",t.offMainThread=\"off-main-thread\"}(c||(c={}));const i=new Set([\"src\",\"strategy\",\"dangerouslySetInnerHTML\",\"children\",\"onLoad\",\"onError\"]),u=new Set,d=new Map;function f(e){/*#__PURE__*/return t.createElement(n,null,()=>/*#__PURE__*/t.createElement(p,e))}function p(n){const{src:a,strategy:i=c.postHydrate}=n||{},{pathname:u}=r();if(e(()=>{let t;switch(i){case c.postHydrate:t=y(n);break;case c.idle:s(()=>{t=y(n)});break;case c.offMainThread:{const t=b(n);l.set(u,t)}}return()=>{const{script:e,loadCallback:n,errorCallback:r}=t||{};n&&(null==e||e.removeEventListener(\"load\",n)),r&&(null==e||e.removeEventListener(\"error\",r)),null==e||e.remove()}},[]),i===c.offMainThread){const e=m(n),r=b(n);return\"undefined\"==typeof window&&l.set(u,r),/*#__PURE__*/t.createElement(\"script\",e?o({type:\"text/partytown\",\"data-strategy\":i,crossOrigin:\"anonymous\"},r,{dangerouslySetInnerHTML:{__html:m(n)}}):o({type:\"text/partytown\",src:h(a),\"data-strategy\":i,crossOrigin:\"anonymous\"},r))}return null}function y(t){const{id:e,src:n,strategy:r=c.postHydrate,onLoad:a,onError:l}=t||{},s=e||n,i=[\"load\",\"error\"],f={load:a,error:l};if(s){for(const t of i)if(null!=f&&f[t]){var p;const e=d.get(s)||{},{callbacks:n=[]}=(null==e?void 0:e[t])||{};var y,h;n.push(null==f?void 0:f[t]),null!=e&&null!=(p=e[t])&&p.event?null==f||null==(y=f[t])||y.call(f,null==e||null==(h=e[t])?void 0:h.event):d.set(s,o({},e,{[t]:{callbacks:n}}))}if(u.has(s))return null}const v=m(t),k=b(t),w=document.createElement(\"script\");e&&(w.id=e),w.dataset.strategy=r;for(const[t,e]of Object.entries(k))w.setAttribute(t,e);v&&(w.textContent=v),n&&(w.src=n);const C={};if(s){for(const t of i){const e=e=>g(e,s,t);w.addEventListener(t,e),C[`${t}Callback`]=e}u.add(s)}return document.body.appendChild(w),{script:w,loadCallback:C.loadCallback,errorCallback:C.errorCallback}}function m(t){const{dangerouslySetInnerHTML:e,children:n=\"\"}=t||{},{__html:r=\"\"}=e||{};return r||n}function b(t){const e={};for(const[n,r]of Object.entries(t))i.has(n)||(e[n]=r);return e}function h(t){if(t)return`/__third-party-proxy?url=${encodeURIComponent(t)}`}function g(t,e,n){const r=d.get(e)||{};for(const e of(null==r||null==(o=r[n])?void 0:o.callbacks)||[]){var o;e(t)}d.set(e,{[n]:{event:t}})}export{f as Script,c as ScriptStrategy,l as collectedScriptsByPage,u as scriptCache,d as scriptCallbackCache};\n//# sourceMappingURL=index.modern.mjs.map\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_defineProperty","value","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","_nonIterableSpread","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_FA_PSEUDO_ELEMENT_PENDING","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","MUTATION_APPROACH_ASYNC","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","map","n","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","w","styles","hooks","shims","namespace","functions","loaded","doScroll","test","readyState","listener","removeEventListener","fn","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","g","process","emit","asyncSetTimer","setImmediate","setTimeout","asyncQueue","asyncFlush","asyncCall","callback","arg","invokeCallback","subscriber","owner","settled","_state","_data","promise","then","reject","handleThenable","resolve","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","this","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","all","promises","results","remaining","index","race","picked","Promise","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","insertCss","css","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","idPool","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","getIconName","cls","name","parts","prefix","iconName","slice","join","htmlEscape","str","replace","joinStyles","reduce","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","width","height","fillBlack","abstract","force","attributes","fill","makeInlineSvgAbstract","params","_params$icons","icons","main","mask","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","isUploadedIcon","widthClass","ceil","attrClass","c","classes","content","children","role","uploadedIconWidthStyle","tag","args","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","class","noop$1","p","preamble","end","perf","begin","subject","initialValue","thisContext","result","func","a","b","bindInternal4","toHex","unicode","charCodeAt","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_byUnicode","_byLigature","_byOldName","build","lookup","reducer","o","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","emptyCanonicalIcon","rest","getCanonicalIcon","values","autoFetchSvg","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","trim","joinAttributes","noop$2","isWatched","mutators","mutation","newOuterHTML","parentNode","outerHTML","toLowerCase","newNode","replaceChild","nest","forSvg","RegExp","splitClasses","match","toSvg","toNode","newInnerHTML","performOperationSync","op","perform","mutations","callbackFunction","frame","requestAnimationFrame","mutator","disabled","enableObservation","mo","classParser","existingPrefix","existingIconName","innerText","parseTransformString","transformString","first","parseFloat","isNaN","parseMeta","_classParser","extraClasses","extraStyles","prop","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","error","message","stack","Error","create","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","cx","cy","r","opacity","styles$2","asFoundIcon","vectorData","findIcon","styles$3","generateMutation","nodeMeta","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","root","htmlClassList","hclAdd","suffix","add","hclRemove","remove","prefixes","prefixesDomQuery","candidates","querySelectorAll","console","resolvedMutations","onNode","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","hexValue","substr","iconIdentifier","meta","firstChild","appendChild","removeAttribute","processable","operations","baseStyles","dfp","drc","fp","rc","s","dPatt","customPropPatt","rPatt","Library","instance","Constructor","_classCallCheck","definitions","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","definition","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","get","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","noAuto","disconnect","dom","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","observeMutationsRoot","autoReplace","options","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","objects","mutationRecord","type","addedNodes","_getCanonicalIcon","observe","childList","characterData","subtree","parse","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","text","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","counter","_params$title3","_params$classes3","_params$attributes3","_params$styles3","makeLayersCounterAbstract","layer","assembler","_params$classes4","api","_params$autoReplaceSv","exports","suffixes","input","option","hasTrailingSlash","endsWith","endsWithSuffixes","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","_interopRequireDefault","__esModule","ScrollContext","_assertThisInitialized2","_inheritsLoose2","React","nodeInterop","default","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","hasOwnProperty","desc","set","_interopRequireWildcard","_propTypes","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","createContext","SessionStorage","displayName","_React$Component","apply","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","_saveScroll","bind","windowScroll","prevProps","shouldUpdateScroll","scrollTo","scrollToHash","hash","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","_proto","location","save","componentDidMount","scrollPosition","_this$props$location","read","decodeURI","componentWillUnmount","componentDidUpdate","_this$props$location2","render","Provider","Component","propTypes","isRequired","object","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","JSON","storedValue","stringify","setItem","stateKeyBase","pathname","identifier","_reachRouter","useLocation","state","_react","useContext","ref","useRef","useLayoutEffect","current","onScroll","scrollTop","onInitialClientRender","getForwards","collectedScripts","flatMap","script","forward","injectPartytownSnippet","existingSnippet","existingSandbox","forwards","_getForwards","snippet","dataset","partytown","_integration","partytownSnippet","components","component---cache-caches-gatsby-plugin-offline-app-shell-js","component---src-pages-404-js","component---src-pages-index-js","component---src-pages-tags-js","component---src-pages-using-typescript-tsx","component---src-templates-blog-post-js","component---src-templates-tags-js","module","plugin","require","plugins","getResourceURLsForPathname","loadPage","loadPageSync","defaultReturn","argTransform","previous","on","handler","off","splice","evt","mitt","pathAndSearch","search","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","newRawPathname","qs","encodeURIComponent","decodeURIComponent","stripPrefix","__BASE_PATH__","absolutify","startsWith","URL","href","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","pick","normalizePagePath","route","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_isNativeReflectConstruct","t","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Class","_cache","Function","Wrapper","ServerSliceRenderer","sliceId","contents","ServerSlice","sliceName","allowEmpty","sliceProps","slicesMap","SlicesMapContext","slicesProps","SlicesPropsContext","concreteSliceName","getSliceId","createContentDigest","sliceUsage","hasChildren","InlineSlice","slicesResultsMap","SlicesResultsContext","component","assign","sliceContext","data","Slice","internalProps","alias","__renderedByLocation","slicesContext","SlicesContext","propErrors","validateSliceProps","SlicePropsError","renderEnvironment","additionalContextMessage","sliceRoot","componentPath","_Error","inBrowser","renderedByLocation","errors","entries","stackLines","ReactDebugCurrentFrame","getCurrentStack","captureStackTrace","self","ReferenceError","_assertThisInitialized","forcedLocation","functionName","_inheritsLoose","seenObjects","propPath","prefetchPathname","loader","enqueue","graphql","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","url","link","onload","onerror","getElementsByTagName","getElementsByName","req","XMLHttpRequest","open","status","send","preFetched","PageResourceStatus","Success","createPageDataUrl","rawPath","maybeSearch","__PATH_PREFIX__","shouldAbortFetch","doFetch","method","onreadystatechange","BOT_REGEX","toPageResources","pageData","_pageData$slicesMap","page","componentChunkName","webpackCompilationHash","staticQueryHashes","getServerDataError","json","waitForResponse","response","readRoot","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","partialHydrationDb","slicesDataDb","sliceInflightDb","slicesDb","isPrefetchQueueRunning","prefetchQueued","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","delete","setApiRunner","apiRunner","prefetchDisabled","some","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","includes","payload","notFound","internalServerError","fetchPartialHydrationJson","loadPageDataJson","loadPartialHydrationJson","loadSliceDataJson","res","loadDataPromises","loadAppData","allData","appDataResponse","pageDataResponse","rscDataResponse","pageStaticQueryHashes","finalResult","dedupedSliceNames","loadSlice","inFlight","m","slicesData","slices","dedupedStaticQueryHashes","staticQueryHash","loadChunkPromises","componentChunkPromises","sliceComponents","headComponent","pageComponent","createdAt","Date","sliceComponent","pageResources","partialHydration","readableStream","ReadableStream","start","controller","te","TextEncoder","encode","pull","close","cancel","createFromReadableStream","staticQueryBatchPromise","staticQueryResults","staticQueryResultsMap","emitter","_options","withErrorDetails","shouldPrefetch","doesConnectionSupportPrefetch","connection","effectiveType","saveData","prefetch","abort","defer","abortC","AbortController","signal","findIndex","_ref3","_processNextPrefetchBatch","requestIdleCallback","cb","toPrefetch","prefetches","_ref4","dPromise","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","hovering","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","ProdLoader","_BaseLoader","asyncRequires","chunkName","exportType","_proto2","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","getSliceResults","FireCallbackInEffect","useEffect","VALID_NODE_NAMES","isEqualNode","oldTag","newTag","HTMLElement","nonce","cloneTag","cloneNode","getValidHeadNodesAndAttributes","rootNode","htmlAndBodyAttributes","body","seenIds","validHeadNodes","_node$attributes","_node$attributes$id","nodeName","isElementType","isValidNodeName","attribute","isStyleAttribute","_htmlAndBodyAttribute","clonedNode","massageScript","_validHeadNodes$index","indexOfPreviouslyInsertedNode","nodeType","hiddenRoot","keysOfHtmlAndBodyAttributes","onHeadRendered","_document$head2","htmlElement","attributeValue","bodyElement","applyHtmlAndBodyAttributes","existingHeadElements","_document$head","append","newHeadNodes","oldNodes","newNodes","onStale","onNew","existingHeadElement","indexInNewNodes","diffNodes","headHandlerForBrowser","pageComponentProps","Head","headExportValidator","reactDOMUtils","HeadElement","serverData","pageContext","WrapHeadElement","pop","StaticQueryContext","LocationProvider","prevHeadNodes","removePrevHeadElements","htmlAndBodyattributeList","removeHtmlAndBodyAttributes","PageRenderer","__params","pageElement","PropTypes","RouteAnnouncerProps","top","padding","overflow","clip","whiteSpace","border","maybeRedirect","___replace","nextRoute","event","onPreRouteUpdate","prevLocation","onRouteUpdate","navigate","to","globalHistory","parsePath","___swUpdated","timeoutId","history","replaceState","clearTimeout","___webpackCompilationHash","serviceWorker","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","oldPathname","RouteAnnouncer","announcementRef","nextProps","pageName","pageHeadings","textContent","newAnnouncement","compareLocationProps","nextLocation","_prevLocation$state","_nextLocation$state","RouteUpdates","_React$Component2","_this2","shouldComponentUpdate","shallowDiffers","EnsureResources","getDerivedStateFromProps","prevState","loadResources","setState","nextState","shallowCompare","hydrate","___emitter","___loader","listen","action","___push","___navigate","reloadStorageKey","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","Location","sliceResults","LocationHandler","Consumer","Router","encodeURI","browserLoc","getSessionStorage","_page$page","reload","removeItem","SiteRoot","App","onClientEntryRanRef","focusEl","defaultRenderer","renderer","runRender","rootElement","doc","InternalPageRenderer","reactDomClient","el","createRoot","hydrateRoot","redirectMap","redirectIgnoreCaseMap","ignoreCase","fromPath","protocol","hostname","register","reg","installingWorker","installing","log","___failedResources","defaultValue","createServerContext","globalThis","__SERVER_CONTEXT","StaticQueryDataRenderer","staticQueryData","query","finalData","StaticQuery","useStaticQuery","_context$query","context","Number","onClientEntry","pluginOptions","_gatsby","registerServiceWorker","GATSBY_IS_PREVIEW","whiteListLinkRels","prefetchedPathnames","setPathResources","resources","onServiceWorkerActive","active","nodes","headerResources","src","prefetchedResources","resource","rel","onPostPrefetchPathname","DEFAULT_OPTIONS","maxWidth","wrapperStyle","backgroundColor","linkImagesToOriginal","showCaptions","markdownCaptions","withWebp","withAvif","tracedSVG","loading","decoding","disableBgImageOnAlpha","disableBgImage","EMPTY_ALT","imageClass","imageWrapperClass","imageBackgroundClass","_require","apiCallbackContext","imageWrappers","_loop","imageWrapper","backgroundElement","imageElement","onImageLoad","transition","onImageComplete","color","boxShadow","complete","condition","format","f","argIndex","framesToPop","k","l","stream","for","q","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ContextRegistry","v","_status","_value","_response","_fromJSON","chunks","__webpack_require__","z","A","C","D","_chunks","F","G","_bundlerConfig","h","B","J","u","H","$$typeof","_payload","_init","E","_owner","I","TextDecoder","_partialRow","_stringDecoder","K","getReader","subarray","decode","moduleMap","subClass","superClass","_setPrototypeOf","SCRIPT_TYPE","snippetCode","filteredConfig","configStr","String","createSnippet","_arrayLikeToArray","len","minLen","origin","host","port","transitioning","_onTransitionComplete","go","now","pushState","uri","noThrow","R","N","j","max","$","O","exec","U","L","T","_","sort","S","score","every","M","V","X","forwardRef","innerRef","getProps","isCurrent","isPartiallyCurrent","onClick","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","preventDefault","super","componentDidCatch","onError","W","setError","Q","Y","Z","ee","re","focus","outline","tabIndex","ne","oe","ae","primary","se","ie","ce","ue","activeClassName","activeStyle","partiallyActive","_location","defaultGetProps","className","IntersectionObserver","IOSupported","abortPrefetch","handleRef","_prefetch","io","unobserve","isIntersecting","intersectionRatio","onMouseEnter","didTimeout","timeRemaining","postHydrate","idle","offMainThread","strategy","loadCallback","errorCallback","dangerouslySetInnerHTML","__html","onLoad","load","callbacks"],"sourceRoot":""}