{"version":3,"file":"app-660d1b11789c820d0696.js","mappings":"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AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;;AAEP;AACA;AACA;AACA;AACA,yCAAyC,0BAAmB,EAAE,+BAAmB;;AAEjF,+BAAmB,GAAG,0BAAmB;AACzC;;;AAGA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,+BAAmB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+BAAmB;AAC9B;AACA,gBAAgB,+BAAmB,wBAAwB,+BAAmB;AAC9E,oDAAoD,wCAAwC;AAC5F;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW,+BAAmB,2BAA2B;AACzD,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW,+BAAmB;AAC9B;AACA,kEAAkE,iBAAiB;AACnF;AACA,2DAA2D,aAAa;AACxE;AACA,WAAW;AACX;AACA;AACA,IAAI,0BAAmB;AACvB;AACA;AACA;AACA;AACA;AACA,+BAAmB,GAAG,0BAAmB;AACzC,8DAA8D,+BAAmB;AACjF,oEAAoE,+BAAmB;;;AAGvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;;AAE/B,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;;AAEtC,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,WAAW;AACX,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA,6BAA6B,0BAAmB;AAChD,CAAC;AACD,0BAAmB,GAAG,0BAAmB;AACzC,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;;AC7eY;;AAEb,8BAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;ACVa;;AAEb,yBAAkB;AAClB,SAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,SAAgC;;;;;;;;;ACzBnB;;AAEb,yBAAkB;AAClB,UAA4B,GAAG,UAAqB;AACpD,qBAAqB,mBAAO,CAAC,IAAkB;AAC/C,UAAqB;AACrB,4BAA4B,mBAAO,CAAC,IAA0B;AAC9D,UAA4B;;;;;;;;ACPf;;AAEb,6BAA6B,mBAAO,CAAC,IAA8C;AACnF,kBAAkB;AAClB,qBAAqB,GAAG,qBAAqB;AAC7C,qDAAqD,mBAAO,CAAC,IAA8C;AAC3G,6CAA6C,mBAAO,CAAC,IAAsC;AAC3F,oCAAoC,mBAAO,CAAC,IAAO;AACnD,wCAAwC,mBAAO,CAAC,IAAY;AAC5D,sBAAsB,mBAAO,CAAC,IAAmB;AACjD,iDAAiD,gDAAgD,uCAAuC,sCAAsC,oFAAoF,4DAA4D;AAC9T,qDAAqD,6CAA6C,cAAc,4EAA4E,SAAS,kBAAkB,mDAAmD,+BAA+B,yBAAyB,iBAAiB,sFAAsF,uBAAuB,2EAA2E,qFAAqF,sCAAsC,4CAA4C,OAAO,8BAA8B,sBAAsB,aAAa,0BAA0B;AACpxB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;;;;;;;ACzHa;;AAEb,kBAAkB;AAClB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,KAAqC,EAAE,EAE1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU,KAAqC,EAAE,EAE1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB;;;;;;;;AC/CT;;AAEb,kBAAkB;AAClB,4BAA4B;AAC5B,qBAAqB,mBAAO,CAAC,IAAkB;AAC/C,aAAa,mBAAO,CAAC,IAAO;AAC5B,mBAAmB,mBAAO,CAAC,IAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBa;;AAEb,kBAAkB;AAClB,6BAA6B;AAC7B,oBAAoB,mBAAO,CAAC,IAAe;AAC3C,8BAA8B,mBAAO,CAAC,IAAkC;AACxE;AACA;AACA,MAAM,IAAsC;AAC5C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;;;;;;;ACtBa;;AAEb,kBAAkB;AAClB,mBAAmB;AACnB;AACA;AACA;AACA;;;;;;;;ACPa;;AAEb,kBAAkB;AAClB,8BAA8B;AAC9B,mBAAmB,mBAAO,CAAC,IAAmC;AAC9D,mBAAmB,mBAAO,CAAC,IAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,gBAAgB;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;;AAEA;AACA;;AAEA;AACA;;AAEA,6BAA6B;;AAE7B;AACA;AACA,kBAAkB;AAClB,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA,yEAAyE,aAAa;AACtF;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA,4EAA4E,eAAe;AAC3F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;AACP,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL,0BAA0B,mEAAmE;;AAE7F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,sFAAsF;AACtF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA,KAAK;AACL;;AAEA;AACA,sFAAsF;AACtF;;AAEA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;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","sources":["webpack://web-support/./node_modules/@fastly/performance-observer-polyfill/polyfill/index.js","webpack://web-support/./node_modules/accessible-nprogress/dist/accessible-nprogress.js","webpack://web-support/./node_modules/escape-string-regexp/index.js","webpack://web-support/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://web-support/./node_modules/gatsby-react-router-scroll/index.js","webpack://web-support/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://web-support/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://web-support/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://web-support/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://web-support/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://web-support/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://web-support/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://web-support/./.cache/api-runner-browser-plugins.js","webpack://web-support/./.cache/api-runner-browser.js","webpack://web-support/./.cache/create-content-digest-browser-shim.js","webpack://web-support/./node_modules/mitt/dist/mitt.es.js","webpack://web-support/./.cache/emitter.js","webpack://web-support/./.cache/normalize-page-path.js","webpack://web-support/./.cache/find-path.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://web-support/./.cache/slice/server-slice-renderer.js","webpack://web-support/./.cache/slice/server-slice.js","webpack://web-support/./.cache/slice/inline-slice.js","webpack://web-support/./.cache/slice.js","webpack://web-support/./.cache/gatsby-browser-entry.js","webpack://web-support/./.cache/prefetch.js","webpack://web-support/./.cache/loader.js","webpack://web-support/./.cache/head/components/fire-callback-in-effect.js","webpack://web-support/./.cache/head/constants.js","webpack://web-support/./.cache/head/utils.js","webpack://web-support/./.cache/head/head-export-handler-for-browser.js","webpack://web-support/./.cache/page-renderer.js","webpack://web-support/./.cache/route-announcer-props.js","webpack://web-support/./.cache/navigation.js","webpack://web-support/./node_modules/shallow-compare/es/index.js","webpack://web-support/./.cache/ensure-resources.js","webpack://web-support/./.cache/production-app.js","webpack://web-support/./.cache/public-page-renderer-prod.js","webpack://web-support/./.cache/public-page-renderer.js","webpack://web-support/./.cache/react-dom-utils.js","webpack://web-support/./.cache/redirect-utils.js","webpack://web-support/./.cache/register-service-worker.js","webpack://web-support/./.cache/slice/context.js","webpack://web-support/./.cache/context-utils.js","webpack://web-support/./.cache/static-query.js","webpack://web-support/./.cache/strip-prefix.js","webpack://web-support/./gatsby-browser.js","webpack://web-support/./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack://web-support/./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack://web-support/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://web-support/./node_modules/gatsby-plugin-hubspot/default-options.js","webpack://web-support/./node_modules/gatsby-plugin-hubspot/gatsby-browser.js","webpack://web-support/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://web-support/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://web-support/./node_modules/gatsby-plugin-nprogress/gatsby-browser.js","webpack://web-support/./node_modules/gatsby-plugin-segment-js/gatsby-browser.js","webpack://web-support/./node_modules/gatsby-remark-autolink-headers/gatsby-browser.js","webpack://web-support/./node_modules/medium-zoom/dist/medium-zoom.esm.js","webpack://web-support/./node_modules/gatsby-remark-images-medium-zoom/gatsby-browser.js","webpack://web-support/./node_modules/gatsby-remark-images/constants.js","webpack://web-support/./node_modules/gatsby-remark-images/gatsby-browser.js","webpack://web-support/./node_modules/invariant/browser.js","webpack://web-support/./node_modules/prismjs/themes/prism-tomorrow.css","webpack://web-support/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://web-support/./node_modules/react-server-dom-webpack/index.js","webpack://web-support/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://web-support/./node_modules/@babel/runtime/helpers/extends.js","webpack://web-support/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://web-support/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://web-support/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://web-support/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/a-callable.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/an-object.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/array-includes.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/classof-raw.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/copy-constructor-properties.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/create-property-descriptor.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/define-built-in.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/define-global-property.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/descriptors.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/document-create-element.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/enum-bug-keys.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/environment-user-agent.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/environment-v8-version.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/export.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/fails.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/function-bind-native.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/function-call.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/function-name.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/function-uncurry-this.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/get-built-in.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/get-method.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/global-this.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/has-own-property.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/hidden-keys.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/ie8-dom-define.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/indexed-object.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/inspect-source.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/internal-state.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/is-callable.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/is-forced.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/is-null-or-undefined.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/is-object.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/is-pure.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/is-symbol.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/length-of-array-like.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/make-built-in.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/math-trunc.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/object-define-property.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-names.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/object-is-prototype-of.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/object-keys-internal.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/own-keys.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/require-object-coercible.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/shared-key.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/shared-store.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/shared.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/to-absolute-index.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/to-indexed-object.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/to-length.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/to-object.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/to-primitive.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/to-property-key.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/try-to-string.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/uid.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/internals/well-known-symbol.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/modules/es.global-this.js","webpack://web-support/./node_modules/gatsby/node_modules/core-js/modules/esnext.global-this.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://web-support/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://web-support/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://web-support/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://web-support/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["/*!\n * Performance Observer Polyfill\n * Version: 1.1.1\n * https://github.com/fastly/performance-observer-polyfill\n * \n * Copyright (c) 2020, Fastly, Inc. All rights reserved.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.PerformanceOberserverPolyfill=t():e.PerformanceOberserverPolyfill=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=0)}([function(e,t,r){\"use strict\";function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},r=t.registeredObservers,n=void 0===r?new Set:r,o=t.processedEntries,i=void 0===o?new Set:o,u=t.interval,s=void 0===u?100:u,c=t.context,a=void 0===c?self:c;!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),p(this,\"registeredObservers\",void 0),p(this,\"processedEntries\",void 0),p(this,\"interval\",void 0),p(this,\"intervalId\",void 0),p(this,\"context\",void 0),this.registeredObservers=n,this.processedEntries=i,this.interval=s,this.context=a,this.intervalId=null}var t,r,n;return t=e,(r=[{key:\"getNewEntries\",value:function(){var e=this;return this.context.performance.getEntries().filter((function(t){return!e.processedEntries.has(t)}))}},{key:\"getObserversForType\",value:function(e,t){return Array.from(e).filter((function(e){return e.entryTypes.some((function(e){return e===t}))}))}},{key:\"processBuffer\",value:function(e){var t=Array.from(e.buffer),r=new l(t);e.buffer.clear(),t.length&&e.callback&&e.callback.call(void 0,r,e)}},{key:\"processEntries\",value:function(){var e=this;this.getNewEntries().forEach((function(t){var r=t.entryType;e.getObserversForType(e.registeredObservers,r).forEach((function(e){e.buffer.add(t)})),e.processedEntries.add(t)}));var t=function(){return e.registeredObservers.forEach(e.processBuffer)};\"requestAnimationFrame\"in this.context?this.context.requestAnimationFrame(t):this.context.setTimeout(t,0)}},{key:\"add\",value:function(e){this.registeredObservers.add(e),1===this.registeredObservers.size&&this.observe()}},{key:\"remove\",value:function(e){this.registeredObservers.delete(e),this.registeredObservers.size||this.disconnect()}},{key:\"observe\",value:function(){this.intervalId=this.context.setInterval(this.processEntries.bind(this),this.interval)}},{key:\"disconnect\",value:function(){this.intervalId=this.context.clearInterval(this.intervalId)}}])&&y(t.prototype,r),n&&y(t,n),e}()),k=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:P;!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),b(this,\"callback\",void 0),b(this,\"buffer\",void 0),b(this,\"entryTypes\",[]),b(this,\"taskQueue\",void 0),this.callback=t,this.buffer=new Set,this.taskQueue=r}var t,r,n;return t=e,(r=[{key:\"observe\",value:function(e){if(!e)throw new Error(h);if(e.entryTypes&&e.type)throw new Error(m);var t;if(e.entryTypes)t=e.entryTypes;else{if(!e.type)throw new Error(h);t=[e.type]}var r=t.filter(w);r.length>0&&r.length!==t.length&&console.warn(O),r.length?(this.entryTypes=r,this.taskQueue.add(this)):console.warn(g)}},{key:\"disconnect\",value:function(){this.taskQueue.remove(this)}},{key:\"takeRecords\",value:function(){var e=Array.from(this.buffer);return new l(e)}}])&&v(t.prototype,r),n&&v(t,n),e}();b(k,\"supportedEntryTypes\",d);var E=\"PerformanceObserver\"in self&&\"function\"==typeof PerformanceObserver?PerformanceObserver:k,j=self;j.PerformanceObserver||(j.PerformanceObserver=E)}])}));","/*!\n * \n * Mon Sep 06 2021 22:45:41 GMT-0500 (Central Daylight Time)\n * Accessible NProgress, (c) 2021 Nicholas Mackey - http://nmackey.com/accessible-nprogress\n * @license MIT\n *\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NProgress\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NProgress\"] = factory();\n\telse\n\t\troot[\"NProgress\"] = factory();\n})(self, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/util.js\":\n/*!*********************!*\\\n !*** ./src/util.js ***!\n \\*********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"assign\": function() { return /* binding */ assign; },\n/* harmony export */ \"clamp\": function() { return /* binding */ clamp; },\n/* harmony export */ \"toBarPerc\": function() { return /* binding */ toBarPerc; },\n/* harmony export */ \"randomInc\": function() { return /* binding */ randomInc; },\n/* harmony export */ \"removeElement\": function() { return /* binding */ removeElement; },\n/* harmony export */ \"queue\": function() { return /* binding */ queue; }\n/* harmony export */ });\n/**\n * Substitute for Object.assign()\n * Modified from: https://stackoverflow.com/a/30498430\n *\n * @param {object} target - target object to merge to\n * @param {...object} objectsToMerge - arbitrary number of objects to merge into 'target'\n * @return {object} target merged object\n */\nfunction assign(target) {\n var retTarget = Object(target);\n\n for (var i = 0; i < (arguments.length <= 1 ? 0 : arguments.length - 1); i += 1) {\n var obj = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; j += 1) {\n retTarget[keys[j]] = obj[keys[j]];\n }\n }\n\n return retTarget;\n}\n/**\n * Ensure n is between min & max\n *\n * @param {number} value - number to clamp\n * @param {number} min - minimum\n * @param {number} max - maximum\n * @return {number} clampped value\n */\n\nfunction clamp(value, min, max) {\n if (value < min) return min;\n if (value > max) return max;\n return value;\n}\n/**\n * Converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n *\n * @param {number} value - percentage to convert\n * @return {number} percentage\n */\n\nfunction toBarPerc(value) {\n return (-1 + value) * 100;\n}\n/**\n * Gets an increment to use based on status\n *\n * @param {number} status - current status of the progress bar\n * @return {number} increment\n */\n\nfunction randomInc(status) {\n if (status >= 0 && status < 0.2) {\n return 0.1;\n }\n\n if (status >= 0.2 && status < 0.5) {\n return 0.04;\n }\n\n if (status >= 0.5 && status < 0.8) {\n return 0.02;\n }\n\n if (status >= 0.8 && status < 0.99) {\n return 0.005;\n }\n\n return 0;\n}\n/**\n * Removes an element from the DOM.\n *\n * @param {HTMLElement} element - element to remove\n */\n\nfunction removeElement(element) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n/**\n * Queues a function to be executed.\n *\n * @return {function}\n */\n\nvar queue = function () {\n var functionQueue = [];\n\n function next() {\n var fn = functionQueue.shift();\n\n if (fn) {\n fn(next);\n }\n }\n\n return function (fn) {\n functionQueue.push(fn);\n\n if (functionQueue.length === 1) {\n next();\n }\n };\n}();\n\n/***/ }),\n\n/***/ \"./src/styles.css\":\n/*!************************!*\\\n !*** ./src/styles.css ***!\n \\************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./src/util.js\");\n/* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./styles.css */ \"./src/styles.css\");\n\n\nvar DEFAULTS = {\n minimum: 0.08,\n easing: 'linear',\n speed: 200,\n trickle: true,\n trickleSpeed: 200,\n showSpinner: true,\n barSelector: 'div.bar',\n barLabel: 'processing request',\n spinnerSelector: 'div.spinner',\n spinnerLabel: 'processing request',\n parent: 'body',\n template: \"\\n
\\n
\\n
\\n
\\n
\\n
\\n \"\n};\n\nvar NProgress = function NProgress() {\n var localSettings = DEFAULTS;\n var localStatus = null;\n var initialPromises = 0;\n var currentPromises = 0;\n /**\n * @return {boolean} If the progress bar is rendered.\n */\n\n function isRendered() {\n return !!document.getElementById('nprogress');\n }\n /**\n * @return {boolean} If there is curent progress.\n */\n\n\n function isStarted() {\n return typeof localStatus === 'number';\n }\n /**\n * Renders the progress bar markup based on the `template` setting.\n *\n * @return {HTMLElement} The element rendered.\n */\n\n\n function render() {\n if (isRendered()) {\n return document.getElementById('nprogress');\n }\n\n document.documentElement.classList.add('nprogress-busy');\n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = localSettings.template;\n var perc = isStarted() ? '-100' : (0,_util__WEBPACK_IMPORTED_MODULE_0__.toBarPerc)(localStatus || 0);\n var bar = progress.querySelector(localSettings.barSelector);\n bar.setAttribute('aria-label', localSettings.barLabel);\n bar.style.transform = \"translate3d(\".concat(perc, \"%,0,0)\");\n bar.style.transition = 'all 0 linear';\n var spinner = progress.querySelector(localSettings.spinnerSelector);\n\n if (spinner) {\n if (!localSettings.showSpinner) {\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.removeElement)(spinner);\n } else {\n spinner.setAttribute('aria-label', localSettings.spinnerLabel);\n }\n }\n\n var parent = document.querySelector(localSettings.parent);\n\n if (parent) {\n if (parent !== document.body) {\n parent.classList.add('nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n }\n\n return progress;\n }\n\n return {\n /**\n * Updates configuration.\n *\n * @param {object} options - options to override/set\n * @return {object} The NProgress object.\n */\n configure: function configure(options) {\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.assign)(localSettings, options);\n return this;\n },\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * @param {number} value - progress to set\n * @return {object} The NProgress object.\n */\n set: function set(value) {\n var _this = this;\n\n var clamppedValue = (0,_util__WEBPACK_IMPORTED_MODULE_0__.clamp)(value, localSettings.minimum, 1);\n localStatus = clamppedValue === 1 ? null : clamppedValue;\n var progress = render(); // Repaint\n\n progress.offsetWidth; // eslint-disable-line no-unused-expressions\n\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.queue)(function (next) {\n // Add transition\n var speed = localSettings.speed,\n easing = localSettings.easing;\n var bar = progress.querySelector(localSettings.barSelector);\n bar.setAttribute('aria-valuenow', clamppedValue);\n bar.style.transform = \"translate3d(\".concat((0,_util__WEBPACK_IMPORTED_MODULE_0__.toBarPerc)(clamppedValue), \"%,0,0)\");\n bar.style.transition = \"all \".concat(speed, \"ms \").concat(easing);\n\n if (clamppedValue === 1) {\n // Fade out\n progress.style.transition = 'none';\n progress.style.opacity = 1; // Repaint\n\n progress.offsetWidth; // eslint-disable-line no-unused-expressions\n\n setTimeout(function () {\n progress.style.transition = \"all \".concat(speed, \"ms linear\");\n progress.style.opacity = 0;\n setTimeout(function () {\n _this.remove();\n\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n return this;\n },\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * @return {object} The NProgress object.\n */\n start: function start() {\n var _this2 = this;\n\n if (!localStatus) {\n this.set(0);\n }\n\n var work = function work() {\n setTimeout(function () {\n if (!localStatus) {\n return;\n }\n\n _this2.inc();\n\n work();\n }, localSettings.trickleSpeed);\n };\n\n if (localSettings.trickle) {\n work();\n }\n\n return this;\n },\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * @param {boolean} force - show the progress bar complete even if its hidden\n * @return {object} The NProgress object.\n */\n done: function done(force) {\n if (!force && !localStatus) {\n return this;\n }\n\n var halfRandom = 0.5 * Math.random();\n return this.inc(0.3 + halfRandom).set(1);\n },\n\n /**\n * Increments progress bar by given amount.\n *\n * @param {number} [amount] - amount to increment the progress bar by\n * @return {object} The NProgress object.\n */\n inc: function inc() {\n var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0,_util__WEBPACK_IMPORTED_MODULE_0__.randomInc)(localStatus);\n\n if (!localStatus) {\n return this.start();\n }\n\n var clamppedStatus = (0,_util__WEBPACK_IMPORTED_MODULE_0__.clamp)(localStatus + amount, 0, 0.994);\n return this.set(clamppedStatus);\n },\n\n /**\n * Removes the element. Opposite of render().\n */\n remove: function remove() {\n document.documentElement.classList.remove('nprogress-busy');\n document.querySelector(localSettings.parent).classList.remove('nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n\n if (progress) {\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.removeElement)(progress);\n }\n },\n\n /**\n * Waits for all supplied promises and increases the progress as the promises resolve.\n *\n * @param $promise Promise\n * @return {object} The NProgress object.\n */\n promise: function promise($promise) {\n var _this3 = this;\n\n if (currentPromises === 0) {\n this.start();\n }\n\n initialPromises += 1;\n currentPromises += 1;\n\n var promiseResolution = function promiseResolution() {\n currentPromises -= 1;\n\n if (currentPromises === 0) {\n initialPromises = 0;\n\n _this3.done();\n } else {\n _this3.set((initialPromises - currentPromises) / initialPromises);\n }\n };\n\n $promise.then(promiseResolution).catch(promiseResolution);\n return this;\n },\n\n get status() {\n return localStatus;\n },\n\n get settings() {\n return localSettings;\n }\n\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (NProgress());\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-archived-happyholidays-js\": () => import(\"./../../../src/pages/archived-happyholidays.js\" /* webpackChunkName: \"component---src-pages-archived-happyholidays-js\" */),\n \"component---src-pages-featured-js\": () => import(\"./../../../src/pages/featured.js\" /* webpackChunkName: \"component---src-pages-featured-js\" */),\n \"component---src-pages-glossary-js\": () => import(\"./../../../src/pages/glossary.js\" /* webpackChunkName: \"component---src-pages-glossary-js\" */),\n \"component---src-pages-happyholidays-js\": () => import(\"./../../../src/pages/happyholidays.js\" /* webpackChunkName: \"component---src-pages-happyholidays-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-templates-index-js\": () => import(\"./../../../src/templates/index.js\" /* webpackChunkName: \"component---src-templates-index-js\" */),\n \"component---src-templates-post-js\": () => import(\"./../../../src/templates/post.js\" /* webpackChunkName: \"component---src-templates-post-js\" */),\n \"component---src-templates-tags-js\": () => import(\"./../../../src/templates/tags.js\" /* webpackChunkName: \"component---src-templates-tags-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-8YXN27JRMW\"],\"pluginConfig\":{\"head\":true,\"exclude\":[\"/dml/**\",\"/api/**\"],\"respectDNT\":false,\"origin\":\"https://www.googletagmanager.com\",\"delayOnRouteUpdate\":0},\"gtagConfig\":{}},\n },{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":1200,\"linkImagesToOriginal\":false,\"showCaptions\":false,\"markdownCaptions\":false,\"backgroundColor\":\"white\",\"quality\":50,\"withWebp\":false,\"withAvif\":false,\"loading\":\"lazy\",\"decoding\":\"async\",\"disableBgImageOnAlpha\":false,\"disableBgImage\":false},\n },{\n plugin: require('../node_modules/gatsby-remark-images-medium-zoom/gatsby-browser.js'),\n options: {\"plugins\":[],\"margin\":36,\"scrollOffset\":0},\n },{\n plugin: require('../node_modules/gatsby-remark-autolink-headers/gatsby-browser.js'),\n options: {\"plugins\":[],\"offsetY\":-420,\"className\":\"anchor\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-segment-js/gatsby-browser.js'),\n options: {\"plugins\":[],\"prodKey\":\"YJxAJ7W02YDpFrM43i4qdfQjtfhN49P3\",\"devKey\":\"YJxAJ7W02YDpFrM43i4qdfQjtfhN49P3\",\"trackPage\":true},\n },{\n plugin: require('../node_modules/gatsby-plugin-hubspot/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingCode\":\"20067920\",\"respectDNT\":true,\"productionOnly\":true},\n },{\n plugin: require('../node_modules/gatsby-plugin-nprogress/gatsby-browser.js'),\n options: {\"plugins\":[],\"color\":\"#1B63B1\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[],\"excludePattern\":\"(dml|api)\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Dyspatch Support\",\"short_name\":\"Dyspatch Support\",\"start_url\":\"/\",\"background_color\":\"#e0e0e0\",\"theme_color\":\"#1B63B1\",\"display\":\"minimal-ui\",\"icons\":[{\"src\":\"static/favicon.ico\",\"sizes\":\"192x192\",\"type\":\"image/png\"},{\"src\":\"static/favicon.ico\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":null},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \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). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\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\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","require(\"prismjs/themes/prism-tomorrow.css\");\n\nexport const onRouteUpdate = () => {\n // If analytics.js (segment) is not found, log a warning in dev env only\n if (!window.analytics || typeof window.analytics.page !== \"function\") {\n if (process.env.NODE_ENV === \"development\") {\n // console.warn('Unable to locate analytics.js');\n }\n return;\n }\n\n // If development don't log analytics\n if (process.env.NODE_ENV !== \"development\") {\n window.analytics.page();\n }\n};\n","import escapeStringRegexp from \"escape-string-regexp\";\nimport { withPrefix } from \"gatsby\";\nexport const userIsForcingNavigation = event => event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey; // IE does not include leading slash in anchor.pathname\n\nexport const slashedPathname = pathname => pathname[0] === `/` ? pathname : `/${pathname}`;\nexport const navigationWasHandledElsewhere = event => event.defaultPrevented;\nexport const findClosestAnchor = node => {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === `a`) {\n return node;\n }\n }\n\n return null;\n};\nexport const anchorsTargetIsEquivalentToSelf = anchor =>\n/* If target attribute is not present it's treated as _self */\nanchor.hasAttribute(`target`) === false ||\n/**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n/**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\nanchor.target == null ||\n/**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n[`_self`, ``].includes(anchor.target) ||\n/**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\nanchor.target === `_parent` && (!anchor.ownerDocument.defaultView.parent || // Assumption: This can be falsey\nanchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === `_top` && (!anchor.ownerDocument.defaultView.top || // Assumption: This can be falsey\nanchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView);\nexport const authorIsForcingNavigation = anchor =>\n/**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\nanchor.hasAttribute(`download`) === true ||\n/**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\nanchorsTargetIsEquivalentToSelf(anchor) === false; // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n\nexport const urlsAreOnSameOrigin = (origin, destination) => origin.protocol === destination.protocol &&\n/* a.host includes both hostname and port in the expected format host:port */\norigin.host === destination.host;\nexport const pathIsNotHandledByApp = (destination, pathStartRegEx) => {\n const pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\nexport const hashShouldBeFollowed = (origin, destination) => destination.hash !== `` && (\n/**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\ndestination.pathname === `` ||\n/* Don't catch links pointed to the same page but with a hash. */\ndestination.pathname === origin.pathname);\nexport const routeThroughBrowserOrApp = (hrefHandler, pluginOptions) => event => {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n const clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true; // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n\n const destination = document.createElement(`a`); // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n\n if (clickedAnchor.href !== ``) {\n destination.href = clickedAnchor.href;\n }\n\n if (`SVGAnimatedString` in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n } // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n\n\n const origin = document.createElement(`a`);\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true; // Regex to test pathname against pathPrefix\n\n const pathStartRegEx = new RegExp(`^${escapeStringRegexp(withPrefix(`/`))}`);\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n\n if (pluginOptions.excludePattern) {\n const excludeRegex = new RegExp(pluginOptions.excludePattern);\n\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n\n event.preventDefault(); // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n\n const destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, `/`);\n hrefHandler(`${destinationPathname}${destination.search}${destination.hash}`);\n return false;\n};\nexport default function (root, pluginOptions, cb) {\n const clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(`click`, clickHandler);\n return () => root.removeEventListener(`click`, clickHandler);\n}","import { navigate } from \"gatsby\";\nimport catchLinks from \"./catch-links\";\nexport const onClientEntry = (_, pluginOptions = {}) => {\n catchLinks(window, pluginOptions, href => {\n navigate(href);\n });\n};","\"use strict\";\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n var pluginConfig = pluginOptions.pluginConfig || {};\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null;\n\n // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n var _pluginConfig$delayOn = pluginConfig.delayOnRouteUpdate,\n delayOnRouteUpdate = _pluginConfig$delayOn === void 0 ? 0 : _pluginConfig$delayOn;\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n return setTimeout(sendPageView, delayOnRouteUpdate);\n });\n });\n } else {\n // Delay by 32ms to simulate 2 requestOnAnimationFrame calls\n setTimeout(sendPageView, 32 + delayOnRouteUpdate);\n }\n return null;\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar defaultOptions = {\n respectDNT: false,\n productionOnly: true\n};\nvar _default = defaultOptions;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defaultOptions = _interopRequireDefault(require(\"./default-options\"));\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var options = (0, _extends2.default)({}, _defaultOptions.default, pluginOptions);\n\n if (options.productionOnly && process.env.NODE_ENV !== 'production' || !Array.isArray(window._hsq)) {\n return null;\n }\n\n var trackPageView = function trackPageView() {\n var path = location ? \"\" + location.pathname + location.search + location.hash : undefined;\n\n window._hsq.push(['setPath', path]);\n\n window._hsq.push(['trackPageView']);\n }; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // react-helmet is using requestAnimationFrame (https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299)\n\n\n if (typeof window.requestAnimationFrame === 'function') {\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(trackPageView);\n });\n } else {\n // simulate 2 requestAnimationFrame calls\n setTimeout(trackPageView, 32);\n }\n\n return null;\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\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 * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.onRouteUpdateDelayed = exports.onRouteUpdate = exports.onClientEntry = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _accessibleNprogress = _interopRequireDefault(require(\"accessible-nprogress\"));\n\nvar defaultOptions = {\n color: \"#29d\"\n};\n\nvar onClientEntry = function onClientEntry(_gatsbyApi, pluginOptions) {\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n // Merge default options with user defined options in `gatsby-config.js`\n var options = (0, _extends2.default)({}, defaultOptions, pluginOptions); // Inject styles.\n\n var styles = \"\\n #nprogress {\\n pointer-events: none;\\n }\\n #nprogress .bar {\\n background: \" + options.color + \";\\n position: fixed;\\n z-index: 1031;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 2px;\\n }\\n #nprogress .peg {\\n display: block;\\n position: absolute;\\n right: 0px;\\n width: 100px;\\n height: 100%;\\n box-shadow: 0 0 10px \" + options.color + \", 0 0 5px \" + options.color + \";\\n opacity: 1.0;\\n -webkit-transform: rotate(3deg) translate(0px, -4px);\\n -ms-transform: rotate(3deg) translate(0px, -4px);\\n transform: rotate(3deg) translate(0px, -4px);\\n }\\n #nprogress .spinner {\\n display: block;\\n position: fixed;\\n z-index: 1031;\\n top: 15px;\\n right: 15px;\\n }\\n #nprogress .spinner-icon {\\n width: 18px;\\n height: 18px;\\n box-sizing: border-box;\\n border: solid 2px transparent;\\n border-top-color: \" + options.color + \";\\n border-left-color: \" + options.color + \";\\n border-radius: 50%;\\n -webkit-animation: nprogress-spinner 400ms linear infinite;\\n animation: nprogress-spinner 400ms linear infinite;\\n }\\n .nprogress-custom-parent {\\n overflow: hidden;\\n position: relative;\\n }\\n .nprogress-custom-parent #nprogress .spinner,\\n .nprogress-custom-parent #nprogress .bar {\\n position: absolute;\\n }\\n @-webkit-keyframes nprogress-spinner {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n }\\n }\\n @keyframes nprogress-spinner {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n }\\n \";\n var node = document.createElement(\"style\");\n node.id = \"nprogress-styles\";\n node.innerHTML = styles;\n document.head.appendChild(node);\n\n _accessibleNprogress.default.configure(options);\n};\n\nexports.onClientEntry = onClientEntry;\n\nvar onRouteUpdateDelayed = function onRouteUpdateDelayed() {\n _accessibleNprogress.default.start();\n};\n\nexports.onRouteUpdateDelayed = onRouteUpdateDelayed;\n\nvar onRouteUpdate = function onRouteUpdate() {\n _accessibleNprogress.default.done();\n};\n\nexports.onRouteUpdate = onRouteUpdate;","\"use strict\";\n\nexports.onRouteUpdate = function (_ref, _ref2) {\n var prevLocation = _ref.prevLocation;\n var trackPage = _ref2.trackPage,\n _ref2$trackPageDelay = _ref2.trackPageDelay,\n trackPageDelay = _ref2$trackPageDelay === undefined ? 50 : _ref2$trackPageDelay;\n\n if (!trackPage) {\n return;\n }\n\n function trackSegmentPage() {\n var delay = Math.max(0, trackPageDelay);\n\n window.setTimeout(function () {\n window.gatsbyPluginSegmentPageviewCaller && window.gatsbyPluginSegmentPageviewCaller(!!prevLocation);\n }, delay);\n }\n\n if (window.gatsbyPluginSegmentSnippetLoader) {\n window.gatsbyPluginSegmentSnippetLoader(trackSegmentPage);\n } else {\n trackSegmentPage();\n }\n};","\"use strict\";\n\nvar offsetY = 0;\n\nvar getTargetOffset = function getTargetOffset(hash) {\n var id = window.decodeURI(hash.replace(\"#\", \"\"));\n\n if (id !== \"\") {\n var element = document.getElementById(id);\n\n if (element) {\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;\n var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;\n var computedStyles = window.getComputedStyle(element);\n var scrollMarginTop = computedStyles.getPropertyValue(\"scroll-margin-top\") || computedStyles.getPropertyValue(\"scroll-snap-margin-top\") || \"0px\";\n return element.getBoundingClientRect().top + scrollTop - parseInt(scrollMarginTop, 10) - clientTop - offsetY;\n }\n }\n\n return null;\n};\n\nexports.onInitialClientRender = function (_, pluginOptions) {\n if (pluginOptions.offsetY) {\n offsetY = pluginOptions.offsetY;\n }\n\n requestAnimationFrame(function () {\n var offset = getTargetOffset(window.location.hash);\n\n if (offset !== null) {\n window.scrollTo(0, offset);\n }\n });\n};\n\nexports.shouldUpdateScroll = function (_ref) {\n var location = _ref.routerProps.location;\n var offset = getTargetOffset(location.hash);\n return offset !== null ? [0, offset] : true;\n};","/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar isSupported = function isSupported(node) {\n return node.tagName === 'IMG';\n};\n\n/* eslint-disable-next-line no-prototype-builtins */\nvar isNodeList = function isNodeList(selector) {\n return NodeList.prototype.isPrototypeOf(selector);\n};\n\nvar isNode = function isNode(selector) {\n return selector && selector.nodeType === 1;\n};\n\nvar isSvg = function isSvg(image) {\n var source = image.currentSrc || image.src;\n return source.substr(-4).toLowerCase() === '.svg';\n};\n\nvar getImagesFromSelector = function getImagesFromSelector(selector) {\n try {\n if (Array.isArray(selector)) {\n return selector.filter(isSupported);\n }\n\n if (isNodeList(selector)) {\n // Do not use spread operator or Array.from() for IE support\n return [].slice.call(selector).filter(isSupported);\n }\n\n if (isNode(selector)) {\n return [selector].filter(isSupported);\n }\n\n if (typeof selector === 'string') {\n // Do not use spread operator or Array.from() for IE support\n return [].slice.call(document.querySelectorAll(selector)).filter(isSupported);\n }\n\n return [];\n } catch (err) {\n throw new TypeError('The provided selector is invalid.\\n' + 'Expects a CSS selector, a Node element, a NodeList or an array.\\n' + 'See: https://github.com/francoischalifour/medium-zoom');\n }\n};\n\nvar createOverlay = function createOverlay(background) {\n var overlay = document.createElement('div');\n overlay.classList.add('medium-zoom-overlay');\n overlay.style.background = background;\n\n return overlay;\n};\n\nvar cloneTarget = function cloneTarget(template) {\n var _template$getBounding = template.getBoundingClientRect(),\n top = _template$getBounding.top,\n left = _template$getBounding.left,\n width = _template$getBounding.width,\n height = _template$getBounding.height;\n\n var clone = template.cloneNode();\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n\n clone.removeAttribute('id');\n clone.style.position = 'absolute';\n clone.style.top = top + scrollTop + 'px';\n clone.style.left = left + scrollLeft + 'px';\n clone.style.width = width + 'px';\n clone.style.height = height + 'px';\n clone.style.transform = '';\n\n return clone;\n};\n\nvar createCustomEvent = function createCustomEvent(type, params) {\n var eventParams = _extends({\n bubbles: false,\n cancelable: false,\n detail: undefined\n }, params);\n\n if (typeof window.CustomEvent === 'function') {\n return new CustomEvent(type, eventParams);\n }\n\n var customEvent = document.createEvent('CustomEvent');\n customEvent.initCustomEvent(type, eventParams.bubbles, eventParams.cancelable, eventParams.detail);\n\n return customEvent;\n};\n\nvar mediumZoom = function mediumZoom(selector) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n /**\n * Ensure the compatibility with IE11 if no Promise polyfill are used.\n */\n var Promise = window.Promise || function Promise(fn) {\n function noop() {}\n fn(noop, noop);\n };\n\n var _handleClick = function _handleClick(event) {\n var target = event.target;\n\n\n if (target === overlay) {\n close();\n return;\n }\n\n if (images.indexOf(target) === -1) {\n return;\n }\n\n toggle({ target: target });\n };\n\n var _handleScroll = function _handleScroll() {\n if (isAnimating || !active.original) {\n return;\n }\n\n var currentScroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n if (Math.abs(scrollTop - currentScroll) > zoomOptions.scrollOffset) {\n setTimeout(close, 150);\n }\n };\n\n var _handleKeyUp = function _handleKeyUp(event) {\n var key = event.key || event.keyCode;\n\n // Close if escape key is pressed\n if (key === 'Escape' || key === 'Esc' || key === 27) {\n close();\n }\n };\n\n var update = function update() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var newOptions = options;\n\n if (options.background) {\n overlay.style.background = options.background;\n }\n\n if (options.container && options.container instanceof Object) {\n newOptions.container = _extends({}, zoomOptions.container, options.container);\n }\n\n if (options.template) {\n var template = isNode(options.template) ? options.template : document.querySelector(options.template);\n\n newOptions.template = template;\n }\n\n zoomOptions = _extends({}, zoomOptions, newOptions);\n\n images.forEach(function (image) {\n image.dispatchEvent(createCustomEvent('medium-zoom:update', {\n detail: { zoom: zoom }\n }));\n });\n\n return zoom;\n };\n\n var clone = function clone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return mediumZoom(_extends({}, zoomOptions, options));\n };\n\n var attach = function attach() {\n for (var _len = arguments.length, selectors = Array(_len), _key = 0; _key < _len; _key++) {\n selectors[_key] = arguments[_key];\n }\n\n var newImages = selectors.reduce(function (imagesAccumulator, currentSelector) {\n return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector));\n }, []);\n\n newImages.filter(function (newImage) {\n return images.indexOf(newImage) === -1;\n }).forEach(function (newImage) {\n images.push(newImage);\n newImage.classList.add('medium-zoom-image');\n });\n\n eventListeners.forEach(function (_ref) {\n var type = _ref.type,\n listener = _ref.listener,\n options = _ref.options;\n\n newImages.forEach(function (image) {\n image.addEventListener(type, listener, options);\n });\n });\n\n return zoom;\n };\n\n var detach = function detach() {\n for (var _len2 = arguments.length, selectors = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n selectors[_key2] = arguments[_key2];\n }\n\n if (active.zoomed) {\n close();\n }\n\n var imagesToDetach = selectors.length > 0 ? selectors.reduce(function (imagesAccumulator, currentSelector) {\n return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector));\n }, []) : images;\n\n imagesToDetach.forEach(function (image) {\n image.classList.remove('medium-zoom-image');\n image.dispatchEvent(createCustomEvent('medium-zoom:detach', {\n detail: { zoom: zoom }\n }));\n });\n\n images = images.filter(function (image) {\n return imagesToDetach.indexOf(image) === -1;\n });\n\n return zoom;\n };\n\n var on = function on(type, listener) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n images.forEach(function (image) {\n image.addEventListener('medium-zoom:' + type, listener, options);\n });\n\n eventListeners.push({ type: 'medium-zoom:' + type, listener: listener, options: options });\n\n return zoom;\n };\n\n var off = function off(type, listener) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n images.forEach(function (image) {\n image.removeEventListener('medium-zoom:' + type, listener, options);\n });\n\n eventListeners = eventListeners.filter(function (eventListener) {\n return !(eventListener.type === 'medium-zoom:' + type && eventListener.listener.toString() === listener.toString());\n });\n\n return zoom;\n };\n\n var open = function open() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref2.target;\n\n var _animate = function _animate() {\n var container = {\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n var viewportWidth = void 0;\n var viewportHeight = void 0;\n\n if (zoomOptions.container) {\n if (zoomOptions.container instanceof Object) {\n // The container is given as an object with properties like width, height, left, top\n container = _extends({}, container, zoomOptions.container);\n\n // We need to adjust custom options like container.right or container.bottom\n viewportWidth = container.width - container.left - container.right - zoomOptions.margin * 2;\n viewportHeight = container.height - container.top - container.bottom - zoomOptions.margin * 2;\n } else {\n // The container is given as an element\n var zoomContainer = isNode(zoomOptions.container) ? zoomOptions.container : document.querySelector(zoomOptions.container);\n\n var _zoomContainer$getBou = zoomContainer.getBoundingClientRect(),\n _width = _zoomContainer$getBou.width,\n _height = _zoomContainer$getBou.height,\n _left = _zoomContainer$getBou.left,\n _top = _zoomContainer$getBou.top;\n\n container = _extends({}, container, {\n width: _width,\n height: _height,\n left: _left,\n top: _top\n });\n }\n }\n\n viewportWidth = viewportWidth || container.width - zoomOptions.margin * 2;\n viewportHeight = viewportHeight || container.height - zoomOptions.margin * 2;\n\n var zoomTarget = active.zoomedHd || active.original;\n var naturalWidth = isSvg(zoomTarget) ? viewportWidth : zoomTarget.naturalWidth || viewportWidth;\n var naturalHeight = isSvg(zoomTarget) ? viewportHeight : zoomTarget.naturalHeight || viewportHeight;\n\n var _zoomTarget$getBoundi = zoomTarget.getBoundingClientRect(),\n top = _zoomTarget$getBoundi.top,\n left = _zoomTarget$getBoundi.left,\n width = _zoomTarget$getBoundi.width,\n height = _zoomTarget$getBoundi.height;\n\n var scaleX = Math.min(Math.max(width, naturalWidth), viewportWidth) / width;\n var scaleY = Math.min(Math.max(height, naturalHeight), viewportHeight) / height;\n var scale = Math.min(scaleX, scaleY);\n var translateX = (-left + (viewportWidth - width) / 2 + zoomOptions.margin + container.left) / scale;\n var translateY = (-top + (viewportHeight - height) / 2 + zoomOptions.margin + container.top) / scale;\n var transform = 'scale(' + scale + ') translate3d(' + translateX + 'px, ' + translateY + 'px, 0)';\n\n active.zoomed.style.transform = transform;\n\n if (active.zoomedHd) {\n active.zoomedHd.style.transform = transform;\n }\n };\n\n return new Promise(function (resolve) {\n if (target && images.indexOf(target) === -1) {\n resolve(zoom);\n return;\n }\n\n var _handleOpenEnd = function _handleOpenEnd() {\n isAnimating = false;\n active.zoomed.removeEventListener('transitionend', _handleOpenEnd);\n active.original.dispatchEvent(createCustomEvent('medium-zoom:opened', {\n detail: { zoom: zoom }\n }));\n\n resolve(zoom);\n };\n\n if (active.zoomed) {\n resolve(zoom);\n return;\n }\n\n if (target) {\n // The zoom was triggered manually via a click\n active.original = target;\n } else if (images.length > 0) {\nvar _images = images;\n active.original = _images[0];\n } else {\n resolve(zoom);\n return;\n }\n\n active.original.dispatchEvent(createCustomEvent('medium-zoom:open', {\n detail: { zoom: zoom }\n }));\n\n scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n isAnimating = true;\n active.zoomed = cloneTarget(active.original);\n\n document.body.appendChild(overlay);\n\n if (zoomOptions.template) {\n var template = isNode(zoomOptions.template) ? zoomOptions.template : document.querySelector(zoomOptions.template);\n active.template = document.createElement('div');\n active.template.appendChild(template.content.cloneNode(true));\n\n document.body.appendChild(active.template);\n }\n\n // If the selected tag is inside a tag, set the\n // currently-applied source as the cloned `src=` attribute.\n // (as these might differ, or src= might be unset in some cases)\n if (active.original.parentElement && active.original.parentElement.tagName === 'PICTURE' && active.original.currentSrc) {\n active.zoomed.src = active.original.currentSrc;\n }\n\n document.body.appendChild(active.zoomed);\n\n window.requestAnimationFrame(function () {\n document.body.classList.add('medium-zoom--opened');\n });\n\n active.original.classList.add('medium-zoom-image--hidden');\n active.zoomed.classList.add('medium-zoom-image--opened');\n\n active.zoomed.addEventListener('click', close);\n active.zoomed.addEventListener('transitionend', _handleOpenEnd);\n\n if (active.original.getAttribute('data-zoom-src')) {\n active.zoomedHd = active.zoomed.cloneNode();\n\n // Reset the `scrset` property or the HD image won't load.\n active.zoomedHd.removeAttribute('srcset');\n active.zoomedHd.removeAttribute('sizes');\n // Remove loading attribute so the browser can load the image normally\n active.zoomedHd.removeAttribute('loading');\n\n active.zoomedHd.src = active.zoomed.getAttribute('data-zoom-src');\n\n active.zoomedHd.onerror = function () {\n clearInterval(getZoomTargetSize);\n console.warn('Unable to reach the zoom image target ' + active.zoomedHd.src);\n active.zoomedHd = null;\n _animate();\n };\n\n // We need to access the natural size of the full HD\n // target as fast as possible to compute the animation.\n var getZoomTargetSize = setInterval(function () {\n if ( active.zoomedHd.complete) {\n clearInterval(getZoomTargetSize);\n active.zoomedHd.classList.add('medium-zoom-image--opened');\n active.zoomedHd.addEventListener('click', close);\n document.body.appendChild(active.zoomedHd);\n _animate();\n }\n }, 10);\n } else if (active.original.hasAttribute('srcset')) {\n // If an image has a `srcset` attribuet, we don't know the dimensions of the\n // zoomed (HD) image (like when `data-zoom-src` is specified).\n // Therefore the approach is quite similar.\n active.zoomedHd = active.zoomed.cloneNode();\n\n // Resetting the sizes attribute tells the browser to load the\n // image best fitting the current viewport size, respecting the `srcset`.\n active.zoomedHd.removeAttribute('sizes');\n\n // In Firefox, the `loading` attribute needs to be set to `eager` (default\n // value) for the load event to be fired.\n active.zoomedHd.removeAttribute('loading');\n\n // Wait for the load event of the hd image. This will fire if the image\n // is already cached.\n var loadEventListener = active.zoomedHd.addEventListener('load', function () {\n active.zoomedHd.removeEventListener('load', loadEventListener);\n active.zoomedHd.classList.add('medium-zoom-image--opened');\n active.zoomedHd.addEventListener('click', close);\n document.body.appendChild(active.zoomedHd);\n _animate();\n });\n } else {\n _animate();\n }\n });\n };\n\n var close = function close() {\n return new Promise(function (resolve) {\n if (isAnimating || !active.original) {\n resolve(zoom);\n return;\n }\n\n var _handleCloseEnd = function _handleCloseEnd() {\n active.original.classList.remove('medium-zoom-image--hidden');\n document.body.removeChild(active.zoomed);\n if (active.zoomedHd) {\n document.body.removeChild(active.zoomedHd);\n }\n document.body.removeChild(overlay);\n active.zoomed.classList.remove('medium-zoom-image--opened');\n if (active.template) {\n document.body.removeChild(active.template);\n }\n\n isAnimating = false;\n active.zoomed.removeEventListener('transitionend', _handleCloseEnd);\n\n active.original.dispatchEvent(createCustomEvent('medium-zoom:closed', {\n detail: { zoom: zoom }\n }));\n\n active.original = null;\n active.zoomed = null;\n active.zoomedHd = null;\n active.template = null;\n\n resolve(zoom);\n };\n\n isAnimating = true;\n document.body.classList.remove('medium-zoom--opened');\n active.zoomed.style.transform = '';\n\n if (active.zoomedHd) {\n active.zoomedHd.style.transform = '';\n }\n\n // Fade out the template so it's not too abrupt\n if (active.template) {\n active.template.style.transition = 'opacity 150ms';\n active.template.style.opacity = 0;\n }\n\n active.original.dispatchEvent(createCustomEvent('medium-zoom:close', {\n detail: { zoom: zoom }\n }));\n\n active.zoomed.addEventListener('transitionend', _handleCloseEnd);\n });\n };\n\n var toggle = function toggle() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref3.target;\n\n if (active.original) {\n return close();\n }\n\n return open({ target: target });\n };\n\n var getOptions = function getOptions() {\n return zoomOptions;\n };\n\n var getImages = function getImages() {\n return images;\n };\n\n var getZoomedImage = function getZoomedImage() {\n return active.original;\n };\n\n var images = [];\n var eventListeners = [];\n var isAnimating = false;\n var scrollTop = 0;\n var zoomOptions = options;\n var active = {\n original: null,\n zoomed: null,\n zoomedHd: null,\n template: null\n\n // If the selector is omitted, it's replaced by the options\n };if (Object.prototype.toString.call(selector) === '[object Object]') {\n zoomOptions = selector;\n } else if (selector || typeof selector === 'string' // to process empty string as a selector\n ) {\n attach(selector);\n }\n\n // Apply the default option values\n zoomOptions = _extends({\n margin: 0,\n background: '#fff',\n scrollOffset: 40,\n container: null,\n template: null\n }, zoomOptions);\n\n var overlay = createOverlay(zoomOptions.background);\n\n document.addEventListener('click', _handleClick);\n document.addEventListener('keyup', _handleKeyUp);\n document.addEventListener('scroll', _handleScroll);\n window.addEventListener('resize', close);\n\n var zoom = {\n open: open,\n close: close,\n toggle: toggle,\n update: update,\n clone: clone,\n attach: attach,\n detach: detach,\n on: on,\n off: off,\n getOptions: getOptions,\n getImages: getImages,\n getZoomedImage: getZoomedImage\n };\n\n return zoom;\n};\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css = \".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}\";\nstyleInject(css);\n\nexport default mediumZoom;\n","import mediumZoom from 'medium-zoom'\nimport '@fastly/performance-observer-polyfill/polyfill'\n\n// @see https://github.com/francoischalifour/medium-zoom#options\nconst defaultOptions = {\n margin: 24,\n background: '#fff',\n scrollOffset: 40,\n container: null,\n template: null,\n zIndex: 999,\n excludedSelector: null\n}\n\n// @see https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-remark-images/src/constants.js#L1\nconst imageClass = '.gatsby-resp-image-image'\n\nconst FIRST_CONTENTFUL_PAINT = 'first-contentful-paint'\nconst ZOOM_STYLE_ID = 'medium-zoom-styles'\nconst TRANSITION_EFFECT = 'opacity 0.5s, transform .3s cubic-bezier(.2,0,.2,1)'\n\nfunction onFCP(callback) {\n // @see https://developers.google.com/web/updates/2016/06/performance-observer\n if (!window.performance || !window.PerformanceObserver) {\n return\n }\n\n const po = new PerformanceObserver(list =>\n list\n .getEntries()\n .filter(({ entryType }) => entryType === 'paint')\n .map(({ name }) => name === FIRST_CONTENTFUL_PAINT)\n .forEach(callback)\n )\n\n try {\n po.observe({ entryTypes: ['measure', 'paint'] })\n } catch (e) {\n console.error(e)\n po.disconnect()\n }\n}\n\nfunction injectStyles(options) {\n const styleTag = document.querySelector(`#${ZOOM_STYLE_ID}`)\n if (styleTag) {\n return\n }\n\n const { zIndex } = options\n const node = document.createElement('style')\n const styles = `\n .medium-zoom--opened > .medium-zoom-overlay,\n .medium-zoom--opened > .medium-zoom-image,\n\t img.medium-zoom-image--opened {\n z-index: ${zIndex}\n }\n `\n node.id = ZOOM_STYLE_ID\n node.innerHTML = styles\n document.head.appendChild(node)\n}\n\nfunction applyZoomEffect({ excludedSelector, includedSelector, ...options }) {\n const imagesSelector = excludedSelector\n ? `${imageClass}:not(${excludedSelector})`\n : imageClass\n\n let imageElements = Array.from(document.querySelectorAll(imagesSelector))\n if (includedSelector) {\n const includedEls = Array.from(document.querySelectorAll(includedSelector))\n imageElements = imageElements.concat(includedEls)\n }\n const images = imageElements\n .filter(el => !el.classList.contains('medium-zoom-image'))\n .map(el => {\n function onImageLoad() {\n const originalTransition = el.style.transition\n el.style.transition = `${originalTransition}, ${TRANSITION_EFFECT}`\n el.removeEventListener('load', onImageLoad)\n }\n el.addEventListener('load', onImageLoad)\n el.setAttribute('tabIndex', 0)\n el.addEventListener('keydown', e => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault()\n el.click()\n }\n })\n return el\n })\n\n if (images.length > 0) {\n mediumZoom(images, options)\n }\n}\n\nexport const onRouteUpdate = (_, pluginOptions) => {\n const options = { ...defaultOptions, ...pluginOptions }\n injectStyles(options)\n\n onFCP(() => applyZoomEffect(options))\n applyZoomEffect(options)\n}\n","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n withAvif: false,\n tracedSVG: false,\n loading: \"lazy\",\n decoding: \"async\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.EMPTY_ALT = \"GATSBY_EMPTY_ALT\";\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\n\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass); // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n\n var _loop = function _loop(i) {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop(i);\n }\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","// extracted by mini-css-extract-plugin\nexport {};","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `