{"version":3,"sources":["webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/gatsby-react-router-scroll/session-storage.js","webpack:///./node_modules/gatsby-plugin-netlify-cms/gatsby-browser.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/@mdx-js/react/dist/esm.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/process/browser.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack:///./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:///./node_modules/gatsby-plugin-mdx/context.js","webpack:///./node_modules/is-what/dist/index.esm.js","webpack:///./node_modules/merge-anything/dist/index.esm.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack:///./gatsby-browser.js","webpack:///./.cache/page-renderer.js","webpack:///./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/e92f8988d65cf25c087d226e6c0ef06f.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./.cache/register-service-worker.js","webpack:///./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/stylis-rule-sheet/index.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./.cache/route-announcer-props.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/stylis/stylis.min.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/gatsby-plugin-offline/gatsby-browser.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/loader.js","webpack:///./node_modules/gatsby-plugin-mdx/loaders/mdx-scopes.js","webpack:///./node_modules/gatsby-plugin-mdx/wrap-root-element.js","webpack:///./node_modules/gatsby-plugin-mdx/gatsby-browser.js","webpack:///./src/components/button.js","webpack:///./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/69d6c085b0db34295064e1e6f68e5ba5.js","webpack:///./node_modules/gatsby-plugin-mdx/loaders/mdx-components.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-container.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/gatsby-remark-images/constants.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/gatsby-plugin-google-analytics/gatsby-browser.js","webpack:///./node_modules/gatsby-remark-images/gatsby-browser.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack:///./.cache/api-runner-browser.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js"],"names":["_interopRequireDefault","exports","__esModule","withPrefix","withAssetPrefix","path","getGlobalPathPrefix","navigateTo","replace","push","navigate","default","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_router","_utils","_parsePath","parsePath","isAbsolutePath","startsWith","prefix","_ref","_prefix","getGlobalBasePrefix","isLocalLink","base","endsWith","slice","rewriteLinkPath","relativeTo","current","resolve","absolutify","NavLinkPropTypes","activeClassName","string","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","props","createElement","Location","_ref2","location","GatsbyLink","_location","_React$Component","_this","call","this","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","filter","Boolean","join","style","IOSupported","window","IntersectionObserver","state","handleRef","bind","_proto","prototype","_prefetch","currentPath","pathname","rewrittenPath","to","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","encodeURI","___navigate","href","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","options","___push","___replace","SessionStorage","read","key","stateKey","getStateKey","value","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","_interopRequireWildcard2","require","routes","errorRoute","accessTokenRoute","onInitialClientRender","_","_ref$enableIdentityWi","enableIdentityWidget","_ref$publicPath","publicPath","hash","document","test","Promise","then","netlifyIdentityWidget","on","user","init","_typeof","_getRequireWildcardCache","WeakMap","cache","module","obj","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","desc","set","undefined","charAt","length","pathCache","Map","matchPaths","trimPathname","rawPathname","decodeURIComponent","stripPrefix","__BASE_PATH__","split","URL","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","map","matchPath","originalPath","pick","normalizePagePath","route","grabMatchParams","params","findPath","foundPath","useScrollRestoration","identifier","useLocation","useContext","_scrollHandler","ScrollContext","useRef","useLayoutEffect","position","scrollTo","onScroll","scrollTop","emitter","all","create","type","handler","off","splice","indexOf","emit","evt","mitt","Symbol","iterator","constructor","_defineProperties","i","descriptor","enumerable","configurable","writable","_defineProperty","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","sym","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","TypeError","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","toString","from","_iterableToArray","_nonIterableSpread","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","MutationObserver","performance","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","IS_IE","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","n","initial","FontAwesomeConfig","querySelector","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","domready","fn","setTimeout","doScroll","readyState","listener","removeEventListener","asyncTimer","NOOP","isNode","global","process","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","callback","arg","invokeCallback","subscriber","owner","settled","_state","_data","promise","reject","handleThenable","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","promises","results","remaining","index","race","picked","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","insertCss","css","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","getIconName","cls","name","parts","iconName","htmlEscape","str","joinStyles","reduce","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","ALL_SPACE","width","height","fillBlack","abstract","force","attributes","fill","makeInlineSvgAbstract","_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","makeLayersCounterAbstract","noop$1","p","preamble","end","perf","subject","initialValue","thisContext","result","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","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","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","addedNodes","_getCanonicalIcon","childList","characterData","subtree","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","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","resolvedMutations","onNode","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","hexValue","substr","iconIdentifier","meta","firstChild","appendChild","removeAttribute","processable","operations","drc","fp","rc","s","dPatt","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","definitions","Library","Constructor","_classCallCheck","protoProps","staticProps","_len","_key","additions","_pullDefinitions","definition","0","_normalized$key","noAuto","dom","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","autoReplace","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","layer","assembler","_params$classes4","api","_params$autoReplaceSv","ScrollContainer","ScrollHandler","_scrollContainer","_useScrollRestoration","_extends","assign","apply","enumerableOnly","symbols","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","MDXContext","createContext","withMDXComponents","allComponents","useMDXComponents","components","contextComponents","MDXProvider","Provider","DEFAULTS","inlineCode","wrapper","Fragment","MDXCreateElement","propComponents","mdxType","originalType","parentName","etc","argsLength","createElementArgArray","newProps","displayName","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","polyfill","getLocation","_source$location","search","origin","protocol","host","hostname","port","canUseDOM","decodeURI","history","createHistory","transitioning","resolveTransition","_onTransitionComplete","listen","popstateListener","action","_ref$replace","go","Date","now","replaceState","pushState","transition","res","createMemorySource","initialPath","searchIndex","initialLocation","states","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","globalHistory","localizedManifests","localizedManifest","find","app","start_url","lang","reactPropsRegex","GatsbyMDXScopeContext","useMDXScope","scope","contextScope","MDXScopeProvider","__mdxScope","getType","payload","isUndefined","isNull","isPlainObject","getPrototypeOf","isSymbol","__spreadArrays","il","k","j","jl","assignProp","carry","newVal","originalObject","propType","mergeRecursively","newComer","extensions","extend","newObject","getOwnPropertyNames","targetVal","includes","newComers","_interopRequireWildcard","React","_sessionStorage","_stateStorage","scrollListener","scrollY","windowScroll","shouldUpdateScroll","scrollToHash","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","_this$props$location2","PageRenderer","pageResources","json","pageContext","__params","pathContext","pageElement","apiRunner","loader","publicLoader","component","page","pop","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","routeSegments","max","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","exec","reservedNames","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","_path$split","pathBase","_path$split$","query","constructedPath","_params$location","_params$location$sear","searchSplit","validateRedirect","isDynamic","sort","rankRoute","score","isRootSegment","SEGMENT_POINTS","q","shallowCompare","obj1","obj2","obj1Keys","every","plugin","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","ie10","appVersion","fns","doc","hack","shift","serviceWorker","register","reg","installingWorker","installing","log","controller","___swUpdated","___failedResources","reload","self","ReferenceError","condition","format","f","argIndex","framesToPop","_setPrototypeOf","setPrototypeOf","__proto__","insertRule","toSheet","block","context","selectors","parents","line","column","ns","depth","at","delimiter","factory","Function","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","RouteAnnouncerProps","top","padding","overflow","clip","whiteSpace","border","redirectMap","redirectIgnoreCaseMap","maybeRedirect","redirect","toPath","redirects","ignoreCase","fromPath","onPreRouteUpdate","prevLocation","onRouteUpdate","timeoutId","loadPage","status","PageResourceStatus","webpackCompilationHash","___webpackCompilationHash","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","createRef","nextProps","pageName","pageHeadings","textContent","newAnnouncement","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","EnsureResources","loadPageSync","getDerivedStateFromProps","loadResources","rawPath","setState","nextState","ProdLoader","asyncRequires","setLoader","setApiRunner","___emitter","apiRunnerAsync","RouteHandler","baseuri","basepath","DataContext","GatsbyRoot","staticQueryResults","getStaticQueryResults","LocationHandler","Consumer","pagePath","browserLoc","SiteRoot","App","renderer","ReactDOM","hydrate","domReady","subClass","superClass","prefetchPathname","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","data","finalData","StaticQuery","useStaticQuery","Number","graphql","areInputsEqual","newInputs","lastInputs","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","event","port2","script","onreadystatechange","attachEvent","task","_possibleConstructorReturn","_inherits","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","url","BaseContext","Router","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","Children","createRoute","clone","cloneElement","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","_len2","_key2","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","C","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","t","h","u","g","A","v","m","$","O","z","N","S","F","W","B","D","E","I","J","M","Q","T","U","V","Z","be","pe","ke","ge","Ae","Ce","we","ve","me","xe","$e","ye","Oe","qe","Be","De","Ee","Ge","He","R","je","ze","Je","Re","Te","Ue","Ve","Xe","Ye","Qe","Pe","Ie","Me","Le","Ke","use","hashIndex","_inheritsLoose","registerServiceWorker","whiteListLinkRels","prefetchedPathnames","setPathResources","getResourceURLsForPathname","resources","onServiceWorkerActive","nodes","headerResources","src","prefetchedResources","resource","link","rel","onload","onerror","onPostPrefetchPathname","_arrayLikeToArray","minLen","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","getElementsByTagName","getElementsByName","req","XMLHttpRequest","open","send","preFetched","prefetch","Success","preferDefault","createPageDataUrl","doFetch","method","toPageResources","pageData","componentChunkName","staticQueryHashes","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","prefetchDisabled","some","fetchPageDataJson","loadObj","retries","responseText","jsonPayload","notFound","loadPageDataJson","loadAppData","allData","finalResult","componentChunkPromise","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResultsMap","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","chunkName","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","scope_0","scope_1","componentsAndGuards","mdxPlugins","guards","componentName","guard","componentFromGuards","MDXConsumer","componentsFromContext","scopeContexts","wrapRootElement","ButtonWrapper","styled","background","color","radius","marginTop","marginBottom","Button","plugins","_reactDom","scrollKey","ScrollContainerImplementation","findDOMNode","DEFAULT_OPTIONS","maxWidth","wrapperStyle","backgroundColor","linkImagesToOriginal","showCaptions","markdownCaptions","withWebp","withAvif","tracedSVG","loading","disableBgImageOnAlpha","disableBgImage","EMPTY_ALT","imageClass","imageWrapperClass","imageBackgroundClass","pluginOptions","ga","excludeGAPaths","rx","delay","pageTransitionDelay","_require","apiCallbackContext","imageWrappers","_loop","imageWrapper","backgroundElement","imageElement","onImageLoad","onImageComplete","boxShadow","complete","for","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ProdPageRenderer","InternalPageRenderer","interleave","strings","interpolations","classCallCheck","createClass","inherits","possibleConstructorReturn","EMPTY_ARRAY","freeze","EMPTY_OBJECT","isFunction","getComponentName","isStyledComponent","styledComponentId","SC_ATTR","REACT_APP_SC_ATTR","IS_BROWSER","DISABLE_SPEEDY","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","StyledComponentsError","_Error","code","SC_COMPONENT_ID","extractComps","maybeCSS","existingComponents","componentId","matchIndex","nextComp","cssFromDOM","COMMENT_REGEX","stylisSplitter","cascade","keyframe","compress","semicolon","stylis","parsingRules","returnRulesPlugin","parsedRules","parseRulesPlugin","rule","_componentId","_selector","_selectorRegexp","selfReferenceReplacer","lastIndexOf","splitByRules","stringifyRules","rules","selector","flatCSS","cssStr","getNonce","addNameForId","names","resetIdNames","hasNameForId","stringifyNames","sheetForTag","sheet","ownerDocument","styleSheets","ownerNode","safeInsertRule","cssRule","maxIndex","cssRules","makeTextMarker","addUpUntilIndex","sizes","totalUpToIndex","wrapAsHtmlTag","additionalAttrs","nonce","SC_VERSION_ATTR","wrapAsElement","dangerouslySetInnerHTML","__html","getIdsFromMarkersFactory","markers","makeTextNode","targetDocument","createTextNode","makeServerTag","namesArg","markersArg","insertMarker","prev","cssForId","namesClone","cloneNames","markersClone","getIds","insertRules","removeRules","sealed","styleTag","toElement","toHTML","makeTag","tagEl","forceServer","getImportRuleTag","nextSibling","makeStyleTag","extractImport","usedImportRuleTag","importRules","cssRulesSize","mayHaveImport","separator","appendData","newMarker","makeBrowserTag","cssText","insertIndex","injectedRules","isConnected","removalIndex","lowerBound","deleteRule","deleteRules","makeSpeedyTag","SPLIT_REGEX","MAX_SIZE","sheetRunningId","master","StyleSheet","importRuleTag","firstTag","tags","tagMap","deferred","rehydratedNames","ignoreRehydratedNames","capacity","clones","rehydrate","els","extracted","isStreamed","nodesSize","elNames","elNamesSize","extractedSize","_extracted$i","_j","reset","ids","newTag","sealAllTags","lastEl","getTagForId","hasId","deferredInject","inject","toReactElements","Keyframes","styleSheet","String","getName","uppercasePattern","msPattern","hyphenateStyleName","isFalsish","objToCssArray","prevKey","flatten","executionContext","ruleSet","isReactComponent","murmurhash","getAlphabeticChar","fromCharCode","generateAlphabeticName","floor","isStaticRules","attrs","hasFunctionObjectKey","_TYPE_STATICS","hasher","ComponentStyle","isStatic","generateAndInjectStyles","lastClassName","generateName","determineTheme","fallbackTheme","isDefaultTheme","theme","escapeRegex","dashesAtEnds","escape","isTag","REACT_STATICS","childContextTypes","contextTypes","KNOWN_STATICS","caller","callee","arity","TYPE_STATICS","defineProperty$1","_Object$getOwnPropert","objectPrototype","arrayPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","ThemeContext","ThemeConsumer","StyleSheetContext","_Component","ThemeProvider","renderInner","outerTheme","getTheme","ServerStyleSheet","masterSheet","seal","collectStyles","StyleSheetManager","getStyleTags","getStyleElement","interleaveWithNodeStream","readableStream","StyleSheetConsumer","identifiers","StyledComponent","renderOuter","forwardedComponent","componentStyle","_props$forwardedCompo","foldedComponentIds","generatedClassName","elementToBeCreated","isTargetTag","propsForElement","computedProps","buildExecutionContext","attrDef","resolvedAttrDef","attrDefWasFn","_props$forwardedCompo2","warnTooManyClasses","createStyledComponent","isTargetStyledComp","isClass","_options$displayName","generateDisplayName","_options$componentId","_ComponentStyle","_displayName","parentComponentId","nr","generateId","_options$ParentCompon","ParentComponent","_options$attrs","finalAttrs","WrappedStyledComponent","forwardedRef","withComponent","previousComponentId","optionsToCopy","objectWithoutProperties","newComponentId","_foldedDefaultProps","constructWithOptions","componentConstructor","templateFunction","withConfig","domElement","GlobalStyle","createStyles","removeStyles","renderStyles","scCGSHMRCache","defaultReturn","argTransform","previous","onClientEntry"],"mappings":"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","file":"app-c1cda1076daf139ba9af.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _utils = require(\"@reach/router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + ((base === null || base === void 0 ? void 0 : base.endsWith(\"/\")) ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_router.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_router.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(rewriteLinkPath(to, window.location.pathname));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(rewriteLinkPath(to, window.location.pathname));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard2 = _interopRequireDefault(require(\"@babel/runtime/helpers/interopRequireWildcard\"));\n\n/* global __PATH_PREFIX__ */\n// Taken from https://github.com/netlify/netlify-identity-widget\nvar routes = /(confirmation|invite|recovery|email_change)_token=([^&]+)/;\nvar errorRoute = /error=access_denied&error_description=403/;\nvar accessTokenRoute = /access_token=/;\n\nexports.onInitialClientRender = function (_, _ref) {\n var _ref$enableIdentityWi = _ref.enableIdentityWidget,\n enableIdentityWidget = _ref$enableIdentityWi === void 0 ? true : _ref$enableIdentityWi,\n _ref$publicPath = _ref.publicPath,\n publicPath = _ref$publicPath === void 0 ? \"admin\" : _ref$publicPath;\n var hash = (document.location.hash || \"\").replace(/^#\\/?/, \"\");\n\n if (enableIdentityWidget && (routes.test(hash) || errorRoute.test(hash) || accessTokenRoute.test(hash))) {\n Promise.resolve().then(function () {\n return (0, _interopRequireWildcard2.default)(require(\"netlify-identity-widget\"));\n }).then(function (_ref2) {\n var netlifyIdentityWidget = _ref2.default;\n netlifyIdentityWidget.on(\"init\", function (user) {\n if (!user) {\n netlifyIdentityWidget.on(\"login\", function () {\n document.location.href = __PATH_PREFIX__ + \"/\" + publicPath + \"/\";\n });\n }\n });\n netlifyIdentityWidget.init();\n });\n }\n};","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n 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","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _router = require(\"@reach/router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _router.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)();\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 }, []);\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}","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","/*!\n * Font Awesome Free 5.15.3 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 _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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++) {\n arr2[i] = arr[i];\n }\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/');\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'];\n\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\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).*/; // 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}));\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 \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;\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];\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;\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}\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}\n\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\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}\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}\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}\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}\n\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\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}\n\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\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}\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}\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}\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}\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.3\\\"\";\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 * 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 * # 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 = {};\n\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};\n\nbuild();\n\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\n\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\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}\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' ? \"\") : '');\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}\n\nvar disabled = false;\n\nfunction disableObservation() {\n disabled = true;\n}\n\nfunction enableObservation() {\n disabled = false;\n}\n\nvar mo = null;\n\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}\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};\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}\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}\n\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\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};\nvar styles$2 = namespace.styles;\n\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}\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}\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 = /*#__PURE__*/function () {\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 _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();\n\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\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 _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});\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};\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};\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};\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 };","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContainer = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _scrollContainer = require(\"./scroll-container\");\n\nexports.ScrollContainer = _scrollContainer.ScrollContainer;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","import React from 'react';\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 _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n\nvar MDXContext = /*#__PURE__*/React.createContext({});\n\nvar withMDXComponents = function withMDXComponents(Component) {\n return function (props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n components: allComponents\n }));\n };\n};\n\nvar useMDXComponents = function useMDXComponents(components) {\n var contextComponents = React.useContext(MDXContext);\n var allComponents = contextComponents;\n\n if (components) {\n allComponents = isFunction(components) ? components(contextComponents) : _objectSpread2(_objectSpread2({}, contextComponents), components);\n }\n\n return allComponents;\n};\n\nvar MDXProvider = function MDXProvider(props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(MDXContext.Provider, {\n value: allComponents\n }, props.children);\n};\n\nvar TYPE_PROP_NAME = 'mdxType';\nvar DEFAULTS = {\n inlineCode: 'code',\n wrapper: function wrapper(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, {}, children);\n }\n};\nvar MDXCreateElement = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var propComponents = props.components,\n mdxType = props.mdxType,\n originalType = props.originalType,\n parentName = props.parentName,\n etc = _objectWithoutProperties(props, [\"components\", \"mdxType\", \"originalType\", \"parentName\"]);\n\n var components = useMDXComponents(propComponents);\n var type = mdxType;\n var Component = components[\"\".concat(parentName, \".\").concat(type)] || components[type] || DEFAULTS[type] || originalType;\n\n if (propComponents) {\n return /*#__PURE__*/React.createElement(Component, _objectSpread2(_objectSpread2({\n ref: ref\n }, etc), {}, {\n components: propComponents\n }));\n }\n\n return /*#__PURE__*/React.createElement(Component, _objectSpread2({\n ref: ref\n }, etc));\n});\nMDXCreateElement.displayName = 'MDXCreateElement';\n\nfunction createElement(type, props) {\n var args = arguments;\n var mdxType = props && props.mdxType;\n\n if (typeof type === 'string' || mdxType) {\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = MDXCreateElement;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.originalType = type;\n newProps[TYPE_PROP_NAME] = typeof type === 'string' ? type : mdxType;\n createElementArgArray[1] = newProps;\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n }\n\n return React.createElement.apply(null, args);\n}\n\nexport { MDXContext, MDXProvider, createElement as mdx, useMDXComponents, withMDXComponents };","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","exports.polyfill = Component => Component\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default index;","import React, { createContext, useContext } from \"react\"\n\nconst GatsbyMDXScopeContext = createContext({})\n\nexport const useMDXScope = scope => {\n const contextScope = useContext(GatsbyMDXScopeContext)\n return scope || contextScope\n}\n\nexport const MDXScopeProvider = ({ __mdxScope, children }) =>\n React.createElement(\n GatsbyMDXScopeContext.Provider,\n { value: __mdxScope },\n children\n )\n","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\nfunction getType(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\n\n\nfunction isUndefined(payload) {\n return getType(payload) === 'Undefined';\n}\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\n\n\nfunction isNull(payload) {\n return getType(payload) === 'Null';\n}\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\n\n\nfunction isPlainObject(payload) {\n if (getType(payload) !== 'Object') return false;\n return payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype;\n}\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\n\n\nfunction isObject(payload) {\n return isPlainObject(payload);\n}\n/**\r\n * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is { [K in any]: never }}\r\n */\n\n\nfunction isEmptyObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n}\n/**\r\n * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\n\n\nfunction isFullObject(payload) {\n return isPlainObject(payload) && Object.keys(payload).length > 0;\n}\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\n\n\nfunction isAnyObject(payload) {\n return getType(payload) === 'Object';\n}\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\n\n\nfunction isObjectLike(payload) {\n return isAnyObject(payload);\n}\n/**\r\n * Returns whether the payload is a function (regular or async)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is AnyFunction}\r\n */\n\n\nfunction isFunction(payload) {\n return typeof payload === 'function';\n}\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {any} payload\r\n * @returns {payload is any[]}\r\n */\n\n\nfunction isArray(payload) {\n return getType(payload) === 'Array';\n}\n/**\r\n * Returns whether the payload is a an array with at least 1 item\r\n *\r\n * @param {*} payload\r\n * @returns {payload is any[]}\r\n */\n\n\nfunction isFullArray(payload) {\n return isArray(payload) && payload.length > 0;\n}\n/**\r\n * Returns whether the payload is a an empty array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is []}\r\n */\n\n\nfunction isEmptyArray(payload) {\n return isArray(payload) && payload.length === 0;\n}\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\n\n\nfunction isString(payload) {\n return getType(payload) === 'String';\n}\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\n\n\nfunction isFullString(payload) {\n return isString(payload) && payload !== '';\n}\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\n\n\nfunction isEmptyString(payload) {\n return payload === '';\n}\n/**\r\n * Returns whether the payload is a number (but not NaN)\r\n *\r\n * This will return `false` for `NaN`!!\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\n\n\nfunction isNumber(payload) {\n return getType(payload) === 'Number' && !isNaN(payload);\n}\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\n\n\nfunction isBoolean(payload) {\n return getType(payload) === 'Boolean';\n}\n/**\r\n * Returns whether the payload is a regular expression (RegExp)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\n\n\nfunction isRegExp(payload) {\n return getType(payload) === 'RegExp';\n}\n/**\r\n * Returns whether the payload is a Map\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Map}\r\n */\n\n\nfunction isMap(payload) {\n return getType(payload) === 'Map';\n}\n/**\r\n * Returns whether the payload is a WeakMap\r\n *\r\n * @param {*} payload\r\n * @returns {payload is WeakMap}\r\n */\n\n\nfunction isWeakMap(payload) {\n return getType(payload) === 'WeakMap';\n}\n/**\r\n * Returns whether the payload is a Set\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Set}\r\n */\n\n\nfunction isSet(payload) {\n return getType(payload) === 'Set';\n}\n/**\r\n * Returns whether the payload is a WeakSet\r\n *\r\n * @param {*} payload\r\n * @returns {payload is WeakSet}\r\n */\n\n\nfunction isWeakSet(payload) {\n return getType(payload) === 'WeakSet';\n}\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\n\n\nfunction isSymbol(payload) {\n return getType(payload) === 'Symbol';\n}\n/**\r\n * Returns whether the payload is a Date, and that the date is valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\n\n\nfunction isDate(payload) {\n return getType(payload) === 'Date' && !isNaN(payload);\n}\n/**\r\n * Returns whether the payload is a Blob\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Blob}\r\n */\n\n\nfunction isBlob(payload) {\n return getType(payload) === 'Blob';\n}\n/**\r\n * Returns whether the payload is a File\r\n *\r\n * @param {*} payload\r\n * @returns {payload is File}\r\n */\n\n\nfunction isFile(payload) {\n return getType(payload) === 'File';\n}\n/**\r\n * Returns whether the payload is a Promise\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Promise}\r\n */\n\n\nfunction isPromise(payload) {\n return getType(payload) === 'Promise';\n}\n/**\r\n * Returns whether the payload is an Error\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Error}\r\n */\n\n\nfunction isError(payload) {\n return getType(payload) === 'Error';\n}\n/**\r\n * Returns whether the payload is literally the value `NaN` (it's `NaN` and also a `number`)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is typeof NaN}\r\n */\n\n\nfunction isNaNValue(payload) {\n return getType(payload) === 'Number' && isNaN(payload);\n}\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\n\n\nfunction isPrimitive(payload) {\n return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);\n}\n/**\r\n * Returns true whether the payload is null or undefined\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is null | undefined)}\r\n */\n\n\nvar isNullOrUndefined = isOneOf(isNull, isUndefined);\n\nfunction isOneOf(a, b, c, d, e) {\n return function (value) {\n return a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);\n };\n}\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\n\n\nfunction isType(payload, type) {\n if (!(type instanceof Function)) {\n throw new TypeError('Type must be a function');\n }\n\n if (!Object.prototype.hasOwnProperty.call(type, 'prototype')) {\n throw new TypeError('Type is not a class');\n } // Classes usually have names (as functions usually have names)\n\n\n var name = type.name;\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isMap, isNaNValue, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };","import { isPlainObject, isArray, isSymbol } from 'is-what';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n\nfunction assignProp(carry, key, newVal, originalObject) {\n var propType = originalObject.propertyIsEnumerable(key) ? 'enumerable' : 'nonenumerable';\n if (propType === 'enumerable') carry[key] = newVal;\n\n if (propType === 'nonenumerable') {\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true\n });\n }\n}\n\nfunction mergeRecursively(origin, newComer, extensions) {\n // work directly on newComer if its not an object\n if (!isPlainObject(newComer)) {\n // extend merge rules\n if (extensions && isArray(extensions)) {\n extensions.forEach(function (extend) {\n newComer = extend(origin, newComer);\n });\n }\n\n return newComer;\n } // define newObject to merge all values upon\n\n\n var newObject = {};\n\n if (isPlainObject(origin)) {\n var props_1 = Object.getOwnPropertyNames(origin);\n var symbols_1 = Object.getOwnPropertySymbols(origin);\n newObject = __spreadArrays(props_1, symbols_1).reduce(function (carry, key) {\n // @ts-ignore\n var targetVal = origin[key];\n\n if (!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key) || isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key)) {\n assignProp(carry, key, targetVal, origin);\n }\n\n return carry;\n }, {});\n }\n\n var props = Object.getOwnPropertyNames(newComer);\n var symbols = Object.getOwnPropertySymbols(newComer);\n\n var result = __spreadArrays(props, symbols).reduce(function (carry, key) {\n // re-define the origin and newComer as targetVal and newVal\n var newVal = newComer[key];\n var targetVal = isPlainObject(origin) ? // @ts-ignore\n origin[key] : undefined; // extend merge rules\n\n if (extensions && isArray(extensions)) {\n extensions.forEach(function (extend) {\n newVal = extend(targetVal, newVal);\n });\n } // When newVal is an object do the merge recursively\n\n\n if (targetVal !== undefined && isPlainObject(newVal)) {\n newVal = mergeRecursively(targetVal, newVal, extensions);\n }\n\n assignProp(carry, key, newVal, newComer);\n return carry;\n }, newObject);\n\n return result;\n}\n/**\r\n * Merge anything recursively.\r\n * Objects get merged, special objects (classes etc.) are re-assigned \"as is\".\r\n * Basic types overwrite objects or other basic types.\r\n *\r\n * @param {(IConfig | any)} origin\r\n * @param {...any[]} newComers\r\n * @returns the result\r\n */\n\n\nfunction merge(origin) {\n var newComers = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n newComers[_i - 1] = arguments[_i];\n }\n\n var extensions = null;\n var base = origin;\n\n if (isPlainObject(origin) && origin.extensions && Object.keys(origin).length === 1) {\n base = {};\n extensions = origin.extensions;\n }\n\n return newComers.reduce(function (result, newComer) {\n return mergeRecursively(result, newComer, extensions);\n }, base);\n}\n\nfunction concatArrays(originVal, newVal) {\n if (isArray(originVal) && isArray(newVal)) {\n // concat logic\n return originVal.concat(newVal);\n }\n\n return newVal; // always return newVal as fallback!!\n}\n\nexport default merge;\nexport { concatArrays, merge };","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n\n _this.scrollListener = function () {\n var key = _this.props.location.key;\n\n if (key) {\n _this._stateStorage.save(_this.props.location, key, window.scrollY);\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","// custom typefaces\r\nimport \"typeface-montserrat\"\r\nimport \"typeface-merriweather\"\r\nimport \"./src/styles/global.css\"\r\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","import * as React from 'react';\nexport default {\n React\n};","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-netlify-cms/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-mdx/gatsby-browser.js'),\n options: {\"plugins\":[{\"resolve\":\"C:/dev/gareth-evans/node_modules/gatsby-remark-images\",\"id\":\"28c42f28-53d0-5cae-aad5-aee248175898\",\"name\":\"gatsby-remark-images\",\"version\":\"3.11.1\",\"pluginOptions\":{\"plugins\":[],\"maxWidth\":650,\"linkImagesToOriginal\":true,\"showCaptions\":false,\"markdownCaptions\":false,\"sizeByPixelDensity\":false,\"backgroundColor\":\"white\",\"quality\":50,\"withWebp\":false,\"tracedSVG\":false,\"loading\":\"lazy\",\"disableBgImageOnAlpha\":false,\"disableBgImage\":false},\"nodeAPIs\":[\"pluginOptionsSchema\"],\"browserAPIs\":[\"onRouteUpdate\"],\"ssrAPIs\":[]}],\"extensions\":[\".mdx\",\".md\"],\"gatsbyRemarkPlugins\":[{\"resolve\":\"gatsby-remark-images\",\"options\":{\"maxWidth\":590}},{\"resolve\":\"gatsby-remark-responsive-iframe\",\"options\":{\"wrapperStyle\":\"margin-bottom: 1.0725rem\"}},{\"resolve\":\"gatsby-remark-vscode\"},{\"resolve\":\"gatsby-remark-copy-linked-files\"},{\"resolve\":\"gatsby-remark-smartypants\"}],\"defaultLayouts\":{},\"lessBabel\":false,\"remarkPlugins\":[],\"rehypePlugins\":[],\"mediaTypes\":[\"text/markdown\",\"text/x-markdown\"],\"root\":\"C:\\\\dev\\\\gareth-evans\"},\n },{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":650,\"linkImagesToOriginal\":true,\"showCaptions\":false,\"markdownCaptions\":false,\"sizeByPixelDensity\":false,\"backgroundColor\":\"white\",\"quality\":50,\"withWebp\":false,\"tracedSVG\":false,\"loading\":\"lazy\",\"disableBgImageOnAlpha\":false,\"disableBgImage\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-analytics/gatsby-browser.js'),\n options: {\"plugins\":[],\"head\":false,\"anonymize\":false,\"respectDNT\":false,\"exclude\":[],\"pageTransitionDelay\":0},\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/profile-circle2.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"90c72ccf9a0f2e55e7aa21697e37ee3b\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-typography/gatsby-browser.js'),\n options: {\"plugins\":[],\"pathToConfigModule\":\"src/utils/typography\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\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","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---cache-caches-gatsby-plugin-offline-app-shell-js\": () => import(\"./../../caches/gatsby-plugin-offline/app-shell.js\" /* webpackChunkName: \"component---cache-caches-gatsby-plugin-offline-app-shell-js\" */),\n \"component---src-pages-404-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-templates-blog-post-js\": () => import(\"./../../../src/templates/blog-post.js\" /* webpackChunkName: \"component---src-templates-blog-post-js\" */)\n}\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\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\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","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","(function (factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module['exports'] = factory() : typeof define === 'function' && define['amd'] ? define(factory()) : window['stylisRuleSheet'] = factory();\n})(function () {\n 'use strict';\n\n return function (insertRule) {\n var delimiter = '/*|*/';\n var needle = delimiter + '}';\n\n function toSheet(block) {\n if (block) try {\n insertRule(block + '}');\n } catch (e) {}\n }\n\n return function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n // @import\n if (depth === 0 && content.charCodeAt(0) === 64) return insertRule(content + ';'), '';\n break;\n // selector\n\n case 2:\n if (ns === 0) return content + delimiter;\n break;\n // at-rule\n\n case 3:\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n return insertRule(selectors[0] + content), '';\n\n default:\n return content + (at === 0 ? delimiter : '');\n }\n\n case -2:\n content.split(needle).forEach(toSheet);\n }\n };\n };\n});","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","// 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 redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { globalHistory } from \"@reach/router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\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\nfunction maybeRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n if (!loader.isPageNotFound(pathname)) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\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\n pathname = parsePath(to).pathname\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\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return \n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\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: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (process.env.NODE_ENV !== `production` && !this.state.pageResources) {\n throw new Error(\n `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 )\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = () => {SiteRoot}\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n \n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","function areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\nexport default memoizeOne;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a