Skip to content

Commit

Permalink
v11.0.2-canary.22
Browse files Browse the repository at this point in the history
  • Loading branch information
ijjk committed Jul 26, 2021
1 parent 57501fa commit 7c0f707
Show file tree
Hide file tree
Showing 14 changed files with 20 additions and 20 deletions.
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@
"registry": "https://registry.npmjs.org/"
}
},
"version": "11.0.2-canary.21"
"version": "11.0.2-canary.22"
}
2 changes: 1 addition & 1 deletion packages/create-next-app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-next-app",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"keywords": [
"react",
"next",
Expand Down
4 changes: 2 additions & 2 deletions packages/eslint-config-next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "eslint-config-next",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"description": "ESLint configuration used by NextJS.",
"main": "index.js",
"license": "MIT",
Expand All @@ -9,7 +9,7 @@
"directory": "packages/eslint-config-next"
},
"dependencies": {
"@next/eslint-plugin-next": "11.0.2-canary.21",
"@next/eslint-plugin-next": "11.0.2-canary.22",
"@rushstack/eslint-patch": "^1.0.6",
"@typescript-eslint/parser": "^4.20.0",
"eslint-import-resolver-node": "^0.3.4",
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/eslint-plugin-next",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"description": "ESLint plugin for NextJS.",
"main": "lib/index.js",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-bundle-analyzer/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/bundle-analyzer",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/next-codemod/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/codemod",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"license": "MIT",
"dependencies": {
"chalk": "4.1.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-env/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/env",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"keywords": [
"react",
"next",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-mdx/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/mdx",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/next-plugin-storybook/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/plugin-storybook",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"repository": {
"url": "vercel/next.js",
"directory": "packages/next-plugin-storybook"
Expand Down
2 changes: 1 addition & 1 deletion packages/next-polyfill-module/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/polyfill-module",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)",
"main": "dist/polyfill-module.js",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-polyfill-nomodule/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/polyfill-nomodule",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"description": "A polyfill for non-dead, nomodule browsers.",
"main": "dist/polyfill-nomodule.js",
"license": "MIT",
Expand Down
12 changes: 6 additions & 6 deletions packages/next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "next",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"description": "The React Framework",
"main": "./dist/server/next.js",
"license": "MIT",
Expand Down Expand Up @@ -65,10 +65,10 @@
"dependencies": {
"@babel/runtime": "7.12.5",
"@hapi/accept": "5.0.2",
"@next/env": "11.0.2-canary.21",
"@next/polyfill-module": "11.0.2-canary.21",
"@next/react-dev-overlay": "11.0.2-canary.21",
"@next/react-refresh-utils": "11.0.2-canary.21",
"@next/env": "11.0.2-canary.22",
"@next/polyfill-module": "11.0.2-canary.22",
"@next/react-dev-overlay": "11.0.2-canary.22",
"@next/react-refresh-utils": "11.0.2-canary.22",
"assert": "2.0.0",
"ast-types": "0.13.2",
"browserify-zlib": "0.2.0",
Expand Down Expand Up @@ -152,7 +152,7 @@
"@babel/preset-typescript": "7.12.7",
"@babel/traverse": "^7.12.10",
"@babel/types": "7.12.12",
"@next/polyfill-nomodule": "11.0.2-canary.21",
"@next/polyfill-nomodule": "11.0.2-canary.22",
"@taskr/clear": "1.1.0",
"@taskr/esnext": "1.1.0",
"@taskr/watch": "1.1.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/react-dev-overlay/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/react-dev-overlay",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"description": "A development-only overlay for developing React applications.",
"repository": {
"url": "vercel/next.js",
Expand Down
2 changes: 1 addition & 1 deletion packages/react-refresh-utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@next/react-refresh-utils",
"version": "11.0.2-canary.21",
"version": "11.0.2-canary.22",
"description": "An experimental package providing utilities for React Refresh.",
"repository": {
"url": "vercel/next.js",
Expand Down

1 comment on commit 7c0f707

@ijjk
Copy link
Member Author

@ijjk ijjk commented on 7c0f707 Jul 26, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stats from current release

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
buildDuration 11.7s 12.3s ⚠️ +657ms
buildDurationCached 2.7s 2.6s -106ms
nodeModulesSize 50.1 MB 50.3 MB ⚠️ +253 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
/ failed reqs 0 0
/ total time (seconds) 1.796 2.012 ⚠️ +0.22
/ avg req/sec 1392.31 1242.4 ⚠️ -149.91
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.017 1.066 ⚠️ +0.05
/error-in-render avg req/sec 2458.46 2345.7 ⚠️ -112.76
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
745.HASH.js gzip 180 B 180 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 20.2 kB 21 kB ⚠️ +801 B
webpack-HASH.js gzip 1.49 kB 1.53 kB ⚠️ +36 B
359.HASH.js gzip N/A 2.96 kB N/A
Overall change 64.1 kB 67.9 kB ⚠️ +3.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages Overall decrease ✓
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
_app-HASH.js gzip 801 B 803 B ⚠️ +2 B
_error-HASH.js gzip 3.17 kB 3.06 kB -111 B
amp-HASH.js gzip 527 B 554 B ⚠️ +27 B
css-HASH.js gzip 330 B 329 B -1 B
dynamic-HASH.js gzip 2.56 kB 2.52 kB -37 B
head-HASH.js gzip 2.41 kB 2.28 kB -135 B
hooks-HASH.js gzip 903 B 903 B
image-HASH.js gzip 5.52 kB 5.63 kB ⚠️ +107 B
index-HASH.js gzip 261 B 261 B
link-HASH.js gzip 1.66 kB 1.66 kB ⚠️ +3 B
routerDirect..HASH.js gzip 319 B 319 B
script-HASH.js gzip 387 B 387 B
withRouter-HASH.js gzip 320 B 320 B
bb14e60e810b..30f.css gzip 125 B 125 B
Overall change 19.3 kB 19.1 kB -145 B
Client Build Manifests Overall decrease ✓
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
_buildManifest.js gzip 492 B 489 B -3 B
Overall change 492 B 489 B -3 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
index.html gzip 528 B 530 B ⚠️ +2 B
link.html gzip 541 B 544 B ⚠️ +3 B
withRouter.html gzip 524 B 524 B
Overall change 1.59 kB 1.6 kB ⚠️ +5 B

Diffs

Diff for _buildManifest.js
@@ -2,24 +2,24 @@ self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-191cfefb947010b4d318.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-a9b3a05c6c7f15ca24a9.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-b7cf869ea4c3dc245b13.js"
   ],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-7f1c918feab47667356f.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-110c9d1dfe07ae6114f8.js"],
   "/css": [
     "static\u002Fcss\u002F59de118426c393f58653.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-9892f9ef9b6f15db85a5.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-fc196f2ef04da4c7630f.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-f53648c68972bfa5362a.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-0a62768e1cc2caf27342.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-2e276a1bd1537ffe1ebd.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-dfe941721461fc33ce30.js"],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-4e38b05900fed34fcf34.js"
   ],
   "/image": [
-    "static\u002Fchunks\u002Fpages\u002Fimage-0e07ffaad1d1413c39be.js"
+    "static\u002Fchunks\u002Fpages\u002Fimage-539dcc621e94d5583508.js"
   ],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-ac66030080ff38e6bc7c.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-36845453cb7a35e1a731.js"],
   "/routerDirect": [
     "static\u002Fchunks\u002Fpages\u002FrouterDirect-7d3bf8d007854c164077.js"
   ],
Diff for _app-HASH.js
@@ -58,7 +58,7 @@
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _utils = __webpack_require__(4755);
+      var _utils = __webpack_require__(9664);
 
       exports.AppInitialProps = _utils.AppInitialProps;
       exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
Diff for _error-HASH.js
@@ -1,5 +1,5 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [820],
+  [820, 359],
   {
     /***/ 3646: /***/ function(
       module,
@@ -17,27 +17,6 @@
       /***/
     },
 
-    /***/ 9713: /***/ function(module) {
-      function _defineProperty(obj, key, value) {
-        if (key in obj) {
-          Object.defineProperty(obj, key, {
-            value: value,
-            enumerable: true,
-            configurable: true,
-            writable: true
-          });
-        } else {
-          obj[key] = value;
-        }
-
-        return obj;
-      }
-
-      module.exports = _defineProperty;
-
-      /***/
-    },
-
     /***/ 6860: /***/ function(module) {
       function _iterableToArray(iter) {
         if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
@@ -88,14 +67,228 @@
       /***/
     },
 
-    /***/ 3398: /***/ function(
+    /***/ 3359: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
+      var _classCallCheck = __webpack_require__(4575);
+
+      var _createClass = __webpack_require__(3913);
+
+      var _inherits = __webpack_require__(2205);
+
+      var _possibleConstructorReturn = __webpack_require__(8585);
+
+      var _getPrototypeOf = __webpack_require__(9754);
+
+      function _createSuper(Derived) {
+        var hasNativeReflectConstruct = _isNativeReflectConstruct();
+        return function _createSuperInternal() {
+          var Super = _getPrototypeOf(Derived),
+            result;
+          if (hasNativeReflectConstruct) {
+            var NewTarget = _getPrototypeOf(this).constructor;
+            result = Reflect.construct(Super, arguments, NewTarget);
+          } else {
+            result = Super.apply(this, arguments);
+          }
+          return _possibleConstructorReturn(this, result);
+        };
+      }
+
+      function _isNativeReflectConstruct() {
+        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+        if (Reflect.construct.sham) return false;
+        if (typeof Proxy === "function") return true;
+        try {
+          Date.prototype.toString.call(
+            Reflect.construct(Date, [], function() {})
+          );
+          return true;
+        } catch (e) {
+          return false;
+        }
+      }
+
+      var _interopRequireDefault = __webpack_require__(5318);
+
       exports.__esModule = true;
+      exports.default = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__(7294));
+
+      var _head = _interopRequireDefault(__webpack_require__(639));
+
+      var statusCodes = {
+        400: "Bad Request",
+        404: "This page could not be found",
+        405: "Method Not Allowed",
+        500: "Internal Server Error"
+      };
+
+      function _getInitialProps(_ref) {
+        var res = _ref.res,
+          err = _ref.err;
+        var statusCode =
+          res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
+        return {
+          statusCode: statusCode
+        };
+      }
+      /**
+       * `Error` component used for handling errors.
+       */
+
+      var Error = /*#__PURE__*/ (function(_react$default$Compon) {
+        _inherits(Error, _react$default$Compon);
+
+        var _super = _createSuper(Error);
+
+        function Error() {
+          _classCallCheck(this, Error);
+
+          return _super.apply(this, arguments);
+        }
+
+        _createClass(Error, [
+          {
+            key: "render",
+            value: function render() {
+              var statusCode = this.props.statusCode;
+              var title =
+                this.props.title ||
+                statusCodes[statusCode] ||
+                "An unexpected error has occurred";
+              return /*#__PURE__*/ _react["default"].createElement(
+                "div",
+                {
+                  style: styles.error
+                },
+                /*#__PURE__*/ _react["default"].createElement(
+                  _head["default"],
+                  null,
+                  /*#__PURE__*/ _react["default"].createElement(
+                    "title",
+                    null,
+                    statusCode
+                      ? "".concat(statusCode, ": ").concat(title)
+                      : "Application error: a client-side exception has occurred"
+                  )
+                ),
+                /*#__PURE__*/ _react["default"].createElement(
+                  "div",
+                  null,
+                  /*#__PURE__*/ _react["default"].createElement("style", {
+                    dangerouslySetInnerHTML: {
+                      __html: "body { margin: 0 }"
+                    }
+                  }),
+                  statusCode
+                    ? /*#__PURE__*/ _react["default"].createElement(
+                        "h1",
+                        {
+                          style: styles.h1
+                        },
+                        statusCode
+                      )
+                    : null,
+                  /*#__PURE__*/ _react["default"].createElement(
+                    "div",
+                    {
+                      style: styles.desc
+                    },
+                    /*#__PURE__*/ _react["default"].createElement(
+                      "h2",
+                      {
+                        style: styles.h2
+                      },
+                      this.props.title || statusCode
+                        ? title
+                        : /*#__PURE__*/ _react["default"].createElement(
+                            _react["default"].Fragment,
+                            null,
+                            "Application error: a client-side exception has occurred (",
+                            /*#__PURE__*/ _react["default"].createElement(
+                              "a",
+                              {
+                                href:
+                                  "https://nextjs.org/docs/messages/client-side-exception-occurred"
+                              },
+                              "developer guidance"
+                            ),
+                            ")"
+                          ),
+                      "."
+                    )
+                  )
+                )
+              );
+            }
+          }
+        ]);
+
+        return Error;
+      })(_react["default"].Component);
+
+      exports.default = Error;
+      Error.displayName = "ErrorPage";
+      Error.getInitialProps = _getInitialProps;
+      Error.origGetInitialProps = _getInitialProps;
+      var styles = {
+        error: {
+          color: "#000",
+          background: "#fff",
+          fontFamily:
+            '-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',
+          height: "100vh",
+          textAlign: "center",
+          display: "flex",
+          flexDirection: "column",
+          alignItems: "center",
+          justifyContent: "center"
+        },
+        desc: {
+          display: "inline-block",
+          textAlign: "left",
+          lineHeight: "49px",
+          height: "49px",
+          verticalAlign: "middle"
+        },
+        h1: {
+          display: "inline-block",
+          borderRight: "1px solid rgba(0, 0, 0,.3)",
+          margin: 0,
+          marginRight: "20px",
+          padding: "10px 23px 10px 0",
+          fontSize: "24px",
+          fontWeight: 500,
+          verticalAlign: "top"
+        },
+        h2: {
+          fontSize: "14px",
+          fontWeight: "normal",
+          lineHeight: "inherit",
+          margin: 0,
+          padding: 0
+        }
+      };
+
+      /***/
+    },
+
+    /***/ 6046: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.AmpStateContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
@@ -108,7 +301,7 @@
             };
       }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+      var AmpStateContext = _react["default"].createContext({});
 
       exports.AmpStateContext = AmpStateContext;
 
@@ -118,20 +311,22 @@
       /***/
     },
 
-    /***/ 6393: /***/ function(
+    /***/ 3237: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.isInAmpMode = isInAmpMode;
       exports.useAmp = useAmp;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _ampContext = __webpack_require__(3398);
+      var _ampContext = __webpack_require__(6046);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -166,7 +361,7 @@
       /***/
     },
 
-    /***/ 2775: /***/ function(
+    /***/ 639: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -213,19 +408,21 @@
         return target;
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.defaultHead = defaultHead;
       exports.default = void 0;
 
       var _react = _interopRequireWildcard(__webpack_require__(7294));
 
-      var _sideEffect = _interopRequireDefault(__webpack_require__(3244));
+      var _sideEffect = _interopRequireDefault(__webpack_require__(4766));
 
-      var _ampContext = __webpack_require__(3398);
+      var _ampContext = __webpack_require__(6046);
 
-      var _headManagerContext = __webpack_require__(1165);
+      var _headManagerContext = __webpack_require__(699);
 
-      var _amp = __webpack_require__(6393);
+      var _amp = __webpack_require__(3237);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -235,62 +432,32 @@
             };
       }
 
-      function _getRequireWildcardCache() {
-        if (typeof WeakMap !== "function") return null;
-        var cache = new WeakMap();
-
-        _getRequireWildcardCache = function _getRequireWildcardCache() {
-          return cache;
-        };
-
-        return cache;
-      }
-
       function _interopRequireWildcard(obj) {
         if (obj && obj.__esModule) {
           return obj;
-        }
-
-        if (
-          obj === null ||
-          (typeof obj !== "object" && typeof obj !== "function")
-        ) {
-          return {
-            default: obj
-          };
-        }
-
-        var cache = _getRequireWildcardCache();
-
-        if (cache && cache.has(obj)) {
-          return cache.get(obj);
-        }
-
-        var newObj = {};
-        var hasPropertyDescriptor =
-          Object.defineProperty && Object.getOwnPropertyDescriptor;
-
-        for (var key in obj) {
-          if (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];
+        } else {
+          var newObj = {};
+
+          if (obj != null) {
+            for (var key in obj) {
+              if (Object.prototype.hasOwnProperty.call(obj, key)) {
+                var desc =
+                  Object.defineProperty && Object.getOwnPropertyDescriptor
+                    ? Object.getOwnPropertyDescriptor(obj, key)
+                    : {};
+
+                if (desc.get || desc.set) {
+                  Object.defineProperty(newObj, key, desc);
+                } else {
+                  newObj[key] = obj[key];
+                }
+              }
             }
           }
-        }
-
-        newObj["default"] = obj;
 
-        if (cache) {
-          cache.set(obj, newObj);
+          newObj["default"] = obj;
+          return newObj;
         }
-
-        return newObj;
       }
 
       function defaultHead() {
@@ -345,9 +512,9 @@
 
       var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
       /*
-returns a function for filtering head child elements
-which shouldn't be duplicated, like <title/>
-Also adds support for deduplicated `key` properties
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
 */
 
       function unique() {
@@ -472,8 +639,8 @@ Also adds support for deduplicated `key` properties
 
       function Head(_ref) {
         var children = _ref.children;
-        var ampState = (0, _react.useContext)(_ampContext.AmpStateContext);
-        var headManager = (0, _react.useContext)(
+        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
+        var headManager = (0, _react).useContext(
           _headManagerContext.HeadManagerContext
         );
         return /*#__PURE__*/ _react["default"].createElement(
@@ -481,7 +648,7 @@ Also adds support for deduplicated `key` properties
           {
             reduceComponentsToState: reduceComponents,
             headManager: headManager,
-            inAmpMode: (0, _amp.isInAmpMode)(ampState)
+            inAmpMode: (0, _amp).isInAmpMode(ampState)
           },
           children
         );
@@ -493,7 +660,7 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ 3244: /***/ function(
+    /***/ 4766: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -543,25 +710,26 @@ Also adds support for deduplicated `key` properties
         }
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.default = void 0;
 
       var _react = __webpack_require__(7294);
 
       var isServer = false;
 
-      var _default = /*#__PURE__*/ (function(_react$Component) {
-        _inherits(_default, _react$Component);
+      var _class = /*#__PURE__*/ (function(_react$Component) {
+        _inherits(_class, _react$Component);
 
-        var _super = _createSuper(_default);
+        var _super = _createSuper(_class);
 
-        function _default(props) {
+        function _class(props) {
           var _this;
 
-          _classCallCheck(this, _default);
+          _classCallCheck(this, _class);
 
           _this = _super.call(this, props);
-          _this._hasHeadManager = void 0;
 
           _this.emitChange = function() {
             if (_this._hasHeadManager) {
@@ -588,7 +756,7 @@ Also adds support for deduplicated `key` properties
           return _this;
         }
 
-        _createClass(_default, [
+        _createClass(_class, [
           {
             key: "componentDidMount",
             value: function componentDidMount() {
@@ -623,222 +791,10 @@ Also adds support for deduplicated `key` properties
           }
         ]);
 
-        return _default;
+        return _class;
       })(_react.Component);
 
-      exports.default = _default;
-
-      /***/
-    },
-
-    /***/ 3359: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      var _classCallCheck = __webpack_require__(4575);
-
-      var _createClass = __webpack_require__(3913);
-
-      var _inherits = __webpack_require__(2205);
-
-      var _possibleConstructorReturn = __webpack_require__(8585);
-
-      var _getPrototypeOf = __webpack_require__(9754);
-
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
-          }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
-        }
-      }
-
-      var _interopRequireDefault = __webpack_require__(5318);
-
-      exports.__esModule = true;
-      exports.default = void 0;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      var _head = _interopRequireDefault(__webpack_require__(2775));
-
-      var statusCodes = {
-        400: "Bad Request",
-        404: "This page could not be found",
-        405: "Method Not Allowed",
-        500: "Internal Server Error"
-      };
-
-      function _getInitialProps(_ref) {
-        var res = _ref.res,
-          err = _ref.err;
-        var statusCode =
-          res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
-        return {
-          statusCode: statusCode
-        };
-      }
-      /**
-       * `Error` component used for handling errors.
-       */
-
-      var Error = /*#__PURE__*/ (function(_react$default$Compon) {
-        _inherits(Error, _react$default$Compon);
-
-        var _super = _createSuper(Error);
-
-        function Error() {
-          _classCallCheck(this, Error);
-
-          return _super.apply(this, arguments);
-        }
-
-        _createClass(Error, [
-          {
-            key: "render",
-            value: function render() {
-              var statusCode = this.props.statusCode;
-              var title =
-                this.props.title ||
-                statusCodes[statusCode] ||
-                "An unexpected error has occurred";
-              return /*#__PURE__*/ _react["default"].createElement(
-                "div",
-                {
-                  style: styles.error
-                },
-                /*#__PURE__*/ _react["default"].createElement(
-                  _head["default"],
-                  null,
-                  /*#__PURE__*/ _react["default"].createElement(
-                    "title",
-                    null,
-                    statusCode
-                      ? "".concat(statusCode, ": ").concat(title)
-                      : "Application error: a client-side exception has occurred"
-                  )
-                ),
-                /*#__PURE__*/ _react["default"].createElement(
-                  "div",
-                  null,
-                  /*#__PURE__*/ _react["default"].createElement("style", {
-                    dangerouslySetInnerHTML: {
-                      __html: "body { margin: 0 }"
-                    }
-                  }),
-                  statusCode
-                    ? /*#__PURE__*/ _react["default"].createElement(
-                        "h1",
-                        {
-                          style: styles.h1
-                        },
-                        statusCode
-                      )
-                    : null,
-                  /*#__PURE__*/ _react["default"].createElement(
-                    "div",
-                    {
-                      style: styles.desc
-                    },
-                    /*#__PURE__*/ _react["default"].createElement(
-                      "h2",
-                      {
-                        style: styles.h2
-                      },
-                      this.props.title || statusCode
-                        ? title
-                        : /*#__PURE__*/ _react["default"].createElement(
-                            _react["default"].Fragment,
-                            null,
-                            "Application error: a client-side exception has occurred (",
-                            /*#__PURE__*/ _react["default"].createElement(
-                              "a",
-                              {
-                                href:
-                                  "https://nextjs.org/docs/messages/client-side-exception-occurred"
-                              },
-                              "developer guidance"
-                            ),
-                            ")"
-                          ),
-                      "."
-                    )
-                  )
-                )
-              );
-            }
-          }
-        ]);
-
-        return Error;
-      })(_react["default"].Component);
-
-      exports.default = Error;
-      Error.displayName = "ErrorPage";
-      Error.getInitialProps = _getInitialProps;
-      Error.origGetInitialProps = _getInitialProps;
-      var styles = {
-        error: {
-          color: "#000",
-          background: "#fff",
-          fontFamily:
-            '-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',
-          height: "100vh",
-          textAlign: "center",
-          display: "flex",
-          flexDirection: "column",
-          alignItems: "center",
-          justifyContent: "center"
-        },
-        desc: {
-          display: "inline-block",
-          textAlign: "left",
-          lineHeight: "49px",
-          height: "49px",
-          verticalAlign: "middle"
-        },
-        h1: {
-          display: "inline-block",
-          borderRight: "1px solid rgba(0, 0, 0,.3)",
-          margin: 0,
-          marginRight: "20px",
-          padding: "10px 23px 10px 0",
-          fontSize: "24px",
-          fontWeight: 500,
-          verticalAlign: "top"
-        },
-        h2: {
-          fontSize: "14px",
-          fontWeight: "normal",
-          lineHeight: "inherit",
-          margin: 0,
-          padding: 0
-        }
-      };
+      exports.default = _class;
 
       /***/
     },
Diff for amp-HASH.js
@@ -6,19 +6,21 @@
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6393);
+      module.exports = __webpack_require__(3237);
 
       /***/
     },
 
-    /***/ 3398: /***/ function(
+    /***/ 6046: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.AmpStateContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
@@ -31,7 +33,7 @@
             };
       }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+      var AmpStateContext = _react["default"].createContext({});
 
       exports.AmpStateContext = AmpStateContext;
 
@@ -41,20 +43,22 @@
       /***/
     },
 
-    /***/ 6393: /***/ function(
+    /***/ 3237: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.isInAmpMode = isInAmpMode;
       exports.useAmp = useAmp;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _ampContext = __webpack_require__(3398);
+      var _ampContext = __webpack_require__(6046);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
Diff for css-HASH.js
@@ -12,7 +12,7 @@
         5893
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
-        9662
+        5964
       );
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
         _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -47,7 +47,7 @@
       /***/
     },
 
-    /***/ 9662: /***/ function(module) {
+    /***/ 5964: /***/ function(module) {
       // extracted by mini-css-extract-plugin
       module.exports = { helloWorld: "css_helloWorld__2Fhmt" };
Diff for dynamic-HASH.js
@@ -1,28 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [739],
   {
-    /***/ 9713: /***/ function(module) {
-      function _defineProperty(obj, key, value) {
-        if (key in obj) {
-          Object.defineProperty(obj, key, {
-            value: value,
-            enumerable: true,
-            configurable: true,
-            writable: true
-          });
-        } else {
-          obj[key] = value;
-        }
-
-        return obj;
-      }
-
-      module.exports = _defineProperty;
-
-      /***/
-    },
-
-    /***/ 7999: /***/ function(
+    /***/ 8771: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -70,13 +49,15 @@
         return target;
       }
 
-      __webpack_unused_export__ = true;
+      __webpack_unused_export__ = {
+        value: true
+      };
       __webpack_unused_export__ = noSSR;
       exports.default = dynamic;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _loadable = _interopRequireDefault(__webpack_require__(7653));
+      var _loadable = _interopRequireDefault(__webpack_require__(4860));
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -107,7 +88,7 @@
             timedOut: false
           });
         };
-      } // function dynamic<P = {}, O extends DynamicOptions>(options: O):
+      }
 
       function dynamic(dynamicOptions, options) {
         var loadableFn = _loadable["default"];
@@ -170,14 +151,16 @@
       /***/
     },
 
-    /***/ 519: /***/ function(
+    /***/ 1083: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.LoadableContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
@@ -190,7 +173,7 @@
             };
       }
 
-      var LoadableContext = /*#__PURE__*/ _react["default"].createContext(null);
+      var LoadableContext = _react["default"].createContext(null);
 
       exports.LoadableContext = LoadableContext;
 
@@ -200,7 +183,7 @@
       /***/
     },
 
-    /***/ 7653: /***/ function(
+    /***/ 4860: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -325,14 +308,16 @@
         return arr2;
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.default = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
       var _useSubscription = __webpack_require__(7161);
 
-      var _loadableContext = __webpack_require__(519);
+      var _loadableContext = __webpack_require__(1083);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -341,28 +326,6 @@
               default: obj
             };
       }
-      /**
-@copyright (c) 2017-present James Kyle <[email protected]>
-MIT License
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
-*/
-      // https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js
-      // Modified to be compatible with webpack 4 / Next.js
 
       var ALL_INITIALIZERS = [];
       var READY_INITIALIZERS = [];
@@ -424,7 +387,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         if (false) {
         } // Client only
 
-        if (!initialized && true && typeof opts.webpack === "function") {
+        if (
+          !initialized &&
+          true &&
+          typeof opts.webpack === "function" &&
+          "function" === "function"
+        ) {
           var moduleIds = opts.webpack();
           READY_INITIALIZERS.push(function(ids) {
             var _iterator = _createForOfIteratorHelper(moduleIds),
@@ -453,7 +421,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
             _loadableContext.LoadableContext
           );
 
-          var state = (0, _useSubscription.useSubscription)(subscription);
+          var state = (0, _useSubscription).useSubscription(subscription);
 
           _react["default"].useImperativeHandle(
             ref,
@@ -474,18 +442,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
           return _react["default"].useMemo(
             function() {
               if (state.loading || state.error) {
-                return /*#__PURE__*/ _react["default"].createElement(
-                  opts.loading,
-                  {
-                    isLoading: state.loading,
-                    pastDelay: state.pastDelay,
-                    timedOut: state.timedOut,
-                    error: state.error,
-                    retry: subscription.retry
-                  }
-                );
+                return _react["default"].createElement(opts.loading, {
+                  isLoading: state.loading,
+                  pastDelay: state.pastDelay,
+                  timedOut: state.timedOut,
+                  error: state.error,
+                  retry: subscription.retry
+                });
               } else if (state.loaded) {
-                return /*#__PURE__*/ _react["default"].createElement(
+                return _react["default"].createElement(
                   resolve(state.loaded),
                   props
                 );
@@ -502,7 +467,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         };
 
         LoadableComponent.displayName = "LoadableComponent";
-        return /*#__PURE__*/ _react["default"].forwardRef(LoadableComponent);
+        return _react["default"].forwardRef(LoadableComponent);
       }
 
       var LoadableSubscription = /*#__PURE__*/ (function() {
@@ -537,27 +502,27 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
                 timedOut: false
               };
               var res = this._res,
-                opts = this._opts;
+                opts1 = this._opts;
 
               if (res.loading) {
-                if (typeof opts.delay === "number") {
-                  if (opts.delay === 0) {
+                if (typeof opts1.delay === "number") {
+                  if (opts1.delay === 0) {
                     this._state.pastDelay = true;
                   } else {
                     this._delay = setTimeout(function() {
                       _this._update({
                         pastDelay: true
                       });
-                    }, opts.delay);
+                    }, opts1.delay);
                   }
                 }
 
-                if (typeof opts.timeout === "number") {
+                if (typeof opts1.timeout === "number") {
                   this._timeout = setTimeout(function() {
                     _this._update({
                       timedOut: true
                     });
-                  }, opts.timeout);
+                  }, opts1.timeout);
                 }
               }
 
@@ -625,8 +590,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         return LoadableSubscription;
       })();
 
-      function Loadable(opts) {
-        return createLoadableComponent(load, opts);
+      function Loadable(opts1) {
+        return createLoadableComponent(load, opts1);
       }
 
       function flushInitializers(initializers, ids) {
@@ -758,7 +723,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(7999);
+      module.exports = __webpack_require__(8771);
 
       /***/
     }
Diff for head-HASH.js
@@ -17,27 +17,6 @@
       /***/
     },
 
-    /***/ 9713: /***/ function(module) {
-      function _defineProperty(obj, key, value) {
-        if (key in obj) {
-          Object.defineProperty(obj, key, {
-            value: value,
-            enumerable: true,
-            configurable: true,
-            writable: true
-          });
-        } else {
-          obj[key] = value;
-        }
-
-        return obj;
-      }
-
-      module.exports = _defineProperty;
-
-      /***/
-    },
-
     /***/ 6860: /***/ function(module) {
       function _iterableToArray(iter) {
         if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
@@ -88,14 +67,16 @@
       /***/
     },
 
-    /***/ 3398: /***/ function(
+    /***/ 6046: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.AmpStateContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
@@ -108,7 +89,7 @@
             };
       }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+      var AmpStateContext = _react["default"].createContext({});
 
       exports.AmpStateContext = AmpStateContext;
 
@@ -118,20 +99,22 @@
       /***/
     },
 
-    /***/ 6393: /***/ function(
+    /***/ 3237: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.isInAmpMode = isInAmpMode;
       exports.useAmp = useAmp;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _ampContext = __webpack_require__(3398);
+      var _ampContext = __webpack_require__(6046);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -166,7 +149,7 @@
       /***/
     },
 
-    /***/ 2775: /***/ function(
+    /***/ 639: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -213,19 +196,21 @@
         return target;
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.defaultHead = defaultHead;
       exports.default = void 0;
 
       var _react = _interopRequireWildcard(__webpack_require__(7294));
 
-      var _sideEffect = _interopRequireDefault(__webpack_require__(3244));
+      var _sideEffect = _interopRequireDefault(__webpack_require__(4766));
 
-      var _ampContext = __webpack_require__(3398);
+      var _ampContext = __webpack_require__(6046);
 
-      var _headManagerContext = __webpack_require__(1165);
+      var _headManagerContext = __webpack_require__(699);
 
-      var _amp = __webpack_require__(6393);
+      var _amp = __webpack_require__(3237);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -235,62 +220,32 @@
             };
       }
 
-      function _getRequireWildcardCache() {
-        if (typeof WeakMap !== "function") return null;
-        var cache = new WeakMap();
-
-        _getRequireWildcardCache = function _getRequireWildcardCache() {
-          return cache;
-        };
-
-        return cache;
-      }
-
       function _interopRequireWildcard(obj) {
         if (obj && obj.__esModule) {
           return obj;
-        }
-
-        if (
-          obj === null ||
-          (typeof obj !== "object" && typeof obj !== "function")
-        ) {
-          return {
-            default: obj
-          };
-        }
-
-        var cache = _getRequireWildcardCache();
-
-        if (cache && cache.has(obj)) {
-          return cache.get(obj);
-        }
-
-        var newObj = {};
-        var hasPropertyDescriptor =
-          Object.defineProperty && Object.getOwnPropertyDescriptor;
-
-        for (var key in obj) {
-          if (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];
+        } else {
+          var newObj = {};
+
+          if (obj != null) {
+            for (var key in obj) {
+              if (Object.prototype.hasOwnProperty.call(obj, key)) {
+                var desc =
+                  Object.defineProperty && Object.getOwnPropertyDescriptor
+                    ? Object.getOwnPropertyDescriptor(obj, key)
+                    : {};
+
+                if (desc.get || desc.set) {
+                  Object.defineProperty(newObj, key, desc);
+                } else {
+                  newObj[key] = obj[key];
+                }
+              }
             }
           }
-        }
 
-        newObj["default"] = obj;
-
-        if (cache) {
-          cache.set(obj, newObj);
+          newObj["default"] = obj;
+          return newObj;
         }
-
-        return newObj;
       }
 
       function defaultHead() {
@@ -345,9 +300,9 @@
 
       var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
       /*
-returns a function for filtering head child elements
-which shouldn't be duplicated, like <title/>
-Also adds support for deduplicated `key` properties
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
 */
 
       function unique() {
@@ -472,8 +427,8 @@ Also adds support for deduplicated `key` properties
 
       function Head(_ref) {
         var children = _ref.children;
-        var ampState = (0, _react.useContext)(_ampContext.AmpStateContext);
-        var headManager = (0, _react.useContext)(
+        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
+        var headManager = (0, _react).useContext(
           _headManagerContext.HeadManagerContext
         );
         return /*#__PURE__*/ _react["default"].createElement(
@@ -481,7 +436,7 @@ Also adds support for deduplicated `key` properties
           {
             reduceComponentsToState: reduceComponents,
             headManager: headManager,
-            inAmpMode: (0, _amp.isInAmpMode)(ampState)
+            inAmpMode: (0, _amp).isInAmpMode(ampState)
           },
           children
         );
@@ -493,7 +448,7 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ 3244: /***/ function(
+    /***/ 4766: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -543,25 +498,26 @@ Also adds support for deduplicated `key` properties
         }
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.default = void 0;
 
       var _react = __webpack_require__(7294);
 
       var isServer = false;
 
-      var _default = /*#__PURE__*/ (function(_react$Component) {
-        _inherits(_default, _react$Component);
+      var _class = /*#__PURE__*/ (function(_react$Component) {
+        _inherits(_class, _react$Component);
 
-        var _super = _createSuper(_default);
+        var _super = _createSuper(_class);
 
-        function _default(props) {
+        function _class(props) {
           var _this;
 
-          _classCallCheck(this, _default);
+          _classCallCheck(this, _class);
 
           _this = _super.call(this, props);
-          _this._hasHeadManager = void 0;
 
           _this.emitChange = function() {
             if (_this._hasHeadManager) {
@@ -588,7 +544,7 @@ Also adds support for deduplicated `key` properties
           return _this;
         }
 
-        _createClass(_default, [
+        _createClass(_class, [
           {
             key: "componentDidMount",
             value: function componentDidMount() {
@@ -623,10 +579,10 @@ Also adds support for deduplicated `key` properties
           }
         ]);
 
-        return _default;
+        return _class;
       })(_react.Component);
 
-      exports.default = _default;
+      exports.default = _class;
 
       /***/
     },
@@ -703,7 +659,7 @@ Also adds support for deduplicated `key` properties
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(2775);
+      module.exports = __webpack_require__(639);
 
       /***/
     }
Diff for image-HASH.js
@@ -17,27 +17,6 @@
       /***/
     },
 
-    /***/ 9713: /***/ function(module) {
-      function _defineProperty(obj, key, value) {
-        if (key in obj) {
-          Object.defineProperty(obj, key, {
-            value: value,
-            enumerable: true,
-            configurable: true,
-            writable: true
-          });
-        } else {
-          obj[key] = value;
-        }
-
-        return obj;
-      }
-
-      module.exports = _defineProperty;
-
-      /***/
-    },
-
     /***/ 6860: /***/ function(module) {
       function _iterableToArray(iter) {
         if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
@@ -98,38 +77,77 @@
 
       var _slicedToArray = __webpack_require__(3038);
 
+      var _objectWithoutProperties = __webpack_require__(6479);
+
+      var _defineProperty = __webpack_require__(9713);
+
       var _toConsumableArray = __webpack_require__(319);
 
+      function ownKeys(object, enumerableOnly) {
+        var keys = Object.keys(object);
+        if (Object.getOwnPropertySymbols) {
+          var symbols = Object.getOwnPropertySymbols(object);
+          if (enumerableOnly)
+            symbols = symbols.filter(function(sym) {
+              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+            });
+          keys.push.apply(keys, symbols);
+        }
+        return keys;
+      }
+
+      function _objectSpread(target) {
+        for (var i = 1; i < arguments.length; i++) {
+          var source = arguments[i] != null ? arguments[i] : {};
+          if (i % 2) {
+            ownKeys(Object(source), true).forEach(function(key) {
+              _defineProperty(target, key, source[key]);
+            });
+          } else if (Object.getOwnPropertyDescriptors) {
+            Object.defineProperties(
+              target,
+              Object.getOwnPropertyDescriptors(source)
+            );
+          } else {
+            ownKeys(Object(source)).forEach(function(key) {
+              Object.defineProperty(
+                target,
+                key,
+                Object.getOwnPropertyDescriptor(source, key)
+              );
+            });
+          }
+        }
+        return target;
+      }
+
       var _interopRequireDefault = __webpack_require__(5318);
 
       __webpack_unused_export__ = true;
       exports.default = Image;
 
-      var _objectWithoutPropertiesLoose2 = _interopRequireDefault(
-        __webpack_require__(7316)
-      );
-
-      var _extends2 = _interopRequireDefault(__webpack_require__(7154));
-
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _head = _interopRequireDefault(__webpack_require__(2775));
+      var _head = _interopRequireDefault(__webpack_require__(639));
 
-      var _toBase = __webpack_require__(8814);
+      var _toBase = __webpack_require__(8997);
 
-      var _imageConfig = __webpack_require__(5655);
+      var _imageConfig = __webpack_require__(5809);
 
       var _useIntersection = __webpack_require__(7426);
 
+      var loadedImageURLs = new Set();
+
       if (false) {
       }
 
       var VALID_LOADING_VALUES = ["lazy", "eager", undefined];
       var loaders = new Map([
+        ["default", defaultLoader],
         ["imgix", imgixLoader],
         ["cloudinary", cloudinaryLoader],
         ["akamai", akamaiLoader],
-        ["default", defaultLoader]
+        ["custom", customLoader]
       ]);
       var VALID_LAYOUT_VALUES = [
         "fill",
@@ -154,18 +172,18 @@
         );
       }
 
-      var _ref2 =
+      var _ref =
           {
             deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
             imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
             path: "/_next/image",
             loader: "default"
           } || _imageConfig.imageConfigDefault,
-        configDeviceSizes = _ref2.deviceSizes,
-        configImageSizes = _ref2.imageSizes,
-        configLoader = _ref2.loader,
-        configPath = _ref2.path,
-        configDomains = _ref2.domains; // sort smallest to largest
+        configDeviceSizes = _ref.deviceSizes,
+        configImageSizes = _ref.imageSizes,
+        configLoader = _ref.loader,
+        configPath = _ref.path,
+        configDomains = _ref.domains; // sort smallest to largest
 
       var allSizes = [].concat(
         _toConsumableArray(configDeviceSizes),
@@ -244,14 +262,14 @@
         };
       }
 
-      function generateImgAttrs(_ref3) {
-        var src = _ref3.src,
-          unoptimized = _ref3.unoptimized,
-          layout = _ref3.layout,
-          width = _ref3.width,
-          quality = _ref3.quality,
-          sizes = _ref3.sizes,
-          loader = _ref3.loader;
+      function generateImgAttrs(_ref2) {
+        var src = _ref2.src,
+          unoptimized = _ref2.unoptimized,
+          layout = _ref2.layout,
+          width = _ref2.width,
+          quality = _ref2.quality,
+          sizes = _ref2.sizes,
+          loader = _ref2.loader;
 
         if (unoptimized) {
           return {
@@ -314,7 +332,7 @@
 
         if (load) {
           return load(
-            (0, _extends2["default"])(
+            _objectSpread(
               {
                 root: configPath
               },
@@ -331,66 +349,84 @@
       } // See https://stackoverflow.com/q/39777833/266535 for why we use this ref
       // handler instead of the img's onLoad attribute.
 
-      function removePlaceholder(img, placeholder) {
-        if (placeholder === "blur" && img) {
-          var handleLoad = function handleLoad() {
-            if (!img.src.startsWith("data:")) {
-              var p = "decode" in img ? img.decode() : Promise.resolve();
-              p["catch"](function() {}).then(function() {
+      function handleLoading(img, src, placeholder, onLoadingComplete) {
+        if (!img) {
+          return;
+        }
+
+        var handleLoad = function handleLoad() {
+          if (!img.src.startsWith("data:")) {
+            var p = "decode" in img ? img.decode() : Promise.resolve();
+            p["catch"](function() {}).then(function() {
+              if (placeholder === "blur") {
                 img.style.filter = "none";
                 img.style.backgroundSize = "none";
                 img.style.backgroundImage = "none";
-              });
-            }
-          };
+              }
 
-          if (img.complete) {
-            // If the real image fails to load, this will still remove the placeholder.
-            // This is the desired behavior for now, and will be revisited when error
-            // handling is worked on for the image component itself.
-            handleLoad();
-          } else {
-            img.onload = handleLoad;
+              loadedImageURLs.add(src);
+
+              if (onLoadingComplete) {
+                onLoadingComplete();
+              }
+            });
           }
+        };
+
+        if (img.complete) {
+          // If the real image fails to load, this will still remove the placeholder.
+          // This is the desired behavior for now, and will be revisited when error
+          // handling is worked on for the image component itself.
+          handleLoad();
+        } else {
+          img.onload = handleLoad;
         }
       }
 
-      function Image(_ref) {
-        var src = _ref.src,
-          sizes = _ref.sizes,
-          _ref$unoptimized = _ref.unoptimized,
-          unoptimized = _ref$unoptimized === void 0 ? false : _ref$unoptimized,
-          _ref$priority = _ref.priority,
-          priority = _ref$priority === void 0 ? false : _ref$priority,
-          loading = _ref.loading,
-          className = _ref.className,
-          quality = _ref.quality,
-          width = _ref.width,
-          height = _ref.height,
-          objectFit = _ref.objectFit,
-          objectPosition = _ref.objectPosition,
-          _ref$loader = _ref.loader,
-          loader = _ref$loader === void 0 ? defaultImageLoader : _ref$loader,
-          _ref$placeholder = _ref.placeholder,
+      function Image(_ref3) {
+        var src = _ref3.src,
+          sizes = _ref3.sizes,
+          _ref3$unoptimized = _ref3.unoptimized,
+          unoptimized =
+            _ref3$unoptimized === void 0 ? false : _ref3$unoptimized,
+          _ref3$priority = _ref3.priority,
+          priority = _ref3$priority === void 0 ? false : _ref3$priority,
+          loading = _ref3.loading,
+          _ref3$lazyBoundary = _ref3.lazyBoundary,
+          lazyBoundary =
+            _ref3$lazyBoundary === void 0 ? "200px" : _ref3$lazyBoundary,
+          className = _ref3.className,
+          quality = _ref3.quality,
+          width = _ref3.width,
+          height = _ref3.height,
+          objectFit = _ref3.objectFit,
+          objectPosition = _ref3.objectPosition,
+          onLoadingComplete = _ref3.onLoadingComplete,
+          _ref3$loader = _ref3.loader,
+          loader = _ref3$loader === void 0 ? defaultImageLoader : _ref3$loader,
+          _ref3$placeholder = _ref3.placeholder,
           placeholder =
-            _ref$placeholder === void 0 ? "empty" : _ref$placeholder,
-          blurDataURL = _ref.blurDataURL,
-          all = (0, _objectWithoutPropertiesLoose2["default"])(_ref, [
+            _ref3$placeholder === void 0 ? "empty" : _ref3$placeholder,
+          blurDataURL = _ref3.blurDataURL,
+          all = _objectWithoutProperties(_ref3, [
             "src",
             "sizes",
             "unoptimized",
             "priority",
             "loading",
+            "lazyBoundary",
             "className",
             "quality",
             "width",
             "height",
             "objectFit",
             "objectPosition",
+            "onLoadingComplete",
             "loader",
             "placeholder",
             "blurDataURL"
           ]);
+
         var rest = all;
         var layout = sizes ? "responsive" : "intrinsic";
 
@@ -435,22 +471,25 @@
         var widthInt = getInt(width);
         var heightInt = getInt(height);
         var qualityInt = getInt(quality);
-
-        if (false) {
-          var VALID_BLUR_EXT;
-        }
-
         var isLazy =
           !priority && (loading === "lazy" || typeof loading === "undefined");
 
-        if (src && src.startsWith("data:")) {
+        if (src.startsWith("data:")) {
           // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
           unoptimized = true;
           isLazy = false;
         }
 
+        if (true && loadedImageURLs.has(src)) {
+          isLazy = false;
+        }
+
+        if (false) {
+          var rand, VALID_BLUR_EXT;
+        }
+
         var _ref4 = (0, _useIntersection.useIntersection)({
-            rootMargin: "200px",
+            rootMargin: lazyBoundary,
             disabled: !isLazy
           }),
           _ref5 = _slicedToArray(_ref4, 2),
@@ -461,40 +500,52 @@
         var wrapperStyle;
         var sizerStyle;
         var sizerSvg;
-        var imgStyle = (0, _extends2["default"])(
-          {
+        var imgStyle = {
+          position: "absolute",
+          top: 0,
+          left: 0,
+          bottom: 0,
+          right: 0,
+          boxSizing: "border-box",
+          padding: 0,
+          border: "none",
+          margin: "auto",
+          display: "block",
+          width: 0,
+          height: 0,
+          minWidth: "100%",
+          maxWidth: "100%",
+          minHeight: "100%",
+          maxHeight: "100%",
+          objectFit: objectFit,
+          objectPosition: objectPosition
+        };
+        var blurStyle =
+          placeholder === "blur"
+            ? {
+                filter: "blur(20px)",
+                backgroundSize: objectFit || "cover",
+                backgroundImage: 'url("'.concat(blurDataURL, '")'),
+                backgroundPosition: objectPosition || "0% 0%"
+              }
+            : {};
+
+        if (layout === "fill") {
+          // <Image src="i.png" layout="fill" />
+          wrapperStyle = {
+            display: "block",
+            overflow: "hidden",
             position: "absolute",
             top: 0,
             left: 0,
             bottom: 0,
             right: 0,
             boxSizing: "border-box",
-            padding: 0,
-            border: "none",
-            margin: "auto",
-            display: "block",
-            width: 0,
-            height: 0,
-            minWidth: "100%",
-            maxWidth: "100%",
-            minHeight: "100%",
-            maxHeight: "100%",
-            objectFit: objectFit,
-            objectPosition: objectPosition
-          },
-          placeholder === "blur"
-            ? {
-                filter: "blur(20px)",
-                backgroundSize: "cover",
-                backgroundImage: 'url("'.concat(blurDataURL, '")')
-              }
-            : undefined
-        );
-
-        if (
+            margin: 0
+          };
+        } else if (
           typeof widthInt !== "undefined" &&
-          typeof heightInt !== "undefined" &&
-          layout !== "fill"
+          typeof heightInt !== "undefined"
         ) {
           // <Image src="i.png" width="100" height="100" />
           var quotient = heightInt / widthInt;
@@ -548,23 +599,6 @@
               height: heightInt
             };
           }
-        } else if (
-          typeof widthInt === "undefined" &&
-          typeof heightInt === "undefined" &&
-          layout === "fill"
-        ) {
-          // <Image src="i.png" layout="fill" />
-          wrapperStyle = {
-            display: "block",
-            overflow: "hidden",
-            position: "absolute",
-            top: 0,
-            left: 0,
-            bottom: 0,
-            right: 0,
-            boxSizing: "border-box",
-            margin: 0
-          };
         } else {
           // <Image src="i.png" />
           if (false) {
@@ -590,6 +624,7 @@
           });
         }
 
+        var srcString = src;
         return /*#__PURE__*/ _react["default"].createElement(
           "div",
           {
@@ -651,11 +686,11 @@
             Object.assign({}, rest, imgAttributes, {
               decoding: "async",
               className: className,
-              ref: function ref(element) {
-                setRef(element);
-                removePlaceholder(element, placeholder);
+              ref: function ref(img) {
+                setRef(img);
+                handleLoading(img, srcString, placeholder, onLoadingComplete);
               },
-              style: imgStyle
+              style: _objectSpread(_objectSpread({}, imgStyle), blurStyle)
             })
           ),
           priority
@@ -683,7 +718,7 @@
               )
             : null
         );
-      } //BUILT IN LOADERS
+      }
 
       function normalizeSrc(src) {
         return src[0] === "/" ? src.slice(1) : src;
@@ -694,22 +729,18 @@
           src = _ref6.src,
           width = _ref6.width,
           quality = _ref6.quality;
-        // Demo: https://static.imgix.net/daisy.png?format=auto&fit=max&w=300
-        var params = ["auto=format", "fit=max", "w=" + width];
-        var paramsString = "";
+        // Demo: https://static.imgix.net/daisy.png?auto=format&fit=max&w=300
+        var url = new URL("".concat(root).concat(normalizeSrc(src)));
+        var params = url.searchParams;
+        params.set("auto", params.get("auto") || "format");
+        params.set("fit", params.get("fit") || "max");
+        params.set("w", params.get("w") || width.toString());
 
         if (quality) {
-          params.push("q=" + quality);
+          params.set("q", quality.toString());
         }
 
-        if (params.length) {
-          paramsString = "?" + params.join("&");
-        }
-
-        return ""
-          .concat(root)
-          .concat(normalizeSrc(src))
-          .concat(paramsString);
+        return url.href;
       }
 
       function akamaiLoader(_ref7) {
@@ -741,11 +772,19 @@
           .concat(normalizeSrc(src));
       }
 
-      function defaultLoader(_ref9) {
-        var root = _ref9.root,
-          src = _ref9.src,
-          width = _ref9.width,
-          quality = _ref9.quality;
+      function customLoader(_ref9) {
+        var src = _ref9.src;
+        throw new Error(
+          'Image with src "'.concat(src, '" is missing "loader" prop.') +
+            "\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader"
+        );
+      }
+
+      function defaultLoader(_ref10) {
+        var root = _ref10.root,
+          src = _ref10.src,
+          width = _ref10.width,
+          quality = _ref10.quality;
 
         if (false) {
           var parsedSrc, missingValues;
@@ -888,14 +927,16 @@
       /***/
     },
 
-    /***/ 3398: /***/ function(
+    /***/ 6046: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.AmpStateContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
@@ -908,7 +949,7 @@
             };
       }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+      var AmpStateContext = _react["default"].createContext({});
 
       exports.AmpStateContext = AmpStateContext;
 
@@ -918,20 +959,22 @@
       /***/
     },
 
-    /***/ 6393: /***/ function(
+    /***/ 3237: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
     ) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.isInAmpMode = isInAmpMode;
       exports.useAmp = useAmp;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _ampContext = __webpack_require__(3398);
+      var _ampContext = __webpack_require__(6046);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -966,7 +1009,7 @@
       /***/
     },
 
-    /***/ 2775: /***/ function(
+    /***/ 639: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1013,19 +1056,21 @@
         return target;
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.defaultHead = defaultHead;
       exports.default = void 0;
 
       var _react = _interopRequireWildcard(__webpack_require__(7294));
 
-      var _sideEffect = _interopRequireDefault(__webpack_require__(3244));
+      var _sideEffect = _interopRequireDefault(__webpack_require__(4766));
 
-      var _ampContext = __webpack_require__(3398);
+      var _ampContext = __webpack_require__(6046);
 
-      var _headManagerContext = __webpack_require__(1165);
+      var _headManagerContext = __webpack_require__(699);
 
-      var _amp = __webpack_require__(6393);
+      var _amp = __webpack_require__(3237);
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -1035,62 +1080,32 @@
             };
       }
 
-      function _getRequireWildcardCache() {
-        if (typeof WeakMap !== "function") return null;
-        var cache = new WeakMap();
-
-        _getRequireWildcardCache = function _getRequireWildcardCache() {
-          return cache;
-        };
-
-        return cache;
-      }
-
       function _interopRequireWildcard(obj) {
         if (obj && obj.__esModule) {
           return obj;
-        }
-
-        if (
-          obj === null ||
-          (typeof obj !== "object" && typeof obj !== "function")
-        ) {
-          return {
-            default: obj
-          };
-        }
-
-        var cache = _getRequireWildcardCache();
-
-        if (cache && cache.has(obj)) {
-          return cache.get(obj);
-        }
-
-        var newObj = {};
-        var hasPropertyDescriptor =
-          Object.defineProperty && Object.getOwnPropertyDescriptor;
-
-        for (var key in obj) {
-          if (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];
+        } else {
+          var newObj = {};
+
+          if (obj != null) {
+            for (var key in obj) {
+              if (Object.prototype.hasOwnProperty.call(obj, key)) {
+                var desc =
+                  Object.defineProperty && Object.getOwnPropertyDescriptor
+                    ? Object.getOwnPropertyDescriptor(obj, key)
+                    : {};
+
+                if (desc.get || desc.set) {
+                  Object.defineProperty(newObj, key, desc);
+                } else {
+                  newObj[key] = obj[key];
+                }
+              }
             }
           }
-        }
-
-        newObj["default"] = obj;
 
-        if (cache) {
-          cache.set(obj, newObj);
+          newObj["default"] = obj;
+          return newObj;
         }
-
-        return newObj;
       }
 
       function defaultHead() {
@@ -1145,9 +1160,9 @@
 
       var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
       /*
-returns a function for filtering head child elements
-which shouldn't be duplicated, like <title/>
-Also adds support for deduplicated `key` properties
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
 */
 
       function unique() {
@@ -1272,8 +1287,8 @@ Also adds support for deduplicated `key` properties
 
       function Head(_ref) {
         var children = _ref.children;
-        var ampState = (0, _react.useContext)(_ampContext.AmpStateContext);
-        var headManager = (0, _react.useContext)(
+        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
+        var headManager = (0, _react).useContext(
           _headManagerContext.HeadManagerContext
         );
         return /*#__PURE__*/ _react["default"].createElement(
@@ -1281,7 +1296,7 @@ Also adds support for deduplicated `key` properties
           {
             reduceComponentsToState: reduceComponents,
             headManager: headManager,
-            inAmpMode: (0, _amp.isInAmpMode)(ampState)
+            inAmpMode: (0, _amp).isInAmpMode(ampState)
           },
           children
         );
@@ -1293,7 +1308,7 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ 3244: /***/ function(
+    /***/ 4766: /***/ function(
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -1343,25 +1358,26 @@ Also adds support for deduplicated `key` properties
         }
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.default = void 0;
 
       var _react = __webpack_require__(7294);
 
       var isServer = false;
 
-      var _default = /*#__PURE__*/ (function(_react$Component) {
-        _inherits(_default, _react$Component);
+      var _class = /*#__PURE__*/ (function(_react$Component) {
+        _inherits(_class, _react$Component);
 
-        var _super = _createSuper(_default);
+        var _super = _createSuper(_class);
 
-        function _default(props) {
+        function _class(props) {
           var _this;
 
-          _classCallCheck(this, _default);
+          _classCallCheck(this, _class);
 
           _this = _super.call(this, props);
-          _this._hasHeadManager = void 0;
 
           _this.emitChange = function() {
             if (_this._hasHeadManager) {
@@ -1388,7 +1404,7 @@ Also adds support for deduplicated `key` properties
           return _this;
         }
 
-        _createClass(_default, [
+        _createClass(_class, [
           {
             key: "componentDidMount",
             value: function componentDidMount() {
@@ -1423,22 +1439,21 @@ Also adds support for deduplicated `key` properties
           }
         ]);
 
-        return _default;
+        return _class;
       })(_react.Component);
 
-      exports.default = _default;
+      exports.default = _class;
 
       /***/
     },
 
-    /***/ 8814: /***/ function(__unused_webpack_module, exports) {
+    /***/ 8997: /***/ function(__unused_webpack_module, exports) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.toBase64 = toBase64;
-      /**
-       * Isomorphic base64 that works on the server and client
-       */
 
       function toBase64(str) {
         if (false) {
@@ -1450,7 +1465,7 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ 9376: /***/ function(
+    /***/ 9900: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1510,18 +1525,27 @@ Also adds support for deduplicated `key` properties
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(9376);
+          return __webpack_require__(9900);
         }
       ]);
 
       /***/
     },
 
-    /***/ 5655: /***/ function(__unused_webpack_module, exports) {
+    /***/ 5809: /***/ function(__unused_webpack_module, exports) {
       "use strict";
-      exports.__esModule = true;
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.imageConfigDefault = exports.VALID_LOADERS = void 0;
-      const VALID_LOADERS = ["default", "imgix", "cloudinary", "akamai"];
+      const VALID_LOADERS = [
+        "default",
+        "imgix",
+        "cloudinary",
+        "akamai",
+        "custom"
+      ];
       exports.VALID_LOADERS = VALID_LOADERS;
       const imageConfigDefault = {
         deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -1529,9 +1553,11 @@ Also adds support for deduplicated `key` properties
         path: "/_next/image",
         loader: "default",
         domains: [],
-        disableStaticImages: false
+        disableStaticImages: false,
+        minimumCacheTTL: 60
       };
       exports.imageConfigDefault = imageConfigDefault;
+
       //# sourceMappingURL=image-config.js.map
 
       /***/
Diff for link-HASH.js
@@ -11,14 +11,14 @@
 
       var _slicedToArray = __webpack_require__(3038);
 
-      var _interopRequireWildcard = __webpack_require__(862);
+      var _interopRequireDefault = __webpack_require__(5318);
 
       __webpack_unused_export__ = true;
       exports.default = void 0;
 
-      var _react = _interopRequireWildcard(__webpack_require__(7294));
+      var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      var _router = __webpack_require__(9414);
+      var _router = __webpack_require__(1063);
 
       var _router2 = __webpack_require__(4651);
 
@@ -140,7 +140,7 @@
 
         if (false) {
         } else {
-          child = _react.Children.only(children);
+          child = _react["default"].Children.only(children);
         }
 
         var childRef = child && typeof child === "object" && child.ref;
@@ -166,7 +166,7 @@
           [childRef, setIntersectionRef]
         );
 
-        (0, _react.useEffect)(
+        _react["default"].useEffect(
           function() {
             var shouldPrefetch =
               isVisible && p && (0, _router.isLocalURL)(href);
@@ -183,6 +183,7 @@
           },
           [as, href, isVisible, locale, p, router]
         );
+
         var childProps = {
           ref: setRef,
           onClick: function onClick(e) {
Diff for 359.HASH.js
@@ -0,0 +1,802 @@
+(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
+  [359],
+  {
+    /***/ 3646: /***/ function(
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) {
+      var arrayLikeToArray = __webpack_require__(7228);
+
+      function _arrayWithoutHoles(arr) {
+        if (Array.isArray(arr)) return arrayLikeToArray(arr);
+      }
+
+      module.exports = _arrayWithoutHoles;
+
+      /***/
+    },
+
+    /***/ 6860: /***/ function(module) {
+      function _iterableToArray(iter) {
+        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
+          return Array.from(iter);
+      }
+
+      module.exports = _iterableToArray;
+
+      /***/
+    },
+
+    /***/ 8206: /***/ function(module) {
+      function _nonIterableSpread() {
+        throw new TypeError(
+          "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
+        );
+      }
+
+      module.exports = _nonIterableSpread;
+
+      /***/
+    },
+
+    /***/ 319: /***/ function(
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) {
+      var arrayWithoutHoles = __webpack_require__(3646);
+
+      var iterableToArray = __webpack_require__(6860);
+
+      var unsupportedIterableToArray = __webpack_require__(379);
+
+      var nonIterableSpread = __webpack_require__(8206);
+
+      function _toConsumableArray(arr) {
+        return (
+          arrayWithoutHoles(arr) ||
+          iterableToArray(arr) ||
+          unsupportedIterableToArray(arr) ||
+          nonIterableSpread()
+        );
+      }
+
+      module.exports = _toConsumableArray;
+
+      /***/
+    },
+
+    /***/ 3359: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      var _classCallCheck = __webpack_require__(4575);
+
+      var _createClass = __webpack_require__(3913);
+
+      var _inherits = __webpack_require__(2205);
+
+      var _possibleConstructorReturn = __webpack_require__(8585);
+
+      var _getPrototypeOf = __webpack_require__(9754);
+
+      function _createSuper(Derived) {
+        var hasNativeReflectConstruct = _isNativeReflectConstruct();
+        return function _createSuperInternal() {
+          var Super = _getPrototypeOf(Derived),
+            result;
+          if (hasNativeReflectConstruct) {
+            var NewTarget = _getPrototypeOf(this).constructor;
+            result = Reflect.construct(Super, arguments, NewTarget);
+          } else {
+            result = Super.apply(this, arguments);
+          }
+          return _possibleConstructorReturn(this, result);
+        };
+      }
+
+      function _isNativeReflectConstruct() {
+        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+        if (Reflect.construct.sham) return false;
+        if (typeof Proxy === "function") return true;
+        try {
+          Date.prototype.toString.call(
+            Reflect.construct(Date, [], function() {})
+          );
+          return true;
+        } catch (e) {
+          return false;
+        }
+      }
+
+      var _interopRequireDefault = __webpack_require__(5318);
+
+      exports.__esModule = true;
+      exports.default = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__(7294));
+
+      var _head = _interopRequireDefault(__webpack_require__(639));
+
+      var statusCodes = {
+        400: "Bad Request",
+        404: "This page could not be found",
+        405: "Method Not Allowed",
+        500: "Internal Server Error"
+      };
+
+      function _getInitialProps(_ref) {
+        var res = _ref.res,
+          err = _ref.err;
+        var statusCode =
+          res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
+        return {
+          statusCode: statusCode
+        };
+      }
+      /**
+       * `Error` component used for handling errors.
+       */
+
+      var Error = /*#__PURE__*/ (function(_react$default$Compon) {
+        _inherits(Error, _react$default$Compon);
+
+        var _super = _createSuper(Error);
+
+        function Error() {
+          _classCallCheck(this, Error);
+
+          return _super.apply(this, arguments);
+        }
+
+        _createClass(Error, [
+          {
+            key: "render",
+            value: function render() {
+              var statusCode = this.props.statusCode;
+              var title =
+                this.props.title ||
+                statusCodes[statusCode] ||
+                "An unexpected error has occurred";
+              return /*#__PURE__*/ _react["default"].createElement(
+                "div",
+                {
+                  style: styles.error
+                },
+                /*#__PURE__*/ _react["default"].createElement(
+                  _head["default"],
+                  null,
+                  /*#__PURE__*/ _react["default"].createElement(
+                    "title",
+                    null,
+                    statusCode
+                      ? "".concat(statusCode, ": ").concat(title)
+                      : "Application error: a client-side exception has occurred"
+                  )
+                ),
+                /*#__PURE__*/ _react["default"].createElement(
+                  "div",
+                  null,
+                  /*#__PURE__*/ _react["default"].createElement("style", {
+                    dangerouslySetInnerHTML: {
+                      __html: "body { margin: 0 }"
+                    }
+                  }),
+                  statusCode
+                    ? /*#__PURE__*/ _react["default"].createElement(
+                        "h1",
+                        {
+                          style: styles.h1
+                        },
+                        statusCode
+                      )
+                    : null,
+                  /*#__PURE__*/ _react["default"].createElement(
+                    "div",
+                    {
+                      style: styles.desc
+                    },
+                    /*#__PURE__*/ _react["default"].createElement(
+                      "h2",
+                      {
+                        style: styles.h2
+                      },
+                      this.props.title || statusCode
+                        ? title
+                        : /*#__PURE__*/ _react["default"].createElement(
+                            _react["default"].Fragment,
+                            null,
+                            "Application error: a client-side exception has occurred (",
+                            /*#__PURE__*/ _react["default"].createElement(
+                              "a",
+                              {
+                                href:
+                                  "https://nextjs.org/docs/messages/client-side-exception-occurred"
+                              },
+                              "developer guidance"
+                            ),
+                            ")"
+                          ),
+                      "."
+                    )
+                  )
+                )
+              );
+            }
+          }
+        ]);
+
+        return Error;
+      })(_react["default"].Component);
+
+      exports.default = Error;
+      Error.displayName = "ErrorPage";
+      Error.getInitialProps = _getInitialProps;
+      Error.origGetInitialProps = _getInitialProps;
+      var styles = {
+        error: {
+          color: "#000",
+          background: "#fff",
+          fontFamily:
+            '-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',
+          height: "100vh",
+          textAlign: "center",
+          display: "flex",
+          flexDirection: "column",
+          alignItems: "center",
+          justifyContent: "center"
+        },
+        desc: {
+          display: "inline-block",
+          textAlign: "left",
+          lineHeight: "49px",
+          height: "49px",
+          verticalAlign: "middle"
+        },
+        h1: {
+          display: "inline-block",
+          borderRight: "1px solid rgba(0, 0, 0,.3)",
+          margin: 0,
+          marginRight: "20px",
+          padding: "10px 23px 10px 0",
+          fontSize: "24px",
+          fontWeight: 500,
+          verticalAlign: "top"
+        },
+        h2: {
+          fontSize: "14px",
+          fontWeight: "normal",
+          lineHeight: "inherit",
+          margin: 0,
+          padding: 0
+        }
+      };
+
+      /***/
+    },
+
+    /***/ 6046: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.AmpStateContext = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__(7294));
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      var AmpStateContext = _react["default"].createContext({});
+
+      exports.AmpStateContext = AmpStateContext;
+
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 3237: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.isInAmpMode = isInAmpMode;
+      exports.useAmp = useAmp;
+
+      var _react = _interopRequireDefault(__webpack_require__(7294));
+
+      var _ampContext = __webpack_require__(6046);
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      function isInAmpMode() {
+        var _ref =
+            arguments.length > 0 && arguments[0] !== undefined
+              ? arguments[0]
+              : {},
+          _ref$ampFirst = _ref.ampFirst,
+          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
+          _ref$hybrid = _ref.hybrid,
+          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
+          _ref$hasQuery = _ref.hasQuery,
+          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
+
+        return ampFirst || (hybrid && hasQuery);
+      }
+
+      function useAmp() {
+        // Don't assign the context value to a variable to save bytes
+        return isInAmpMode(
+          _react["default"].useContext(_ampContext.AmpStateContext)
+        );
+      }
+
+      /***/
+    },
+
+    /***/ 639: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      var _defineProperty = __webpack_require__(9713);
+
+      function ownKeys(object, enumerableOnly) {
+        var keys = Object.keys(object);
+        if (Object.getOwnPropertySymbols) {
+          var symbols = Object.getOwnPropertySymbols(object);
+          if (enumerableOnly)
+            symbols = symbols.filter(function(sym) {
+              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+            });
+          keys.push.apply(keys, symbols);
+        }
+        return keys;
+      }
+
+      function _objectSpread(target) {
+        for (var i = 1; i < arguments.length; i++) {
+          var source = arguments[i] != null ? arguments[i] : {};
+          if (i % 2) {
+            ownKeys(Object(source), true).forEach(function(key) {
+              _defineProperty(target, key, source[key]);
+            });
+          } else if (Object.getOwnPropertyDescriptors) {
+            Object.defineProperties(
+              target,
+              Object.getOwnPropertyDescriptors(source)
+            );
+          } else {
+            ownKeys(Object(source)).forEach(function(key) {
+              Object.defineProperty(
+                target,
+                key,
+                Object.getOwnPropertyDescriptor(source, key)
+              );
+            });
+          }
+        }
+        return target;
+      }
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.defaultHead = defaultHead;
+      exports.default = void 0;
+
+      var _react = _interopRequireWildcard(__webpack_require__(7294));
+
+      var _sideEffect = _interopRequireDefault(__webpack_require__(4766));
+
+      var _ampContext = __webpack_require__(6046);
+
+      var _headManagerContext = __webpack_require__(699);
+
+      var _amp = __webpack_require__(3237);
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      function _interopRequireWildcard(obj) {
+        if (obj && obj.__esModule) {
+          return obj;
+        } else {
+          var newObj = {};
+
+          if (obj != null) {
+            for (var key in obj) {
+              if (Object.prototype.hasOwnProperty.call(obj, key)) {
+                var desc =
+                  Object.defineProperty && Object.getOwnPropertyDescriptor
+                    ? Object.getOwnPropertyDescriptor(obj, key)
+                    : {};
+
+                if (desc.get || desc.set) {
+                  Object.defineProperty(newObj, key, desc);
+                } else {
+                  newObj[key] = obj[key];
+                }
+              }
+            }
+          }
+
+          newObj["default"] = obj;
+          return newObj;
+        }
+      }
+
+      function defaultHead() {
+        var inAmpMode =
+          arguments.length > 0 && arguments[0] !== undefined
+            ? arguments[0]
+            : false;
+        var head = [
+          /*#__PURE__*/ _react["default"].createElement("meta", {
+            charSet: "utf-8"
+          })
+        ];
+
+        if (!inAmpMode) {
+          head.push(
+            /*#__PURE__*/ _react["default"].createElement("meta", {
+              name: "viewport",
+              content: "width=device-width"
+            })
+          );
+        }
+
+        return head;
+      }
+
+      function onlyReactElement(list, child) {
+        // React children can be "string" or "number" in this case we ignore them for backwards compat
+        if (typeof child === "string" || typeof child === "number") {
+          return list;
+        } // Adds support for React.Fragment
+
+        if (child.type === _react["default"].Fragment) {
+          return list.concat(
+            _react["default"].Children.toArray(child.props.children).reduce(
+              function(fragmentList, fragmentChild) {
+                if (
+                  typeof fragmentChild === "string" ||
+                  typeof fragmentChild === "number"
+                ) {
+                  return fragmentList;
+                }
+
+                return fragmentList.concat(fragmentChild);
+              },
+              []
+            )
+          );
+        }
+
+        return list.concat(child);
+      }
+
+      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
+      /*
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
+*/
+
+      function unique() {
+        var keys = new Set();
+        var tags = new Set();
+        var metaTypes = new Set();
+        var metaCategories = {};
+        return function(h) {
+          var isUnique = true;
+          var hasKey = false;
+
+          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
+            hasKey = true;
+            var key = h.key.slice(h.key.indexOf("$") + 1);
+
+            if (keys.has(key)) {
+              isUnique = false;
+            } else {
+              keys.add(key);
+            }
+          } // eslint-disable-next-line default-case
+
+          switch (h.type) {
+            case "title":
+            case "base":
+              if (tags.has(h.type)) {
+                isUnique = false;
+              } else {
+                tags.add(h.type);
+              }
+
+              break;
+
+            case "meta":
+              for (var i = 0, len = METATYPES.length; i < len; i++) {
+                var metatype = METATYPES[i];
+                if (!h.props.hasOwnProperty(metatype)) continue;
+
+                if (metatype === "charSet") {
+                  if (metaTypes.has(metatype)) {
+                    isUnique = false;
+                  } else {
+                    metaTypes.add(metatype);
+                  }
+                } else {
+                  var category = h.props[metatype];
+                  var categories = metaCategories[metatype] || new Set();
+
+                  if (
+                    (metatype !== "name" || !hasKey) &&
+                    categories.has(category)
+                  ) {
+                    isUnique = false;
+                  } else {
+                    categories.add(category);
+                    metaCategories[metatype] = categories;
+                  }
+                }
+              }
+
+              break;
+          }
+
+          return isUnique;
+        };
+      }
+      /**
+       *
+       * @param headElements List of multiple <Head> instances
+       */
+
+      function reduceComponents(headElements, props) {
+        return headElements
+          .reduce(function(list, headElement) {
+            var headElementChildren = _react["default"].Children.toArray(
+              headElement.props.children
+            );
+
+            return list.concat(headElementChildren);
+          }, [])
+          .reduce(onlyReactElement, [])
+          .reverse()
+          .concat(defaultHead(props.inAmpMode))
+          .filter(unique())
+          .reverse()
+          .map(function(c, i) {
+            var key = c.key || i;
+
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                [
+                  "https://fonts.googleapis.com/css",
+                  "https://use.typekit.net/"
+                ].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
+
+                newProps["data-optimized-fonts"] = true;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
+            }
+
+            return /*#__PURE__*/ _react["default"].cloneElement(c, {
+              key: key
+            });
+          });
+      }
+      /**
+       * This component injects elements to `<head>` of your page.
+       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
+       */
+
+      function Head(_ref) {
+        var children = _ref.children;
+        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
+        var headManager = (0, _react).useContext(
+          _headManagerContext.HeadManagerContext
+        );
+        return /*#__PURE__*/ _react["default"].createElement(
+          _sideEffect["default"],
+          {
+            reduceComponentsToState: reduceComponents,
+            headManager: headManager,
+            inAmpMode: (0, _amp).isInAmpMode(ampState)
+          },
+          children
+        );
+      }
+
+      var _default = Head;
+      exports.default = _default;
+
+      /***/
+    },
+
+    /***/ 4766: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      var _toConsumableArray = __webpack_require__(319);
+
+      var _classCallCheck = __webpack_require__(4575);
+
+      var _createClass = __webpack_require__(3913);
+
+      var _assertThisInitialized = __webpack_require__(1506);
+
+      var _inherits = __webpack_require__(2205);
+
+      var _possibleConstructorReturn = __webpack_require__(8585);
+
+      var _getPrototypeOf = __webpack_require__(9754);
+
+      function _createSuper(Derived) {
+        var hasNativeReflectConstruct = _isNativeReflectConstruct();
+        return function _createSuperInternal() {
+          var Super = _getPrototypeOf(Derived),
+            result;
+          if (hasNativeReflectConstruct) {
+            var NewTarget = _getPrototypeOf(this).constructor;
+            result = Reflect.construct(Super, arguments, NewTarget);
+          } else {
+            result = Super.apply(this, arguments);
+          }
+          return _possibleConstructorReturn(this, result);
+        };
+      }
+
+      function _isNativeReflectConstruct() {
+        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+        if (Reflect.construct.sham) return false;
+        if (typeof Proxy === "function") return true;
+        try {
+          Date.prototype.toString.call(
+            Reflect.construct(Date, [], function() {})
+          );
+          return true;
+        } catch (e) {
+          return false;
+        }
+      }
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.default = void 0;
+
+      var _react = __webpack_require__(7294);
+
+      var isServer = false;
+
+      var _class = /*#__PURE__*/ (function(_react$Component) {
+        _inherits(_class, _react$Component);
+
+        var _super = _createSuper(_class);
+
+        function _class(props) {
+          var _this;
+
+          _classCallCheck(this, _class);
+
+          _this = _super.call(this, props);
+
+          _this.emitChange = function() {
+            if (_this._hasHeadManager) {
+              _this.props.headManager.updateHead(
+                _this.props.reduceComponentsToState(
+                  _toConsumableArray(_this.props.headManager.mountedInstances),
+                  _this.props
+                )
+              );
+            }
+          };
+
+          _this._hasHeadManager =
+            _this.props.headManager && _this.props.headManager.mountedInstances;
+
+          if (isServer && _this._hasHeadManager) {
+            _this.props.headManager.mountedInstances.add(
+              _assertThisInitialized(_this)
+            );
+
+            _this.emitChange();
+          }
+
+          return _this;
+        }
+
+        _createClass(_class, [
+          {
+            key: "componentDidMount",
+            value: function componentDidMount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances.add(this);
+              }
+
+              this.emitChange();
+            }
+          },
+          {
+            key: "componentDidUpdate",
+            value: function componentDidUpdate() {
+              this.emitChange();
+            }
+          },
+          {
+            key: "componentWillUnmount",
+            value: function componentWillUnmount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances["delete"](this);
+              }
+
+              this.emitChange();
+            }
+          },
+          {
+            key: "render",
+            value: function render() {
+              return null;
+            }
+          }
+        ]);
+
+        return _class;
+      })(_react.Component);
+
+      exports.default = _class;
+
+      /***/
+    }
+  }
+]);
Diff for main-HASH.js

Diff too large to display

Diff for webpack-HASH.js
@@ -158,7 +158,13 @@
     /******/ __webpack_require__.u = function(chunkId) {
       /******/ // return url for filenames based on template
       /******/ return (
-        "static/chunks/" + chunkId + "." + "a978574eef356190245c" + ".js"
+        "static/chunks/" +
+        chunkId +
+        "." +
+        { "359": "a0174d903d9b7e0f2bb9", "745": "a978574eef356190245c" }[
+          chunkId
+        ] +
+        ".js"
       );
       /******/
     };
Diff for index.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-78af6fe89161f65f5762.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-4609ee7a400147b48b49.js"
+      src="/_next/static/chunks/webpack-7c4a163d75005e08c1a4.js"
       defer=""
     ></script>
     <script
@@ -19,11 +19,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-cbc31ab18a54636b7b58.js"
+      src="/_next/static/chunks/main-e4421970a73f785d63eb.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-28769756f9a0c21b149b.js"
+      src="/_next/static/chunks/pages/_app-f52f3534def65eae2253.js"
       defer=""
     ></script>
     <script
Diff for link.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-78af6fe89161f65f5762.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-4609ee7a400147b48b49.js"
+      src="/_next/static/chunks/webpack-7c4a163d75005e08c1a4.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-cbc31ab18a54636b7b58.js"
+      src="/_next/static/chunks/main-e4421970a73f785d63eb.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-28769756f9a0c21b149b.js"
+      src="/_next/static/chunks/pages/_app-f52f3534def65eae2253.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-ac66030080ff38e6bc7c.js"
+      src="/_next/static/chunks/pages/link-36845453cb7a35e1a731.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-78af6fe89161f65f5762.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-4609ee7a400147b48b49.js"
+      src="/_next/static/chunks/webpack-7c4a163d75005e08c1a4.js"
       defer=""
     ></script>
     <script
@@ -19,11 +19,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-cbc31ab18a54636b7b58.js"
+      src="/_next/static/chunks/main-e4421970a73f785d63eb.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-28769756f9a0c21b149b.js"
+      src="/_next/static/chunks/pages/_app-f52f3534def65eae2253.js"
       defer=""
     ></script>
     <script

Webpack 4 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
buildDuration 9.2s 9.1s -87ms
buildDurationCached 3.6s 3.5s -145ms
nodeModulesSize 50.1 MB 50.3 MB ⚠️ +253 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
/ failed reqs 0 0
/ total time (seconds) 1.813 1.951 ⚠️ +0.14
/ avg req/sec 1379.27 1281.53 ⚠️ -97.74
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.061 1.102 ⚠️ +0.04
/error-in-render avg req/sec 2356.82 2268.02 ⚠️ -88.8
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
17.HASH.js gzip 185 B 2.98 kB ⚠️ +2.79 kB
677f882d2ed8..HASH.js gzip 13.4 kB 13.8 kB ⚠️ +392 B
framework.HASH.js gzip 41.9 kB 41.9 kB
main-HASH.js gzip 7.99 kB 8.4 kB ⚠️ +414 B
webpack-HASH.js gzip 1.19 kB 1.22 kB ⚠️ +24 B
18.HASH.js gzip N/A 185 B N/A
Overall change 64.7 kB 68.5 kB ⚠️ +3.81 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages Overall decrease ✓
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
_app-HASH.js gzip 1.07 kB 791 B -283 B
_error-HASH.js gzip 3.84 kB 3.76 kB -86 B
amp-HASH.js gzip 536 B 552 B ⚠️ +16 B
css-HASH.js gzip 333 B 333 B
dynamic-HASH.js gzip 2.7 kB 2.71 kB ⚠️ +9 B
head-HASH.js gzip 3.06 kB 2.97 kB -93 B
hooks-HASH.js gzip 911 B 911 B
index-HASH.js gzip 231 B 231 B
link-HASH.js gzip 1.64 kB 1.64 kB ⚠️ +3 B
routerDirect..HASH.js gzip 298 B 298 B
script-HASH.js gzip 2.85 kB 3.02 kB ⚠️ +170 B
withRouter-HASH.js gzip 294 B 294 B
e025d2764813..52f.css gzip 125 B 125 B
Overall change 17.9 kB 17.6 kB -264 B
Client Build Manifests
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
_buildManifest.js gzip 500 B 500 B
Overall change 500 B 500 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary v11.0.1 vercel/next.js refs/heads/canary Change
index.html gzip 576 B 575 B -1 B
link.html gzip 589 B 589 B
withRouter.html gzip 569 B 569 B
Overall change 1.73 kB 1.73 kB -1 B

Diffs

Diff for _buildManifest.js
@@ -2,26 +2,26 @@ self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-b8f868a0fff56c820ae0.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-a195cc394aa8ad172947.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-94116ff805b068830c6c.js"
   ],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-27f75ad11120c5cdedd1.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-4855291bfb1c5a551232.js"],
   "/css": [
     "static\u002Fcss\u002Fe025d27648136bbd252f.css",
-    "static\u002Fchunks\u002Fpages\u002Fcss-18fb61bd16b12bc4dfa3.js"
+    "static\u002Fchunks\u002Fpages\u002Fcss-0fc40b547d044664b6a0.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-e7202acb7722f3138e9b.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-2ac0a9f4a51553cdf0f4.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-9c4aae8087b1a612b0d3.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-abecfbe6a75f8cfa32c0.js"],
   "/hooks": [
-    "static\u002Fchunks\u002Fpages\u002Fhooks-284ecaf0acb7a5bddb74.js"
+    "static\u002Fchunks\u002Fpages\u002Fhooks-f3d7a61f2e1bf307c8a9.js"
   ],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-fe018dc44ef86a82884b.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-43805a0b8c5617265e7d.js"],
   "/routerDirect": [
     "static\u002Fchunks\u002Fpages\u002FrouterDirect-6969fe7df87ea0f513b7.js"
   ],
   "/script": [
-    "static\u002Fchunks\u002Fpages\u002Fscript-ab6bc3dcf508cae0add7.js"
+    "static\u002Fchunks\u002Fpages\u002Fscript-bfb4064637339cad55b9.js"
   ],
   "/withRouter": [
     "static\u002Fchunks\u002Fpages\u002FwithRouter-d324ed0c40e148c2c3fc.js"
Diff for _app-HASH.js
@@ -8,31 +8,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
-    /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
-      var setPrototypeOf = __webpack_require__("SksO");
-
-      function _inherits(subClass, superClass) {
-        if (typeof superClass !== "function" && superClass !== null) {
-          throw new TypeError(
-            "Super expression must either be null or a function"
-          );
-        }
-
-        subClass.prototype = Object.create(superClass && superClass.prototype, {
-          constructor: {
-            value: subClass,
-            writable: true,
-            configurable: true
-          }
-        });
-        if (superClass) setPrototypeOf(subClass, superClass);
-      }
-
-      module.exports = _inherits;
-
-      /***/
-    },
-
     /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
@@ -86,7 +61,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _utils = __webpack_require__("g/15");
+      var _utils = __webpack_require__("52bY");
 
       exports.AppInitialProps = _utils.AppInitialProps;
       exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
@@ -164,58 +139,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
-    /***/ Nsbk: /***/ function(module, exports) {
-      function _getPrototypeOf(o) {
-        module.exports = _getPrototypeOf = Object.setPrototypeOf
-          ? Object.getPrototypeOf
-          : function _getPrototypeOf(o) {
-              return o.__proto__ || Object.getPrototypeOf(o);
-            };
-        return _getPrototypeOf(o);
-      }
-
-      module.exports = _getPrototypeOf;
-
-      /***/
-    },
-
-    /***/ PJYZ: /***/ function(module, exports) {
-      function _assertThisInitialized(self) {
-        if (self === void 0) {
-          throw new ReferenceError(
-            "this hasn't been initialised - super() hasn't been called"
-          );
-        }
-
-        return self;
-      }
-
-      module.exports = _assertThisInitialized;
-
-      /***/
-    },
-
-    /***/ a1gu: /***/ function(module, exports, __webpack_require__) {
-      var _typeof = __webpack_require__("cDf5");
-
-      var assertThisInitialized = __webpack_require__("PJYZ");
-
-      function _possibleConstructorReturn(self, call) {
-        if (
-          call &&
-          (_typeof(call) === "object" || typeof call === "function")
-        ) {
-          return call;
-        }
-
-        return assertThisInitialized(self);
-      }
-
-      module.exports = _possibleConstructorReturn;
-
-      /***/
-    },
-
     /***/ "e9+W": /***/ function(module, exports, __webpack_require__) {
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_app",
Diff for _error-HASH.js
@@ -1,50 +1,6 @@
 _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
-  [5],
+  [5, 17],
   {
-    /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      exports.__esModule = true;
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
-
-      var _ampContext = __webpack_require__("lwAK");
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
-
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
-
-      /***/
-    },
-
     /***/ "/a9y": /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
@@ -94,7 +50,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _head = _interopRequireDefault(__webpack_require__("8Kt/"));
+      var _head = _interopRequireDefault(__webpack_require__("mLbm"));
 
       var statusCodes = {
         400: "Bad Request",
@@ -289,325 +245,137 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
-    /***/ "8Kt/": /***/ function(module, exports, __webpack_require__) {
+    /***/ BdAR: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      var _defineProperty = __webpack_require__("lSNA");
-
-      function ownKeys(object, enumerableOnly) {
-        var keys = Object.keys(object);
-        if (Object.getOwnPropertySymbols) {
-          var symbols = Object.getOwnPropertySymbols(object);
-          if (enumerableOnly)
-            symbols = symbols.filter(function(sym) {
-              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-            });
-          keys.push.apply(keys, symbols);
-        }
-        return keys;
-      }
-
-      function _objectSpread(target) {
-        for (var i = 1; i < arguments.length; i++) {
-          var source = arguments[i] != null ? arguments[i] : {};
-          if (i % 2) {
-            ownKeys(Object(source), true).forEach(function(key) {
-              _defineProperty(target, key, source[key]);
-            });
-          } else if (Object.getOwnPropertyDescriptors) {
-            Object.defineProperties(
-              target,
-              Object.getOwnPropertyDescriptors(source)
-            );
-          } else {
-            ownKeys(Object(source)).forEach(function(key) {
-              Object.defineProperty(
-                target,
-                key,
-                Object.getOwnPropertyDescriptor(source, key)
-              );
-            });
-          }
-        }
-        return target;
-      }
-
-      exports.__esModule = true;
-      exports.defaultHead = defaultHead;
-      exports["default"] = void 0;
-
-      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
-
-      var _sideEffect = _interopRequireDefault(__webpack_require__("Xuae"));
-
-      var _ampContext = __webpack_require__("lwAK");
-
-      var _headManagerContext = __webpack_require__("FYa8");
-
-      var _amp = __webpack_require__("/0+H");
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function _getRequireWildcardCache() {
-        if (typeof WeakMap !== "function") return null;
-        var cache = new WeakMap();
-
-        _getRequireWildcardCache = function _getRequireWildcardCache() {
-          return cache;
-        };
-
-        return cache;
-      }
+      var _toConsumableArray = __webpack_require__("RIqP");
 
-      function _interopRequireWildcard(obj) {
-        if (obj && obj.__esModule) {
-          return obj;
-        }
+      var _classCallCheck = __webpack_require__("lwsE");
 
-        if (
-          obj === null ||
-          (typeof obj !== "object" && typeof obj !== "function")
-        ) {
-          return {
-            default: obj
-          };
-        }
+      var _createClass = __webpack_require__("W8MJ");
 
-        var cache = _getRequireWildcardCache();
+      var _assertThisInitialized = __webpack_require__("PJYZ");
 
-        if (cache && cache.has(obj)) {
-          return cache.get(obj);
-        }
+      var _inherits = __webpack_require__("7W2i");
 
-        var newObj = {};
-        var hasPropertyDescriptor =
-          Object.defineProperty && Object.getOwnPropertyDescriptor;
+      var _possibleConstructorReturn = __webpack_require__("a1gu");
 
-        for (var key in obj) {
-          if (Object.prototype.hasOwnProperty.call(obj, key)) {
-            var desc = hasPropertyDescriptor
-              ? Object.getOwnPropertyDescriptor(obj, key)
-              : null;
+      var _getPrototypeOf = __webpack_require__("Nsbk");
 
-            if (desc && (desc.get || desc.set)) {
-              Object.defineProperty(newObj, key, desc);
-            } else {
-              newObj[key] = obj[key];
-            }
+      function _createSuper(Derived) {
+        var hasNativeReflectConstruct = _isNativeReflectConstruct();
+        return function _createSuperInternal() {
+          var Super = _getPrototypeOf(Derived),
+            result;
+          if (hasNativeReflectConstruct) {
+            var NewTarget = _getPrototypeOf(this).constructor;
+            result = Reflect.construct(Super, arguments, NewTarget);
+          } else {
+            result = Super.apply(this, arguments);
           }
-        }
-
-        newObj["default"] = obj;
-
-        if (cache) {
-          cache.set(obj, newObj);
-        }
-
-        return newObj;
-      }
-
-      function defaultHead() {
-        var inAmpMode =
-          arguments.length > 0 && arguments[0] !== undefined
-            ? arguments[0]
-            : false;
-        var head = [
-          /*#__PURE__*/ _react["default"].createElement("meta", {
-            charSet: "utf-8"
-          })
-        ];
-
-        if (!inAmpMode) {
-          head.push(
-            /*#__PURE__*/ _react["default"].createElement("meta", {
-              name: "viewport",
-              content: "width=device-width"
-            })
-          );
-        }
-
-        return head;
+          return _possibleConstructorReturn(this, result);
+        };
       }
 
-      function onlyReactElement(list, child) {
-        // React children can be "string" or "number" in this case we ignore them for backwards compat
-        if (typeof child === "string" || typeof child === "number") {
-          return list;
-        } // Adds support for React.Fragment
-
-        if (child.type === _react["default"].Fragment) {
-          return list.concat(
-            _react["default"].Children.toArray(child.props.children).reduce(
-              function(fragmentList, fragmentChild) {
-                if (
-                  typeof fragmentChild === "string" ||
-                  typeof fragmentChild === "number"
-                ) {
-                  return fragmentList;
-                }
-
-                return fragmentList.concat(fragmentChild);
-              },
-              []
-            )
+      function _isNativeReflectConstruct() {
+        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+        if (Reflect.construct.sham) return false;
+        if (typeof Proxy === "function") return true;
+        try {
+          Date.prototype.toString.call(
+            Reflect.construct(Date, [], function() {})
           );
+          return true;
+        } catch (e) {
+          return false;
         }
-
-        return list.concat(child);
       }
 
-      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
-      /*
-returns a function for filtering head child elements
-which shouldn't be duplicated, like <title/>
-Also adds support for deduplicated `key` properties
-*/
-
-      function unique() {
-        var keys = new Set();
-        var tags = new Set();
-        var metaTypes = new Set();
-        var metaCategories = {};
-        return function(h) {
-          var isUnique = true;
-          var hasKey = false;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports["default"] = void 0;
 
-          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
-            hasKey = true;
-            var key = h.key.slice(h.key.indexOf("$") + 1);
+      var _react = __webpack_require__("q1tI");
 
-            if (keys.has(key)) {
-              isUnique = false;
-            } else {
-              keys.add(key);
-            }
-          } // eslint-disable-next-line default-case
+      var isServer = false;
 
-          switch (h.type) {
-            case "title":
-            case "base":
-              if (tags.has(h.type)) {
-                isUnique = false;
-              } else {
-                tags.add(h.type);
-              }
+      var _class = /*#__PURE__*/ (function(_react$Component) {
+        _inherits(_class, _react$Component);
 
-              break;
+        var _super = _createSuper(_class);
 
-            case "meta":
-              for (var i = 0, len = METATYPES.length; i < len; i++) {
-                var metatype = METATYPES[i];
-                if (!h.props.hasOwnProperty(metatype)) continue;
+        function _class(props) {
+          var _this;
 
-                if (metatype === "charSet") {
-                  if (metaTypes.has(metatype)) {
-                    isUnique = false;
-                  } else {
-                    metaTypes.add(metatype);
-                  }
-                } else {
-                  var category = h.props[metatype];
-                  var categories = metaCategories[metatype] || new Set();
+          _classCallCheck(this, _class);
 
-                  if (
-                    (metatype !== "name" || !hasKey) &&
-                    categories.has(category)
-                  ) {
-                    isUnique = false;
-                  } else {
-                    categories.add(category);
-                    metaCategories[metatype] = categories;
-                  }
-                }
-              }
+          _this = _super.call(this, props);
 
-              break;
-          }
+          _this.emitChange = function() {
+            if (_this._hasHeadManager) {
+              _this.props.headManager.updateHead(
+                _this.props.reduceComponentsToState(
+                  _toConsumableArray(_this.props.headManager.mountedInstances),
+                  _this.props
+                )
+              );
+            }
+          };
 
-          return isUnique;
-        };
-      }
-      /**
-       *
-       * @param headElements List of multiple <Head> instances
-       */
+          _this._hasHeadManager =
+            _this.props.headManager && _this.props.headManager.mountedInstances;
 
-      function reduceComponents(headElements, props) {
-        return headElements
-          .reduce(function(list, headElement) {
-            var headElementChildren = _react["default"].Children.toArray(
-              headElement.props.children
+          if (isServer && _this._hasHeadManager) {
+            _this.props.headManager.mountedInstances.add(
+              _assertThisInitialized(_this)
             );
 
-            return list.concat(headElementChildren);
-          }, [])
-          .reduce(onlyReactElement, [])
-          .reverse()
-          .concat(defaultHead(props.inAmpMode))
-          .filter(unique())
-          .reverse()
-          .map(function(c, i) {
-            var key = c.key || i;
-
-            if (true && !props.inAmpMode) {
-              if (
-                c.type === "link" &&
-                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
-                [
-                  "https://fonts.googleapis.com/css",
-                  "https://use.typekit.net/"
-                ].some(function(url) {
-                  return c.props["href"].startsWith(url);
-                })
-              ) {
-                var newProps = _objectSpread({}, c.props || {});
+            _this.emitChange();
+          }
 
-                newProps["data-href"] = newProps["href"];
-                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
+          return _this;
+        }
 
-                newProps["data-optimized-fonts"] = true;
-                return /*#__PURE__*/ _react["default"].cloneElement(
-                  c,
-                  newProps
-                );
+        _createClass(_class, [
+          {
+            key: "componentDidMount",
+            value: function componentDidMount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances.add(this);
               }
-            }
-
-            return /*#__PURE__*/ _react["default"].cloneElement(c, {
-              key: key
-            });
-          });
-      }
-      /**
-       * This component injects elements to `<head>` of your page.
-       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
-       */
 
-      function Head(_ref) {
-        var children = _ref.children;
-        var ampState = (0, _react.useContext)(_ampContext.AmpStateContext);
-        var headManager = (0, _react.useContext)(
-          _headManagerContext.HeadManagerContext
-        );
-        return /*#__PURE__*/ _react["default"].createElement(
-          _sideEffect["default"],
+              this.emitChange();
+            }
+          },
           {
-            reduceComponentsToState: reduceComponents,
-            headManager: headManager,
-            inAmpMode: (0, _amp.isInAmpMode)(ampState)
+            key: "componentDidUpdate",
+            value: function componentDidUpdate() {
+              this.emitChange();
+            }
           },
-          children
-        );
-      }
+          {
+            key: "componentWillUnmount",
+            value: function componentWillUnmount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances["delete"](this);
+              }
 
-      var _default = Head;
-      exports["default"] = _default;
+              this.emitChange();
+            }
+          },
+          {
+            key: "render",
+            value: function render() {
+              return null;
+            }
+          }
+        ]);
+
+        return _class;
+      })(_react.Component);
+
+      exports["default"] = _class;
 
       /***/
     },
@@ -624,21 +392,12 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ EbDI: /***/ function(module, exports) {
-      function _iterableToArray(iter) {
-        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
-          return Array.from(iter);
-      }
-
-      module.exports = _iterableToArray;
-
-      /***/
-    },
-
-    /***/ FYa8: /***/ function(module, exports, __webpack_require__) {
+    /***/ CM2u: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.HeadManagerContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -651,9 +410,7 @@ Also adds support for deduplicated `key` properties
             };
       }
 
-      var HeadManagerContext = /*#__PURE__*/ _react["default"].createContext(
-        {}
-      );
+      var HeadManagerContext = _react["default"].createContext({});
 
       exports.HeadManagerContext = HeadManagerContext;
 
@@ -663,6 +420,17 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
+    /***/ EbDI: /***/ function(module, exports) {
+      function _iterableToArray(iter) {
+        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
+          return Array.from(iter);
+      }
+
+      module.exports = _iterableToArray;
+
+      /***/
+    },
+
     /***/ Ijbi: /***/ function(module, exports, __webpack_require__) {
       var arrayLikeToArray = __webpack_require__("WkPL");
 
@@ -708,9 +476,11 @@ Also adds support for deduplicated `key` properties
 
     /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
       "use strict";
+
       var assign = Object.assign.bind(Object);
       module.exports = assign;
       module.exports.default = module.exports;
+
       //# sourceMappingURL=object-assign.js.map
 
       /***/
@@ -808,140 +578,6 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ Xuae: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      var _toConsumableArray = __webpack_require__("RIqP");
-
-      var _classCallCheck = __webpack_require__("lwsE");
-
-      var _createClass = __webpack_require__("W8MJ");
-
-      var _assertThisInitialized = __webpack_require__("PJYZ");
-
-      var _inherits = __webpack_require__("7W2i");
-
-      var _possibleConstructorReturn = __webpack_require__("a1gu");
-
-      var _getPrototypeOf = __webpack_require__("Nsbk");
-
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
-          }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
-        }
-      }
-
-      exports.__esModule = true;
-      exports["default"] = void 0;
-
-      var _react = __webpack_require__("q1tI");
-
-      var isServer = false;
-
-      var _default = /*#__PURE__*/ (function(_react$Component) {
-        _inherits(_default, _react$Component);
-
-        var _super = _createSuper(_default);
-
-        function _default(props) {
-          var _this;
-
-          _classCallCheck(this, _default);
-
-          _this = _super.call(this, props);
-          _this._hasHeadManager = void 0;
-
-          _this.emitChange = function() {
-            if (_this._hasHeadManager) {
-              _this.props.headManager.updateHead(
-                _this.props.reduceComponentsToState(
-                  _toConsumableArray(_this.props.headManager.mountedInstances),
-                  _this.props
-                )
-              );
-            }
-          };
-
-          _this._hasHeadManager =
-            _this.props.headManager && _this.props.headManager.mountedInstances;
-
-          if (isServer && _this._hasHeadManager) {
-            _this.props.headManager.mountedInstances.add(
-              _assertThisInitialized(_this)
-            );
-
-            _this.emitChange();
-          }
-
-          return _this;
-        }
-
-        _createClass(_default, [
-          {
-            key: "componentDidMount",
-            value: function componentDidMount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances.add(this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentDidUpdate",
-            value: function componentDidUpdate() {
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentWillUnmount",
-            value: function componentWillUnmount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances["delete"](this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "render",
-            value: function render() {
-              return null;
-            }
-          }
-        ]);
-
-        return _default;
-      })(_react.Component);
-
-      exports["default"] = _default;
-
-      /***/
-    },
-
     /***/ ZhPi: /***/ function(module, exports, __webpack_require__) {
       var arrayLikeToArray = __webpack_require__("WkPL");
 
@@ -1014,6 +650,52 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
+    /***/ dTAc: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.isInAmpMode = isInAmpMode;
+      exports.useAmp = useAmp;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      var _ampContext = __webpack_require__("r55Z");
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      function isInAmpMode() {
+        var _ref =
+            arguments.length > 0 && arguments[0] !== undefined
+              ? arguments[0]
+              : {},
+          _ref$ampFirst = _ref.ampFirst,
+          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
+          _ref$hybrid = _ref.hybrid,
+          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
+          _ref$hasQuery = _ref.hasQuery,
+          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
+
+        return ampFirst || (hybrid && hasQuery);
+      }
+
+      function useAmp() {
+        // Don't assign the context value to a variable to save bytes
+        return isInAmpMode(
+          _react["default"].useContext(_ampContext.AmpStateContext)
+        );
+      }
+
+      /***/
+    },
+
     /***/ lSNA: /***/ function(module, exports) {
       function _defineProperty(obj, key, value) {
         if (key in obj) {
@@ -1035,13 +717,76 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
+    /***/ lwsE: /***/ function(module, exports) {
+      function _classCallCheck(instance, Constructor) {
+        if (!(instance instanceof Constructor)) {
+          throw new TypeError("Cannot call a class as a function");
+        }
+      }
+
+      module.exports = _classCallCheck;
+
+      /***/
+    },
+
+    /***/ mLbm: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      exports.__esModule = true;
-      exports.AmpStateContext = void 0;
+      var _defineProperty = __webpack_require__("lSNA");
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+      function ownKeys(object, enumerableOnly) {
+        var keys = Object.keys(object);
+        if (Object.getOwnPropertySymbols) {
+          var symbols = Object.getOwnPropertySymbols(object);
+          if (enumerableOnly)
+            symbols = symbols.filter(function(sym) {
+              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+            });
+          keys.push.apply(keys, symbols);
+        }
+        return keys;
+      }
+
+      function _objectSpread(target) {
+        for (var i = 1; i < arguments.length; i++) {
+          var source = arguments[i] != null ? arguments[i] : {};
+          if (i % 2) {
+            ownKeys(Object(source), true).forEach(function(key) {
+              _defineProperty(target, key, source[key]);
+            });
+          } else if (Object.getOwnPropertyDescriptors) {
+            Object.defineProperties(
+              target,
+              Object.getOwnPropertyDescriptors(source)
+            );
+          } else {
+            ownKeys(Object(source)).forEach(function(key) {
+              Object.defineProperty(
+                target,
+                key,
+                Object.getOwnPropertyDescriptor(source, key)
+              );
+            });
+          }
+        }
+        return target;
+      }
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.defaultHead = defaultHead;
+      exports["default"] = void 0;
+
+      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+
+      var _sideEffect = _interopRequireDefault(__webpack_require__("BdAR"));
+
+      var _ampContext = __webpack_require__("r55Z");
+
+      var _headManagerContext = __webpack_require__("CM2u");
+
+      var _amp = __webpack_require__("dTAc");
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -1051,24 +796,258 @@ Also adds support for deduplicated `key` properties
             };
       }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+      function _interopRequireWildcard(obj) {
+        if (obj && obj.__esModule) {
+          return obj;
+        } else {
+          var newObj = {};
+
+          if (obj != null) {
+            for (var key in obj) {
+              if (Object.prototype.hasOwnProperty.call(obj, key)) {
+                var desc =
+                  Object.defineProperty && Object.getOwnPropertyDescriptor
+                    ? Object.getOwnPropertyDescriptor(obj, key)
+                    : {};
+
+                if (desc.get || desc.set) {
+                  Object.defineProperty(newObj, key, desc);
+                } else {
+                  newObj[key] = obj[key];
+                }
+              }
+            }
+          }
 
-      exports.AmpStateContext = AmpStateContext;
+          newObj["default"] = obj;
+          return newObj;
+        }
+      }
 
-      if (false) {
+      function defaultHead() {
+        var inAmpMode =
+          arguments.length > 0 && arguments[0] !== undefined
+            ? arguments[0]
+            : false;
+        var head = [
+          /*#__PURE__*/ _react["default"].createElement("meta", {
+            charSet: "utf-8"
+          })
+        ];
+
+        if (!inAmpMode) {
+          head.push(
+            /*#__PURE__*/ _react["default"].createElement("meta", {
+              name: "viewport",
+              content: "width=device-width"
+            })
+          );
+        }
+
+        return head;
+      }
+
+      function onlyReactElement(list, child) {
+        // React children can be "string" or "number" in this case we ignore them for backwards compat
+        if (typeof child === "string" || typeof child === "number") {
+          return list;
+        } // Adds support for React.Fragment
+
+        if (child.type === _react["default"].Fragment) {
+          return list.concat(
+            _react["default"].Children.toArray(child.props.children).reduce(
+              function(fragmentList, fragmentChild) {
+                if (
+                  typeof fragmentChild === "string" ||
+                  typeof fragmentChild === "number"
+                ) {
+                  return fragmentList;
+                }
+
+                return fragmentList.concat(fragmentChild);
+              },
+              []
+            )
+          );
+        }
+
+        return list.concat(child);
+      }
+
+      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
+      /*
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
+*/
+
+      function unique() {
+        var keys = new Set();
+        var tags = new Set();
+        var metaTypes = new Set();
+        var metaCategories = {};
+        return function(h) {
+          var isUnique = true;
+          var hasKey = false;
+
+          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
+            hasKey = true;
+            var key = h.key.slice(h.key.indexOf("$") + 1);
+
+            if (keys.has(key)) {
+              isUnique = false;
+            } else {
+              keys.add(key);
+            }
+          } // eslint-disable-next-line default-case
+
+          switch (h.type) {
+            case "title":
+            case "base":
+              if (tags.has(h.type)) {
+                isUnique = false;
+              } else {
+                tags.add(h.type);
+              }
+
+              break;
+
+            case "meta":
+              for (var i = 0, len = METATYPES.length; i < len; i++) {
+                var metatype = METATYPES[i];
+                if (!h.props.hasOwnProperty(metatype)) continue;
+
+                if (metatype === "charSet") {
+                  if (metaTypes.has(metatype)) {
+                    isUnique = false;
+                  } else {
+                    metaTypes.add(metatype);
+                  }
+                } else {
+                  var category = h.props[metatype];
+                  var categories = metaCategories[metatype] || new Set();
+
+                  if (
+                    (metatype !== "name" || !hasKey) &&
+                    categories.has(category)
+                  ) {
+                    isUnique = false;
+                  } else {
+                    categories.add(category);
+                    metaCategories[metatype] = categories;
+                  }
+                }
+              }
+
+              break;
+          }
+
+          return isUnique;
+        };
+      }
+      /**
+       *
+       * @param headElements List of multiple <Head> instances
+       */
+
+      function reduceComponents(headElements, props) {
+        return headElements
+          .reduce(function(list, headElement) {
+            var headElementChildren = _react["default"].Children.toArray(
+              headElement.props.children
+            );
+
+            return list.concat(headElementChildren);
+          }, [])
+          .reduce(onlyReactElement, [])
+          .reverse()
+          .concat(defaultHead(props.inAmpMode))
+          .filter(unique())
+          .reverse()
+          .map(function(c, i) {
+            var key = c.key || i;
+
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                [
+                  "https://fonts.googleapis.com/css",
+                  "https://use.typekit.net/"
+                ].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
+
+                newProps["data-optimized-fonts"] = true;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
+            }
+
+            return /*#__PURE__*/ _react["default"].cloneElement(c, {
+              key: key
+            });
+          });
+      }
+      /**
+       * This component injects elements to `<head>` of your page.
+       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
+       */
+
+      function Head(_ref) {
+        var children = _ref.children;
+        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
+        var headManager = (0, _react).useContext(
+          _headManagerContext.HeadManagerContext
+        );
+        return /*#__PURE__*/ _react["default"].createElement(
+          _sideEffect["default"],
+          {
+            reduceComponentsToState: reduceComponents,
+            headManager: headManager,
+            inAmpMode: (0, _amp).isInAmpMode(ampState)
+          },
+          children
+        );
       }
 
+      var _default = Head;
+      exports["default"] = _default;
+
       /***/
     },
 
-    /***/ lwsE: /***/ function(module, exports) {
-      function _classCallCheck(instance, Constructor) {
-        if (!(instance instanceof Constructor)) {
-          throw new TypeError("Cannot call a class as a function");
-        }
+    /***/ r55Z: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.AmpStateContext = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
       }
 
-      module.exports = _classCallCheck;
+      var AmpStateContext = _react["default"].createContext({});
+
+      exports.AmpStateContext = AmpStateContext;
+
+      if (false) {
+      }
 
       /***/
     }
Diff for amp-HASH.js
@@ -1,16 +1,47 @@
 _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
   [6],
   {
-    /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
+    /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
+      module.exports = __webpack_require__("dTAc");
+
+      /***/
+    },
+
+    /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/amp",
+        function() {
+          return __webpack_require__("rsBd");
+        }
+      ]);
+
+      /***/
+    },
+
+    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      var assign = Object.assign.bind(Object);
+      module.exports = assign;
+      module.exports.default = module.exports;
+
+      //# sourceMappingURL=object-assign.js.map
+
+      /***/
+    },
+
+    /***/ dTAc: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.isInAmpMode = isInAmpMode;
       exports.useAmp = useAmp;
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _ampContext = __webpack_require__("lwAK");
+      var _ampContext = __webpack_require__("r55Z");
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -45,37 +76,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
-    /***/ JjeS: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("/0+H");
-
-      /***/
-    },
-
-    /***/ Q6ik: /***/ function(module, exports, __webpack_require__) {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/amp",
-        function() {
-          return __webpack_require__("rsBd");
-        }
-      ]);
-
-      /***/
-    },
-
-    /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-      var assign = Object.assign.bind(Object);
-      module.exports = assign;
-      module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
-
-      /***/
-    },
-
-    /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
+    /***/ r55Z: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.AmpStateContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -88,7 +94,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             };
       }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+      var AmpStateContext = _react["default"].createContext({});
 
       exports.AmpStateContext = AmpStateContext;
Diff for css-HASH.js
@@ -21,9 +21,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
     /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
       "use strict";
+
       var assign = Object.assign.bind(Object);
       module.exports = assign;
       module.exports.default = module.exports;
+
       //# sourceMappingURL=object-assign.js.map
 
       /***/
Diff for dynamic-HASH.js
@@ -1,7 +1,7 @@
 _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
   [8],
   {
-    /***/ "2qu3": /***/ function(module, exports, __webpack_require__) {
+    /***/ O4nQ: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       var _defineProperty = __webpack_require__("lSNA");
@@ -122,14 +122,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
         return arr2;
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports["default"] = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
       var _useSubscription = __webpack_require__("8L3h");
 
-      var _loadableContext = __webpack_require__("jwwS");
+      var _loadableContext = __webpack_require__("UKv4");
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -138,28 +140,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               default: obj
             };
       }
-      /**
-@copyright (c) 2017-present James Kyle <[email protected]>
-MIT License
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
-*/
-      // https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js
-      // Modified to be compatible with webpack 4 / Next.js
 
       var ALL_INITIALIZERS = [];
       var READY_INITIALIZERS = [];
@@ -221,7 +201,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         if (false) {
         } // Client only
 
-        if (!initialized && true && typeof opts.webpack === "function") {
+        if (
+          !initialized &&
+          true &&
+          typeof opts.webpack === "function" &&
+          "function" === "function"
+        ) {
           var moduleIds = opts.webpack();
           READY_INITIALIZERS.push(function(ids) {
             var _iterator = _createForOfIteratorHelper(moduleIds),
@@ -250,7 +235,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
             _loadableContext.LoadableContext
           );
 
-          var state = (0, _useSubscription.useSubscription)(subscription);
+          var state = (0, _useSubscription).useSubscription(subscription);
 
           _react["default"].useImperativeHandle(
             ref,
@@ -271,18 +256,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
           return _react["default"].useMemo(
             function() {
               if (state.loading || state.error) {
-                return /*#__PURE__*/ _react["default"].createElement(
-                  opts.loading,
-                  {
-                    isLoading: state.loading,
-                    pastDelay: state.pastDelay,
-                    timedOut: state.timedOut,
-                    error: state.error,
-                    retry: subscription.retry
-                  }
-                );
+                return _react["default"].createElement(opts.loading, {
+                  isLoading: state.loading,
+                  pastDelay: state.pastDelay,
+                  timedOut: state.timedOut,
+                  error: state.error,
+                  retry: subscription.retry
+                });
               } else if (state.loaded) {
-                return /*#__PURE__*/ _react["default"].createElement(
+                return _react["default"].createElement(
                   resolve(state.loaded),
                   props
                 );
@@ -299,7 +281,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         };
 
         LoadableComponent.displayName = "LoadableComponent";
-        return /*#__PURE__*/ _react["default"].forwardRef(LoadableComponent);
+        return _react["default"].forwardRef(LoadableComponent);
       }
 
       var LoadableSubscription = /*#__PURE__*/ (function() {
@@ -334,27 +316,27 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
                 timedOut: false
               };
               var res = this._res,
-                opts = this._opts;
+                opts1 = this._opts;
 
               if (res.loading) {
-                if (typeof opts.delay === "number") {
-                  if (opts.delay === 0) {
+                if (typeof opts1.delay === "number") {
+                  if (opts1.delay === 0) {
                     this._state.pastDelay = true;
                   } else {
                     this._delay = setTimeout(function() {
                       _this._update({
                         pastDelay: true
                       });
-                    }, opts.delay);
+                    }, opts1.delay);
                   }
                 }
 
-                if (typeof opts.timeout === "number") {
+                if (typeof opts1.timeout === "number") {
                   this._timeout = setTimeout(function() {
                     _this._update({
                       timedOut: true
                     });
-                  }, opts.timeout);
+                  }, opts1.timeout);
                 }
               }
 
@@ -422,8 +404,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         return LoadableSubscription;
       })();
 
-      function Loadable(opts) {
-        return createLoadableComponent(load, opts);
+      function Loadable(opts1) {
+        return createLoadableComponent(load, opts1);
       }
 
       function flushInitializers(initializers, ids) {
@@ -474,16 +456,46 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
 
     /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
       "use strict";
+
       var assign = Object.assign.bind(Object);
       module.exports = assign;
       module.exports.default = module.exports;
+
       //# sourceMappingURL=object-assign.js.map
 
       /***/
     },
 
+    /***/ UKv4: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.LoadableContext = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      var LoadableContext = _react["default"].createContext(null);
+
+      exports.LoadableContext = LoadableContext;
+
+      if (false) {
+      }
+
+      /***/
+    },
+
     /***/ Vvt1: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("a6RD");
+      module.exports = __webpack_require__("rqUP");
 
       /***/
     },
@@ -540,7 +552,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       var DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         function() {
           return __webpack_require__
-            .e(/* import() */ 17)
+            .e(/* import() */ 18)
             .then(__webpack_require__.bind(null, "GaDq"));
         },
         {
@@ -577,7 +589,40 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ a6RD: /***/ function(module, exports, __webpack_require__) {
+    /***/ lSNA: /***/ function(module, exports) {
+      function _defineProperty(obj, key, value) {
+        if (key in obj) {
+          Object.defineProperty(obj, key, {
+            value: value,
+            enumerable: true,
+            configurable: true,
+            writable: true
+          });
+        } else {
+          obj[key] = value;
+        }
+
+        return obj;
+      }
+
+      module.exports = _defineProperty;
+
+      /***/
+    },
+
+    /***/ lwsE: /***/ function(module, exports) {
+      function _classCallCheck(instance, Constructor) {
+        if (!(instance instanceof Constructor)) {
+          throw new TypeError("Cannot call a class as a function");
+        }
+      }
+
+      module.exports = _classCallCheck;
+
+      /***/
+    },
+
+    /***/ rqUP: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
       var _defineProperty = __webpack_require__("lSNA");
@@ -620,13 +665,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         return target;
       }
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.noSSR = noSSR;
       exports["default"] = dynamic;
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _loadable = _interopRequireDefault(__webpack_require__("2qu3"));
+      var _loadable = _interopRequireDefault(__webpack_require__("O4nQ"));
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -657,7 +704,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
             timedOut: false
           });
         };
-      } // function dynamic<P = {}, O extends DynamicOptions>(options: O):
+      }
 
       function dynamic(dynamicOptions, options) {
         var loadableFn = _loadable["default"];
@@ -720,65 +767,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ jwwS: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      exports.__esModule = true;
-      exports.LoadableContext = void 0;
-
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      var LoadableContext = /*#__PURE__*/ _react["default"].createContext(null);
-
-      exports.LoadableContext = LoadableContext;
-
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ lSNA: /***/ function(module, exports) {
-      function _defineProperty(obj, key, value) {
-        if (key in obj) {
-          Object.defineProperty(obj, key, {
-            value: value,
-            enumerable: true,
-            configurable: true,
-            writable: true
-          });
-        } else {
-          obj[key] = value;
-        }
-
-        return obj;
-      }
-
-      module.exports = _defineProperty;
-
-      /***/
-    },
-
-    /***/ lwsE: /***/ function(module, exports) {
-      function _classCallCheck(instance, Constructor) {
-        if (!(instance instanceof Constructor)) {
-          throw new TypeError("Cannot call a class as a function");
-        }
-      }
-
-      module.exports = _classCallCheck;
-
-      /***/
-    },
-
     /***/ zrQO: /***/ function(module, exports, __webpack_require__) {
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
Diff for head-HASH.js
@@ -1,50 +1,6 @@
 _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
   [9],
   {
-    /***/ "/0+H": /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      exports.__esModule = true;
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
-
-      var _ampContext = __webpack_require__("lwAK");
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
-
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
-
-      /***/
-    },
-
     /***/ "7W2i": /***/ function(module, exports, __webpack_require__) {
       var setPrototypeOf = __webpack_require__("SksO");
 
@@ -70,325 +26,137 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
-    /***/ "8Kt/": /***/ function(module, exports, __webpack_require__) {
+    /***/ BdAR: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      var _defineProperty = __webpack_require__("lSNA");
-
-      function ownKeys(object, enumerableOnly) {
-        var keys = Object.keys(object);
-        if (Object.getOwnPropertySymbols) {
-          var symbols = Object.getOwnPropertySymbols(object);
-          if (enumerableOnly)
-            symbols = symbols.filter(function(sym) {
-              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-            });
-          keys.push.apply(keys, symbols);
-        }
-        return keys;
-      }
-
-      function _objectSpread(target) {
-        for (var i = 1; i < arguments.length; i++) {
-          var source = arguments[i] != null ? arguments[i] : {};
-          if (i % 2) {
-            ownKeys(Object(source), true).forEach(function(key) {
-              _defineProperty(target, key, source[key]);
-            });
-          } else if (Object.getOwnPropertyDescriptors) {
-            Object.defineProperties(
-              target,
-              Object.getOwnPropertyDescriptors(source)
-            );
-          } else {
-            ownKeys(Object(source)).forEach(function(key) {
-              Object.defineProperty(
-                target,
-                key,
-                Object.getOwnPropertyDescriptor(source, key)
-              );
-            });
-          }
-        }
-        return target;
-      }
-
-      exports.__esModule = true;
-      exports.defaultHead = defaultHead;
-      exports["default"] = void 0;
-
-      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
-
-      var _sideEffect = _interopRequireDefault(__webpack_require__("Xuae"));
-
-      var _ampContext = __webpack_require__("lwAK");
-
-      var _headManagerContext = __webpack_require__("FYa8");
-
-      var _amp = __webpack_require__("/0+H");
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function _getRequireWildcardCache() {
-        if (typeof WeakMap !== "function") return null;
-        var cache = new WeakMap();
-
-        _getRequireWildcardCache = function _getRequireWildcardCache() {
-          return cache;
-        };
-
-        return cache;
-      }
+      var _toConsumableArray = __webpack_require__("RIqP");
 
-      function _interopRequireWildcard(obj) {
-        if (obj && obj.__esModule) {
-          return obj;
-        }
+      var _classCallCheck = __webpack_require__("lwsE");
 
-        if (
-          obj === null ||
-          (typeof obj !== "object" && typeof obj !== "function")
-        ) {
-          return {
-            default: obj
-          };
-        }
+      var _createClass = __webpack_require__("W8MJ");
 
-        var cache = _getRequireWildcardCache();
+      var _assertThisInitialized = __webpack_require__("PJYZ");
 
-        if (cache && cache.has(obj)) {
-          return cache.get(obj);
-        }
+      var _inherits = __webpack_require__("7W2i");
 
-        var newObj = {};
-        var hasPropertyDescriptor =
-          Object.defineProperty && Object.getOwnPropertyDescriptor;
+      var _possibleConstructorReturn = __webpack_require__("a1gu");
 
-        for (var key in obj) {
-          if (Object.prototype.hasOwnProperty.call(obj, key)) {
-            var desc = hasPropertyDescriptor
-              ? Object.getOwnPropertyDescriptor(obj, key)
-              : null;
+      var _getPrototypeOf = __webpack_require__("Nsbk");
 
-            if (desc && (desc.get || desc.set)) {
-              Object.defineProperty(newObj, key, desc);
-            } else {
-              newObj[key] = obj[key];
-            }
+      function _createSuper(Derived) {
+        var hasNativeReflectConstruct = _isNativeReflectConstruct();
+        return function _createSuperInternal() {
+          var Super = _getPrototypeOf(Derived),
+            result;
+          if (hasNativeReflectConstruct) {
+            var NewTarget = _getPrototypeOf(this).constructor;
+            result = Reflect.construct(Super, arguments, NewTarget);
+          } else {
+            result = Super.apply(this, arguments);
           }
-        }
-
-        newObj["default"] = obj;
-
-        if (cache) {
-          cache.set(obj, newObj);
-        }
-
-        return newObj;
-      }
-
-      function defaultHead() {
-        var inAmpMode =
-          arguments.length > 0 && arguments[0] !== undefined
-            ? arguments[0]
-            : false;
-        var head = [
-          /*#__PURE__*/ _react["default"].createElement("meta", {
-            charSet: "utf-8"
-          })
-        ];
-
-        if (!inAmpMode) {
-          head.push(
-            /*#__PURE__*/ _react["default"].createElement("meta", {
-              name: "viewport",
-              content: "width=device-width"
-            })
-          );
-        }
-
-        return head;
+          return _possibleConstructorReturn(this, result);
+        };
       }
 
-      function onlyReactElement(list, child) {
-        // React children can be "string" or "number" in this case we ignore them for backwards compat
-        if (typeof child === "string" || typeof child === "number") {
-          return list;
-        } // Adds support for React.Fragment
-
-        if (child.type === _react["default"].Fragment) {
-          return list.concat(
-            _react["default"].Children.toArray(child.props.children).reduce(
-              function(fragmentList, fragmentChild) {
-                if (
-                  typeof fragmentChild === "string" ||
-                  typeof fragmentChild === "number"
-                ) {
-                  return fragmentList;
-                }
-
-                return fragmentList.concat(fragmentChild);
-              },
-              []
-            )
+      function _isNativeReflectConstruct() {
+        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+        if (Reflect.construct.sham) return false;
+        if (typeof Proxy === "function") return true;
+        try {
+          Date.prototype.toString.call(
+            Reflect.construct(Date, [], function() {})
           );
+          return true;
+        } catch (e) {
+          return false;
         }
-
-        return list.concat(child);
       }
 
-      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
-      /*
-returns a function for filtering head child elements
-which shouldn't be duplicated, like <title/>
-Also adds support for deduplicated `key` properties
-*/
-
-      function unique() {
-        var keys = new Set();
-        var tags = new Set();
-        var metaTypes = new Set();
-        var metaCategories = {};
-        return function(h) {
-          var isUnique = true;
-          var hasKey = false;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports["default"] = void 0;
 
-          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
-            hasKey = true;
-            var key = h.key.slice(h.key.indexOf("$") + 1);
+      var _react = __webpack_require__("q1tI");
 
-            if (keys.has(key)) {
-              isUnique = false;
-            } else {
-              keys.add(key);
-            }
-          } // eslint-disable-next-line default-case
+      var isServer = false;
 
-          switch (h.type) {
-            case "title":
-            case "base":
-              if (tags.has(h.type)) {
-                isUnique = false;
-              } else {
-                tags.add(h.type);
-              }
+      var _class = /*#__PURE__*/ (function(_react$Component) {
+        _inherits(_class, _react$Component);
 
-              break;
+        var _super = _createSuper(_class);
 
-            case "meta":
-              for (var i = 0, len = METATYPES.length; i < len; i++) {
-                var metatype = METATYPES[i];
-                if (!h.props.hasOwnProperty(metatype)) continue;
+        function _class(props) {
+          var _this;
 
-                if (metatype === "charSet") {
-                  if (metaTypes.has(metatype)) {
-                    isUnique = false;
-                  } else {
-                    metaTypes.add(metatype);
-                  }
-                } else {
-                  var category = h.props[metatype];
-                  var categories = metaCategories[metatype] || new Set();
+          _classCallCheck(this, _class);
 
-                  if (
-                    (metatype !== "name" || !hasKey) &&
-                    categories.has(category)
-                  ) {
-                    isUnique = false;
-                  } else {
-                    categories.add(category);
-                    metaCategories[metatype] = categories;
-                  }
-                }
-              }
+          _this = _super.call(this, props);
 
-              break;
-          }
+          _this.emitChange = function() {
+            if (_this._hasHeadManager) {
+              _this.props.headManager.updateHead(
+                _this.props.reduceComponentsToState(
+                  _toConsumableArray(_this.props.headManager.mountedInstances),
+                  _this.props
+                )
+              );
+            }
+          };
 
-          return isUnique;
-        };
-      }
-      /**
-       *
-       * @param headElements List of multiple <Head> instances
-       */
+          _this._hasHeadManager =
+            _this.props.headManager && _this.props.headManager.mountedInstances;
 
-      function reduceComponents(headElements, props) {
-        return headElements
-          .reduce(function(list, headElement) {
-            var headElementChildren = _react["default"].Children.toArray(
-              headElement.props.children
+          if (isServer && _this._hasHeadManager) {
+            _this.props.headManager.mountedInstances.add(
+              _assertThisInitialized(_this)
             );
 
-            return list.concat(headElementChildren);
-          }, [])
-          .reduce(onlyReactElement, [])
-          .reverse()
-          .concat(defaultHead(props.inAmpMode))
-          .filter(unique())
-          .reverse()
-          .map(function(c, i) {
-            var key = c.key || i;
-
-            if (true && !props.inAmpMode) {
-              if (
-                c.type === "link" &&
-                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
-                [
-                  "https://fonts.googleapis.com/css",
-                  "https://use.typekit.net/"
-                ].some(function(url) {
-                  return c.props["href"].startsWith(url);
-                })
-              ) {
-                var newProps = _objectSpread({}, c.props || {});
+            _this.emitChange();
+          }
 
-                newProps["data-href"] = newProps["href"];
-                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
+          return _this;
+        }
 
-                newProps["data-optimized-fonts"] = true;
-                return /*#__PURE__*/ _react["default"].cloneElement(
-                  c,
-                  newProps
-                );
+        _createClass(_class, [
+          {
+            key: "componentDidMount",
+            value: function componentDidMount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances.add(this);
               }
-            }
-
-            return /*#__PURE__*/ _react["default"].cloneElement(c, {
-              key: key
-            });
-          });
-      }
-      /**
-       * This component injects elements to `<head>` of your page.
-       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
-       */
 
-      function Head(_ref) {
-        var children = _ref.children;
-        var ampState = (0, _react.useContext)(_ampContext.AmpStateContext);
-        var headManager = (0, _react.useContext)(
-          _headManagerContext.HeadManagerContext
-        );
-        return /*#__PURE__*/ _react["default"].createElement(
-          _sideEffect["default"],
+              this.emitChange();
+            }
+          },
           {
-            reduceComponentsToState: reduceComponents,
-            headManager: headManager,
-            inAmpMode: (0, _amp.isInAmpMode)(ampState)
+            key: "componentDidUpdate",
+            value: function componentDidUpdate() {
+              this.emitChange();
+            }
           },
-          children
-        );
-      }
+          {
+            key: "componentWillUnmount",
+            value: function componentWillUnmount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances["delete"](this);
+              }
 
-      var _default = Head;
-      exports["default"] = _default;
+              this.emitChange();
+            }
+          },
+          {
+            key: "render",
+            value: function render() {
+              return null;
+            }
+          }
+        ]);
+
+        return _class;
+      })(_react.Component);
+
+      exports["default"] = _class;
 
       /***/
     },
@@ -405,21 +173,12 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ EbDI: /***/ function(module, exports) {
-      function _iterableToArray(iter) {
-        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
-          return Array.from(iter);
-      }
-
-      module.exports = _iterableToArray;
-
-      /***/
-    },
-
-    /***/ FYa8: /***/ function(module, exports, __webpack_require__) {
+    /***/ CM2u: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
       exports.HeadManagerContext = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -432,9 +191,7 @@ Also adds support for deduplicated `key` properties
             };
       }
 
-      var HeadManagerContext = /*#__PURE__*/ _react["default"].createContext(
-        {}
-      );
+      var HeadManagerContext = _react["default"].createContext({});
 
       exports.HeadManagerContext = HeadManagerContext;
 
@@ -444,6 +201,17 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
+    /***/ EbDI: /***/ function(module, exports) {
+      function _iterableToArray(iter) {
+        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
+          return Array.from(iter);
+      }
+
+      module.exports = _iterableToArray;
+
+      /***/
+    },
+
     /***/ Ijbi: /***/ function(module, exports, __webpack_require__) {
       var arrayLikeToArray = __webpack_require__("WkPL");
 
@@ -546,9 +314,11 @@ Also adds support for deduplicated `key` properties
 
     /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
       "use strict";
+
       var assign = Object.assign.bind(Object);
       module.exports = assign;
       module.exports.default = module.exports;
+
       //# sourceMappingURL=object-assign.js.map
 
       /***/
@@ -643,140 +413,6 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ Xuae: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      var _toConsumableArray = __webpack_require__("RIqP");
-
-      var _classCallCheck = __webpack_require__("lwsE");
-
-      var _createClass = __webpack_require__("W8MJ");
-
-      var _assertThisInitialized = __webpack_require__("PJYZ");
-
-      var _inherits = __webpack_require__("7W2i");
-
-      var _possibleConstructorReturn = __webpack_require__("a1gu");
-
-      var _getPrototypeOf = __webpack_require__("Nsbk");
-
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
-          }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
-        }
-      }
-
-      exports.__esModule = true;
-      exports["default"] = void 0;
-
-      var _react = __webpack_require__("q1tI");
-
-      var isServer = false;
-
-      var _default = /*#__PURE__*/ (function(_react$Component) {
-        _inherits(_default, _react$Component);
-
-        var _super = _createSuper(_default);
-
-        function _default(props) {
-          var _this;
-
-          _classCallCheck(this, _default);
-
-          _this = _super.call(this, props);
-          _this._hasHeadManager = void 0;
-
-          _this.emitChange = function() {
-            if (_this._hasHeadManager) {
-              _this.props.headManager.updateHead(
-                _this.props.reduceComponentsToState(
-                  _toConsumableArray(_this.props.headManager.mountedInstances),
-                  _this.props
-                )
-              );
-            }
-          };
-
-          _this._hasHeadManager =
-            _this.props.headManager && _this.props.headManager.mountedInstances;
-
-          if (isServer && _this._hasHeadManager) {
-            _this.props.headManager.mountedInstances.add(
-              _assertThisInitialized(_this)
-            );
-
-            _this.emitChange();
-          }
-
-          return _this;
-        }
-
-        _createClass(_default, [
-          {
-            key: "componentDidMount",
-            value: function componentDidMount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances.add(this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentDidUpdate",
-            value: function componentDidUpdate() {
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentWillUnmount",
-            value: function componentWillUnmount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances["delete"](this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "render",
-            value: function render() {
-              return null;
-            }
-          }
-        ]);
-
-        return _default;
-      })(_react.Component);
-
-      exports["default"] = _default;
-
-      /***/
-    },
-
     /***/ ZhPi: /***/ function(module, exports, __webpack_require__) {
       var arrayLikeToArray = __webpack_require__("WkPL");
 
@@ -849,8 +485,54 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
+    /***/ dTAc: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.isInAmpMode = isInAmpMode;
+      exports.useAmp = useAmp;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      var _ampContext = __webpack_require__("r55Z");
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      function isInAmpMode() {
+        var _ref =
+            arguments.length > 0 && arguments[0] !== undefined
+              ? arguments[0]
+              : {},
+          _ref$ampFirst = _ref.ampFirst,
+          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
+          _ref$hybrid = _ref.hybrid,
+          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
+          _ref$hasQuery = _ref.hasQuery,
+          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
+
+        return ampFirst || (hybrid && hasQuery);
+      }
+
+      function useAmp() {
+        // Don't assign the context value to a variable to save bytes
+        return isInAmpMode(
+          _react["default"].useContext(_ampContext.AmpStateContext)
+        );
+      }
+
+      /***/
+    },
+
     /***/ g4pe: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__("8Kt/");
+      module.exports = __webpack_require__("mLbm");
 
       /***/
     },
@@ -876,13 +558,76 @@ Also adds support for deduplicated `key` properties
       /***/
     },
 
-    /***/ lwAK: /***/ function(module, exports, __webpack_require__) {
+    /***/ lwsE: /***/ function(module, exports) {
+      function _classCallCheck(instance, Constructor) {
+        if (!(instance instanceof Constructor)) {
+          throw new TypeError("Cannot call a class as a function");
+        }
+      }
+
+      module.exports = _classCallCheck;
+
+      /***/
+    },
+
+    /***/ mLbm: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
-      exports.__esModule = true;
-      exports.AmpStateContext = void 0;
+      var _defineProperty = __webpack_require__("lSNA");
 
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+      function ownKeys(object, enumerableOnly) {
+        var keys = Object.keys(object);
+        if (Object.getOwnPropertySymbols) {
+          var symbols = Object.getOwnPropertySymbols(object);
+          if (enumerableOnly)
+            symbols = symbols.filter(function(sym) {
+              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+            });
+          keys.push.apply(keys, symbols);
+        }
+        return keys;
+      }
+
+      function _objectSpread(target) {
+        for (var i = 1; i < arguments.length; i++) {
+          var source = arguments[i] != null ? arguments[i] : {};
+          if (i % 2) {
+            ownKeys(Object(source), true).forEach(function(key) {
+              _defineProperty(target, key, source[key]);
+            });
+          } else if (Object.getOwnPropertyDescriptors) {
+            Object.defineProperties(
+              target,
+              Object.getOwnPropertyDescriptors(source)
+            );
+          } else {
+            ownKeys(Object(source)).forEach(function(key) {
+              Object.defineProperty(
+                target,
+                key,
+                Object.getOwnPropertyDescriptor(source, key)
+              );
+            });
+          }
+        }
+        return target;
+      }
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.defaultHead = defaultHead;
+      exports["default"] = void 0;
+
+      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+
+      var _sideEffect = _interopRequireDefault(__webpack_require__("BdAR"));
+
+      var _ampContext = __webpack_require__("r55Z");
+
+      var _headManagerContext = __webpack_require__("CM2u");
+
+      var _amp = __webpack_require__("dTAc");
 
       function _interopRequireDefault(obj) {
         return obj && obj.__esModule
@@ -892,24 +637,258 @@ Also adds support for deduplicated `key` properties
             };
       }
 
-      var AmpStateContext = /*#__PURE__*/ _react["default"].createContext({});
+      function _interopRequireWildcard(obj) {
+        if (obj && obj.__esModule) {
+          return obj;
+        } else {
+          var newObj = {};
+
+          if (obj != null) {
+            for (var key in obj) {
+              if (Object.prototype.hasOwnProperty.call(obj, key)) {
+                var desc =
+                  Object.defineProperty && Object.getOwnPropertyDescriptor
+                    ? Object.getOwnPropertyDescriptor(obj, key)
+                    : {};
+
+                if (desc.get || desc.set) {
+                  Object.defineProperty(newObj, key, desc);
+                } else {
+                  newObj[key] = obj[key];
+                }
+              }
+            }
+          }
 
-      exports.AmpStateContext = AmpStateContext;
+          newObj["default"] = obj;
+          return newObj;
+        }
+      }
 
-      if (false) {
+      function defaultHead() {
+        var inAmpMode =
+          arguments.length > 0 && arguments[0] !== undefined
+            ? arguments[0]
+            : false;
+        var head = [
+          /*#__PURE__*/ _react["default"].createElement("meta", {
+            charSet: "utf-8"
+          })
+        ];
+
+        if (!inAmpMode) {
+          head.push(
+            /*#__PURE__*/ _react["default"].createElement("meta", {
+              name: "viewport",
+              content: "width=device-width"
+            })
+          );
+        }
+
+        return head;
       }
 
+      function onlyReactElement(list, child) {
+        // React children can be "string" or "number" in this case we ignore them for backwards compat
+        if (typeof child === "string" || typeof child === "number") {
+          return list;
+        } // Adds support for React.Fragment
+
+        if (child.type === _react["default"].Fragment) {
+          return list.concat(
+            _react["default"].Children.toArray(child.props.children).reduce(
+              function(fragmentList, fragmentChild) {
+                if (
+                  typeof fragmentChild === "string" ||
+                  typeof fragmentChild === "number"
+                ) {
+                  return fragmentList;
+                }
+
+                return fragmentList.concat(fragmentChild);
+              },
+              []
+            )
+          );
+        }
+
+        return list.concat(child);
+      }
+
+      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
+      /*
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
+*/
+
+      function unique() {
+        var keys = new Set();
+        var tags = new Set();
+        var metaTypes = new Set();
+        var metaCategories = {};
+        return function(h) {
+          var isUnique = true;
+          var hasKey = false;
+
+          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
+            hasKey = true;
+            var key = h.key.slice(h.key.indexOf("$") + 1);
+
+            if (keys.has(key)) {
+              isUnique = false;
+            } else {
+              keys.add(key);
+            }
+          } // eslint-disable-next-line default-case
+
+          switch (h.type) {
+            case "title":
+            case "base":
+              if (tags.has(h.type)) {
+                isUnique = false;
+              } else {
+                tags.add(h.type);
+              }
+
+              break;
+
+            case "meta":
+              for (var i = 0, len = METATYPES.length; i < len; i++) {
+                var metatype = METATYPES[i];
+                if (!h.props.hasOwnProperty(metatype)) continue;
+
+                if (metatype === "charSet") {
+                  if (metaTypes.has(metatype)) {
+                    isUnique = false;
+                  } else {
+                    metaTypes.add(metatype);
+                  }
+                } else {
+                  var category = h.props[metatype];
+                  var categories = metaCategories[metatype] || new Set();
+
+                  if (
+                    (metatype !== "name" || !hasKey) &&
+                    categories.has(category)
+                  ) {
+                    isUnique = false;
+                  } else {
+                    categories.add(category);
+                    metaCategories[metatype] = categories;
+                  }
+                }
+              }
+
+              break;
+          }
+
+          return isUnique;
+        };
+      }
+      /**
+       *
+       * @param headElements List of multiple <Head> instances
+       */
+
+      function reduceComponents(headElements, props) {
+        return headElements
+          .reduce(function(list, headElement) {
+            var headElementChildren = _react["default"].Children.toArray(
+              headElement.props.children
+            );
+
+            return list.concat(headElementChildren);
+          }, [])
+          .reduce(onlyReactElement, [])
+          .reverse()
+          .concat(defaultHead(props.inAmpMode))
+          .filter(unique())
+          .reverse()
+          .map(function(c, i) {
+            var key = c.key || i;
+
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                [
+                  "https://fonts.googleapis.com/css",
+                  "https://use.typekit.net/"
+                ].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
+
+                newProps["data-optimized-fonts"] = true;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
+            }
+
+            return /*#__PURE__*/ _react["default"].cloneElement(c, {
+              key: key
+            });
+          });
+      }
+      /**
+       * This component injects elements to `<head>` of your page.
+       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
+       */
+
+      function Head(_ref) {
+        var children = _ref.children;
+        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
+        var headManager = (0, _react).useContext(
+          _headManagerContext.HeadManagerContext
+        );
+        return /*#__PURE__*/ _react["default"].createElement(
+          _sideEffect["default"],
+          {
+            reduceComponentsToState: reduceComponents,
+            headManager: headManager,
+            inAmpMode: (0, _amp).isInAmpMode(ampState)
+          },
+          children
+        );
+      }
+
+      var _default = Head;
+      exports["default"] = _default;
+
       /***/
     },
 
-    /***/ lwsE: /***/ function(module, exports) {
-      function _classCallCheck(instance, Constructor) {
-        if (!(instance instanceof Constructor)) {
-          throw new TypeError("Cannot call a class as a function");
-        }
+    /***/ r55Z: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.AmpStateContext = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
       }
 
-      module.exports = _classCallCheck;
+      var AmpStateContext = _react["default"].createContext({});
+
+      exports.AmpStateContext = AmpStateContext;
+
+      if (false) {
+      }
 
       /***/
     }
Diff for hooks-HASH.js
@@ -147,9 +147,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
     /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
       "use strict";
+
       var assign = Object.assign.bind(Object);
       module.exports = assign;
       module.exports.default = module.exports;
+
       //# sourceMappingURL=object-assign.js.map
 
       /***/
Diff for link-HASH.js
@@ -77,14 +77,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
       var _slicedToArray = __webpack_require__("J4zp");
 
-      var _interopRequireWildcard = __webpack_require__("284h");
+      var _interopRequireDefault = __webpack_require__("TqRt");
 
       exports.__esModule = true;
       exports["default"] = void 0;
 
-      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-      var _router = __webpack_require__("elyg");
+      var _router = __webpack_require__("Sgtc");
 
       var _router2 = __webpack_require__("nOHt");
 
@@ -206,7 +206,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
         if (false) {
         } else {
-          child = _react.Children.only(children);
+          child = _react["default"].Children.only(children);
         }
 
         var childRef = child && typeof child === "object" && child.ref;
@@ -232,7 +232,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           [childRef, setIntersectionRef]
         );
 
-        (0, _react.useEffect)(
+        _react["default"].useEffect(
           function() {
             var shouldPrefetch =
               isVisible && p && (0, _router.isLocalURL)(href);
@@ -249,6 +249,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           },
           [as, href, isVisible, locale, p, router]
         );
+
         var childProps = {
           ref: setRef,
           onClick: function onClick(e) {
Diff for script-HASH.js
@@ -37,23 +37,57 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
     /***/ "85TV": /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
+      var _defineProperty = __webpack_require__("lSNA");
+
+      var _objectWithoutProperties = __webpack_require__("QILm");
+
       var _slicedToArray = __webpack_require__("J4zp");
 
-      var _interopRequireDefault = __webpack_require__("TqRt");
+      function ownKeys(object, enumerableOnly) {
+        var keys = Object.keys(object);
+        if (Object.getOwnPropertySymbols) {
+          var symbols = Object.getOwnPropertySymbols(object);
+          if (enumerableOnly)
+            symbols = symbols.filter(function(sym) {
+              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+            });
+          keys.push.apply(keys, symbols);
+        }
+        return keys;
+      }
+
+      function _objectSpread(target) {
+        for (var i = 1; i < arguments.length; i++) {
+          var source = arguments[i] != null ? arguments[i] : {};
+          if (i % 2) {
+            ownKeys(Object(source), true).forEach(function(key) {
+              _defineProperty(target, key, source[key]);
+            });
+          } else if (Object.getOwnPropertyDescriptors) {
+            Object.defineProperties(
+              target,
+              Object.getOwnPropertyDescriptors(source)
+            );
+          } else {
+            ownKeys(Object(source)).forEach(function(key) {
+              Object.defineProperty(
+                target,
+                key,
+                Object.getOwnPropertyDescriptor(source, key)
+              );
+            });
+          }
+        }
+        return target;
+      }
 
       exports.__esModule = true;
       exports.initScriptLoader = initScriptLoader;
       exports["default"] = void 0;
 
-      var _extends2 = _interopRequireDefault(__webpack_require__("pVnL"));
-
-      var _objectWithoutPropertiesLoose2 = _interopRequireDefault(
-        __webpack_require__("8OQS")
-      );
-
       var _react = __webpack_require__("q1tI");
 
-      var _headManagerContext = __webpack_require__("FYa8");
+      var _headManagerContext = __webpack_require__("CM2u");
 
       var _headManager = __webpack_require__("DqTX");
 
@@ -78,15 +112,16 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           _props$children = props.children,
           children = _props$children === void 0 ? "" : _props$children,
           onError = props.onError;
-        var cacheKey = id || src;
+        var cacheKey = id || src; // Script has already loaded
 
-        if (ScriptCache.has(src)) {
-          if (!LoadCache.has(cacheKey)) {
-            LoadCache.add(cacheKey); // Execute onLoad since the script loading has begun
+        if (cacheKey && LoadCache.has(cacheKey)) {
+          return;
+        } // Contents of this script are already loading/loaded
 
-            ScriptCache.get(src).then(onLoad, onError);
-          }
+        if (ScriptCache.has(src)) {
+          LoadCache.add(cacheKey); // Execute onLoad since the script loading has begun
 
+          ScriptCache.get(src).then(onLoad, onError);
           return;
         }
 
@@ -110,9 +145,10 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
         if (src) {
           ScriptCache.set(src, loadPromise);
-          LoadCache.add(cacheKey);
         }
 
+        LoadCache.add(cacheKey);
+
         if (dangerouslySetInnerHTML) {
           el.innerHTML = dangerouslySetInnerHTML.__html || "";
         } else if (children) {
@@ -185,11 +221,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
           src = _props$src === void 0 ? "" : _props$src,
           _props$onLoad2 = props.onLoad,
           onLoad = _props$onLoad2 === void 0 ? function() {} : _props$onLoad2,
+          dangerouslySetInnerHTML = props.dangerouslySetInnerHTML,
           _props$strategy2 = props.strategy,
           strategy =
             _props$strategy2 === void 0 ? "afterInteractive" : _props$strategy2,
           onError = props.onError,
-          restProps = (0, _objectWithoutPropertiesLoose2["default"])(props, [
+          restProps = _objectWithoutProperties(props, [
             "src",
             "onLoad",
             "dangerouslySetInnerHTML",
@@ -219,7 +256,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
             scripts.beforeInteractive = (
               scripts.beforeInteractive || []
             ).concat([
-              (0, _extends2["default"])(
+              _objectSpread(
                 {
                   src: src,
                   onLoad: onLoad,
@@ -229,6 +266,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
               )
             ]);
             updateScripts(scripts);
+          } else {
+            loadScript(props);
           }
         }
 
@@ -262,6 +301,34 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
+    /***/ CM2u: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.HeadManagerContext = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      var HeadManagerContext = _react["default"].createContext({});
+
+      exports.HeadManagerContext = HeadManagerContext;
+
+      if (false) {
+      }
+
+      /***/
+    },
+
     /***/ DqTX: /***/ function(module, exports, __webpack_require__) {
       "use strict";
 
@@ -417,34 +484,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
-    /***/ FYa8: /***/ function(module, exports, __webpack_require__) {
-      "use strict";
-
-      exports.__esModule = true;
-      exports.HeadManagerContext = void 0;
-
-      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      var HeadManagerContext = /*#__PURE__*/ _react["default"].createContext(
-        {}
-      );
-
-      exports.HeadManagerContext = HeadManagerContext;
-
-      if (false) {
-      }
-
-      /***/
-    },
-
     /***/ J4zp: /***/ function(module, exports, __webpack_require__) {
       var arrayWithHoles = __webpack_require__("wTVA");
 
@@ -468,26 +507,42 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
+    /***/ QILm: /***/ function(module, exports, __webpack_require__) {
+      var objectWithoutPropertiesLoose = __webpack_require__("8OQS");
+
+      function _objectWithoutProperties(source, excluded) {
+        if (source == null) return {};
+        var target = objectWithoutPropertiesLoose(source, excluded);
+        var key, i;
+
+        if (Object.getOwnPropertySymbols) {
+          var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
+
+          for (i = 0; i < sourceSymbolKeys.length; i++) {
+            key = sourceSymbolKeys[i];
+            if (excluded.indexOf(key) >= 0) continue;
+            if (!Object.prototype.propertyIsEnumerable.call(source, key))
+              continue;
+            target[key] = source[key];
+          }
+        }
+
+        return target;
+      }
+
+      module.exports = _objectWithoutProperties;
+
+      /***/
+    },
+
     /***/ Qetd: /***/ function(module, exports, __webpack_require__) {
       "use strict";
+
       var assign = Object.assign.bind(Object);
       module.exports = assign;
       module.exports.default = module.exports;
-      //# sourceMappingURL=object-assign.js.map
-
-      /***/
-    },
 
-    /***/ TqRt: /***/ function(module, exports) {
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      module.exports = _interopRequireDefault;
+      //# sourceMappingURL=object-assign.js.map
 
       /***/
     },
@@ -540,6 +595,27 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
+    /***/ lSNA: /***/ function(module, exports) {
+      function _defineProperty(obj, key, value) {
+        if (key in obj) {
+          Object.defineProperty(obj, key, {
+            value: value,
+            enumerable: true,
+            configurable: true,
+            writable: true
+          });
+        } else {
+          obj[key] = value;
+        }
+
+        return obj;
+      }
+
+      module.exports = _defineProperty;
+
+      /***/
+    },
+
     /***/ leHs: /***/ function(
       module,
       __webpack_exports__,
@@ -633,32 +709,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
       /***/
     },
 
-    /***/ pVnL: /***/ function(module, exports) {
-      function _extends() {
-        module.exports = _extends =
-          Object.assign ||
-          function(target) {
-            for (var i = 1; i < arguments.length; i++) {
-              var source = arguments[i];
-
-              for (var key in source) {
-                if (Object.prototype.hasOwnProperty.call(source, key)) {
-                  target[key] = source[key];
-                }
-              }
-            }
-
-            return target;
-          };
-
-        return _extends.apply(this, arguments);
-      }
-
-      module.exports = _extends;
-
-      /***/
-    },
-
     /***/ wTVA: /***/ function(module, exports) {
       function _arrayWithHoles(arr) {
         if (Array.isArray(arr)) return arr;
Diff for 17.HASH.js
@@ -1,35 +1,773 @@
 (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
   [17],
   {
-    /***/ GaDq: /***/ function(
-      module,
-      __webpack_exports__,
-      __webpack_require__
-    ) {
+    /***/ "/a9y": /***/ function(module, exports, __webpack_require__) {
       "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export (binding) */ __webpack_require__.d(
-        __webpack_exports__,
-        "Hello",
-        function() {
-          return Hello;
-        }
-      );
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
-        "nKUr"
-      );
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
-        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__
-      );
-
-      var Hello = function Hello() {
-        return /*#__PURE__*/ Object(
-          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__["jsx"]
-        )("p", {
-          children: "hello world"
-        });
+
+      var _classCallCheck = __webpack_require__("lwsE");
+
+      var _createClass = __webpack_require__("W8MJ");
+
+      var _inherits = __webpack_require__("7W2i");
+
+      var _possibleConstructorReturn = __webpack_require__("a1gu");
+
+      var _getPrototypeOf = __webpack_require__("Nsbk");
+
+      function _createSuper(Derived) {
+        var hasNativeReflectConstruct = _isNativeReflectConstruct();
+        return function _createSuperInternal() {
+          var Super = _getPrototypeOf(Derived),
+            result;
+          if (hasNativeReflectConstruct) {
+            var NewTarget = _getPrototypeOf(this).constructor;
+            result = Reflect.construct(Super, arguments, NewTarget);
+          } else {
+            result = Super.apply(this, arguments);
+          }
+          return _possibleConstructorReturn(this, result);
+        };
+      }
+
+      function _isNativeReflectConstruct() {
+        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+        if (Reflect.construct.sham) return false;
+        if (typeof Proxy === "function") return true;
+        try {
+          Date.prototype.toString.call(
+            Reflect.construct(Date, [], function() {})
+          );
+          return true;
+        } catch (e) {
+          return false;
+        }
+      }
+
+      var _interopRequireDefault = __webpack_require__("TqRt");
+
+      exports.__esModule = true;
+      exports["default"] = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      var _head = _interopRequireDefault(__webpack_require__("mLbm"));
+
+      var statusCodes = {
+        400: "Bad Request",
+        404: "This page could not be found",
+        405: "Method Not Allowed",
+        500: "Internal Server Error"
       };
 
+      function _getInitialProps(_ref) {
+        var res = _ref.res,
+          err = _ref.err;
+        var statusCode =
+          res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
+        return {
+          statusCode: statusCode
+        };
+      }
+      /**
+       * `Error` component used for handling errors.
+       */
+
+      var Error = /*#__PURE__*/ (function(_react$default$Compon) {
+        _inherits(Error, _react$default$Compon);
+
+        var _super = _createSuper(Error);
+
+        function Error() {
+          _classCallCheck(this, Error);
+
+          return _super.apply(this, arguments);
+        }
+
+        _createClass(Error, [
+          {
+            key: "render",
+            value: function render() {
+              var statusCode = this.props.statusCode;
+              var title =
+                this.props.title ||
+                statusCodes[statusCode] ||
+                "An unexpected error has occurred";
+              return /*#__PURE__*/ _react["default"].createElement(
+                "div",
+                {
+                  style: styles.error
+                },
+                /*#__PURE__*/ _react["default"].createElement(
+                  _head["default"],
+                  null,
+                  /*#__PURE__*/ _react["default"].createElement(
+                    "title",
+                    null,
+                    statusCode
+                      ? "".concat(statusCode, ": ").concat(title)
+                      : "Application error: a client-side exception has occurred"
+                  )
+                ),
+                /*#__PURE__*/ _react["default"].createElement(
+                  "div",
+                  null,
+                  /*#__PURE__*/ _react["default"].createElement("style", {
+                    dangerouslySetInnerHTML: {
+                      __html: "body { margin: 0 }"
+                    }
+                  }),
+                  statusCode
+                    ? /*#__PURE__*/ _react["default"].createElement(
+                        "h1",
+                        {
+                          style: styles.h1
+                        },
+                        statusCode
+                      )
+                    : null,
+                  /*#__PURE__*/ _react["default"].createElement(
+                    "div",
+                    {
+                      style: styles.desc
+                    },
+                    /*#__PURE__*/ _react["default"].createElement(
+                      "h2",
+                      {
+                        style: styles.h2
+                      },
+                      this.props.title || statusCode
+                        ? title
+                        : /*#__PURE__*/ _react["default"].createElement(
+                            _react["default"].Fragment,
+                            null,
+                            "Application error: a client-side exception has occurred (",
+                            /*#__PURE__*/ _react["default"].createElement(
+                              "a",
+                              {
+                                href:
+                                  "https://nextjs.org/docs/messages/client-side-exception-occurred"
+                              },
+                              "developer guidance"
+                            ),
+                            ")"
+                          ),
+                      "."
+                    )
+                  )
+                )
+              );
+            }
+          }
+        ]);
+
+        return Error;
+      })(_react["default"].Component);
+
+      exports["default"] = Error;
+      Error.displayName = "ErrorPage";
+      Error.getInitialProps = _getInitialProps;
+      Error.origGetInitialProps = _getInitialProps;
+      var styles = {
+        error: {
+          color: "#000",
+          background: "#fff",
+          fontFamily:
+            '-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',
+          height: "100vh",
+          textAlign: "center",
+          display: "flex",
+          flexDirection: "column",
+          alignItems: "center",
+          justifyContent: "center"
+        },
+        desc: {
+          display: "inline-block",
+          textAlign: "left",
+          lineHeight: "49px",
+          height: "49px",
+          verticalAlign: "middle"
+        },
+        h1: {
+          display: "inline-block",
+          borderRight: "1px solid rgba(0, 0, 0,.3)",
+          margin: 0,
+          marginRight: "20px",
+          padding: "10px 23px 10px 0",
+          fontSize: "24px",
+          fontWeight: 500,
+          verticalAlign: "top"
+        },
+        h2: {
+          fontSize: "14px",
+          fontWeight: "normal",
+          lineHeight: "inherit",
+          margin: 0,
+          padding: 0
+        }
+      };
+
+      /***/
+    },
+
+    /***/ BdAR: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      var _toConsumableArray = __webpack_require__("RIqP");
+
+      var _classCallCheck = __webpack_require__("lwsE");
+
+      var _createClass = __webpack_require__("W8MJ");
+
+      var _assertThisInitialized = __webpack_require__("PJYZ");
+
+      var _inherits = __webpack_require__("7W2i");
+
+      var _possibleConstructorReturn = __webpack_require__("a1gu");
+
+      var _getPrototypeOf = __webpack_require__("Nsbk");
+
+      function _createSuper(Derived) {
+        var hasNativeReflectConstruct = _isNativeReflectConstruct();
+        return function _createSuperInternal() {
+          var Super = _getPrototypeOf(Derived),
+            result;
+          if (hasNativeReflectConstruct) {
+            var NewTarget = _getPrototypeOf(this).constructor;
+            result = Reflect.construct(Super, arguments, NewTarget);
+          } else {
+            result = Super.apply(this, arguments);
+          }
+          return _possibleConstructorReturn(this, result);
+        };
+      }
+
+      function _isNativeReflectConstruct() {
+        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
+        if (Reflect.construct.sham) return false;
+        if (typeof Proxy === "function") return true;
+        try {
+          Date.prototype.toString.call(
+            Reflect.construct(Date, [], function() {})
+          );
+          return true;
+        } catch (e) {
+          return false;
+        }
+      }
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports["default"] = void 0;
+
+      var _react = __webpack_require__("q1tI");
+
+      var isServer = false;
+
+      var _class = /*#__PURE__*/ (function(_react$Component) {
+        _inherits(_class, _react$Component);
+
+        var _super = _createSuper(_class);
+
+        function _class(props) {
+          var _this;
+
+          _classCallCheck(this, _class);
+
+          _this = _super.call(this, props);
+
+          _this.emitChange = function() {
+            if (_this._hasHeadManager) {
+              _this.props.headManager.updateHead(
+                _this.props.reduceComponentsToState(
+                  _toConsumableArray(_this.props.headManager.mountedInstances),
+                  _this.props
+                )
+              );
+            }
+          };
+
+          _this._hasHeadManager =
+            _this.props.headManager && _this.props.headManager.mountedInstances;
+
+          if (isServer && _this._hasHeadManager) {
+            _this.props.headManager.mountedInstances.add(
+              _assertThisInitialized(_this)
+            );
+
+            _this.emitChange();
+          }
+
+          return _this;
+        }
+
+        _createClass(_class, [
+          {
+            key: "componentDidMount",
+            value: function componentDidMount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances.add(this);
+              }
+
+              this.emitChange();
+            }
+          },
+          {
+            key: "componentDidUpdate",
+            value: function componentDidUpdate() {
+              this.emitChange();
+            }
+          },
+          {
+            key: "componentWillUnmount",
+            value: function componentWillUnmount() {
+              if (this._hasHeadManager) {
+                this.props.headManager.mountedInstances["delete"](this);
+              }
+
+              this.emitChange();
+            }
+          },
+          {
+            key: "render",
+            value: function render() {
+              return null;
+            }
+          }
+        ]);
+
+        return _class;
+      })(_react.Component);
+
+      exports["default"] = _class;
+
+      /***/
+    },
+
+    /***/ Bnag: /***/ function(module, exports) {
+      function _nonIterableSpread() {
+        throw new TypeError(
+          "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
+        );
+      }
+
+      module.exports = _nonIterableSpread;
+
+      /***/
+    },
+
+    /***/ EbDI: /***/ function(module, exports) {
+      function _iterableToArray(iter) {
+        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
+          return Array.from(iter);
+      }
+
+      module.exports = _iterableToArray;
+
+      /***/
+    },
+
+    /***/ Ijbi: /***/ function(module, exports, __webpack_require__) {
+      var arrayLikeToArray = __webpack_require__("WkPL");
+
+      function _arrayWithoutHoles(arr) {
+        if (Array.isArray(arr)) return arrayLikeToArray(arr);
+      }
+
+      module.exports = _arrayWithoutHoles;
+
+      /***/
+    },
+
+    /***/ RIqP: /***/ function(module, exports, __webpack_require__) {
+      var arrayWithoutHoles = __webpack_require__("Ijbi");
+
+      var iterableToArray = __webpack_require__("EbDI");
+
+      var unsupportedIterableToArray = __webpack_require__("ZhPi");
+
+      var nonIterableSpread = __webpack_require__("Bnag");
+
+      function _toConsumableArray(arr) {
+        return (
+          arrayWithoutHoles(arr) ||
+          iterableToArray(arr) ||
+          unsupportedIterableToArray(arr) ||
+          nonIterableSpread()
+        );
+      }
+
+      module.exports = _toConsumableArray;
+
+      /***/
+    },
+
+    /***/ dTAc: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.isInAmpMode = isInAmpMode;
+      exports.useAmp = useAmp;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      var _ampContext = __webpack_require__("r55Z");
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      function isInAmpMode() {
+        var _ref =
+            arguments.length > 0 && arguments[0] !== undefined
+              ? arguments[0]
+              : {},
+          _ref$ampFirst = _ref.ampFirst,
+          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
+          _ref$hybrid = _ref.hybrid,
+          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
+          _ref$hasQuery = _ref.hasQuery,
+          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
+
+        return ampFirst || (hybrid && hasQuery);
+      }
+
+      function useAmp() {
+        // Don't assign the context value to a variable to save bytes
+        return isInAmpMode(
+          _react["default"].useContext(_ampContext.AmpStateContext)
+        );
+      }
+
+      /***/
+    },
+
+    /***/ mLbm: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      var _defineProperty = __webpack_require__("lSNA");
+
+      function ownKeys(object, enumerableOnly) {
+        var keys = Object.keys(object);
+        if (Object.getOwnPropertySymbols) {
+          var symbols = Object.getOwnPropertySymbols(object);
+          if (enumerableOnly)
+            symbols = symbols.filter(function(sym) {
+              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+            });
+          keys.push.apply(keys, symbols);
+        }
+        return keys;
+      }
+
+      function _objectSpread(target) {
+        for (var i = 1; i < arguments.length; i++) {
+          var source = arguments[i] != null ? arguments[i] : {};
+          if (i % 2) {
+            ownKeys(Object(source), true).forEach(function(key) {
+              _defineProperty(target, key, source[key]);
+            });
+          } else if (Object.getOwnPropertyDescriptors) {
+            Object.defineProperties(
+              target,
+              Object.getOwnPropertyDescriptors(source)
+            );
+          } else {
+            ownKeys(Object(source)).forEach(function(key) {
+              Object.defineProperty(
+                target,
+                key,
+                Object.getOwnPropertyDescriptor(source, key)
+              );
+            });
+          }
+        }
+        return target;
+      }
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.defaultHead = defaultHead;
+      exports["default"] = void 0;
+
+      var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+
+      var _sideEffect = _interopRequireDefault(__webpack_require__("BdAR"));
+
+      var _ampContext = __webpack_require__("r55Z");
+
+      var _headManagerContext = __webpack_require__("CM2u");
+
+      var _amp = __webpack_require__("dTAc");
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      function _interopRequireWildcard(obj) {
+        if (obj && obj.__esModule) {
+          return obj;
+        } else {
+          var newObj = {};
+
+          if (obj != null) {
+            for (var key in obj) {
+              if (Object.prototype.hasOwnProperty.call(obj, key)) {
+                var desc =
+                  Object.defineProperty && Object.getOwnPropertyDescriptor
+                    ? Object.getOwnPropertyDescriptor(obj, key)
+                    : {};
+
+                if (desc.get || desc.set) {
+                  Object.defineProperty(newObj, key, desc);
+                } else {
+                  newObj[key] = obj[key];
+                }
+              }
+            }
+          }
+
+          newObj["default"] = obj;
+          return newObj;
+        }
+      }
+
+      function defaultHead() {
+        var inAmpMode =
+          arguments.length > 0 && arguments[0] !== undefined
+            ? arguments[0]
+            : false;
+        var head = [
+          /*#__PURE__*/ _react["default"].createElement("meta", {
+            charSet: "utf-8"
+          })
+        ];
+
+        if (!inAmpMode) {
+          head.push(
+            /*#__PURE__*/ _react["default"].createElement("meta", {
+              name: "viewport",
+              content: "width=device-width"
+            })
+          );
+        }
+
+        return head;
+      }
+
+      function onlyReactElement(list, child) {
+        // React children can be "string" or "number" in this case we ignore them for backwards compat
+        if (typeof child === "string" || typeof child === "number") {
+          return list;
+        } // Adds support for React.Fragment
+
+        if (child.type === _react["default"].Fragment) {
+          return list.concat(
+            _react["default"].Children.toArray(child.props.children).reduce(
+              function(fragmentList, fragmentChild) {
+                if (
+                  typeof fragmentChild === "string" ||
+                  typeof fragmentChild === "number"
+                ) {
+                  return fragmentList;
+                }
+
+                return fragmentList.concat(fragmentChild);
+              },
+              []
+            )
+          );
+        }
+
+        return list.concat(child);
+      }
+
+      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
+      /*
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
+*/
+
+      function unique() {
+        var keys = new Set();
+        var tags = new Set();
+        var metaTypes = new Set();
+        var metaCategories = {};
+        return function(h) {
+          var isUnique = true;
+          var hasKey = false;
+
+          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
+            hasKey = true;
+            var key = h.key.slice(h.key.indexOf("$") + 1);
+
+            if (keys.has(key)) {
+              isUnique = false;
+            } else {
+              keys.add(key);
+            }
+          } // eslint-disable-next-line default-case
+
+          switch (h.type) {
+            case "title":
+            case "base":
+              if (tags.has(h.type)) {
+                isUnique = false;
+              } else {
+                tags.add(h.type);
+              }
+
+              break;
+
+            case "meta":
+              for (var i = 0, len = METATYPES.length; i < len; i++) {
+                var metatype = METATYPES[i];
+                if (!h.props.hasOwnProperty(metatype)) continue;
+
+                if (metatype === "charSet") {
+                  if (metaTypes.has(metatype)) {
+                    isUnique = false;
+                  } else {
+                    metaTypes.add(metatype);
+                  }
+                } else {
+                  var category = h.props[metatype];
+                  var categories = metaCategories[metatype] || new Set();
+
+                  if (
+                    (metatype !== "name" || !hasKey) &&
+                    categories.has(category)
+                  ) {
+                    isUnique = false;
+                  } else {
+                    categories.add(category);
+                    metaCategories[metatype] = categories;
+                  }
+                }
+              }
+
+              break;
+          }
+
+          return isUnique;
+        };
+      }
+      /**
+       *
+       * @param headElements List of multiple <Head> instances
+       */
+
+      function reduceComponents(headElements, props) {
+        return headElements
+          .reduce(function(list, headElement) {
+            var headElementChildren = _react["default"].Children.toArray(
+              headElement.props.children
+            );
+
+            return list.concat(headElementChildren);
+          }, [])
+          .reduce(onlyReactElement, [])
+          .reverse()
+          .concat(defaultHead(props.inAmpMode))
+          .filter(unique())
+          .reverse()
+          .map(function(c, i) {
+            var key = c.key || i;
+
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                [
+                  "https://fonts.googleapis.com/css",
+                  "https://use.typekit.net/"
+                ].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
+
+                newProps["data-optimized-fonts"] = true;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
+            }
+
+            return /*#__PURE__*/ _react["default"].cloneElement(c, {
+              key: key
+            });
+          });
+      }
+      /**
+       * This component injects elements to `<head>` of your page.
+       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
+       */
+
+      function Head(_ref) {
+        var children = _ref.children;
+        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
+        var headManager = (0, _react).useContext(
+          _headManagerContext.HeadManagerContext
+        );
+        return /*#__PURE__*/ _react["default"].createElement(
+          _sideEffect["default"],
+          {
+            reduceComponentsToState: reduceComponents,
+            headManager: headManager,
+            inAmpMode: (0, _amp).isInAmpMode(ampState)
+          },
+          children
+        );
+      }
+
+      var _default = Head;
+      exports["default"] = _default;
+
+      /***/
+    },
+
+    /***/ r55Z: /***/ function(module, exports, __webpack_require__) {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      exports.AmpStateContext = void 0;
+
+      var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
+      }
+
+      var AmpStateContext = _react["default"].createContext({});
+
+      exports.AmpStateContext = AmpStateContext;
+
+      if (false) {
+      }
+
       /***/
     }
   }
Diff for 18.HASH.js
@@ -0,0 +1,36 @@
+(window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
+  [18],
+  {
+    /***/ GaDq: /***/ function(
+      module,
+      __webpack_exports__,
+      __webpack_require__
+    ) {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export (binding) */ __webpack_require__.d(
+        __webpack_exports__,
+        "Hello",
+        function() {
+          return Hello;
+        }
+      );
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
+        "nKUr"
+      );
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
+        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__
+      );
+
+      var Hello = function Hello() {
+        return /*#__PURE__*/ Object(
+          react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__["jsx"]
+        )("p", {
+          children: "hello world"
+        });
+      };
+
+      /***/
+    }
+  }
+]);
Diff for 677f882d2ed8..c4df.HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for webpack-HASH.js
@@ -85,7 +85,7 @@
       "static/chunks/" +
       ({}[chunkId] || chunkId) +
       "." +
-      { "17": "3d084653b6499a5a6e00" }[chunkId] +
+      { "17": "9d3699d71dfccf919e69", "18": "65ab883618afeefa0a62" }[chunkId] +
       ".js"
     );
     /******/
Diff for index.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-85918dace37a5ba0ac6b.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-0cd6603d8fc22ae04472.js"
+      src="/_next/static/chunks/webpack-1f73e14cd2c077e7cc43.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.92de984142b4fb2a95f7.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.67199c98ca31edd10b07.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-e1db6a2e43d9ae140160.js"
+      src="/_next/static/chunks/main-9cf974bdc30bb82bb859.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-14e4eac7b0cda2ea09bf.js"
+      src="/_next/static/chunks/pages/_app-fa06ed5d4deda6b647a1.js"
       defer=""
     ></script>
     <script
Diff for link.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-85918dace37a5ba0ac6b.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-0cd6603d8fc22ae04472.js"
+      src="/_next/static/chunks/webpack-1f73e14cd2c077e7cc43.js"
       defer=""
     ></script>
     <script
@@ -19,19 +19,19 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.92de984142b4fb2a95f7.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.67199c98ca31edd10b07.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-e1db6a2e43d9ae140160.js"
+      src="/_next/static/chunks/main-9cf974bdc30bb82bb859.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-14e4eac7b0cda2ea09bf.js"
+      src="/_next/static/chunks/pages/_app-fa06ed5d4deda6b647a1.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-fe018dc44ef86a82884b.js"
+      src="/_next/static/chunks/pages/link-43805a0b8c5617265e7d.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -11,7 +11,7 @@
       src="/_next/static/chunks/polyfills-85918dace37a5ba0ac6b.js"
     ></script>
     <script
-      src="/_next/static/chunks/webpack-0cd6603d8fc22ae04472.js"
+      src="/_next/static/chunks/webpack-1f73e14cd2c077e7cc43.js"
       defer=""
     ></script>
     <script
@@ -19,15 +19,15 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.92de984142b4fb2a95f7.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.67199c98ca31edd10b07.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-e1db6a2e43d9ae140160.js"
+      src="/_next/static/chunks/main-9cf974bdc30bb82bb859.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/_app-14e4eac7b0cda2ea09bf.js"
+      src="/_next/static/chunks/pages/_app-fa06ed5d4deda6b647a1.js"
       defer=""
     ></script>
     <script

Please sign in to comment.